From 91bb8873230800086098ae2424814aa79614d6b9 Mon Sep 17 00:00:00 2001 From: Dirk Fauth Date: Mon, 29 Apr 2024 12:41:51 +0200 Subject: [PATCH] Impl #81 - Improve mouse move bindings (#82) * Impl #81 -Improve mouse move bindings * Implement a mouse move binding that supports enter and exit and changed all default move bindings. * Update workflow file to use multiple JDK and adapt toolchains.xml --- .github/toolchains.xml | 25 + .github/workflows/maven.yml | 17 +- .../feature.xml | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 354 ++++++------ .../pom.xml | 4 +- .../config/FillHandleConfiguration.java | 7 +- .../HideIndicatorMenuConfiguration.java | 15 +- ...rchicalHideIndicatorMenuConfiguration.java | 15 +- .../hover/action/ClearHoverStylingAction.java | 10 +- .../hover/action/HoverStylingAction.java | 16 +- .../action/HoverStylingByIndexAction.java | 18 +- .../config/BodyHoverStylingBindings.java | 29 +- .../ColumnHeaderResizeHoverBindings.java | 21 +- .../config/RowHeaderResizeHoverBindings.java | 32 +- .../config/SimpleHoverStylingBindings.java | 25 +- .../config/DefaultColumnResizeBindings.java | 7 +- .../config/DefaultRowResizeBindings.java | 7 +- .../nattable/ui/action/MouseMoveAction.java | 63 +++ .../ui/binding/UiBindingRegistry.java | 504 +++++++++++++++++- .../ui/mode/ConfigurableModeEventHandler.java | 40 +- .../META-INF/MANIFEST.MF | 2 +- .../feature.xml | 2 +- ...ebula.widgets.nattable.examples.e4.product | 2 +- .../pom.xml | 2 +- .../feature.xml | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../pom.xml | 2 +- .../_5045_ScrollableRowHeaderExample.java | 9 +- .../_5046_MultiScrollExample.java | 8 +- .../_5064_GridHeaderHoverStylingExample.java | 15 +- ...uralRowReorderWithoutRowHeaderExample.java | 32 +- ...llFilterPerformanceColumnGroupExample.java | 29 +- .../Rendering_cells_as_a_link_and_button.java | 12 +- .../feature.xml | 2 +- .../META-INF/MANIFEST.MF | 62 +-- .../pom.xml | 6 +- .../feature.xml | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 130 ++--- .../pom.xml | 6 +- .../feature.xml | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 30 +- .../pom.xml | 6 +- .../feature.xml | 2 +- .../META-INF/MANIFEST.MF | 20 +- .../pom.xml | 6 +- .../pom.xml | 2 +- pom.xml | 2 +- 51 files changed, 1074 insertions(+), 542 deletions(-) create mode 100644 .github/toolchains.xml create mode 100644 org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/action/MouseMoveAction.java diff --git a/.github/toolchains.xml b/.github/toolchains.xml new file mode 100644 index 000000000..697265cc1 --- /dev/null +++ b/.github/toolchains.xml @@ -0,0 +1,25 @@ + + + + jdk + + JavaSE-17 + 17 + + + ${env.JAVA_HOME_17_X64} + + + + jdk + + JavaSE-1.8 + 1.8 + + + ${env.JAVA_HOME_8_X64} + + + \ No newline at end of file diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 8a9b4cae4..3d029ec92 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -7,17 +7,16 @@ jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - java: [ '17' ] - name: Java ${{ matrix.java }} compile + name: Java 17 compile steps: - name: Git Checkout uses: actions/checkout@v4 - - name: Set up JDK ${{ matrix.java }} + - name: Set up JDKs uses: actions/setup-java@v4 with: - java-version: ${{ matrix.java }} + java-version: | + 8 + 17 distribution: 'temurin' # See 'Supported distributions' for available options cache: maven - name: Set up Maven @@ -27,4 +26,8 @@ jobs: - name: Install xvfb run: sudo apt-get install xvfb - name: Build NatTable with Javadoc - run: xvfb-run mvn clean compile javadoc:aggregate verify + env: + JAVA_HOME: ${{ env.JAVA_HOME_17_X64 }} + run: | + cp .github/toolchains.xml ~/.m2/toolchains.xml + xvfb-run mvn clean compile javadoc:aggregate verify diff --git a/org.eclipse.nebula.widgets.nattable.core.feature/feature.xml b/org.eclipse.nebula.widgets.nattable.core.feature/feature.xml index 92ddeefe1..bbc948e08 100644 --- a/org.eclipse.nebula.widgets.nattable.core.feature/feature.xml +++ b/org.eclipse.nebula.widgets.nattable.core.feature/feature.xml @@ -2,7 +2,7 @@ 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