diff options
| author | pguilet | 2018-02-06 09:48:25 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2018-02-07 09:06:52 +0000 |
| commit | 67a251c510a2bcda77621ce5de17497390f3bf89 (patch) | |
| tree | d360b743e8ca23ff907a46fc960db316dae09cdd | |
| parent | c9c7184aa7254469922ba873adce99ebd876b23e (diff) | |
| download | org.eclipse.sirius-67a251c510a2bcda77621ce5de17497390f3bf89.tar.gz org.eclipse.sirius-67a251c510a2bcda77621ce5de17497390f3bf89.tar.xz org.eclipse.sirius-67a251c510a2bcda77621ce5de17497390f3bf89.zip | |
[529879] Fix lock decoration missing because of original modification
Removing the TooltipAwareNavigatorDecoratingLabelProvider makes lock
decorations not refreshing properly in aird editor when lock status is
changed from Model explorer view.
So instead this patch changes the equal method of ViewpointItemImpl and
RepresentationDescriptionItemImpl to discriminate items from one session
to items from another and avoid mixing those in different aird editor.
Bug: 529879
Change-Id: I1faa95854e197886f8db3b2aac9622a92b7dfca6
Signed-off-by: pguilet <pierre.guilet@obeo.fr>
4 files changed, 25 insertions, 16 deletions
diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/views/session/ViewpointItemTest.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/views/session/ViewpointItemTest.java index f5df3bdcb4..d65e02a393 100644 --- a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/views/session/ViewpointItemTest.java +++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/views/session/ViewpointItemTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES. + * Copyright (c) 2010, 2018 THALES GLOBAL SERVICES. * 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 @@ -12,9 +12,12 @@ package org.eclipse.sirius.tests.unit.diagram.views.session; import static org.junit.Assert.assertNotEquals; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; +import org.eclipse.sirius.business.api.session.Session; +import org.eclipse.sirius.business.api.session.factory.SessionFactory; import org.eclipse.sirius.ui.tools.api.views.common.item.ViewpointItem; import org.eclipse.sirius.ui.tools.internal.views.common.item.ViewpointItemImpl; import org.eclipse.sirius.viewpoint.description.DescriptionFactory; @@ -31,16 +34,10 @@ public class ViewpointItemTest extends TestCase { private static final String A_STRING = "a string"; - private static final String ANOTHER_STRING = "another string"; - - private static final String A_NAME = "a name"; - private Viewpoint viewpoint; private Object parent1 = A_STRING; - private Object parent2 = ANOTHER_STRING; - private ViewpointItem item; private ViewpointItem item2; @@ -49,6 +46,10 @@ public class ViewpointItemTest extends TestCase { private Viewpoint viewpoint2; + private ViewpointItemImpl item4; + + private String representationsFilePath = "/org.eclipse.sirius.tests.junit/data/unit/refresh/sessionWith2SemanticModels/My.aird"; + /** * {@inheritDoc} */ @@ -61,10 +62,14 @@ public class ViewpointItemTest extends TestCase { newResource.getContents().add(viewpoint); newResource.getContents().add(viewpoint2); + URI sessionResourceURI = URI.createPlatformPluginURI(representationsFilePath, true); + final Session session = SessionFactory.INSTANCE.createSession(sessionResourceURI, new NullProgressMonitor()); + final Session session2 = SessionFactory.INSTANCE.createSession(sessionResourceURI, new NullProgressMonitor()); - item = new ViewpointItemImpl(null, viewpoint, parent1); - item2 = new ViewpointItemImpl(null, viewpoint, parent1); - item3 = new ViewpointItemImpl(null, viewpoint2, parent1); + item = new ViewpointItemImpl(session, viewpoint, parent1); + item2 = new ViewpointItemImpl(session, viewpoint, parent1); + item3 = new ViewpointItemImpl(session, viewpoint2, parent1); + item4 = new ViewpointItemImpl(session2, viewpoint2, parent1); } @@ -75,6 +80,7 @@ public class ViewpointItemTest extends TestCase { assertTrue(item.hashCode() == item2.hashCode()); assertFalse(item.hashCode() == item3.hashCode()); assertFalse(item2.hashCode() == item3.hashCode()); + assertFalse(item4.hashCode() == item3.hashCode()); } /** @@ -84,7 +90,7 @@ public class ViewpointItemTest extends TestCase { assertEquals(item, item2); assertNotEquals(item, item3); assertNotEquals(item2, item3); - + assertNotEquals(item3, item4); } } diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java index 36fcfe914e..e4f55fae75 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/graphicalcomponents/GraphicalRepresentationHandler.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017 Obeo. + * Copyright (c) 2017, 2018 Obeo. * 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 @@ -66,6 +66,7 @@ import org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonC import org.eclipse.sirius.ui.tools.internal.views.common.navigator.sorter.CommonItemSorter; import org.eclipse.sirius.ui.tools.internal.views.modelexplorer.DeleteActionHandler; import org.eclipse.sirius.ui.tools.internal.views.modelexplorer.RenameActionHandler; +import org.eclipse.sirius.ui.tools.internal.views.modelexplorer.TooltipAwareNavigatorDecoratingLabelProvider; import org.eclipse.sirius.ui.tools.internal.wizards.CreateRepresentationWizard; import org.eclipse.sirius.ui.tools.internal.wizards.pages.SiriusRepresentationWithInactiveStatusLabelProvider; import org.eclipse.sirius.viewpoint.DAnalysis; @@ -789,7 +790,7 @@ public class GraphicalRepresentationHandler implements SessionManagerListener { if (labelProvider != null) { treeViewer.setLabelProvider(labelProvider); } else { - treeViewer.setLabelProvider(new SiriusRepresentationWithInactiveStatusLabelProvider()); + treeViewer.setLabelProvider(new TooltipAwareNavigatorDecoratingLabelProvider(new SiriusRepresentationWithInactiveStatusLabelProvider())); } treeViewer.setSorter(new CommonItemSorter()); diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/common/item/RepresentationDescriptionItemImpl.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/common/item/RepresentationDescriptionItemImpl.java index 2590facb9a..df415a3f52 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/common/item/RepresentationDescriptionItemImpl.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/common/item/RepresentationDescriptionItemImpl.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2017 THALES GLOBAL SERVICES. + * Copyright (c) 2008, 2018 THALES GLOBAL SERVICES. * 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 @@ -142,6 +142,7 @@ public class RepresentationDescriptionItemImpl implements org.eclipse.sirius.ui. if (obj instanceof RepresentationDescriptionItemImpl) { final RepresentationDescriptionItemImpl rdiObj = (RepresentationDescriptionItemImpl) obj; result = EqualityHelper.areEquals(this.representationDescription, rdiObj.representationDescription); + result = result && this.parent.equals(rdiObj.parent); } } return result; diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/common/item/ViewpointItemImpl.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/common/item/ViewpointItemImpl.java index a5a4050b60..c2519fe214 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/common/item/ViewpointItemImpl.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/common/item/ViewpointItemImpl.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2017 THALES GLOBAL SERVICES and others. + * Copyright (c) 2009, 2018 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 @@ -107,6 +107,7 @@ public class ViewpointItemImpl implements ViewpointItem, Comparable<ViewpointIte if (obj instanceof ViewpointItemImpl) { final ViewpointItemImpl objItem = (ViewpointItemImpl) obj; result = EqualityHelper.areEquals(this.viewpoint, objItem.viewpoint); + result = result && this.session.equals(objItem.session); } } return result; @@ -114,7 +115,7 @@ public class ViewpointItemImpl implements ViewpointItem, Comparable<ViewpointIte @Override public int hashCode() { - return viewpoint.hashCode() + parent.hashCode(); + return viewpoint.hashCode() + session.hashCode(); } @Override |
