001: /**
002: *
003: */package gui.section;
004:
005: import org.apache.commons.logging.Log;
006: import org.apache.commons.logging.LogFactory;
007: import org.eclipse.jface.viewers.ICellModifier;
008: import org.eclipse.swt.widgets.TableItem;
009:
010: import diagram.section.EnvEntry;
011:
012: /**
013: * This class implements an ICellModifier
014: * An ICellModifier is called when the user modifies a cell in the
015: * tableViewer
016: *
017: * @author sh
018: */
019:
020: public class EnvEntriesCellModifier implements ICellModifier {
021: private EnvironmentPropertySection envEntriesSection;
022:
023: private Log log = LogFactory.getLog(getClass());
024:
025: /**
026: * Constructor
027: * @param envEntriesEditor an instance of a envEntriesSection
028: */
029: public EnvEntriesCellModifier(
030: EnvironmentPropertySection envEntriesSection) {
031: super ();
032: this .envEntriesSection = envEntriesSection;
033: }
034:
035: /* (non-Javadoc)
036: * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
037: */
038: public boolean canModify(Object element, String property) {
039: return true;
040: }
041:
042: /* (non-Javadoc)
043: * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
044: */
045: public Object getValue(Object element, String property) {
046: // Find the index of the column
047: int columnIndex = envEntriesSection.getColumnNames().indexOf(
048: property);
049:
050: Object result = null;
051: EnvEntry envEntry = (EnvEntry) element;
052:
053: switch (columnIndex) {
054: case 0: // ENV_ENTRY_NAME_COLUMN
055: result = envEntry.getName();
056: break;
057: case 1: // ENV_ENTRY_TYPE_COLUMN
058: result = envEntry.getType();
059: break;
060: case 2: // ENV_ENTRY_VALUE_COLUMN
061: result = envEntry.getValue();
062: break;
063: default:
064: result = "";
065: }
066: return result;
067: }
068:
069: /* (non-Javadoc)
070: * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
071: */
072: public void modify(Object element, String property, Object value) {
073:
074: // Find the index of the column
075: int columnIndex = envEntriesSection.getColumnNames().indexOf(
076: property);
077:
078: TableItem item = (TableItem) element;
079: EnvEntry envEntry = (EnvEntry) item.getData();
080: String valueString = null;
081:
082: switch (columnIndex) {
083: case 0: // ENV_ENTRY_NAME_COLUMN
084: valueString = ((String) value).trim();
085: if (valueString.equals(EnvEntryList.STANDARD_TEXT)
086: || valueString.equals("")) {
087: log
088: .warn("\"(standard)\" or an empty string is not accepted !");
089: return;
090: }
091: envEntry.setName(valueString);
092: break;
093: case 1: // ENV_ENTRY_TYPE_COLUMN
094: if (value == null)
095: break;
096: valueString = ((String) value).trim();
097: envEntry.setType(valueString);
098: break;
099: case 2: // ENV_ENTRY_VALUE_COLUMN
100: valueString = ((String) value).trim();
101: envEntry.setValue(valueString);
102: break;
103: default:
104: }
105: envEntriesSection.getEnvEntryList().envEntryChanged(envEntry);
106: }
107: }
|