*/
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;
*/
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;
}
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)){
--- /dev/null
+/**
+* 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);
+ }
+ }
+}
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;
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;
/**
*
selectionProvider.addSelectionChangedListener(selectionChangedListener);
bottomComposite.layout();
+
}
private void createTable(){
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
columnPropertyAccessor,
configRegistry,
columnHeaderDataLayer));
+ columnHeaderDataLayer.setConfigLabelAccumulator(
+ new BulkEditorConfigLabelAccumulatorHeader(colHeaderDataProvider, bulkEditor.getEditorInput()));
//row
DataLayer rowHeaderDataLayer = new DataLayer(rowHeaderDataProvider);
RowHeaderLayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer,
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>() {
}
}));
- 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);
}
}
});
- //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
new PopupMenuBuilder(natTable, e4Menu)
.withHideColumnMenuItem()
.withShowAllColumnsMenuItem()
+ .withInspectLabelsMenuItem()
.build();
// register the UI binding for header, corner and body region
//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();
}