1 6 package com.nightlabs.ipanema.person.edit.blockbased; 7 8 import org.apache.log4j.Logger; 9 import org.eclipse.swt.SWT; 10 import org.eclipse.swt.widgets.Composite; 11 import org.eclipse.swt.widgets.Control; 12 13 import com.nightlabs.ipanema.person.AbstractPersonDataField; 14 import com.nightlabs.ipanema.person.TextPersonDataField; 15 import com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldEditor; 16 import com.nightlabs.ipanema.person.edit.AbstractPersonDataFieldEditorFactory; 17 18 24 public class TextPersonDataFieldEditor extends AbstractPersonDataFieldEditor { 25 private static Logger LOGGER = Logger.getLogger(TextPersonDataFieldEditor.class); 26 27 public static class Factory extends AbstractPersonDataFieldEditorFactory { 28 31 public Class getTargetPersonDataFieldType() { 32 return TextPersonDataField.class; 33 } 34 37 public String getEditorType() { 38 return ExpandableBlocksPersonEditor.EDITORTYPE_BLOCK_BASED_EXPANDABLE; 39 } 40 43 public Class getPersonDataFieldEditorClass() { 44 return TextPersonDataFieldEditor.class; 45 } 46 } 47 48 51 public Class getTargetPersonDataType() { 52 return TextPersonDataField.class; 53 } 54 55 58 public String getEditorType() { 59 return ExpandableBlocksPersonEditor.EDITORTYPE_BLOCK_BASED_EXPANDABLE; 60 } 61 62 63 private TextPersonDataFieldComposite composite; 64 67 public Control createControl(Composite parent) { 68 if (composite == null) { 69 composite = new TextPersonDataFieldComposite(this,parent,SWT.NONE,this); 70 } 71 composite.refresh(); 72 return composite; 73 } 74 75 78 public Control getControl() { 79 return composite; 80 } 81 82 private TextPersonDataField data; 83 86 public void doSetData(AbstractPersonDataField data) { 87 if (! (data instanceof TextPersonDataField)) 88 throw new IllegalArgumentException ("Argument data should be of type "+TextPersonDataField.class.getName()+" but was "+data.getClass().getName()); 89 this.data = (TextPersonDataField)data; 90 setChanged(false); 91 } 95 96 public TextPersonDataField getData() { 97 return data; 98 } 99 100 103 public void updatePerson() { 104 data.setText(composite.getText()); 105 } 106 107 110 public void doRefresh(AbstractPersonDataField data) { 111 setData(data); 112 } 113 114 117 public void disposeControl() { 118 composite.dispose(); 119 } 120 121 124 public void doRefresh() { 125 if (composite != null) 126 composite.refresh(); 127 } 128 129 } 130 | Popular Tags |