diff options
| author | Maxime Porhel | 2015-08-04 10:20:09 +0000 |
|---|---|---|
| committer | Maxime Porhel | 2015-08-04 10:21:47 +0000 |
| commit | 7decff7276c865bf5d53401704f4380df9bcfc2b (patch) | |
| tree | 1200436c077cd19451a7d856a847f41b81171771 | |
| parent | f42f1c6154a4d682635140fbd5e37c151ea3ad0b (diff) | |
| download | org.eclipse.sirius-7decff7276c865bf5d53401704f4380df9bcfc2b.tar.gz org.eclipse.sirius-7decff7276c865bf5d53401704f4380df9bcfc2b.tar.xz org.eclipse.sirius-7decff7276c865bf5d53401704f4380df9bcfc2b.zip | |
[473263] Reinit the permission autorithy lock status listener.
Bug: 473263
Change-Id: I3b2516df1f220308d27f118a75b0daa6d8185c71
Signed-off-by: Maxime Porhel <maxime.porhel@obeo.fr>
3 files changed, 17 insertions, 1 deletions
diff --git a/plugins/org.eclipse.sirius.table.ui/src/org/eclipse/sirius/table/ui/tools/internal/editor/AbstractDTableEditor.java b/plugins/org.eclipse.sirius.table.ui/src/org/eclipse/sirius/table/ui/tools/internal/editor/AbstractDTableEditor.java index 3dc75548f0..ad4922e400 100644 --- a/plugins/org.eclipse.sirius.table.ui/src/org/eclipse/sirius/table/ui/tools/internal/editor/AbstractDTableEditor.java +++ b/plugins/org.eclipse.sirius.table.ui/src/org/eclipse/sirius/table/ui/tools/internal/editor/AbstractDTableEditor.java @@ -52,6 +52,8 @@ import org.eclipse.sirius.business.api.session.SessionManager; import org.eclipse.sirius.common.tools.DslCommonPlugin; import org.eclipse.sirius.common.tools.api.interpreter.IInterpreter; import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor; +import org.eclipse.sirius.ecore.extender.business.api.permission.IPermissionAuthority; +import org.eclipse.sirius.ecore.extender.business.api.permission.PermissionAuthorityRegistry; import org.eclipse.sirius.table.business.internal.refresh.DTableElementSynchronizerSpec; import org.eclipse.sirius.table.metamodel.table.DTable; import org.eclipse.sirius.table.metamodel.table.DTableElementSynchronizer; @@ -466,6 +468,12 @@ public abstract class AbstractDTableEditor extends AbstractDTreeEditor implement uiSession.detachEditor(this); uiSession.attachEditor(this); } + // Reinit the lock status listener. + if (dRepresentationLockStatusListener != null) { + IPermissionAuthority permissionAuthority = PermissionAuthorityRegistry.getDefault().getPermissionAuthority(tableModel); + permissionAuthority.removeAuthorityListener(dRepresentationLockStatusListener); + initCollaborativeIPermissionAuthority(tableModel); + } } } diff --git a/plugins/org.eclipse.sirius.tree.ui/src/org/eclipse/sirius/tree/ui/tools/internal/editor/DTreeEditor.java b/plugins/org.eclipse.sirius.tree.ui/src/org/eclipse/sirius/tree/ui/tools/internal/editor/DTreeEditor.java index a6e590daed..2eb808f65c 100644 --- a/plugins/org.eclipse.sirius.tree.ui/src/org/eclipse/sirius/tree/ui/tools/internal/editor/DTreeEditor.java +++ b/plugins/org.eclipse.sirius.tree.ui/src/org/eclipse/sirius/tree/ui/tools/internal/editor/DTreeEditor.java @@ -45,6 +45,8 @@ import org.eclipse.sirius.business.api.session.Session; import org.eclipse.sirius.business.api.session.SessionManager; import org.eclipse.sirius.common.tools.api.interpreter.IInterpreter; import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor; +import org.eclipse.sirius.ecore.extender.business.api.permission.IPermissionAuthority; +import org.eclipse.sirius.ecore.extender.business.api.permission.PermissionAuthorityRegistry; import org.eclipse.sirius.tools.api.interpreter.InterpreterRegistry; import org.eclipse.sirius.tree.DTree; import org.eclipse.sirius.tree.DTreeElementSynchronizer; @@ -313,6 +315,12 @@ public class DTreeEditor extends AbstractDTreeEditor implements org.eclipse.siri uiSession.detachEditor(this); uiSession.attachEditor(this); } + // Reinit the lock status listener. + if (dRepresentationLockStatusListener != null) { + IPermissionAuthority permissionAuthority = PermissionAuthorityRegistry.getDefault().getPermissionAuthority(treeModel); + permissionAuthority.removeAuthorityListener(dRepresentationLockStatusListener); + initCollaborativeIPermissionAuthority(treeModel); + } } } diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java index 8af1a87543..13149f86b8 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java @@ -182,7 +182,7 @@ public abstract class AbstractDTreeEditor extends EditorPart implements ISelecti protected Image frozenRepresentationImage; /** CDO specific {@link IAuthorityListener}. */ - private IAuthorityListener dRepresentationLockStatusListener; + protected IAuthorityListener dRepresentationLockStatusListener; /** Singleton instance of the Image for the LOCK_BY_ME status */ private Image lockByMeImage; |
