diff options
| author | Maxime PORHEL | 2014-04-01 07:35:40 +0000 |
|---|---|---|
| committer | Maxime PORHEL | 2014-04-02 09:22:26 +0000 |
| commit | 47215779f12a8d69693471db64da5550e19673bc (patch) | |
| tree | c17e6bc1c4409be4db0da8e54cc01edf8ea9ab75 | |
| parent | 5b3575d07690f60f842e94f47c5ad8b40b971045 (diff) | |
| download | org.eclipse.sirius-47215779f12a8d69693471db64da5550e19673bc.tar.gz org.eclipse.sirius-47215779f12a8d69693471db64da5550e19673bc.tar.xz org.eclipse.sirius-47215779f12a8d69693471db64da5550e19673bc.zip | |
[431634] Additional cleanup
Several dispose have been completed, a final static image has been
removed (its descriptor is still use as constant, the image is not
created on each call, as it is contained in the DiagramUIPlugin image
cache.
Bug: 431634
Change-Id: I9c279d5a590e17764e5cf8934d2ef2f720ca2546
Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
8 files changed, 45 insertions, 29 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java index cc43d82096..95e135bbb9 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java @@ -273,4 +273,10 @@ public class DeleteFromDiagramAction extends RetargetAction implements IObjectAc return Lists.newArrayList(); } + @Override + public void dispose() { + selection = null; + super.dispose(); + } + } diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java index 6119ce4ff3..0473141d07 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 THALES GLOBAL SERVICES. + * Copyright (c) 2007, 2014 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.emf.transaction.TransactionalEditingDomain; import org.eclipse.emf.transaction.util.TransactionUtil; +import org.eclipse.gef.Disposable; import org.eclipse.gef.EditPart; import org.eclipse.gef.RootEditPart; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; @@ -50,7 +51,7 @@ import org.eclipse.ui.PlatformUI; * @author lredor * */ -public class HideDDiagramElementLabelAction extends Action implements IObjectActionDelegate { +public class HideDDiagramElementLabelAction extends Action implements IObjectActionDelegate, Disposable { /** The selection. */ private ISelection selection; @@ -236,11 +237,14 @@ public class HideDDiagramElementLabelAction extends Action implements IObjectAct if (s instanceof DiagramOutlinePage.TreeSelectionWrapper) { // Action of the outline this.setEnabled(HideDDiagramElementLabelAction.isEnabled(((DiagramOutlinePage.TreeSelectionWrapper) s).toList())); - } else if (s instanceof IStructuredSelection) { // Action of the tabber or this.setEnabled(HideDDiagramElementLabelAction.isEnabled(((IStructuredSelection) s).toList())); } + } + @Override + public void dispose() { + selection = null; } } diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java index ed7c4a1c12..1b2b635336 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 THALES GLOBAL SERVICES. + * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -65,9 +65,7 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib * @see org.eclipse.sirius.diagram.tools.internal.editor.tabbar.TabbarContribution#create(org.eclipse.swt.widgets.ToolBar) */ public void create(final ToolBarManager tb, String groupId) { - tb.insertAfter(groupId, createContributionItem(tb)); - } /** @@ -186,6 +184,7 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib menuManager.dispose(); menuManager = null; } + tooltips = null; listener = null; } @@ -197,7 +196,7 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib */ private class TabbarContributionItem extends ContributionItem { - private ToolItem layersItem; + private ToolItem menuItem; private ToolBarManager toolBarManager; @@ -207,13 +206,13 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib @Override public void fill(final ToolBar parent, final int index) { - layersItem = new ToolItem(parent, SWT.DROP_DOWN, index); - layersItem.setToolTipText(getLabel()); + menuItem = new ToolItem(parent, SWT.DROP_DOWN, index); + menuItem.setToolTipText(getLabel()); computeEnable(); - layersItem.setImage(getMenuImage()); - layersItem.addSelectionListener(new SelectionAdapter() { + menuItem.setImage(getMenuImage()); + menuItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { final int offset = computeOffset(parent); @@ -237,21 +236,26 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib final DDiagram editorDiagram = (DDiagram) editor.getRepresentation(); IPermissionAuthority permissionAuthority = PermissionAuthorityRegistry.getDefault().getPermissionAuthority(editor.getSession().getSessionResource().getResourceSet()); canEditInstance = permissionAuthority.canEditInstance(editorDiagram); - layersItem.setEnabled(canEditInstance); + menuItem.setEnabled(canEditInstance); } } @Override public void dispose() { doDispose(); + if (menuItem != null) { + menuItem.dispose(); + menuItem = null; + } + toolBarManager = null; super.dispose(); } @Override public void update() { super.update(); - if (layersItem != null && !layersItem.isDisposed()) { - layersItem.setImage(getMenuImage()); + if (menuItem != null && !menuItem.isDisposed()) { + menuItem.setImage(getMenuImage()); computeEnable(); } } diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java index fcadb75c48..0562d8b14d 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2014 THALES GLOBAL SERVICES. + * Copyright (c) 2011, 2014 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -35,7 +35,6 @@ import org.eclipse.sirius.diagram.ui.edit.api.part.IDDiagramEditPart; import org.eclipse.sirius.diagram.ui.provider.DiagramUIPlugin; import org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath; import org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds; -import org.eclipse.swt.graphics.Image; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.IWorkbenchPage; @@ -66,17 +65,13 @@ public class LayoutingModeSwitchingAction extends DiagramAction { private static final String MESSAGE_STATUS_LINE_LAYOUTING_MODE_IS_OFF = ""; //$NON-NLS-1$ /** - * Icon used in the tabbar to allow end-user to activate layouting mode. + * Icon used in the tabbar to allow end-user to activate layouting mode. It + * is also used in the editor's status line to indicate that LayoutingMode + * is active. */ private static final ImageDescriptor ACTIVATE_LAYOUTING_MODE_IMAGE_DESCRIPTOR = DiagramUIPlugin.Implementation.getBundledImageDescriptor(DiagramImagesPath.LAYOUTING_MODE_ACTIVE_ICON); /** - * The Image used in the editor's status line to indicate that LayoutingMode - * is on. - */ - private static final Image ACTIVATE_LAYOUTING_MODE_IMAGE = DiagramUIPlugin.getPlugin().getImage(ACTIVATE_LAYOUTING_MODE_IMAGE_DESCRIPTOR); - - /** * The {@link DDiagram} on witch the layouting mode should be switched. */ private DDiagram ddiagram; @@ -132,7 +127,7 @@ public class LayoutingModeSwitchingAction extends DiagramAction { // we update it according to the DDiagram layouting mode status if (this.ddiagram != null && this.ddiagram.isIsInLayoutingMode()) { String statusMessage = MESSAGE_STATUS_LINE_LAYOUTING_MODE_IS_ON; - statusLineManager.setMessage(ACTIVATE_LAYOUTING_MODE_IMAGE, statusMessage); + statusLineManager.setMessage(DiagramUIPlugin.getPlugin().getImage(ACTIVATE_LAYOUTING_MODE_IMAGE_DESCRIPTOR), statusMessage); } else { statusLineManager.setMessage(MESSAGE_STATUS_LINE_LAYOUTING_MODE_IS_OFF); } diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java index b5150eb450..f010eaba71 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 THALES GLOBAL SERVICES. + * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -78,6 +78,7 @@ public class TabbarAlignMenuManager extends AlignMenuManager { @Override public void dispose() { removeAll(); + page = null; super.dispose(); } diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java index 769abb8e25..9841df1851 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012 THALES GLOBAL SERVICES. + * Copyright (c) 2012, 2014 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -60,6 +60,7 @@ public class TabbarRouterMenuManager extends RouterMenuManager { @Override public void dispose() { removeAll(); + page = null; super.dispose(); } diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java index d65287eda0..ecfb7824b8 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 THALES GLOBAL SERVICES. + * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -76,6 +76,7 @@ public class TabbarSelectMenuManager extends SelectMenuManager { @Override public void dispose() { removeAll(); + page = null; super.dispose(); } diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java index 3a32fa9200..a34049caed 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012 THALES GLOBAL SERVICES. + * Copyright (c) 2012, 2014 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -123,7 +123,11 @@ public class ZoomExtensionContributionFactory extends SiriusTabbarExtensionContr @Override public void dispose() { super.dispose(); - page.removePartListener(listener); + if (page != null) { + page.removePartListener(listener); + page = null; + } + listener = null; } } |
