ref #7502 Add option to hide and show columns
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 19 Sep 2018 14:23:07 +0000 (16:23 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 19 Sep 2018 14:23:20 +0000 (16:23 +0200)
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4Composite.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorPropertyAccessor.java

index cb2c5f156d1e0c6e09545f8ae8c7b7201d6c7664..1476911c19c2743d36a0e4976d118f508c410ded 100644 (file)
@@ -91,15 +91,15 @@ public class BulkEditorE4Composite extends Composite {
 
     public static final String TYPE_PROPERTY = Messages.BulkEditorE4_TYPE;
 
-    public static final String ID_PROPERTY = "Id";
+    public static final String ID_PROPERTY = "Id"; //$NON-NLS-1$
 
-    public static final String UUID_PROPERTY = "Uuid";
+    public static final String UUID_PROPERTY = "Uuid"; //$NON-NLS-1$
 
-    public static final String CANDIDATE_LABEL = "candidate";
+    public static final String CANDIDATE_LABEL = "candidate"; //$NON-NLS-1$
 
-    public static final String TARGET_LABEL = "target";
+    public static final String TARGET_LABEL = "target"; //$NON-NLS-1$
 
-    public static final List<String> columnList = new ArrayList<>();
+    private final List<String> columnList = new ArrayList<>();
 
     private Composite topComposite;
 
@@ -183,7 +183,7 @@ public class BulkEditorE4Composite extends Composite {
         //sorted list
         SortedList<CdmBase> sortedList = new SortedList<>(bulkEditor.getEditorInput().getModel(), bulkEditor.getEditorInput().getTitleComparator());
         //data provider
-        BulkEditorPropertyAccessor columnPropertyAccessor = new BulkEditorPropertyAccessor(bulkEditor.getEditorInput());
+        BulkEditorPropertyAccessor columnPropertyAccessor = new BulkEditorPropertyAccessor(this, bulkEditor.getEditorInput());
         bodyDataProvider = new ListDataProvider<CdmBase>(sortedList,
                 columnPropertyAccessor);
         DefaultColumnHeaderDataProvider colHeaderDataProvider = new DefaultColumnHeaderDataProvider(
@@ -295,8 +295,10 @@ public class BulkEditorE4Composite extends Composite {
             public void configureUiBindings(
                     UiBindingRegistry uiBindingRegistry) {
                 // add e4 menu to NatTable
-                new PopupMenuBuilder(natTable, e4Menu)
-                    .build();
+                        new PopupMenuBuilder(natTable, e4Menu)
+                        .withHideColumnMenuItem()
+                        .withShowAllColumnsMenuItem()
+                        .build();
 
                 // register the UI binding for header, corner and body region
                 uiBindingRegistry.registerMouseDownBinding(
@@ -352,6 +354,10 @@ public class BulkEditorE4Composite extends Composite {
         natTable.doCommand(new VisualRefreshCommand());
     }
 
+    public List<String> getColumnList() {
+        return columnList;
+    }
+
     public IStructuredSelection getSelection(){
         List<CdmBase> selection = new ArrayList<>();
         int[] fullySelectedRowPositions = bodyLayer.getSelectionLayer().getFullySelectedRowPositions();
@@ -378,7 +384,7 @@ public class BulkEditorE4Composite extends Composite {
     }
 
     public void copyDataToClipboard() {
-        String textData = "";
+        String textData = ""; //$NON-NLS-1$
         IStructuredSelection selection = getSelection();
         Object[] objects = selection.toArray();
         for (Object object : objects) {
index 228c0e0cbea0e94da7bfe1fd3a52d2eb5ebba88a..265657e4b5592d082e8dd4dc67bb096391c276ae 100644 (file)
@@ -21,15 +21,17 @@ import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 public class BulkEditorPropertyAccessor implements IColumnPropertyAccessor<CdmBase> {
 
         private AbstractBulkEditorInput input;
+        BulkEditorE4Composite bulkEditorComposite;
 
-        public BulkEditorPropertyAccessor(AbstractBulkEditorInput<CdmBase> input) {
+        public BulkEditorPropertyAccessor(BulkEditorE4Composite bulkEditorComposite, AbstractBulkEditorInput<CdmBase> input) {
             super();
             this.input = input;
+            this.bulkEditorComposite = bulkEditorComposite;
         }
 
         @Override
         public Object getDataValue(CdmBase rowObject, int columnIndex) {
-            String property = BulkEditorE4Composite.columnList.get(columnIndex);
+            String property = bulkEditorComposite.getColumnList().get(columnIndex);
             if(property.equals(input.getName())){
                 return input.getText(rowObject);
             }if(property.equals(BulkEditorE4Composite.TYPE_PROPERTY)){
@@ -49,16 +51,16 @@ public class BulkEditorPropertyAccessor implements IColumnPropertyAccessor<CdmBa
 
         @Override
         public int getColumnCount() {
-            return BulkEditorE4Composite.columnList.size();
+            return bulkEditorComposite.getColumnList().size();
         }
 
         @Override
         public String getColumnProperty(int columnIndex) {
-            return BulkEditorE4Composite.columnList.get(columnIndex);
+            return bulkEditorComposite.getColumnList().get(columnIndex);
         }
 
         @Override
         public int getColumnIndex(String propertyName) {
-            return BulkEditorE4Composite.columnList.indexOf(propertyName);
+            return bulkEditorComposite.getColumnList().indexOf(propertyName);
         }
     }
\ No newline at end of file