diff --git a/org.eclipse.nebula.widgets.nattable.core.test/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.core.test/META-INF/MANIFEST.MF
index 36c07ef1d..6ac44a11e 100644
--- a/org.eclipse.nebula.widgets.nattable.core.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.core.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable Core Tests
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.core.tests
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Fragment-Host: org.eclipse.nebula.widgets.nattable.core
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.eclipse.core.commands.common,
diff --git a/org.eclipse.nebula.widgets.nattable.core/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.core/META-INF/MANIFEST.MF
index d1f210593..89209ebc6 100644
--- a/org.eclipse.nebula.widgets.nattable.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.core/META-INF/MANIFEST.MF
@@ -2,185 +2,185 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable Core
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.core
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Eclipse-ExtensibleAPI: true
-Export-Package: org.eclipse.nebula.widgets.nattable;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.blink;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.blink.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.blink.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.columnCategories;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.columnCategories.gui;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.columnChooser;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.columnChooser.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.columnChooser.gui;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.columnRename;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.columnRename.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.conflation;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.coordinate;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.copy;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.copy.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.copy.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.copy.serializing;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.data;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.data.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.data.convert;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.data.validate;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.datachange;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.datachange.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.datachange.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.datachange.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.edit;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.edit.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.edit.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.edit.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.edit.editor;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.edit.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.edit.gui;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.export;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.export.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.export.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.export.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.export.csv;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.export.excel;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.export.image;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.export.image.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.fillhandle;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.fillhandle.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.fillhandle.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.fillhandle.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.fillhandle.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.filterrow;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.filterrow.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.filterrow.combobox;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.filterrow.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.filterrow.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.filterrow.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.formula;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.formula.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.formula.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.formula.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.formula.function;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.freeze;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.freeze.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.freeze.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.freeze.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.freeze.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.grid;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.grid.cell;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.grid.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.grid.data;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.grid.layer;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.grid.layer.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.grid.layer.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.gui;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.model;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.painter;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.performance;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.performance.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.performance.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.performance.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.performance.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.performance.gui;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.group.performance.painter;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hideshow;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hideshow.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hideshow.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hideshow.indicator;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hierarchical;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hierarchical.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hierarchical.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hierarchical.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hover;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hover.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hover.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.hover.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.layer;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.layer.cell;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.layer.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.layer.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.layer.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.layer.stack;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.painter;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.painter.cell;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.painter.cell.decorator;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.painter.layer;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.persistence;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.persistence.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.persistence.gui;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.print;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.print.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.print.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.print.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.reorder;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.reorder.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.reorder.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.reorder.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.reorder.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.resize;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.resize.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.resize.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.resize.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.resize.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.resize.mode;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.search;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.search.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.search.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.search.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.search.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.search.gui;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.search.strategy;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.selection;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.selection.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.selection.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.selection.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.selection.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.selection.preserve;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.serializing;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.sort;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.sort.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.sort.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.sort.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.sort.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.sort.painter;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.style;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.style.editor;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.style.editor.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.style.theme;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.summaryrow;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.summaryrow.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tickupdate;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tickupdate.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tickupdate.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tickupdate.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tooltip;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tree;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tree.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tree.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tree.config;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.tree.painter;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui.binding;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui.matcher;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui.menu;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui.mode;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui.rename;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui.scaling;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.ui.util;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.util;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.viewport;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.viewport.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.viewport.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.viewport.event;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.widget;version="2.3.1"
+Export-Package: org.eclipse.nebula.widgets.nattable;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.blink;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.blink.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.blink.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.columnCategories;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.columnCategories.gui;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.columnChooser;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.columnChooser.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.columnChooser.gui;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.columnRename;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.columnRename.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.conflation;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.coordinate;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.copy;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.copy.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.copy.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.copy.serializing;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.data;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.data.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.data.convert;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.data.validate;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.datachange;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.datachange.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.datachange.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.datachange.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.edit;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.edit.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.edit.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.edit.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.edit.editor;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.edit.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.edit.gui;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.export;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.export.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.export.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.export.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.export.csv;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.export.excel;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.export.image;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.export.image.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.fillhandle;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.fillhandle.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.fillhandle.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.fillhandle.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.fillhandle.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.filterrow;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.filterrow.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.filterrow.combobox;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.filterrow.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.filterrow.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.filterrow.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.formula;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.formula.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.formula.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.formula.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.formula.function;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.freeze;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.freeze.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.freeze.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.freeze.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.freeze.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.grid;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.grid.cell;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.grid.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.grid.data;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.grid.layer;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.grid.layer.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.grid.layer.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.gui;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.model;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.painter;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.performance;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.performance.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.performance.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.performance.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.performance.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.performance.gui;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.group.performance.painter;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hideshow;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hideshow.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hideshow.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hideshow.indicator;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hierarchical;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hierarchical.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hierarchical.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hierarchical.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hover;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hover.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hover.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.hover.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.layer;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.layer.cell;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.layer.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.layer.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.layer.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.layer.stack;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.painter;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.painter.cell;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.painter.cell.decorator;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.painter.layer;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.persistence;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.persistence.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.persistence.gui;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.print;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.print.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.print.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.print.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.reorder;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.reorder.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.reorder.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.reorder.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.reorder.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.resize;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.resize.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.resize.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.resize.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.resize.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.resize.mode;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.search;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.search.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.search.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.search.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.search.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.search.gui;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.search.strategy;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.selection;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.selection.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.selection.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.selection.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.selection.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.selection.preserve;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.serializing;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.sort;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.sort.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.sort.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.sort.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.sort.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.sort.painter;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.style;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.style.editor;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.style.editor.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.style.theme;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.summaryrow;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.summaryrow.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tickupdate;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tickupdate.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tickupdate.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tickupdate.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tooltip;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tree;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tree.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tree.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tree.config;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.tree.painter;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui.binding;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui.matcher;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui.menu;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui.mode;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui.rename;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui.scaling;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.ui.util;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.util;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.viewport;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.viewport.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.viewport.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.viewport.event;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.widget;version="2.4.0"
Import-Package: org.eclipse.collections.api;version="10.1.0",
org.eclipse.collections.api.block;version="10.1.0",
org.eclipse.collections.api.block.function;version="10.1.0",
diff --git a/org.eclipse.nebula.widgets.nattable.core/pom.xml b/org.eclipse.nebula.widgets.nattable.core/pom.xml
index ef9815851..41438c6ac 100644
--- a/org.eclipse.nebula.widgets.nattable.core/pom.xml
+++ b/org.eclipse.nebula.widgets.nattable.core/pom.xml
@@ -5,7 +5,7 @@
org.eclipse.nebula.widgets.nattable
parent
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
../pom.xml
@@ -13,7 +13,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.core
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
eclipse-plugin
Nebula NatTable Core
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/fillhandle/config/FillHandleConfiguration.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/fillhandle/config/FillHandleConfiguration.java
index b5001faa7..7aecada39 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/fillhandle/config/FillHandleConfiguration.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/fillhandle/config/FillHandleConfiguration.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2015, 2020 CEA LIST.
+ * Copyright (c) 2015, 2024 CEA LIST.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -26,7 +26,6 @@
import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
import org.eclipse.nebula.widgets.nattable.ui.action.NoOpMouseAction;
import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
-import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
/**
* Default configuration for fill handle functionality. Registers the
@@ -82,9 +81,7 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
// Show fill handle cursor
uiBindingRegistry.registerFirstMouseMoveBinding(
matcher,
- new FillHandleCursorAction());
- uiBindingRegistry.registerMouseMoveBinding(
- new MouseEventMatcher(),
+ new FillHandleCursorAction(),
new ClearCursorAction());
// Mouse drag
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hideshow/indicator/HideIndicatorMenuConfiguration.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hideshow/indicator/HideIndicatorMenuConfiguration.java
index f91b43b04..8ba6a3a5d 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hideshow/indicator/HideIndicatorMenuConfiguration.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hideshow/indicator/HideIndicatorMenuConfiguration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018, 2020 Dirk Fauth and others.
+ * Copyright (c) 2018, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -127,7 +127,8 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
GridRegion.COLUMN_HEADER,
0,
this.columnHeaderLayer),
- new ColumnResizeCursorAction());
+ new ColumnResizeCursorAction(),
+ new ClearCursorAction());
uiBindingRegistry.registerFirstMouseDownBinding(
new ColumnHideIndicatorEventMatcher(
@@ -146,7 +147,8 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
GridRegion.ROW_HEADER,
0,
this.rowHeaderLayer),
- new RowResizeCursorAction());
+ new RowResizeCursorAction(),
+ new ClearCursorAction());
uiBindingRegistry.registerFirstMouseDownBinding(
new RowHideIndicatorEventMatcher(
@@ -156,13 +158,6 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
this.rowHeaderLayer),
new PopupMenuAction(this.rowHideIndicatorMenu));
}
-
- if (this.columnHideIndicatorMenu != null
- || this.rowHideIndicatorMenu != null) {
- uiBindingRegistry.registerMouseMoveBinding(
- new MouseEventMatcher(),
- new ClearCursorAction());
- }
}
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hideshow/indicator/HierarchicalHideIndicatorMenuConfiguration.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hideshow/indicator/HierarchicalHideIndicatorMenuConfiguration.java
index 2d2cac329..8fec11976 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hideshow/indicator/HierarchicalHideIndicatorMenuConfiguration.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hideshow/indicator/HierarchicalHideIndicatorMenuConfiguration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018, 2020 Dirk Fauth and others.
+ * Copyright (c) 2018, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -114,7 +114,8 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
GridRegion.COLUMN_HEADER,
0,
this.columnHeaderLayer),
- new ColumnResizeCursorAction());
+ new ColumnResizeCursorAction(),
+ new ClearCursorAction());
uiBindingRegistry.registerFirstMouseDownBinding(
new ColumnHideIndicatorEventMatcher(
@@ -131,7 +132,8 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
new HierarchicalRowHideIndicatorEventMatcher(
SWT.NONE,
0),
- new RowResizeCursorAction());
+ new RowResizeCursorAction(),
+ new ClearCursorAction());
uiBindingRegistry.registerFirstMouseDownBinding(
new HierarchicalRowHideIndicatorEventMatcher(
@@ -139,13 +141,6 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
MouseEventMatcher.RIGHT_BUTTON),
new PopupMenuAction(this.rowHideIndicatorMenu));
}
-
- if (this.columnHideIndicatorMenu != null
- || this.rowHideIndicatorMenu != null) {
- uiBindingRegistry.registerMouseMoveBinding(
- new MouseEventMatcher(),
- new ClearCursorAction());
- }
}
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/ClearHoverStylingAction.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/ClearHoverStylingAction.java
index 68d73a29a..2474bb679 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/ClearHoverStylingAction.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/ClearHoverStylingAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2020 Dirk Fauth and others.
+ * Copyright (c) 2013, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -15,7 +15,7 @@
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.hover.HoverLayer;
import org.eclipse.nebula.widgets.nattable.hover.command.ClearHoverStylingCommand;
-import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
+import org.eclipse.nebula.widgets.nattable.ui.action.IMouseAction;
import org.eclipse.swt.events.MouseEvent;
/**
@@ -24,12 +24,10 @@
*
* Will also clear any set cursor by default.
*
- * @author Dirk Fauth
- *
* @see HoverLayer
* @see ClearHoverStylingCommand
*/
-public class ClearHoverStylingAction extends ClearCursorAction {
+public class ClearHoverStylingAction implements IMouseAction {
/**
* The HoverLayer whose hover styling should not be cleared.
@@ -57,8 +55,6 @@ public ClearHoverStylingAction(HoverLayer hoverLayer) {
@Override
public void run(NatTable natTable, MouseEvent event) {
- super.run(natTable, event);
-
natTable.doCommand(new ClearHoverStylingCommand(this.hoverLayer));
}
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/HoverStylingAction.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/HoverStylingAction.java
index ec58d769a..f4ef4cfe4 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/HoverStylingAction.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/HoverStylingAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2020 Dirk Fauth and others.
+ * Copyright (c) 2013, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -14,9 +14,8 @@
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.hover.HoverLayer;
-import org.eclipse.nebula.widgets.nattable.hover.command.ClearHoverStylingCommand;
import org.eclipse.nebula.widgets.nattable.hover.command.HoverStylingCommand;
-import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
+import org.eclipse.nebula.widgets.nattable.ui.action.IMouseAction;
import org.eclipse.swt.events.MouseEvent;
/**
@@ -25,12 +24,10 @@
*
* Will also clear any set cursor by default.
*
- * @author Dirk Fauth
- *
* @see HoverLayer
* @see HoverStylingCommand
*/
-public class HoverStylingAction extends ClearCursorAction {
+public class HoverStylingAction implements IMouseAction {
/**
* The HoverLayer that is responsible for handling the hover styling
@@ -51,13 +48,6 @@ public HoverStylingAction(HoverLayer hoverLayer) {
@Override
public void run(NatTable natTable, MouseEvent event) {
- // clear the cursor on hovering
- super.run(natTable, event);
-
- // ensure to clear the hover styling in other possible HoverLayer in the
- // composition
- natTable.doCommand(new ClearHoverStylingCommand(this.hoverLayer));
-
int natColumnPos = natTable.getColumnPositionByX(event.x);
int natRowPos = natTable.getRowPositionByY(event.y);
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/HoverStylingByIndexAction.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/HoverStylingByIndexAction.java
index d8c20150c..5daa4ac8f 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/HoverStylingByIndexAction.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/action/HoverStylingByIndexAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2022 Dirk Fauth and others.
+ * Copyright (c) 2022, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -14,14 +14,13 @@
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.hover.HoverLayer;
-import org.eclipse.nebula.widgets.nattable.hover.command.ClearHoverStylingCommand;
import org.eclipse.nebula.widgets.nattable.hover.command.HoverStylingByIndexCommand;
-import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
+import org.eclipse.nebula.widgets.nattable.ui.action.IMouseAction;
import org.eclipse.swt.events.MouseEvent;
/**
- * Action that will execute the HoverStylingByIndexCommand which applies hover styling
- * in a NatTable.
+ * Action that will execute the HoverStylingByIndexCommand which applies hover
+ * styling in a NatTable.
*
* Will also clear any set cursor by default.
*
@@ -30,7 +29,7 @@
*
* @since 2.1
*/
-public class HoverStylingByIndexAction extends ClearCursorAction {
+public class HoverStylingByIndexAction implements IMouseAction {
/**
* The HoverLayer that is responsible for handling the hover styling
@@ -51,13 +50,6 @@ public HoverStylingByIndexAction(HoverLayer hoverLayer) {
@Override
public void run(NatTable natTable, MouseEvent event) {
- // clear the cursor on hovering
- super.run(natTable, event);
-
- // ensure to clear the hover styling in other possible HoverLayer in the
- // composition
- natTable.doCommand(new ClearHoverStylingCommand(this.hoverLayer));
-
int natColumnPos = natTable.getColumnPositionByX(event.x);
int natRowPos = natTable.getRowPositionByY(event.y);
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/BodyHoverStylingBindings.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/BodyHoverStylingBindings.java
index 2a98d594e..f6ab704d9 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/BodyHoverStylingBindings.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/BodyHoverStylingBindings.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2020 Dirk Fauth and others.
+ * Copyright (c) 2013, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -46,31 +46,8 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
uiBindingRegistry.registerFirstMouseMoveBinding(
(natTable, event, regionLabels) -> BodyHoverStylingBindings.this.layer.getClientAreaProvider().getClientArea()
.contains(event.x, event.y),
- new HoverStylingAction(this.layer));
-
- // clear any hover styling if the mouse is moved out of the region area
- // uiBindingRegistry.registerMouseMoveBinding(
- // new IMouseEventMatcher() {
- // @Override
- // public boolean matches(NatTable natTable, MouseEvent event,
- // LabelStack regionLabels) {
- // return
- // (!layer.getClientAreaProvider().getClientArea().contains(event.x,
- // event.y));
- // }
- //
- // }, new ClearHoverStylingAction());
-
- // clear any hover styling if the mouse is moved out of a NatTable
- // region
- uiBindingRegistry.registerMouseMoveBinding((natTable, event, regionLabels) -> (natTable != null && regionLabels == null), new ClearHoverStylingAction());
-
- // clear any hover styling if the mouse is moved out of the NatTable
- // area
- // always return true for the matcher because it is only asked in case
- // the mouse exits the NatTable client area, therefore further checks
- // are not necessary
- uiBindingRegistry.registerMouseExitBinding((natTable, event, regionLabels) -> true, new ClearHoverStylingAction());
+ new HoverStylingAction(this.layer),
+ new ClearHoverStylingAction());
}
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/ColumnHeaderResizeHoverBindings.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/ColumnHeaderResizeHoverBindings.java
index 31b3d1c2d..d1c1aa2f3 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/ColumnHeaderResizeHoverBindings.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/ColumnHeaderResizeHoverBindings.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2022 Original authors and others.
+ * Copyright (c) 2012, 2024 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -21,6 +21,7 @@
import org.eclipse.nebula.widgets.nattable.resize.action.ColumnResizeCursorAction;
import org.eclipse.nebula.widgets.nattable.resize.event.ColumnResizeEventMatcher;
import org.eclipse.nebula.widgets.nattable.resize.mode.ColumnResizeDragMode;
+import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
import org.eclipse.nebula.widgets.nattable.ui.action.NoOpMouseAction;
import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
@@ -46,25 +47,15 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
// Mouse move - Show resize cursor
uiBindingRegistry.registerFirstMouseMoveBinding(
new ColumnResizeEventMatcher(SWT.NONE, GridRegion.COLUMN_HEADER, 0),
- new ColumnResizeCursorAction());
+ new ColumnResizeCursorAction(),
+ new ClearCursorAction());
// apply a hover styling on moving the mouse over a NatTable and clear
// the cursor
uiBindingRegistry.registerMouseMoveBinding(
new MouseEventMatcher(GridRegion.COLUMN_HEADER),
- new HoverStylingByIndexAction(this.layer));
-
- // clear any hover styling if the mouse is moved out of a NatTable
- // region
- uiBindingRegistry.registerMouseMoveBinding((natTable, event, regionLabels) -> ((natTable != null && regionLabels == null) || regionLabels != null
- && regionLabels.hasLabel(GridRegion.CORNER)), new ClearHoverStylingAction());
-
- // clear any hover styling if the mouse is moved out of the NatTable
- // area
- // always return true for the matcher because it is only asked in case
- // the mouse exits the NatTable client area, therefore further checks
- // are not necessary
- uiBindingRegistry.registerMouseExitBinding((natTable, event, regionLabels) -> true, new ClearHoverStylingAction());
+ new HoverStylingByIndexAction(this.layer),
+ new ClearHoverStylingAction());
// Column resize
uiBindingRegistry.registerFirstMouseDragMode(
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/RowHeaderResizeHoverBindings.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/RowHeaderResizeHoverBindings.java
index db2ad2975..4b563120b 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/RowHeaderResizeHoverBindings.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/RowHeaderResizeHoverBindings.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2022 Original authors and others.
+ * Copyright (c) 2012, 2024 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -21,6 +21,7 @@
import org.eclipse.nebula.widgets.nattable.resize.action.RowResizeCursorAction;
import org.eclipse.nebula.widgets.nattable.resize.event.RowResizeEventMatcher;
import org.eclipse.nebula.widgets.nattable.resize.mode.RowResizeDragMode;
+import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
import org.eclipse.nebula.widgets.nattable.ui.action.NoOpMouseAction;
import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
@@ -46,36 +47,15 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
// Mouse move - Show resize cursor
uiBindingRegistry.registerFirstMouseMoveBinding(
new RowResizeEventMatcher(SWT.NONE, 0),
- new RowResizeCursorAction());
+ new RowResizeCursorAction(),
+ new ClearCursorAction());
// apply a hover styling on moving the mouse over a NatTable and clear
// the cursor
uiBindingRegistry.registerMouseMoveBinding(
new MouseEventMatcher(GridRegion.ROW_HEADER),
- new HoverStylingByIndexAction(this.layer));
-
- // clear any hover styling if the mouse is moved out of the region area
- // uiBindingRegistry.registerMouseMoveBinding(
- // new IMouseEventMatcher() {
- // @Override
- // public boolean matches(NatTable natTable, MouseEvent event,
- // LabelStack regionLabels) {
- // return (regionLabels != null &&
- // !regionLabels.hasLabel(GridRegion.ROW_HEADER));
- // }
- //
- // }, new ClearHoverStylingAction(layer));
-
- // clear any hover styling if the mouse is moved out of a NatTable
- // region
- uiBindingRegistry.registerMouseMoveBinding((natTable, event, regionLabels) -> (natTable != null && regionLabels == null), new ClearHoverStylingAction());
-
- // clear any hover styling if the mouse is moved out of the NatTable
- // area
- // always return true for the matcher because it is only asked in case
- // the mouse exits the NatTable client area, therefore further checks
- // are not necessary
- uiBindingRegistry.registerMouseExitBinding((natTable, event, regionLabels) -> true, new ClearHoverStylingAction());
+ new HoverStylingByIndexAction(this.layer),
+ new ClearHoverStylingAction());
// Row resize
uiBindingRegistry.registerFirstMouseDragMode(
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/SimpleHoverStylingBindings.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/SimpleHoverStylingBindings.java
index 92264b2d4..974ec1510 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/SimpleHoverStylingBindings.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/hover/config/SimpleHoverStylingBindings.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2020 Dirk Fauth and others.
+ * Copyright (c) 2013, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -55,26 +55,9 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
int height = SimpleHoverStylingBindings.this.layer.getPreferredHeight();
return ((event.x > 0 && event.x < width) && (event.y > 0 && event.y < height));
- }, new HoverStylingAction(this.layer));
-
- // clear any hover styling if the mouse is moved out of the region area
- uiBindingRegistry.registerMouseMoveBinding((natTable, event, regionLabels) -> {
- int width = SimpleHoverStylingBindings.this.layer.getPreferredWidth();
- int height = SimpleHoverStylingBindings.this.layer.getPreferredHeight();
-
- return ((event.x < 0 || event.x > width) || (event.y < 0 || event.y > height));
- }, new ClearHoverStylingAction());
-
- // clear any hover styling if the mouse is moved out of a NatTable
- // region
- uiBindingRegistry.registerMouseMoveBinding((natTable, event, regionLabels) -> (natTable != null && regionLabels == null), new ClearHoverStylingAction());
-
- // clear any hover styling if the mouse is moved out of the NatTable
- // area
- // always return true for the matcher because it is only asked in case
- // the mouse exits the NatTable client area, therefore further checks
- // are not necessary
- uiBindingRegistry.registerMouseExitBinding((natTable, event, regionLabels) -> true, new ClearHoverStylingAction());
+ },
+ new HoverStylingAction(this.layer),
+ new ClearHoverStylingAction());
}
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/resize/config/DefaultColumnResizeBindings.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/resize/config/DefaultColumnResizeBindings.java
index b5505927a..6eafb50a9 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/resize/config/DefaultColumnResizeBindings.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/resize/config/DefaultColumnResizeBindings.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2020 Original authors and others.
+ * Copyright (c) 2012, 2024 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -21,7 +21,6 @@
import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
import org.eclipse.nebula.widgets.nattable.ui.action.NoOpMouseAction;
import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
-import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
import org.eclipse.swt.SWT;
public class DefaultColumnResizeBindings extends AbstractUiBindingConfiguration {
@@ -31,9 +30,7 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
// Mouse move - Show resize cursor
uiBindingRegistry.registerFirstMouseMoveBinding(
new ColumnResizeEventMatcher(SWT.NONE, GridRegion.COLUMN_HEADER, 0),
- new ColumnResizeCursorAction());
- uiBindingRegistry.registerMouseMoveBinding(
- new MouseEventMatcher(),
+ new ColumnResizeCursorAction(),
new ClearCursorAction());
// Column resize
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/resize/config/DefaultRowResizeBindings.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/resize/config/DefaultRowResizeBindings.java
index e47b27054..133d62541 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/resize/config/DefaultRowResizeBindings.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/resize/config/DefaultRowResizeBindings.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2020 Original authors and others.
+ * Copyright (c) 2012, 2024 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -20,7 +20,6 @@
import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
import org.eclipse.nebula.widgets.nattable.ui.action.NoOpMouseAction;
import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
-import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
import org.eclipse.swt.SWT;
public class DefaultRowResizeBindings extends AbstractUiBindingConfiguration {
@@ -30,9 +29,7 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
// Mouse move - Show resize cursor
uiBindingRegistry.registerFirstMouseMoveBinding(
new RowResizeEventMatcher(SWT.NONE, 0),
- new RowResizeCursorAction());
- uiBindingRegistry.registerMouseMoveBinding(
- new MouseEventMatcher(),
+ new RowResizeCursorAction(),
new ClearCursorAction());
// Row resize
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/action/MouseMoveAction.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/action/MouseMoveAction.java
new file mode 100644
index 000000000..c26c874fc
--- /dev/null
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/action/MouseMoveAction.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Dirk Fauth and others.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Dirk Fauth - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.nebula.widgets.nattable.ui.action;
+
+import org.eclipse.nebula.widgets.nattable.NatTable;
+import org.eclipse.nebula.widgets.nattable.ui.matcher.IMouseEventMatcher;
+import org.eclipse.swt.events.MouseEvent;
+
+/**
+ * {@link IMouseAction} that is used to configure mouse move bindings. Contains
+ * a {@link IMouseAction} that is executed on entering the
+ * {@link IMouseEventMatcher} and a {@link IMouseAction} that is executed once
+ * the {@link IMouseEventMatcher} is exited.
+ */
+public class MouseMoveAction implements IMouseAction {
+
+ public final IMouseEventMatcher mouseEventMatcher;
+ public final IMouseAction entryAction;
+ public final IMouseAction exitAction;
+ public final boolean reexecuteEntryAction;
+
+ /**
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} to determine the enter and exit
+ * condition.
+ * @param entryAction
+ * The {@link IMouseAction} that should be executed on enter.
+ * @param exitAction
+ * The {@link IMouseAction} that should be executed on exit.
+ * @param reexecuteEntryAction
+ * true
if the entry action should be executed
+ * everytime as long as the {@link IMouseEventMatcher} matches,
+ * false
if the entry action should only be executed
+ * on enter.
+ */
+ public MouseMoveAction(IMouseEventMatcher mouseEventMatcher, IMouseAction entryAction, IMouseAction exitAction, boolean reexecuteEntryAction) {
+ this.mouseEventMatcher = mouseEventMatcher;
+ this.reexecuteEntryAction = reexecuteEntryAction;
+ this.entryAction = entryAction;
+ this.exitAction = exitAction;
+ }
+
+ @Override
+ public void run(NatTable natTable, MouseEvent event) {
+ this.entryAction.run(natTable, event);
+ }
+
+ public void runExit(NatTable natTable, MouseEvent event) {
+ this.exitAction.run(natTable, event);
+ }
+
+}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/binding/UiBindingRegistry.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/binding/UiBindingRegistry.java
index bdb763149..898901359 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/binding/UiBindingRegistry.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/binding/UiBindingRegistry.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2020 Original authors and others.
+ * Copyright (c) 2012, 2024 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -18,13 +18,20 @@
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.layer.LabelStack;
+import org.eclipse.nebula.widgets.nattable.ui.action.DragModeEventHandler;
import org.eclipse.nebula.widgets.nattable.ui.action.IDragMode;
import org.eclipse.nebula.widgets.nattable.ui.action.IKeyAction;
import org.eclipse.nebula.widgets.nattable.ui.action.IMouseAction;
+import org.eclipse.nebula.widgets.nattable.ui.action.MouseMoveAction;
import org.eclipse.nebula.widgets.nattable.ui.matcher.IKeyEventMatcher;
import org.eclipse.nebula.widgets.nattable.ui.matcher.IMouseEventMatcher;
+import org.eclipse.nebula.widgets.nattable.ui.mode.MouseModeEventHandler;
import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.MouseMoveListener;
+import org.eclipse.swt.events.MouseTrackListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -136,14 +143,51 @@ private IMouseAction getMouseEventAction(MouseEventTypeEnum mouseEventType, Mous
// Key
+ /**
+ * Register a {@link IKeyAction} that should be executed on
+ * {@link KeyListener#keyPressed(KeyEvent)} if the given
+ * {@link IKeyEventMatcher} matches.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param keyMatcher
+ * The {@link IKeyEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IKeyAction} that should be executed on
+ * {@link KeyListener#keyPressed(KeyEvent)} if the
+ * {@link IKeyEventMatcher} matches.
+ */
public void registerFirstKeyBinding(IKeyEventMatcher keyMatcher, IKeyAction action) {
this.keyBindings.addFirst(new KeyBinding(keyMatcher, action));
}
+ /**
+ * Register a {@link IKeyAction} that should be executed on
+ * {@link KeyListener#keyPressed(KeyEvent)} if the given
+ * {@link IKeyEventMatcher} matches.
+ *
+ * @param keyMatcher
+ * The {@link IKeyEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IKeyAction} that should be executed on
+ * {@link KeyListener#keyPressed(KeyEvent)} if the
+ * {@link IKeyEventMatcher} matches.
+ */
public void registerKeyBinding(IKeyEventMatcher keyMatcher, IKeyAction action) {
this.keyBindings.addLast(new KeyBinding(keyMatcher, action));
}
+ /**
+ * Removes the key binding for the given {@link IKeyEventMatcher}.
+ *
+ * @param keyMatcher
+ * The {@link IKeyEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterKeyBinding(IKeyEventMatcher keyMatcher) {
for (KeyBinding keyBinding : this.keyBindings) {
if (keyBinding.getKeyEventMatcher().equals(keyMatcher)) {
@@ -155,14 +199,63 @@ public void unregisterKeyBinding(IKeyEventMatcher keyMatcher) {
// Drag
+ /**
+ * Register a {@link IDragMode} that should be executed on a mouse drag
+ * operation if the given {@link IMouseEventMatcher} matches. A drag
+ * operation is a {@link MouseListener#mouseDown(MouseEvent)} followed by a
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} and finished with a
+ * {@link MouseListener#mouseUp(MouseEvent)}.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param dragMode
+ * The {@link IDragMode} that should be executed on a mouse drag
+ * operation if the {@link IMouseEventMatcher} matches.
+ *
+ * @see MouseModeEventHandler
+ * @see DragModeEventHandler
+ */
public void registerFirstMouseDragMode(IMouseEventMatcher mouseEventMatcher, IDragMode dragMode) {
this.dragBindings.addFirst(new DragBinding(mouseEventMatcher, dragMode));
}
+ /**
+ * Register a {@link IDragMode} that should be executed on a mouse drag
+ * operation if the given {@link IMouseEventMatcher} matches. A drag
+ * operation is a {@link MouseListener#mouseDown(MouseEvent)} followed by a
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} and finished with a
+ * {@link MouseListener#mouseUp(MouseEvent)}.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param dragMode
+ * The {@link IDragMode} that should be executed on a mouse drag
+ * operation if the {@link IMouseEventMatcher} matches.
+ *
+ * @see MouseModeEventHandler
+ * @see DragModeEventHandler
+ */
public void registerMouseDragMode(IMouseEventMatcher mouseEventMatcher, IDragMode dragMode) {
this.dragBindings.addLast(new DragBinding(mouseEventMatcher, dragMode));
}
+ /**
+ * Removes the mouse drag binding for the given {@link IMouseEventMatcher}.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterMouseDragMode(IMouseEventMatcher mouseEventMatcher) {
for (DragBinding dragBinding : this.dragBindings) {
if (dragBinding.getMouseEventMatcher().equals(mouseEventMatcher)) {
@@ -174,98 +267,507 @@ public void unregisterMouseDragMode(IMouseEventMatcher mouseEventMatcher) {
// Mouse move
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @deprecated Use
+ * {@link #registerFirstMouseMoveBinding(IMouseEventMatcher, IMouseAction, IMouseAction)}
+ * to directly configure enter/exit behavior on movement.
+ */
+ @Deprecated
public void registerFirstMouseMoveBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(true, MouseEventTypeEnum.MOUSE_MOVE, mouseEventMatcher, action);
}
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @deprecated Use
+ * {@link #registerFirstMouseMoveBinding(IMouseEventMatcher, IMouseAction, IMouseAction)}
+ * to directly configure enter/exit behavior on movement.
+ */
+ @Deprecated
public void registerMouseMoveBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(false, MouseEventTypeEnum.MOUSE_MOVE, mouseEventMatcher, action);
}
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches. Allows to configure the
+ * {@link IMouseAction} that should be executed if the
+ * {@link IMouseEventMatcher} matches the first time (enter) and the
+ * {@link IMouseAction} that should be executed if the
+ * {@link IMouseEventMatcher} does not match anymore (exit).
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param entryAction
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ * @param exitAction
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} does not match anymore.
+ *
+ * @since 2.4
+ */
+ public void registerFirstMouseMoveBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction entryAction, IMouseAction exitAction) {
+ registerFirstMouseMoveBinding(mouseEventMatcher, entryAction, exitAction, true);
+ }
+
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches. Allows to configure the
+ * {@link IMouseAction} that should be executed if the
+ * {@link IMouseEventMatcher} matches the first time (enter) and the
+ * {@link IMouseAction} that should be executed if the
+ * {@link IMouseEventMatcher} does not match anymore (exit).
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param entryAction
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ * @param exitAction
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} does not match anymore.
+ *
+ * @since 2.4
+ */
+ public void registerMouseMoveBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction entryAction, IMouseAction exitAction) {
+ registerMouseMoveBinding(mouseEventMatcher, entryAction, exitAction, true);
+ }
+
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches. Allows to configure the
+ * {@link IMouseAction} that should be executed if the
+ * {@link IMouseEventMatcher} matches the first time (enter) and the
+ * {@link IMouseAction} that should be executed if the
+ * {@link IMouseEventMatcher} does not match anymore (exit).
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param entryAction
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ * @param exitAction
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} does not match anymore.
+ * @param reexecuteEntryAction
+ * true
if the entry action should be executed
+ * everytime as long as the {@link IMouseEventMatcher} matches,
+ * false
if the entry action should only be executed
+ * on enter.
+ *
+ * @since 2.4
+ */
+ public void registerFirstMouseMoveBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction entryAction, IMouseAction exitAction, boolean reexecuteEntryAction) {
+ MouseMoveAction action = new MouseMoveAction(mouseEventMatcher, entryAction, exitAction, reexecuteEntryAction);
+ registerMouseBinding(true, MouseEventTypeEnum.MOUSE_MOVE, mouseEventMatcher, action);
+ }
+
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches. Allows to configure the
+ * {@link IMouseAction} that should be executed if the
+ * {@link IMouseEventMatcher} matches the first time (enter) and the
+ * {@link IMouseAction} that should be executed if the
+ * {@link IMouseEventMatcher} does not match anymore (exit).
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param entryAction
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ * @param exitAction
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseMoveListener#mouseMove(MouseEvent)} if the
+ * {@link IMouseEventMatcher} does not match anymore.
+ * @param reexecuteEntryAction
+ * true
if the entry action should be executed
+ * everytime as long as the {@link IMouseEventMatcher} matches,
+ * false
if the entry action should only be executed
+ * on enter.
+ *
+ * @since 2.4
+ */
+ public void registerMouseMoveBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction entryAction, IMouseAction exitAction, boolean reexecuteEntryAction) {
+ MouseMoveAction action = new MouseMoveAction(mouseEventMatcher, entryAction, exitAction, reexecuteEntryAction);
+ registerMouseBinding(false, MouseEventTypeEnum.MOUSE_MOVE, mouseEventMatcher, action);
+ }
+
+ /**
+ * Removes the mouse move binding for the given {@link IMouseEventMatcher}.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterMouseMoveBinding(IMouseEventMatcher mouseEventMatcher) {
unregisterMouseBinding(MouseEventTypeEnum.MOUSE_MOVE, mouseEventMatcher);
}
// Mouse down
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseListener#mouseDown(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseListener#mouseDown(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ */
public void registerFirstMouseDownBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(true, MouseEventTypeEnum.MOUSE_DOWN, mouseEventMatcher, action);
}
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseListener#mouseDown(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseListener#mouseDown(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ */
public void registerMouseDownBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(false, MouseEventTypeEnum.MOUSE_DOWN, mouseEventMatcher, action);
}
+ /**
+ * Removes the mouse down binding for the given {@link IMouseEventMatcher}.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterMouseDownBinding(IMouseEventMatcher mouseEventMatcher) {
unregisterMouseBinding(MouseEventTypeEnum.MOUSE_DOWN, mouseEventMatcher);
}
// Single click
+ /**
+ * Register a {@link IMouseAction} that should be executed on a single click
+ * if the given {@link IMouseEventMatcher} matches. A single click is a
+ * {@link MouseListener#mouseDown(MouseEvent)} followed by a
+ * {@link MouseListener#mouseUp(MouseEvent)} and no movement or a second
+ * click happens in the meanwhile.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on a single
+ * click if the {@link IMouseEventMatcher} matches.
+ *
+ * @see MouseModeEventHandler
+ */
public void registerFirstSingleClickBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(true, MouseEventTypeEnum.MOUSE_SINGLE_CLICK, mouseEventMatcher, action);
}
+ /**
+ * Register a {@link IMouseAction} that should be executed on a single click
+ * if the given {@link IMouseEventMatcher} matches. A single click is a
+ * {@link MouseListener#mouseDown(MouseEvent)} followed by a
+ * {@link MouseListener#mouseUp(MouseEvent)} and no movement or a second
+ * click happens in the meanwhile.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on a single
+ * click if the {@link IMouseEventMatcher} matches.
+ *
+ * @see MouseModeEventHandler
+ */
public void registerSingleClickBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(false, MouseEventTypeEnum.MOUSE_SINGLE_CLICK, mouseEventMatcher, action);
}
+ /**
+ * Removes the mouse single click binding for the given
+ * {@link IMouseEventMatcher}.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterSingleClickBinding(IMouseEventMatcher mouseEventMatcher) {
unregisterMouseBinding(MouseEventTypeEnum.MOUSE_SINGLE_CLICK, mouseEventMatcher);
}
// Double click
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseListener#mouseDoubleClick(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseListener#mouseDoubleClick(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @see MouseModeEventHandler
+ */
public void registerFirstDoubleClickBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(true, MouseEventTypeEnum.MOUSE_DOUBLE_CLICK, mouseEventMatcher, action);
}
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseListener#mouseDoubleClick(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseListener#mouseDoubleClick(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @see MouseModeEventHandler
+ */
public void registerDoubleClickBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(false, MouseEventTypeEnum.MOUSE_DOUBLE_CLICK, mouseEventMatcher, action);
}
+ /**
+ * Removes the mouse double click binding for the given
+ * {@link IMouseEventMatcher}.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterDoubleClickBinding(IMouseEventMatcher mouseEventMatcher) {
unregisterMouseBinding(MouseEventTypeEnum.MOUSE_DOUBLE_CLICK, mouseEventMatcher);
}
// Mouse hover
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseHover(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseHover(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ */
public void registerFirstMouseHoverBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(true, MouseEventTypeEnum.MOUSE_HOVER, mouseEventMatcher, action);
}
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseHover(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseHover(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ */
public void registerMouseHoverBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(false, MouseEventTypeEnum.MOUSE_HOVER, mouseEventMatcher, action);
}
+ /**
+ * Removes the mouse hover binding for the given {@link IMouseEventMatcher}.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterMouseHoverBinding(IMouseEventMatcher mouseEventMatcher) {
unregisterMouseBinding(MouseEventTypeEnum.MOUSE_HOVER, mouseEventMatcher);
}
// Mouse enter
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseEnter(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseEnter(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ */
public void registerFirstMouseEnterBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(true, MouseEventTypeEnum.MOUSE_ENTER, mouseEventMatcher, action);
}
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseEnter(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseEnter(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ */
public void registerMouseEnterBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(false, MouseEventTypeEnum.MOUSE_ENTER, mouseEventMatcher, action);
}
+ /**
+ * Removes the mouse enter binding for the given {@link IMouseEventMatcher}.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterMouseEnterBinding(IMouseEventMatcher mouseEventMatcher) {
unregisterMouseBinding(MouseEventTypeEnum.MOUSE_ENTER, mouseEventMatcher);
}
// Mouse exit
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseExit(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * Adds the binding at the first position, which increases the priority the
+ * binding gets executed, if multiple bindings would match the condition.
+ *
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseExit(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ */
public void registerFirstMouseExitBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(true, MouseEventTypeEnum.MOUSE_EXIT, mouseEventMatcher, action);
}
+ /**
+ * Register a {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseExit(MouseEvent)} if the given
+ * {@link IMouseEventMatcher} matches.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * registered.
+ * @param action
+ * The {@link IMouseAction} that should be executed on
+ * {@link MouseTrackListener#mouseExit(MouseEvent)} if the
+ * {@link IMouseEventMatcher} matches.
+ */
public void registerMouseExitBinding(IMouseEventMatcher mouseEventMatcher, IMouseAction action) {
registerMouseBinding(false, MouseEventTypeEnum.MOUSE_EXIT, mouseEventMatcher, action);
}
+ /**
+ * Removes the mouse exit binding for the given {@link IMouseEventMatcher}.
+ *
+ * @param mouseEventMatcher
+ * The {@link IMouseEventMatcher} for which the binding should be
+ * removed.
+ */
public void unregisterMouseExitBinding(IMouseEventMatcher mouseEventMatcher) {
unregisterMouseBinding(MouseEventTypeEnum.MOUSE_EXIT, mouseEventMatcher);
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/mode/ConfigurableModeEventHandler.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/mode/ConfigurableModeEventHandler.java
index ef4e35ddf..1461ba6be 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/mode/ConfigurableModeEventHandler.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/mode/ConfigurableModeEventHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2020 Original authors and others.
+ * Copyright (c) 2012, 2024 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -12,11 +12,17 @@
******************************************************************************/
package org.eclipse.nebula.widgets.nattable.ui.mode;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
import org.eclipse.nebula.widgets.nattable.NatTable;
+import org.eclipse.nebula.widgets.nattable.layer.LabelStack;
import org.eclipse.nebula.widgets.nattable.ui.NatEventData;
import org.eclipse.nebula.widgets.nattable.ui.action.IDragMode;
import org.eclipse.nebula.widgets.nattable.ui.action.IKeyAction;
import org.eclipse.nebula.widgets.nattable.ui.action.IMouseAction;
+import org.eclipse.nebula.widgets.nattable.ui.action.MouseMoveAction;
import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.MouseEvent;
@@ -59,13 +65,35 @@ public void mouseDown(MouseEvent event) {
}
}
+ private List currentActiveMoveActions = new ArrayList<>();
+
@Override
public synchronized void mouseMove(MouseEvent event) {
if (event.x >= 0 && event.y >= 0) {
+ event.data = NatEventData.createInstanceFromEvent(event);
+ LabelStack regionLabels = this.natTable.getRegionLabelsByXY(event.x, event.y);
+
+ // check if current active move actions are still active
+ for (Iterator it = this.currentActiveMoveActions.iterator(); it.hasNext();) {
+ MouseMoveAction currentAction = it.next();
+ boolean matches = currentAction.mouseEventMatcher.matches(this.natTable, event, regionLabels);
+ if (matches && currentAction.reexecuteEntryAction) {
+ currentAction.run(this.natTable, event);
+ } else if (!matches) {
+ currentAction.runExit(this.natTable, event);
+ it.remove();
+ }
+ }
+
IMouseAction mouseMoveAction = getUiBindingRegistry().getMouseMoveAction(event);
+
if (mouseMoveAction != null) {
- event.data = NatEventData.createInstanceFromEvent(event);
- mouseMoveAction.run(this.natTable, event);
+ if (mouseMoveAction instanceof MouseMoveAction && !this.currentActiveMoveActions.contains(mouseMoveAction)) {
+ mouseMoveAction.run(this.natTable, event);
+ this.currentActiveMoveActions.add((MouseMoveAction) mouseMoveAction);
+ } else if (!(mouseMoveAction instanceof MouseMoveAction)) {
+ mouseMoveAction.run(this.natTable, event);
+ }
} else {
this.natTable.setCursor(null);
}
@@ -98,9 +126,13 @@ public synchronized void mouseEnter(MouseEvent event) {
@Override
public synchronized void mouseExit(MouseEvent event) {
+ event.data = NatEventData.createInstanceFromEvent(event);
+
+ // ensure that any current active move action is exited
+ this.currentActiveMoveActions.forEach(action -> action.runExit(this.natTable, event));
+
IMouseAction mouseExitAction = getUiBindingRegistry().getMouseExitAction(event);
if (mouseExitAction != null) {
- event.data = NatEventData.createInstanceFromEvent(event);
mouseExitAction.run(this.natTable, event);
} else {
this.natTable.setCursor(null);
diff --git a/org.eclipse.nebula.widgets.nattable.dataset/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.dataset/META-INF/MANIFEST.MF
index ab2cbf771..cfd146812 100644
--- a/org.eclipse.nebula.widgets.nattable.dataset/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.dataset/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable Dataset Utilities (internal usage)
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.dataset
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.eclipse.nebula.widgets.nattable.dataset;version="1.4.0",
org.eclipse.nebula.widgets.nattable.dataset.car;version="1.5.0",
diff --git a/org.eclipse.nebula.widgets.nattable.examples.e4.feature/feature.xml b/org.eclipse.nebula.widgets.nattable.examples.e4.feature/feature.xml
index 55ddcf759..efaf1b1b2 100644
--- a/org.eclipse.nebula.widgets.nattable.examples.e4.feature/feature.xml
+++ b/org.eclipse.nebula.widgets.nattable.examples.e4.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/org.eclipse.nebula.widgets.nattable.examples.e4.product/org.eclipse.nebula.widgets.nattable.examples.e4.product b/org.eclipse.nebula.widgets.nattable.examples.e4.product/org.eclipse.nebula.widgets.nattable.examples.e4.product
index dc5a97e09..7f34552a1 100644
--- a/org.eclipse.nebula.widgets.nattable.examples.e4.product/org.eclipse.nebula.widgets.nattable.examples.e4.product
+++ b/org.eclipse.nebula.widgets.nattable.examples.e4.product/org.eclipse.nebula.widgets.nattable.examples.e4.product
@@ -1,7 +1,7 @@
-
+
diff --git a/org.eclipse.nebula.widgets.nattable.examples.e4.product/pom.xml b/org.eclipse.nebula.widgets.nattable.examples.e4.product/pom.xml
index c95de6aac..4f291b7cb 100644
--- a/org.eclipse.nebula.widgets.nattable.examples.e4.product/pom.xml
+++ b/org.eclipse.nebula.widgets.nattable.examples.e4.product/pom.xml
@@ -8,7 +8,7 @@
parent
org.eclipse.nebula.widgets.nattable
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
..
diff --git a/org.eclipse.nebula.widgets.nattable.examples.e4.rcp.feature/feature.xml b/org.eclipse.nebula.widgets.nattable.examples.e4.rcp.feature/feature.xml
index b411fdfe1..2246d3d2f 100644
--- a/org.eclipse.nebula.widgets.nattable.examples.e4.rcp.feature/feature.xml
+++ b/org.eclipse.nebula.widgets.nattable.examples.e4.rcp.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/org.eclipse.nebula.widgets.nattable.examples.e4/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.examples.e4/META-INF/MANIFEST.MF
index 4f5364966..fee5ccd60 100644
--- a/org.eclipse.nebula.widgets.nattable.examples.e4/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.examples.e4/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable Eclipse 4 Examples
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.examples.e4;singleton:=true
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Require-Bundle: javax.inject;bundle-version="0.0.0",
org.eclipse.core.runtime;bundle-version="0.0.0",
org.eclipse.swt;bundle-version="0.0.0",
diff --git a/org.eclipse.nebula.widgets.nattable.examples/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.examples/META-INF/MANIFEST.MF
index eb179248f..da394ea63 100644
--- a/org.eclipse.nebula.widgets.nattable.examples/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.examples/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable Examples
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.examples
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: ca.odell.glazedlists,
org.eclipse.swt,
diff --git a/org.eclipse.nebula.widgets.nattable.examples/pom.xml b/org.eclipse.nebula.widgets.nattable.examples/pom.xml
index 756d56673..8cf85bd62 100644
--- a/org.eclipse.nebula.widgets.nattable.examples/pom.xml
+++ b/org.eclipse.nebula.widgets.nattable.examples/pom.xml
@@ -5,7 +5,7 @@
org.eclipse.nebula.widgets.nattable
parent
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
..
diff --git a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_504_Viewport/_5045_ScrollableRowHeaderExample.java b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_504_Viewport/_5045_ScrollableRowHeaderExample.java
index 373442db6..7f0fb331b 100644
--- a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_504_Viewport/_5045_ScrollableRowHeaderExample.java
+++ b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_504_Viewport/_5045_ScrollableRowHeaderExample.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2020 Dirk Fauth and others.
+ * Copyright (c) 2015, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -44,6 +44,7 @@
import org.eclipse.nebula.widgets.nattable.resize.action.VerticalResizeCursorAction;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer;
import org.eclipse.nebula.widgets.nattable.selection.SelectionLayerPainter;
+import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
import org.eclipse.nebula.widgets.nattable.ui.action.IDragMode;
import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
import org.eclipse.nebula.widgets.nattable.util.ClientAreaAdapter;
@@ -208,7 +209,8 @@ public void paintOverlay(GC gc, ILayer layer) {
// Mouse move - Show resize cursor
natTable.getUiBindingRegistry().registerFirstMouseMoveBinding(
new ClientAreaResizeMatcher(compositeLayer),
- new VerticalResizeCursorAction());
+ new VerticalResizeCursorAction(),
+ new ClearCursorAction());
natTable.getUiBindingRegistry().registerFirstMouseDragMode(
new ClientAreaResizeMatcher(compositeLayer),
@@ -280,8 +282,9 @@ public ClientAreaResizeMatcher(ILayer rowHeaderLayer) {
@Override
public boolean matches(NatTable natTable, MouseEvent event, LabelStack regionLabels) {
+ int adjust = GUIHelper.convertHorizontalPixelToDpi(5);
if (regionLabels != null && regionLabels.hasLabel(GridRegion.COLUMN_HEADER)
- && (event.x > this.rowHeaderLayer.getWidth() - 5 && event.x < this.rowHeaderLayer.getWidth() + 5)) {
+ && (event.x > this.rowHeaderLayer.getWidth() - adjust && event.x < this.rowHeaderLayer.getWidth() + adjust)) {
return true;
}
return false;
diff --git a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_504_Viewport/_5046_MultiScrollExample.java b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_504_Viewport/_5046_MultiScrollExample.java
index 4b277cd82..bcc27bcef 100644
--- a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_504_Viewport/_5046_MultiScrollExample.java
+++ b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_504_Viewport/_5046_MultiScrollExample.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2016, 2020 Dirk Fauth and others.
+ * Copyright (c) 2016, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -52,6 +52,7 @@
import org.eclipse.nebula.widgets.nattable.selection.command.ClearAllSelectionsCommand;
import org.eclipse.nebula.widgets.nattable.selection.command.SelectAllCommand;
import org.eclipse.nebula.widgets.nattable.selection.command.SelectCellCommand;
+import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
import org.eclipse.nebula.widgets.nattable.ui.action.IDragMode;
import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
import org.eclipse.nebula.widgets.nattable.util.ClientAreaAdapter;
@@ -194,7 +195,8 @@ public void paintOverlay(GC gc, ILayer layer) {
// Mouse move - Show resize cursor
natTable.getUiBindingRegistry().registerFirstMouseMoveBinding(
new ClientAreaResizeMatcher(gridLayer),
- new VerticalResizeCursorAction());
+ new VerticalResizeCursorAction(),
+ new ClearCursorAction());
natTable.getUiBindingRegistry().registerFirstMouseDragMode(
new ClientAreaResizeMatcher(gridLayer),
@@ -458,7 +460,7 @@ public ClientAreaResizeMatcher(ExtendedGridLayer gridLayer) {
public boolean matches(NatTable natTable, MouseEvent event, LabelStack regionLabels) {
int viewportBorderX = this.gridLayer.getRowHeaderLayer().getWidth() + this.gridLayer.getStructureBody().getWidth();
if (regionLabels != null && regionLabels.hasLabel(GridRegion.COLUMN_HEADER)
- && (event.x >= viewportBorderX && event.x <= viewportBorderX + 4)) {
+ && (event.x >= viewportBorderX && event.x <= viewportBorderX + GUIHelper.convertHorizontalPixelToDpi(4))) {
return true;
}
return false;
diff --git a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_506_Hover/_5064_GridHeaderHoverStylingExample.java b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_506_Hover/_5064_GridHeaderHoverStylingExample.java
index 8a70fcb50..a0be336f6 100644
--- a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_506_Hover/_5064_GridHeaderHoverStylingExample.java
+++ b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_506_Hover/_5064_GridHeaderHoverStylingExample.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2020 Dirk Fauth and others.
+ * Copyright (c) 2013, 2024 Dirk Fauth and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -17,7 +17,6 @@
import org.eclipse.nebula.widgets.nattable.NatTable;
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.DefaultNatTableStyleConfiguration;
import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
@@ -37,7 +36,6 @@
import org.eclipse.nebula.widgets.nattable.grid.layer.GridLayer;
import org.eclipse.nebula.widgets.nattable.grid.layer.RowHeaderLayer;
import org.eclipse.nebula.widgets.nattable.hover.HoverLayer;
-import org.eclipse.nebula.widgets.nattable.hover.action.ClearHoverStylingAction;
import org.eclipse.nebula.widgets.nattable.hover.config.ColumnHeaderHoverLayerConfiguration;
import org.eclipse.nebula.widgets.nattable.hover.config.RowHeaderHoverLayerConfiguration;
import org.eclipse.nebula.widgets.nattable.layer.DataLayer;
@@ -49,8 +47,6 @@
import org.eclipse.nebula.widgets.nattable.style.CellStyleAttributes;
import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
import org.eclipse.nebula.widgets.nattable.style.Style;
-import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
-import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
import org.eclipse.nebula.widgets.nattable.viewport.ViewportLayer;
import org.eclipse.swt.graphics.Image;
@@ -152,15 +148,6 @@ public Control createExampleControl(Composite parent) {
// add the DefaultNatTableStyleConfiguration manually
natTable.addConfiguration(new DefaultNatTableStyleConfiguration());
- natTable.addConfiguration(new AbstractUiBindingConfiguration() {
- @Override
- public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
- uiBindingRegistry.registerMouseMoveBinding(
- new MouseEventMatcher(GridRegion.BODY),
- new ClearHoverStylingAction());
- }
- });
-
// add the style configuration for hover
natTable.addConfiguration(new AbstractRegistryConfiguration() {
diff --git a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_508_Reorder/_5084_StructuralRowReorderWithoutRowHeaderExample.java b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_508_Reorder/_5084_StructuralRowReorderWithoutRowHeaderExample.java
index ae3f125c6..6d5f21af7 100644
--- a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_508_Reorder/_5084_StructuralRowReorderWithoutRowHeaderExample.java
+++ b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/_500_Layers/_508_Reorder/_5084_StructuralRowReorderWithoutRowHeaderExample.java
@@ -131,9 +131,6 @@ public Control createExampleControl(Composite parent) {
SelectionLayer selectionLayer =
new SelectionLayer(bodyDataLayer, false);
- // add the custom configuration to enable the structural row reordering
- bodyDataLayer.addConfiguration(new StructuralRowReorderConfiguration(selectionLayer));
-
// use a RowSelectionModel that will perform row selections and is able
// to identify a row via unique ID
selectionLayer.setSelectionModel(new RowSelectionModel(
@@ -163,6 +160,9 @@ public Serializable getRowId(Person rowObject) {
ILayer columnHeaderLayer =
new ColumnHeaderLayer(columnHeaderDataLayer, viewportLayer, selectionLayer);
+ // add the custom configuration to enable the structural row reordering
+ bodyDataLayer.addConfiguration(new StructuralRowReorderConfiguration(columnHeaderLayer, selectionLayer));
+
// set the region labels to make default configurations work, e.g.
// selection
CompositeLayer compositeLayer = new CompositeLayer(1, 2);
@@ -186,9 +186,11 @@ class StructuralRowReorderConfiguration extends AbstractLayerConfiguration ((natTable != null && regionLabels == null) || regionLabels != null
- && (regionLabels.hasLabel(GridRegion.BODY) || regionLabels.hasLabel(GridRegion.COLUMN_GROUP_HEADER) || regionLabels.hasLabel(GridRegion.FILTER_ROW))),
+ // first remove the binding for hover on the column header
+ uiBindingRegistry.unregisterMouseMoveBinding(
+ new MouseEventMatcher(GridRegion.COLUMN_HEADER));
+ // register a new binding for the hover on the column header,
+ // but not in the column group or the filter row
+ uiBindingRegistry.registerMouseMoveBinding(
+ (natTable, event, regionLabels) -> natTable != null
+ && regionLabels != null
+ && regionLabels.hasLabel(GridRegion.COLUMN_HEADER)
+ && !regionLabels.hasLabel(GridRegion.COLUMN_GROUP_HEADER)
+ && !regionLabels.hasLabel(GridRegion.FILTER_ROW),
+ new HoverStylingByIndexAction(columnHeaderLayerStack.getHoverLayer()),
new ClearHoverStylingAction());
+
}
});
@@ -929,6 +939,7 @@ public ColumnHideShowLayer getColumnHideShowLayer() {
class ColumnHeaderLayerStack extends AbstractLayerTransform {
private final IDataProvider columnHeaderDataProvider;
private final DataLayer columnHeaderDataLayer;
+ private final HoverLayer columnHoverLayer;
private final ColumnHeaderLayer columnHeaderLayer;
private final ColumnGroupHeaderLayer columnGroupHeaderLayer;
@@ -947,18 +958,18 @@ public ColumnHeaderLayerStack(
this.columnHeaderDataLayer =
new DefaultColumnHeaderDataLayer(this.columnHeaderDataProvider);
- HoverLayer columnHoverLayer =
+ this.columnHoverLayer =
new HoverLayer(this.columnHeaderDataLayer, false);
this.columnHeaderLayer =
new ColumnHeaderLayer(
- columnHoverLayer,
+ this.columnHoverLayer,
bodyLayerStack,
bodyLayerStack.getSelectionLayer(),
false);
this.columnHeaderLayer.addConfiguration(
- new ColumnHeaderResizeHoverBindings(columnHoverLayer));
+ new ColumnHeaderResizeHoverBindings(this.columnHoverLayer));
SortHeaderLayer sortHeaderLayer =
new SortHeaderLayer<>(
@@ -1052,6 +1063,10 @@ public DataLayer getColumnHeaderDataLayer() {
return this.columnHeaderDataLayer;
}
+ public HoverLayer getHoverLayer() {
+ return this.columnHoverLayer;
+ }
+
public ColumnHeaderLayer getColumnHeaderLayer() {
return this.columnHeaderLayer;
}
diff --git a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/examples/_102_Configuration/Rendering_cells_as_a_link_and_button.java b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/examples/_102_Configuration/Rendering_cells_as_a_link_and_button.java
index f5519f8e9..7202ee223 100644
--- a/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/examples/_102_Configuration/Rendering_cells_as_a_link_and_button.java
+++ b/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/widgets/nattable/examples/examples/_102_Configuration/Rendering_cells_as_a_link_and_button.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2020 Original authors and others.
+ * Copyright (c) 2012, 2024 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
@@ -38,6 +38,7 @@
import org.eclipse.nebula.widgets.nattable.style.Style;
import org.eclipse.nebula.widgets.nattable.style.TextDecorationEnum;
import org.eclipse.nebula.widgets.nattable.ui.NatEventData;
+import org.eclipse.nebula.widgets.nattable.ui.action.ClearCursorAction;
import org.eclipse.nebula.widgets.nattable.ui.action.IMouseAction;
import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
import org.eclipse.nebula.widgets.nattable.ui.matcher.CellLabelMouseEventMatcher;
@@ -241,9 +242,12 @@ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
uiBindingRegistry.registerMouseDownBinding(mouseEventMatcher, this);
// show hand cursor, which is usually used for links
- uiBindingRegistry.registerFirstMouseMoveBinding(mouseHoverMatcher, (natTable, event) -> {
- natTable.setCursor(natTable.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
- });
+ uiBindingRegistry.registerFirstMouseMoveBinding(
+ mouseHoverMatcher,
+ (natTable, event) -> {
+ natTable.setCursor(natTable.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
+ },
+ new ClearCursorAction());
}
diff --git a/org.eclipse.nebula.widgets.nattable.extension.e4.feature/feature.xml b/org.eclipse.nebula.widgets.nattable.extension.e4.feature/feature.xml
index 3fe13adb8..073acca17 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.e4.feature/feature.xml
+++ b/org.eclipse.nebula.widgets.nattable.extension.e4.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/org.eclipse.nebula.widgets.nattable.extension.e4/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.extension.e4/META-INF/MANIFEST.MF
index 166b1705d..56c310b22 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.e4/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.extension.e4/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable extension for Eclipse 4
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.extension.e4;singleton:=true
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.swt;bundle-version="3.103.0",
org.eclipse.e4.ui.css.core;bundle-version="0.11.0",
@@ -10,38 +10,38 @@ Require-Bundle: org.eclipse.swt;bundle-version="3.103.0",
Import-Package: javax.inject;version="1.0.0",
org.eclipse.e4.core.di.annotations,
org.eclipse.e4.ui.workbench.modeling,
- org.eclipse.nebula.widgets.nattable;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.config;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.coordinate;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.data;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.data.convert;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.edit;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.fillhandle.config;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.freeze;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.group.painter;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.hideshow.indicator;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer.event;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.painter;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.painter.cell;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.painter.cell.decorator;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.resize.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.selection;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.selection.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.selection.event;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.sort.painter;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.style;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.tree.config;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.tree.painter;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.ui.util;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.util;version="[2.3.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.config;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.coordinate;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.data;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.data.convert;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.edit;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.fillhandle.config;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.freeze;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.group.painter;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.hideshow.indicator;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer.event;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.painter;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.painter.cell;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.painter.cell.decorator;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.resize.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.selection;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.selection.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.selection.event;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.sort.painter;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.style;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.tree.config;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.tree.painter;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.ui.util;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.util;version="[2.4.0,3.0.0)",
org.slf4j;version="1.7.2",
org.w3c.dom
Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.nebula.widgets.nattable.extension.e4.css;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.e4.painterfactory;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.e4.selection;version="2.3.1"
+Export-Package: org.eclipse.nebula.widgets.nattable.extension.e4.css;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.e4.painterfactory;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.e4.selection;version="2.4.0"
Automatic-Module-Name: org.eclipse.nebula.widgets.nattable.extension.e4
Bundle-Vendor: Eclipse Nebula NatTable
diff --git a/org.eclipse.nebula.widgets.nattable.extension.e4/pom.xml b/org.eclipse.nebula.widgets.nattable.extension.e4/pom.xml
index 0dfa0e1dd..5bf3eedd3 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.e4/pom.xml
+++ b/org.eclipse.nebula.widgets.nattable.extension.e4/pom.xml
@@ -5,7 +5,7 @@
org.eclipse.nebula.widgets.nattable
parent
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
../pom.xml
@@ -13,7 +13,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.extension.e4
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
eclipse-plugin
Nebula NatTable Eclipse 4 Extension
@@ -85,7 +85,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.core
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature/feature.xml b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature/feature.xml
index 31dc7144f..2d4a180bb 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature/feature.xml
+++ b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/META-INF/MANIFEST.MF
index 79072b4cc..79a4dda17 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.extension.glazedlists.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable GlazedLists Extensions Test
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.extension.glazedlists.tests
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Fragment-Host: org.eclipse.nebula.widgets.nattable.extension.glazedlists
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.eclipse.jface.viewers,
diff --git a/org.eclipse.nebula.widgets.nattable.extension.glazedlists/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.extension.glazedlists/META-INF/MANIFEST.MF
index 13254a9f5..66179a5d0 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.glazedlists/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.extension.glazedlists/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable extension for GlazedLists
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.extension.glazedlists
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.nebula.widgets.nattable.extension.glazedlists;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.data.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.filterrow;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.action;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.command;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.summary;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.hideshow;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.hierarchical;version="2.3.1",
- org.eclipse.nebula.widgets.nattable.extension.glazedlists.tree;version="2.3.1"
+Export-Package: org.eclipse.nebula.widgets.nattable.extension.glazedlists;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.data.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.filterrow;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.action;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.command;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.summary;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.hideshow;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.hierarchical;version="2.4.0",
+ org.eclipse.nebula.widgets.nattable.extension.glazedlists.tree;version="2.4.0"
Import-Package: ca.odell.glazedlists;version="[1.11.0,2.0.0)",
ca.odell.glazedlists.event;version="[1.11.0,2.0.0)",
ca.odell.glazedlists.gui;version="[1.11.0,2.0.0)",
@@ -21,60 +21,60 @@ Import-Package: ca.odell.glazedlists;version="[1.11.0,2.0.0)",
ca.odell.glazedlists.util.concurrent;version="[1.11.0,2.0.0)",
org.apache.commons.codec;version="[1.3.0,2.0.0)",
org.apache.commons.codec.binary;version="[1.3.0,2.0.0)",
- org.eclipse.nebula.widgets.nattable;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.blink;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.config;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.coordinate;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.data;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.data.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.data.convert;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.edit;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.edit.action;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.edit.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.edit.editor;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.edit.event;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.filterrow;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.filterrow.combobox;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.filterrow.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.filterrow.config;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.filterrow.event;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.grid;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.grid.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.grid.data;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.grid.layer;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.group.performance;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.group.performance.action;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.hideshow;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.hideshow.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.hideshow.event;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.hierarchical;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer.cell;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer.event;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer.stack;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.painter.cell;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.painter.cell.decorator;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.persistence;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.reorder.action;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.search.event;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.sort;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.sort.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.sort.config;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.sort.event;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.sort.painter;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.style;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.style.theme;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.summaryrow;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.summaryrow.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.tree;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.ui;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.ui.action;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.ui.binding;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.ui.matcher;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.ui.menu;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.ui.util;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.util;version="[2.3.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.blink;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.config;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.coordinate;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.data;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.data.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.data.convert;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.edit;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.edit.action;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.edit.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.edit.editor;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.edit.event;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.filterrow;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.filterrow.combobox;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.filterrow.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.filterrow.config;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.filterrow.event;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.grid;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.grid.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.grid.data;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.grid.layer;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.group.performance;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.group.performance.action;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.hideshow;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.hideshow.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.hideshow.event;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.hierarchical;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer.cell;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer.event;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer.stack;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.painter.cell;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.painter.cell.decorator;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.persistence;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.reorder.action;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.search.event;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.sort;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.sort.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.sort.config;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.sort.event;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.sort.painter;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.style;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.style.theme;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.summaryrow;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.summaryrow.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.tree;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.ui;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.ui.action;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.ui.binding;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.ui.matcher;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.ui.menu;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.ui.util;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.util;version="[2.4.0,3.0.0)",
org.eclipse.swt,
org.eclipse.swt.custom,
org.eclipse.swt.events,
diff --git a/org.eclipse.nebula.widgets.nattable.extension.glazedlists/pom.xml b/org.eclipse.nebula.widgets.nattable.extension.glazedlists/pom.xml
index 58f4200f0..7f781e21b 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.glazedlists/pom.xml
+++ b/org.eclipse.nebula.widgets.nattable.extension.glazedlists/pom.xml
@@ -5,7 +5,7 @@
org.eclipse.nebula.widgets.nattable
parent
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
../pom.xml
@@ -13,7 +13,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.extension.glazedlists
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
eclipse-plugin
Nebula NatTable GlazedLists Extension
@@ -64,7 +64,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.core
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.extension.nebula.feature/feature.xml b/org.eclipse.nebula.widgets.nattable.extension.nebula.feature/feature.xml
index 7883741ce..f26945fe7 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.nebula.feature/feature.xml
+++ b/org.eclipse.nebula.widgets.nattable.extension.nebula.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/org.eclipse.nebula.widgets.nattable.extension.nebula.test/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.extension.nebula.test/META-INF/MANIFEST.MF
index 28b62fe9f..c9f4b74b6 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.nebula.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.extension.nebula.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable Nebula Extension Test
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.extension.nebula.test
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Bundle-Vendor: Eclipse Nebula NatTable
Fragment-Host: org.eclipse.nebula.widgets.nattable.extension.nebula
Import-Package: org.apache.commons.lang3;version="3.1.0"
diff --git a/org.eclipse.nebula.widgets.nattable.extension.nebula/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.extension.nebula/META-INF/MANIFEST.MF
index 50ec8515a..59f5d5a34 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.nebula/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.extension.nebula/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable extension for Nebula widgets
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.extension.nebula
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.eclipse.nebula.widgets.nattable.extension.nebula.cdatetime;version="1.1.0",
- org.eclipse.nebula.widgets.nattable.extension.nebula.richtext;version="2.3.1"
+ org.eclipse.nebula.widgets.nattable.extension.nebula.richtext;version="2.4.0"
Import-Package: org.apache.commons.lang3;version="[3.1.0,4.0.0)",
org.eclipse.collections.api;version="10.4.0",
org.eclipse.collections.api.block.predicate;version="10.4.0",
@@ -17,19 +17,19 @@ Import-Package: org.apache.commons.lang3;version="[3.1.0,4.0.0)",
org.eclipse.nebula.cwt.base,
org.eclipse.nebula.cwt.v,
org.eclipse.nebula.widgets.cdatetime,
- org.eclipse.nebula.widgets.nattable.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.config;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.data.convert;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.edit.editor;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer.cell;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.painter.cell;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.resize.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.search.command;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.selection;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.style;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.util;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.widget;version="[2.3.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.config;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.data.convert;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.edit.editor;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer.cell;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.painter.cell;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.resize.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.search.command;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.selection;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.style;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.util;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.widget;version="[2.4.0,3.0.0)",
org.eclipse.nebula.widgets.richtext;version="[1.3.0,2.0.0)",
org.eclipse.nebula.widgets.richtext.toolbar;version="[1.2.0,2.0.0)",
org.slf4j;version="1.7.2"
diff --git a/org.eclipse.nebula.widgets.nattable.extension.nebula/pom.xml b/org.eclipse.nebula.widgets.nattable.extension.nebula/pom.xml
index feff599e8..0ec2adb1a 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.nebula/pom.xml
+++ b/org.eclipse.nebula.widgets.nattable.extension.nebula/pom.xml
@@ -5,7 +5,7 @@
org.eclipse.nebula.widgets.nattable
parent
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
../pom.xml
@@ -13,7 +13,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.extension.nebula
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
eclipse-plugin
Nebula NatTable Nebula Extension
@@ -71,7 +71,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.core
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.extension.poi.feature/feature.xml b/org.eclipse.nebula.widgets.nattable.extension.poi.feature/feature.xml
index 24b9199b7..c273251d1 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.poi.feature/feature.xml
+++ b/org.eclipse.nebula.widgets.nattable.extension.poi.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/org.eclipse.nebula.widgets.nattable.extension.poi/META-INF/MANIFEST.MF b/org.eclipse.nebula.widgets.nattable.extension.poi/META-INF/MANIFEST.MF
index b946e2aa8..cc966f14b 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.poi/META-INF/MANIFEST.MF
+++ b/org.eclipse.nebula.widgets.nattable.extension.poi/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NatTable extension for Apache POI
Bundle-SymbolicName: org.eclipse.nebula.widgets.nattable.extension.poi
-Bundle-Version: 2.3.1.qualifier
+Bundle-Version: 2.4.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.nebula.widgets.nattable.extension.poi;version="2.3.1"
+Export-Package: org.eclipse.nebula.widgets.nattable.extension.poi;version="2.4.0"
Import-Package: org.apache.poi.hssf.usermodel;version="[4.1.1,5.0.0)",
org.apache.poi.ss.usermodel;version="[4.1.1,5.0.0)",
org.apache.poi.ss.util;version="[4.1.1,5.0.0)",
org.apache.poi.util;version="[4.1.1,5.0.0)",
- org.eclipse.nebula.widgets.nattable.config;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.export;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.formula;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.layer.cell;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.painter.cell;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.painter.cell.decorator;version="[2.3.0,3.0.0)",
- org.eclipse.nebula.widgets.nattable.style;version="[2.3.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.config;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.export;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.formula;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.layer.cell;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.painter.cell;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.painter.cell.decorator;version="[2.4.0,3.0.0)",
+ org.eclipse.nebula.widgets.nattable.style;version="[2.4.0,3.0.0)",
org.eclipse.swt,
org.eclipse.swt.graphics,
org.eclipse.swt.widgets,
diff --git a/org.eclipse.nebula.widgets.nattable.extension.poi/pom.xml b/org.eclipse.nebula.widgets.nattable.extension.poi/pom.xml
index bbf7e2d26..3709a9803 100644
--- a/org.eclipse.nebula.widgets.nattable.extension.poi/pom.xml
+++ b/org.eclipse.nebula.widgets.nattable.extension.poi/pom.xml
@@ -5,7 +5,7 @@
org.eclipse.nebula.widgets.nattable
parent
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
../pom.xml
@@ -13,7 +13,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.extension.poi
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
eclipse-plugin
Nebula NatTable Apache POI Extension
@@ -59,7 +59,7 @@
org.eclipse.nebula.widgets.nattable
org.eclipse.nebula.widgets.nattable.core
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.updatesite/pom.xml b/org.eclipse.nebula.widgets.nattable.updatesite/pom.xml
index 83326b567..a4ceb436b 100644
--- a/org.eclipse.nebula.widgets.nattable.updatesite/pom.xml
+++ b/org.eclipse.nebula.widgets.nattable.updatesite/pom.xml
@@ -7,7 +7,7 @@
parent
org.eclipse.nebula.widgets.nattable
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
..
diff --git a/pom.xml b/pom.xml
index 6dca26f24..82b3b8112 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.eclipse.nebula.widgets.nattable
parent
- 2.3.1-SNAPSHOT
+ 2.4.0-SNAPSHOT
pom