diff options
author | Johannes Faltermeier | 2017-01-23 15:55:18 +0000 |
---|---|---|
committer | Johannes Faltermeier | 2017-01-24 09:43:48 +0000 |
commit | c6151c6c211525c78efe68f1b67049453b1b0c3f (patch) | |
tree | c3c01a4febd5b39a72d53b660ddea0fe05f53aba | |
parent | fda162943fa84faac628e8c6c7155e58c3132bc9 (diff) | |
download | org.eclipse.emf.ecp.core-backport_161108.tar.gz org.eclipse.emf.ecp.core-backport_161108.tar.xz org.eclipse.emf.ecp.core-backport_161108.zip |
Bug 510886 - TableControlRCPRenderer sometimes produces incomprehensiblebackport_161108
paste behavior
* remove static instance code
Change-Id: Ife00b4c481f918254eeb91e559115791f8107b53
Signed-off-by: Johannes Faltermeier <jfaltermeier@eclipsesource.com>
3 files changed, 30 insertions, 8 deletions
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlDetailDialogRCPRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlDetailDialogRCPRenderer.java index c49c85a395..12a4141928 100644 --- a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlDetailDialogRCPRenderer.java +++ b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlDetailDialogRCPRenderer.java @@ -42,6 +42,9 @@ import org.eclipse.swt.widgets.Control; * */ public class TableControlDetailDialogRCPRenderer extends TableControlDetailDialogSWTRenderer { + + private CutCopyPasteListener cutCopyPasteListener; + /** * Default constructor. * @@ -89,7 +92,7 @@ public class TableControlDetailDialogRCPRenderer extends TableControlDetailDialo final EditingDomain editingDomain = getEditingDomain(getViewModelContext().getDomainModel()); final Setting setting = getEMFFormsDatabinding().getSetting(getDMRToMultiReference(), getViewModelContext().getDomainModel()); - TableControlRCPRenderer.enableCutCopyPaste(tableViewer, editingDomain, setting); + cutCopyPasteListener = TableControlRCPRenderer.enableCutCopyPaste(tableViewer, editingDomain, setting); } catch (final DatabindingFailedException ex) { getReportService().report(new AbstractReport(ex, "Enabling Cut Copy Paste failed")); //$NON-NLS-1$ } @@ -97,4 +100,12 @@ public class TableControlDetailDialogRCPRenderer extends TableControlDetailDialo return control; } + @Override + protected void rootDomainModelChanged() throws DatabindingFailedException { + super.rootDomainModelChanged(); + final Setting setting = getEMFFormsDatabinding().getSetting(getDMRToMultiReference(), + getViewModelContext().getDomainModel()); + cutCopyPasteListener.rootDomainModelChanged(setting); + } + } diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlDetailPanelRCPRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlDetailPanelRCPRenderer.java index 4e4870d59f..9d8016defb 100644 --- a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlDetailPanelRCPRenderer.java +++ b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlDetailPanelRCPRenderer.java @@ -42,6 +42,9 @@ import org.eclipse.swt.widgets.Control; * */ public class TableControlDetailPanelRCPRenderer extends TableControlDetailPanelRenderer { + + private CutCopyPasteListener cutCopyPasteListener; + /** * Default constructor. * @@ -89,11 +92,19 @@ public class TableControlDetailPanelRCPRenderer extends TableControlDetailPanelR final EditingDomain editingDomain = getEditingDomain(getViewModelContext().getDomainModel()); final Setting setting = getEMFFormsDatabinding().getSetting(getDMRToMultiReference(), getViewModelContext().getDomainModel()); - TableControlRCPRenderer.enableCutCopyPaste(tableViewer, editingDomain, setting); + cutCopyPasteListener = TableControlRCPRenderer.enableCutCopyPaste(tableViewer, editingDomain, setting); } catch (final DatabindingFailedException ex) { getReportService().report(new AbstractReport(ex, "Enabling Cut Copy Paste failed")); //$NON-NLS-1$ } } return control; } + + @Override + protected void rootDomainModelChanged() throws DatabindingFailedException { + super.rootDomainModelChanged(); + final Setting setting = getEMFFormsDatabinding().getSetting(getDMRToMultiReference(), + getViewModelContext().getDomainModel()); + cutCopyPasteListener.rootDomainModelChanged(setting); + } } diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlRCPRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlRCPRenderer.java index 51636087b8..9b82a45084 100644 --- a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlRCPRenderer.java +++ b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/src/org/eclipse/emf/ecp/view/spi/table/ui/rcp/TableControlRCPRenderer.java @@ -44,7 +44,7 @@ import org.eclipse.swt.widgets.Control; */ public class TableControlRCPRenderer extends TableControlSWTRenderer { - private static CutCopyPasteListener cutCopyPasteListener; + private CutCopyPasteListener cutCopyPasteListener; /** * Default constructor. @@ -93,7 +93,7 @@ public class TableControlRCPRenderer extends TableControlSWTRenderer { final EditingDomain editingDomain = getEditingDomain(getViewModelContext().getDomainModel()); final Setting setting = getEMFFormsDatabinding().getSetting(getDMRToMultiReference(), getViewModelContext().getDomainModel()); - enableCutCopyPaste(tableViewer, editingDomain, setting); + cutCopyPasteListener = enableCutCopyPaste(tableViewer, editingDomain, setting); } catch (final DatabindingFailedException ex) { getReportService().report(new AbstractReport(ex, "Enabling Cut Copy Paste failed")); //$NON-NLS-1$ } @@ -107,13 +107,14 @@ public class TableControlRCPRenderer extends TableControlSWTRenderer { * @param tableViewer the {@link TableViewer} * @param editingDomain the {@link EditingDomain} * @param setting the {@link Setting} displayed in the table + * @return the {@link CutCopyPasteListener} or <code>null</code> */ - static void enableCutCopyPaste(AbstractTableViewer tableViewer, EditingDomain editingDomain, + static CutCopyPasteListener enableCutCopyPaste(AbstractTableViewer tableViewer, EditingDomain editingDomain, Setting setting) { if (!TableViewer.class.isInstance(tableViewer)) { - return; + return null; } - cutCopyPasteListener = new CutCopyPasteListener((TableViewer) tableViewer, editingDomain, setting); + return new CutCopyPasteListener((TableViewer) tableViewer, editingDomain, setting); } @Override @@ -122,7 +123,6 @@ public class TableControlRCPRenderer extends TableControlSWTRenderer { final Setting setting = getEMFFormsDatabinding().getSetting(getDMRToMultiReference(), getViewModelContext().getDomainModel()); cutCopyPasteListener.rootDomainModelChanged(setting); - } } |