summaryrefslogtreecommitdiffstats
path: root/src/com/ibm/ServerWizard2/view/AttributeEditingSupport.java
diff options
context:
space:
mode:
authornjames <nkskjames@gmail.com>2016-08-25 11:34:00 -0500
committernjames <nkskjames@gmail.com>2016-08-25 11:34:00 -0500
commit05dfb231193d0bb3ec61e639d9d5960dc30d29df (patch)
tree9887f4050e3b209758bdb6c651170646890b2ba7 /src/com/ibm/ServerWizard2/view/AttributeEditingSupport.java
parent99ae87285d0ebf27b37204bef1d4f25dd4d0215a (diff)
downloadserverwiz-05dfb231193d0bb3ec61e639d9d5960dc30d29df.tar.gz
serverwiz-05dfb231193d0bb3ec61e639d9d5960dc30d29df.zip
Major refactor for P9:
- cleaned up package organization - added html summary - breakout parts library into seperate files - added support for external parts library - cleaned up MVC cheats - removed unused methods
Diffstat (limited to 'src/com/ibm/ServerWizard2/view/AttributeEditingSupport.java')
-rw-r--r--src/com/ibm/ServerWizard2/view/AttributeEditingSupport.java95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/com/ibm/ServerWizard2/view/AttributeEditingSupport.java b/src/com/ibm/ServerWizard2/view/AttributeEditingSupport.java
new file mode 100644
index 0000000..6b63098
--- /dev/null
+++ b/src/com/ibm/ServerWizard2/view/AttributeEditingSupport.java
@@ -0,0 +1,95 @@
+package com.ibm.ServerWizard2.view;
+
+import java.util.Vector;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ComboBoxViewerCellEditor;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.ICellEditorListener;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.swt.SWT;
+
+import com.ibm.ServerWizard2.model.Field;
+
+public class AttributeEditingSupport extends EditingSupport {
+ private CellEditor editor;
+ private TableViewer viewer;
+ private Boolean ignoreReadonly = false;
+
+ public AttributeEditingSupport(TableViewer viewer) {
+ super(viewer);
+ this.viewer=viewer;
+ }
+
+ public void setIgnoreReadonly() {
+ ignoreReadonly = true;
+ }
+ @Override
+ protected boolean canEdit(Object obj) {
+ Field f = (Field)obj;
+ if (this.ignoreReadonly == true) { return true; }
+ return !f.readonly;
+ }
+
+ @Override
+ protected CellEditor getCellEditor(Object obj) {
+ Field f = (Field) obj;
+ if (f.type.equals("enumeration")) {
+ ComboBoxViewerCellEditor e = new ComboBoxViewerCellEditor(viewer.getTable(),SWT.READ_ONLY);
+ e.setContentProvider(new ArrayContentProvider());
+ e.setInput(f.enumerator.enumList);
+ this.editor=e;
+ } else if (!f.array.isEmpty()) {
+ this.editor = new ArrayDialogCellEditor(viewer.getTable(),f);
+ } else if (f.type.equals("boolean")) {
+ Vector<String> tf = new Vector<String>();
+ ComboBoxViewerCellEditor e = new ComboBoxViewerCellEditor(viewer.getTable(),SWT.READ_ONLY);
+ e.setContentProvider(new ArrayContentProvider());
+ tf.add("true");
+ tf.add("false");
+ e.setInput(tf);
+ this.editor=e;
+ } else {
+ this.editor = new TextCellEditor(viewer.getTable());
+ AttributeValidator attrValidator = new AttributeValidator(f);
+ this.editor.setValidator(attrValidator);
+ this.editor.addListener(new ICellEditorListener() {
+
+ public void applyEditorValue() {
+ }
+
+ public void cancelEditor() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void editorValueChanged(boolean arg0, boolean arg1) {
+ if (!arg1) {
+ MessageDialog.openError(null, "Invalid format", editor.getErrorMessage());
+ }
+ }
+
+ });
+ }
+ return editor;
+ }
+
+ @Override
+ protected Object getValue(Object obj) {
+ Field f = (Field) obj;
+ return f.value;
+ }
+
+ @Override
+ protected void setValue(Object obj, Object value) {
+ Field f = (Field) obj;
+ if (f.value==null || !f.value.equals((String)value)) {
+ f.value = (String) value;
+ this.getViewer().update(obj, null);
+ this.viewer.getTable().notifyListeners(SWT.CHANGED, null);
+ }
+ }
+}
OpenPOWER on IntegriCloud