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;
import org.eclipse.nebula.widgets.nattable.layer.cell.IConfigLabelAccumulator;
*
*/
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,
- AbstractBulkEditorInput input) {
+ DefaultColumnHeaderDataProvider colHeaderDataProvider, AbstractBulkEditorInput input) {
super();
this.dataProvider = dataProvider;
+ this.colHeaderDataProvider = colHeaderDataProvider;
this.input = input;
this.natTable = natTable;
}
if(rowPosition<0){
return;
}
+ if(input.isBooleanProperty(colHeaderDataProvider.getColumnHeaderLabel(columnPosition))){
+ configLabels.addLabel(BOOLEAN_COLUMN);
+ }
CdmBase rowObject = dataProvider.getRowObject(rowPosition);
if(input.getMergeCandidates().contains(rowObject)){
configLabels.addLabel(BulkEditorE4Composite.LABEL_CANDIDATE);
import org.eclipse.nebula.widgets.nattable.command.VisualRefreshCommandHandler;
import org.eclipse.nebula.widgets.nattable.config.AbstractRegistryConfiguration;
import org.eclipse.nebula.widgets.nattable.config.AbstractUiBindingConfiguration;
+import org.eclipse.nebula.widgets.nattable.config.CellConfigAttributes;
import org.eclipse.nebula.widgets.nattable.config.ConfigRegistry;
import org.eclipse.nebula.widgets.nattable.config.DefaultNatTableStyleConfiguration;
import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
import org.eclipse.nebula.widgets.nattable.config.IEditableRule;
import org.eclipse.nebula.widgets.nattable.data.IRowIdAccessor;
import org.eclipse.nebula.widgets.nattable.data.ListDataProvider;
+import org.eclipse.nebula.widgets.nattable.data.convert.DefaultBooleanDisplayConverter;
import org.eclipse.nebula.widgets.nattable.edit.EditConfigAttributes;
import org.eclipse.nebula.widgets.nattable.edit.action.MouseEditAction;
import org.eclipse.nebula.widgets.nattable.edit.config.DefaultEditConfiguration;
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.selection.RowSelectionModel;
import org.eclipse.nebula.widgets.nattable.selection.RowSelectionProvider;
import org.eclipse.nebula.widgets.nattable.sort.SortHeaderLayer;
ConfigRegistry configRegistry = new ConfigRegistry();
//property map
Map<String, String> propertyToLabels = new HashMap<>();
- for(String columnLabel:columnList){
- propertyToLabels.put(columnLabel, columnLabel);
- }
+ columnList.forEach(columnLabel->propertyToLabels.put(columnLabel, columnLabel));
+
String[] propertyNames = columnList.toArray(columnList.toArray(new String[columnList.size()]));
//sorted list
SortedList<CdmBase> sortedList = new SortedList<>(bulkEditor.getEditorInput().getModel(), bulkEditor.getEditorInput().getTitleComparator());
dataLayer.setColumnPercentageSizing(0, true);
dataLayer.setColumnWidthPercentageByPosition(0, 45);
for(int i=1;i<columnList.size();i++){
- dataLayer.setColumnWidthByPosition(i, 100);
+// if(bulkEditor.getEditorInput().isBooleanProperty(columnList.get(i))){
+// dataLayer.setColumnWidthByPosition(i, 20);
+// }
+// else{
+ dataLayer.setColumnWidthByPosition(i, 100);
+// }
}
//column
}
}));
- //add label to deduplication rows
- dataLayer.setConfigLabelAccumulator(new BulkEditorConfigLabelAccumulator(natTable, bodyDataProvider, bulkEditor.getEditorInput()));
+ dataLayer.setConfigLabelAccumulator(new BulkEditorConfigLabelAccumulator(natTable, bodyDataProvider,
+ colHeaderDataProvider,
+ bulkEditor.getEditorInput()));
//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