ref #7502 Show lock icon in header
authorPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 5 Oct 2018 15:35:52 +0000 (17:35 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 5 Oct 2018 15:35:52 +0000 (17:35 +0200)
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorConfigLabelAccumulator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorConfigLabelAccumulatorHeader.java [new file with mode: 0644]
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/input/AbstractBulkEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/ReferenceEditorInput.java

index 923ea903b92c140a8e0c68009369b89be3b5b786..a16d4ebf1f647cfb9acfa22fe0a01b3c1f592a0b 100644 (file)
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.bulkeditor.e4;
 
-import org.eclipse.nebula.widgets.nattable.NatTable;
 import org.eclipse.nebula.widgets.nattable.data.ListDataProvider;
 import org.eclipse.nebula.widgets.nattable.grid.data.DefaultColumnHeaderDataProvider;
 import org.eclipse.nebula.widgets.nattable.layer.LabelStack;
@@ -24,20 +23,15 @@ import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
  */
 public class BulkEditorConfigLabelAccumulator implements IConfigLabelAccumulator {
 
-    public static final String BOOLEAN_COLUMN = "boolean_column";
-
     private ListDataProvider<CdmBase> dataProvider;
     private AbstractBulkEditorInput input;
-    private NatTable natTable;
     private DefaultColumnHeaderDataProvider colHeaderDataProvider;
 
-    public BulkEditorConfigLabelAccumulator(NatTable natTable, ListDataProvider<CdmBase> dataProvider,
+    public BulkEditorConfigLabelAccumulator(ListDataProvider<CdmBase> dataProvider,
             DefaultColumnHeaderDataProvider colHeaderDataProvider, AbstractBulkEditorInput input) {
-        super();
         this.dataProvider = dataProvider;
         this.colHeaderDataProvider = colHeaderDataProvider;
         this.input = input;
-        this.natTable = natTable;
     }
 
 
@@ -47,7 +41,7 @@ public class BulkEditorConfigLabelAccumulator implements IConfigLabelAccumulator
             return;
         }
         if(input.isBooleanProperty(colHeaderDataProvider.getColumnHeaderLabel(columnPosition))){
-            configLabels.addLabel(BOOLEAN_COLUMN);
+            configLabels.addLabel(BulkEditorConfigLabelAccumulatorHeader.BOOLEAN_COLUMN);
         }
         CdmBase rowObject = dataProvider.getRowObject(rowPosition);
         if(input.getMergeCandidates().contains(rowObject)){
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorConfigLabelAccumulatorHeader.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorConfigLabelAccumulatorHeader.java
new file mode 100644 (file)
index 0000000..bcb3ac3
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.bulkeditor.e4;
+
+import org.eclipse.nebula.widgets.nattable.grid.data.DefaultColumnHeaderDataProvider;
+import org.eclipse.nebula.widgets.nattable.layer.LabelStack;
+import org.eclipse.nebula.widgets.nattable.layer.cell.IConfigLabelAccumulator;
+
+import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+
+/**
+ * @author pplitzner
+ * @since Jul 6, 2018
+ *
+ */
+public class BulkEditorConfigLabelAccumulatorHeader implements IConfigLabelAccumulator {
+
+    public static final String BOOLEAN_COLUMN = "boolean_column";
+    public static final String CACHE_COLUMN = "cache_column";
+
+    private AbstractBulkEditorInput input;
+    private DefaultColumnHeaderDataProvider colHeaderDataProvider;
+
+    public BulkEditorConfigLabelAccumulatorHeader(DefaultColumnHeaderDataProvider colHeaderDataProvider,
+            AbstractBulkEditorInput input) {
+        this.colHeaderDataProvider = colHeaderDataProvider;
+        this.input = input;
+    }
+
+
+    @Override
+    public void accumulateConfigLabels(LabelStack configLabels, int columnPosition, int rowPosition) {
+        if(input.isCacheProperty(colHeaderDataProvider.getColumnHeaderLabel(columnPosition))){
+            configLabels.addLabel(CACHE_COLUMN);
+        }
+    }
+}
index b23b9834349ba0e6a7f4cb299fe2e6de5bf6103a..e27d9f8a8bb412c4f6decd9bf9244f8cf6d54563 100644 (file)
@@ -56,6 +56,7 @@ import org.eclipse.nebula.widgets.nattable.layer.AbstractLayer;
 import org.eclipse.nebula.widgets.nattable.layer.DataLayer;
 import org.eclipse.nebula.widgets.nattable.layer.stack.DefaultBodyLayerStack;
 import org.eclipse.nebula.widgets.nattable.painter.cell.CheckBoxPainter;
+import org.eclipse.nebula.widgets.nattable.painter.cell.ImagePainter;
 import org.eclipse.nebula.widgets.nattable.selection.RowSelectionModel;
 import org.eclipse.nebula.widgets.nattable.selection.RowSelectionProvider;
 import org.eclipse.nebula.widgets.nattable.sort.SortHeaderLayer;
@@ -83,6 +84,7 @@ import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.ImageResources;
 
 /**
  *
@@ -166,6 +168,7 @@ public class BulkEditorE4Composite extends Composite {
         selectionProvider.addSelectionChangedListener(selectionChangedListener);
 
         bottomComposite.layout();
+
        }
 
        private void createTable(){
@@ -194,12 +197,12 @@ public class BulkEditorE4Composite extends Composite {
         dataLayer.setColumnPercentageSizing(0, true);
         dataLayer.setColumnWidthPercentageByPosition(0, 45);
         for(int i=1;i<columnList.size();i++){
-//            if(bulkEditor.getEditorInput().isBooleanProperty(columnList.get(i))){
-//                dataLayer.setColumnWidthByPosition(i, 20);
-//            }
-//            else{
+            if(bulkEditor.getEditorInput().isCacheProperty(columnList.get(i))){
+                dataLayer.setColumnWidthByPosition(i, 16);
+            }
+            else{
                 dataLayer.setColumnWidthByPosition(i, 100);
-//            }
+            }
         }
 
         //column
@@ -217,6 +220,8 @@ public class BulkEditorE4Composite extends Composite {
                         columnPropertyAccessor,
                         configRegistry,
                         columnHeaderDataLayer));
+        columnHeaderDataLayer.setConfigLabelAccumulator(
+                new BulkEditorConfigLabelAccumulatorHeader(colHeaderDataProvider, bulkEditor.getEditorInput()));
         //row
         DataLayer rowHeaderDataLayer = new DataLayer(rowHeaderDataProvider);
         RowHeaderLayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer,
@@ -232,7 +237,6 @@ public class BulkEditorE4Composite extends Composite {
         GridLayer gridLayer = new GridLayer(bodyLayer, sortHeaderLayer,
                 rowHeaderLayer, cornerLayer, false);//set autoconfigure to false to get rid of the single click editing
         natTable = new NatTable(bottomComposite, gridLayer, false);
-        natTable.setConfigRegistry(configRegistry);
 
         //full row selection
         bodyLayer.getSelectionLayer().setSelectionModel(new RowSelectionModel<CdmBase>(bodyLayer.getSelectionLayer(), bodyDataProvider, new IRowIdAccessor<CdmBase>() {
@@ -242,10 +246,11 @@ public class BulkEditorE4Composite extends Composite {
             }
         }));
 
-        dataLayer.setConfigLabelAccumulator(new BulkEditorConfigLabelAccumulator(natTable, bodyDataProvider,
-                colHeaderDataProvider,
+        dataLayer.setConfigLabelAccumulator(new BulkEditorConfigLabelAccumulator(bodyDataProvider, colHeaderDataProvider,
                 bulkEditor.getEditorInput()));
 
+        natTable.setConfigRegistry(configRegistry);
+
         //add tooltip to table
         new BulkEditorTooltip(natTable);
        }
@@ -284,24 +289,6 @@ public class BulkEditorE4Composite extends Composite {
             }
         });
 
-        //show boolean values as check boxes
-        natTable.addConfiguration(new AbstractRegistryConfiguration() {
-            @Override
-            public void configureRegistry(IConfigRegistry configRegistry) {
-                configRegistry.registerConfigAttribute(
-                        CellConfigAttributes.CELL_PAINTER,
-                        new CheckBoxPainter(),
-                        DisplayMode.NORMAL,
-                        BulkEditorConfigLabelAccumulator.BOOLEAN_COLUMN);
-
-                configRegistry.registerConfigAttribute(
-                        CellConfigAttributes.DISPLAY_CONVERTER,
-                        new DefaultBooleanDisplayConverter(),
-                        DisplayMode.NORMAL,
-                        BulkEditorConfigLabelAccumulator.BOOLEAN_COLUMN);
-            }
-        });
-
         //+++CONTEXT MENU+++
         menuService.registerContextMenu(natTable, "eu.etaxonomy.taxeditor.bulkeditor.popupmenu.bulkeditor"); //$NON-NLS-1$
         // get the menu registered by EMenuService
@@ -317,6 +304,7 @@ public class BulkEditorE4Composite extends Composite {
                         new PopupMenuBuilder(natTable, e4Menu)
                         .withHideColumnMenuItem()
                         .withShowAllColumnsMenuItem()
+                        .withInspectLabelsMenuItem()
                         .build();
 
                 // register the UI binding for header, corner and body region
@@ -338,6 +326,36 @@ public class BulkEditorE4Composite extends Composite {
 
         //add default configuration because autoconfigure is set to false in constructor
         natTable.addConfiguration(new DefaultNatTableStyleConfiguration());
+
+        //show boolean values as check boxes
+        natTable.addConfiguration(new AbstractRegistryConfiguration() {
+            @Override
+            public void configureRegistry(IConfigRegistry configRegistry) {
+                configRegistry.registerConfigAttribute(
+                        CellConfigAttributes.CELL_PAINTER,
+                        new CheckBoxPainter(),
+                        DisplayMode.NORMAL,
+                        BulkEditorConfigLabelAccumulatorHeader.BOOLEAN_COLUMN);
+
+                configRegistry.registerConfigAttribute(
+                        CellConfigAttributes.DISPLAY_CONVERTER,
+                        new DefaultBooleanDisplayConverter(),
+                        DisplayMode.NORMAL,
+                        BulkEditorConfigLabelAccumulatorHeader.BOOLEAN_COLUMN);
+            }
+        });
+
+        natTable.addConfiguration(new AbstractRegistryConfiguration() {
+            @Override
+            public void configureRegistry(IConfigRegistry configRegistry) {
+                configRegistry.registerConfigAttribute(
+                        CellConfigAttributes.CELL_PAINTER,
+                        new ImagePainter(ImageResources.getImage(ImageResources.LOCK_ICON)),
+                        DisplayMode.NORMAL,
+                        BulkEditorConfigLabelAccumulatorHeader.CACHE_COLUMN);
+            }
+        });
+
         natTable.configure();
        }
 
index a1efe169096090effa1d5186e1704ed2175c1116..03f386d084c1c72fe8afb88aa1e61ed366f56ddf 100644 (file)
@@ -159,6 +159,13 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase> extends CdmEnti
         return false;
     }
 
+    public boolean isCacheProperty(String property) {
+        if(property.equals(PROPERTY_PROTECTED_TITLECACHE)){
+            return true;
+        }
+        return false;
+    }
+
        public Comparator<T> getTitleComparator(){
            return new TitleCacheComparator();
        }
index 5e31420e16bd706b61f809b720f45cfd80f9c47a..616a25d89e08d51e6c941758dc3d1355e9a8eea4 100644 (file)
@@ -107,6 +107,15 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonName> {
            return super.isBooleanProperty(property);
        }
 
+    @Override
+    public boolean isCacheProperty(String property) {
+        if(property.equals(PROPERTY_PROTECT_NAME_CACHE)
+                || property.equals(PROPERTY_PROTECT_AUTHORSHIP_CACHE)){
+            return true;
+        }
+        return super.isCacheProperty(property);
+    }
+
     @Override
     public String getName() {
                return BulkEditorInputType.NAME.label;
index d607b16cf589f6b058075d223b2094ad824e68de..26a5a6a2f3813fcf414c3d3fbd4ec5c1cdc56285 100644 (file)
@@ -84,6 +84,14 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
         return super.isBooleanProperty(property);
     }
 
+    @Override
+    public boolean isCacheProperty(String property) {
+        if(property.equals(PROPERTY_PROTECT_NOMENCLATURAL_CACHE)){
+            return true;
+        }
+        return super.isBooleanProperty(property);
+    }
+
     @Override
     public String getName() {
                return BulkEditorInputType.REFERENCE.label;