]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/table/EditingSupportConfiguration.java
Add CSV table view for copy/pasting consumer information before creation
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / table / EditingSupportConfiguration.java
diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/table/EditingSupportConfiguration.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/table/EditingSupportConfiguration.java
new file mode 100644 (file)
index 0000000..a798bc6
--- /dev/null
@@ -0,0 +1,32 @@
+package org.simantics.district.network.ui.table;
+
+import org.eclipse.nebula.widgets.nattable.config.AbstractRegistryConfiguration;
+import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
+import org.eclipse.nebula.widgets.nattable.config.IEditableRule;
+import org.eclipse.nebula.widgets.nattable.edit.EditConfigAttributes;
+import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
+
+public class EditingSupportConfiguration extends AbstractRegistryConfiguration {
+
+    private TableDataProvider bodyDataProvider;
+
+    public EditingSupportConfiguration(TableDataProvider bodyDataProvider) {
+        this.bodyDataProvider = bodyDataProvider;
+    }
+
+    @Override
+    public void configureRegistry(IConfigRegistry configRegistry) {
+        configRegistry.registerConfigAttribute(EditConfigAttributes.CELL_EDITABLE_RULE, new IEditableRule() {
+            @Override
+            public boolean isEditable(ILayerCell cell, IConfigRegistry configRegistry) {
+                return bodyDataProvider.isEditable(cell.getColumnIndex(), cell.getRowIndex());
+            }
+
+            @Override
+            public boolean isEditable(int columnIndex, int rowIndex) {
+                return bodyDataProvider.isEditable(columnIndex, rowIndex);
+            }
+        });
+    }
+
+}