package org.droiddraw.property; import java.beans.PropertyChangeEvent; import org.droiddraw.AndroidEditor; public class StringProperty extends Property { String value; String defaultValue; public StringProperty(String englishName, String attName, String defaultValue) { this(englishName, attName, defaultValue, true); this.defaultValue = defaultValue; } public StringProperty(String englishName, String attName, String defaultValue, boolean editable) { super(englishName, attName, editable); this.value = defaultValue; } @Override protected boolean isDefaultInternal() { return value.equals(defaultValue); } @Override public Object getValue() { return getStringValue(); } public String getStringValue() { if (value != null && value.startsWith("@string") && AndroidEditor.instance().getStrings() != null) { String key = value.substring(value.indexOf("/")+1); String str = AndroidEditor.instance().getStrings().get(key); if (str == null) str = value; return str; } else { return value; } } public void setStringValue(String value) { this.setStringValue(value, false); } public void setStringValue(String value, boolean setDefault) { String old = this.value; this.value = value; if (setDefault) { this.defaultValue = value; } firePropertyChangedEvent(new PropertyChangeEvent(this, this.getAtttributeName(), old, value)); } @Override public void setValue(String value) { setStringValue(value); } }