diff options
| author | Maxime Porhel | 2015-08-04 10:20:09 +0000 |
|---|---|---|
| committer | Maxime Porhel | 2015-08-04 10:25:17 +0000 |
| commit | f7cfdc68fe504a604b371bed5e21267dcdccf719 (patch) | |
| tree | 3ea5c52c1c03b5f146d4750ed7655d51ae8fda7c | |
| parent | b55fd604e38ef864d8cb7676ca6b68526382a1fe (diff) | |
| download | org.eclipse.sirius-f7cfdc68fe504a604b371bed5e21267dcdccf719.tar.gz org.eclipse.sirius-f7cfdc68fe504a604b371bed5e21267dcdccf719.tar.xz org.eclipse.sirius-f7cfdc68fe504a604b371bed5e21267dcdccf719.zip | |
[473943] Reinit the permission autorithy lock status listener.
Bug: 473943
Change-Id: I4ed112bc942cd5a4c48246c069fc85567859a42f
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 1d6a87a064..ddd922b58d 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.metamodel.table.DTable; import org.eclipse.sirius.table.metamodel.table.provider.TableUIPlugin; import org.eclipse.sirius.table.tools.api.command.ITableCommandFactory; @@ -452,6 +454,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 a67e6cbbe2..a63fbdd83f 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.business.api.command.ITreeCommandFactory; @@ -303,6 +305,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 2ae520603d..1f495471c2 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 @@ -178,7 +178,7 @@ public abstract class AbstractDTreeEditor extends EditorPart implements DialectE 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; |
