// Path: headlands-ui/src/main/java/com/airhacks/headlands/CacheAccessor.java
// public class CacheAccessor {
// 
//     private ObjectProperty<Cache<String, String>> currentCache;
//     private CachingProvider cachingProvider;
//     private CacheManager cacheManager;
// 
//     private SimpleBooleanProperty cacheStarted;
// 
//     private ExecutorService executor;
// 
//     @PostConstruct
//     public void initialize() {
//         System.setProperty("hazelcast.jcache.provider.type", "server");
//         this.currentCache = new SimpleObjectProperty<>();
//         this.cacheStarted = new SimpleBooleanProperty();
//         this.executor = Executors.newCachedThreadPool();
//     }
// 
//     public void store(String keyString, String valueString) {
//         getCurrentCache().put(keyString, valueString);
//     }
// 
//     public List<String> getCacheNames() {
//         List<String> caches = new ArrayList<>();
//         Iterable<String> names = this.cacheManager.getCacheNames();
//         names.forEach(caches::add);
//         return caches;
//     }
// 
//     public void start() {
//         this.executor.submit(() -> {
//             this.cachingProvider = Caching.getCachingProvider();
//             this.cacheManager = cachingProvider.getCacheManager();
//             runLater(() -> this.cacheStarted.set(true));
//         }
//         );
//     }
// 
//     public BooleanProperty isStarted() {
//         return cacheStarted;
//     }
// 
//     public void stop() {
//         this.executor.submit(() -> {
//             getCurrentCache().close();
//             this.cacheManager.close();
//             this.cachingProvider.close();
//             runLater(() -> this.cacheStarted.set(false));
// 
//         });
// 
//     }
// 
//     public void createCache(String cacheName) {
//         MutableConfiguration<String, String> configuration = new MutableConfiguration<>();
// 
//         configuration.setStoreByValue(false).
//                 setTypes(String.class, String.class).
//                 setManagementEnabled(true).
//                 setStoreByValue(true);
// 
//         this.currentCache.set(cacheManager.
//                 createCache(cacheName, configuration));
// 
//     }
// 
//     public String getValue(String key) {
//         return getCurrentCache().get(key);
//     }
// 
//     public List<Cache.Entry<String, String>> getAllEntries() {
//         List<Cache.Entry<String, String>> entries = new ArrayList<>();
//         for (Cache.Entry<String, String> entry : getCurrentCache()) {
//             entries.add(entry);
//         }
//         return entries;
//     }
// 
//     public void remove(String key) {
//         getCurrentCache().remove(key);
//     }
// 
//     public void selectCache(String cacheName) {
//         this.currentCache.set(this.cacheManager.getCache(cacheName, String.class, String.class));
//     }
// 
//     Cache<String, String> getCurrentCache() {
//         return this.currentCache.get();
//     }
// 
//     public ObjectProperty<Cache<String, String>> currentCacheProperty() {
//         return this.currentCache;
//     }
// 
// }


import com.airhacks.headlands.CacheAccessor;
import java.net.URL;
import java.util.List;
import java.util.ResourceBundle;
import java.util.stream.Collectors;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.util.Pair;
import javax.cache.Cache;
import javax.inject.Inject;
package com.airhacks.headlands.entries;


/**
 *
 * @author airhacks.com
 */
public class EntriesPresenter implements Initializable {

    @Inject
// Path: headlands-ui/src/main/java/com/airhacks/headlands/CacheAccessor.java
// public class CacheAccessor {
// 
//     private ObjectProperty<Cache<String, String>> currentCache;
//     private CachingProvider cachingProvider;
//     private CacheManager cacheManager;
// 
//     private SimpleBooleanProperty cacheStarted;
// 
//     private ExecutorService executor;
// 
//     @PostConstruct
//     public void initialize() {
//         System.setProperty("hazelcast.jcache.provider.type", "server");
//         this.currentCache = new SimpleObjectProperty<>();
//         this.cacheStarted = new SimpleBooleanProperty();
//         this.executor = Executors.newCachedThreadPool();
//     }
// 
//     public void store(String keyString, String valueString) {
//         getCurrentCache().put(keyString, valueString);
//     }
// 
//     public List<String> getCacheNames() {
//         List<String> caches = new ArrayList<>();
//         Iterable<String> names = this.cacheManager.getCacheNames();
//         names.forEach(caches::add);
//         return caches;
//     }
// 
//     public void start() {
//         this.executor.submit(() -> {
//             this.cachingProvider = Caching.getCachingProvider();
//             this.cacheManager = cachingProvider.getCacheManager();
//             runLater(() -> this.cacheStarted.set(true));
//         }
//         );
//     }
// 
//     public BooleanProperty isStarted() {
//         return cacheStarted;
//     }
// 
//     public void stop() {
//         this.executor.submit(() -> {
//             getCurrentCache().close();
//             this.cacheManager.close();
//             this.cachingProvider.close();
//             runLater(() -> this.cacheStarted.set(false));
// 
//         });
// 
//     }
// 
//     public void createCache(String cacheName) {
//         MutableConfiguration<String, String> configuration = new MutableConfiguration<>();
// 
//         configuration.setStoreByValue(false).
//                 setTypes(String.class, String.class).
//                 setManagementEnabled(true).
//                 setStoreByValue(true);
// 
//         this.currentCache.set(cacheManager.
//                 createCache(cacheName, configuration));
// 
//     }
// 
//     public String getValue(String key) {
//         return getCurrentCache().get(key);
//     }
// 
//     public List<Cache.Entry<String, String>> getAllEntries() {
//         List<Cache.Entry<String, String>> entries = new ArrayList<>();
//         for (Cache.Entry<String, String> entry : getCurrentCache()) {
//             entries.add(entry);
//         }
//         return entries;
//     }
// 
//     public void remove(String key) {
//         getCurrentCache().remove(key);
//     }
// 
//     public void selectCache(String cacheName) {
//         this.currentCache.set(this.cacheManager.getCache(cacheName, String.class, String.class));
//     }
// 
//     Cache<String, String> getCurrentCache() {
//         return this.currentCache.get();
//     }
// 
//     public ObjectProperty<Cache<String, String>> currentCacheProperty() {
//         return this.currentCache;
//     }
// 
// }


// Path: headlands-ui/src/main/java/com/airhacks/headlands/entries/EntriesPresenter.java
import com.airhacks.headlands.CacheAccessor;
import java.net.URL;
import java.util.List;
import java.util.ResourceBundle;
import java.util.stream.Collectors;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.util.Pair;
import javax.cache.Cache;
import javax.inject.Inject;

package com.airhacks.headlands.entries;


/**
 *
 * @author airhacks.com
 */
public class EntriesPresenter implements Initializable {

    @Inject
    CacheAccessor cs;