1 19 20 package org.netbeans.modules.j2ee.ddloaders.multiview; 21 22 import org.netbeans.modules.xml.multiview.ItemEditorHelper; 23 import org.netbeans.modules.xml.multiview.XmlMultiViewDataSynchronizer; 24 25 28 public abstract class TextItemEditorModel extends ItemEditorHelper.ItemEditorModel { 29 30 XmlMultiViewDataSynchronizer synchronizer; 31 private boolean emptyAllowed; 32 private boolean emptyIsNull; 33 String origValue; 34 35 protected TextItemEditorModel(XmlMultiViewDataSynchronizer synchronizer, boolean emptyAllowed) { 36 this(synchronizer, emptyAllowed, false); 37 38 } 39 protected TextItemEditorModel(XmlMultiViewDataSynchronizer synchronizer, boolean emptyAllowed, boolean emptyIsNull) { 40 this.synchronizer = synchronizer; 41 this.emptyAllowed = emptyAllowed; 42 this.emptyIsNull = emptyIsNull; 43 origValue = getValue(); 44 } 45 46 protected boolean validate(String value) { 47 return emptyAllowed ? true : value != null && value.length() > 0; 48 } 49 50 protected abstract void setValue(String value); 51 52 protected abstract String getValue(); 53 54 public final boolean setItemValue(String value) { 55 if (emptyAllowed && emptyIsNull && value != null) { 56 while (value.length() > 0 && value.charAt(0) == ' ') { 57 value = value.substring(1); 58 } 59 if (value.length() == 0) { 60 value = null; 61 } 62 } 63 if (validate(value)) { 64 String currentValue = getValue(); 65 if (!(value == currentValue || value != null && value.equals(currentValue))) { 66 setValue(value); 67 synchronizer.requestUpdateData(); 68 } 69 return true; 70 } else { 71 return false; 72 } 73 } 74 75 public final String getItemValue() { 76 String value = getValue(); 77 return value == null ? "" : value; 78 } 79 80 public void documentUpdated() { 81 setItemValue(getEditorText()); 82 } 83 } 84 | Popular Tags |