Merge branch 'develop' into remoting-4.0
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / referencingobjects / ReferencingObjectsView.java
index b613952f6386f4d41a3d175a9b4114dd9973b49c..9f3dbc63aa2fab335b2b1973e3434c209f7da1fa 100644 (file)
@@ -22,10 +22,14 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ICellModifier;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.TextCellEditor;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
@@ -63,7 +67,7 @@ import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
  * @created 08.07.2009
  * @version 1.0
  */
-public class ReferencingObjectsView extends AbstractCdmViewPart{
+public class ReferencingObjectsView extends AbstractCdmViewPart {
        private static final Logger logger = Logger
                        .getLogger(ReferencingObjectsView.class);
 
@@ -88,6 +92,34 @@ public class ReferencingObjectsView extends AbstractCdmViewPart{
                createColumns(viewer);
                viewer.setContentProvider(new ReferencingObjectsContentProvider());
                viewer.setLabelProvider(new ReferencingObjectsLabelProvider());
+               viewer.setCellModifier(new ICellModifier() {
+
+            @Override
+            public void modify(Object element, String property, Object value) {
+                // TODO Auto-generated method stub
+
+            }
+
+            @Override
+            public Object getValue(Object element, String property) {
+                ITableLabelProvider tableLabelProvider = null;
+                if(viewer.getLabelProvider() instanceof ITableLabelProvider){
+                    tableLabelProvider = (ITableLabelProvider) viewer.getLabelProvider();
+                }
+                Object[] columnProperties = viewer.getColumnProperties();
+                for (int i=0;i<columnProperties.length;i++) {
+                    if(columnProperties[i].equals(property) && tableLabelProvider!=null){
+                        return tableLabelProvider.getColumnText(element, i);
+                    }
+                }
+                return "";
+            }
+
+            @Override
+            public boolean canModify(Object element, String property) {
+                return true;
+            }
+        });
 //             viewer.setInput(new ArrayList<CdmBase>());
        }
 
@@ -100,8 +132,11 @@ public class ReferencingObjectsView extends AbstractCdmViewPart{
                String[] titles = {"Class", "Description", "UUID", "Object ID" };
                int[] bounds = { 100, 200, 100, 70};
 
+        CellEditor[] editors = new CellEditor[titles.length];
+
                for (int i = 0; i < titles.length; i++) {
                        TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
+                       editors[i] = new TextCellEditor(table);
                        column.getColumn().setText(titles[i]);
                        column.getColumn().setWidth(bounds[i]);
                        column.getColumn().setResizable(true);
@@ -109,6 +144,9 @@ public class ReferencingObjectsView extends AbstractCdmViewPart{
                }
                table.setHeaderVisible(true);
                table.setLinesVisible(true);
+
+               viewer.setCellEditors(editors);
+               viewer.setColumnProperties(titles);
        }
 
        /**