package com.coder.client.property; import java.util.Optional; import org.controlsfx.control.PropertySheet; import org.controlsfx.property.editor.PropertyEditor; public abstract class CoderClientProperty implements PropertySheet.Item { private String name; private T value; public CoderClientProperty(String name, T defaultValue){ this.name = name; this.value = defaultValue; } @Override public String getName(){ return name; } @Override public Object getValue() { return value; } @Override public boolean isEditable() { return true; } @SuppressWarnings("unchecked") @Override public void setValue(Object value) { this.value = (T)value; } @Override public Optional>> getPropertyEditorClass() { return Optional.empty(); } @Override public String getCategory() { return ""; } public abstract PropertyEditor getEditor(); }