package ilarkesto.gwt.client.editor; import ilarkesto.core.base.Str; import ilarkesto.gwt.client.Gwt; public abstract class AEditorModel<T> { public abstract T getValue(); public abstract void setValue(T value); protected void onChangeValue(T oldValue, T newValue) {} public boolean isEditable() { return true; } public String getTooltip() { return null; } public void changeValue(T newValue) { T oldValue = getValue(); if (Gwt.equals(oldValue, newValue)) return; onChangeValue(oldValue, newValue); setValue(newValue); } public String getId() { return Str.getSimpleName(getClass()).replace('$', '_'); } }