diff options
author | Mickael ADAM | 2016-10-04 15:05:54 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2016-11-09 08:21:00 +0000 |
commit | 22d6cd8dcddee32ab067c07b742fadccd0847f41 (patch) | |
tree | 131fde39c2b31392f8da2e90a4e7ec1a6e8cda59 /plugins/infra/ui | |
parent | 567776b61bd3f399951d7ad182389e0ca9ecc487 (diff) | |
download | org.eclipse.papyrus-22d6cd8dcddee32ab067c07b742fadccd0847f41.tar.gz org.eclipse.papyrus-22d6cd8dcddee32ab067c07b742fadccd0847f41.tar.xz org.eclipse.papyrus-22d6cd8dcddee32ab067c07b742fadccd0847f41.zip |
Bug 501511 - [Documentation] A new documentation View for UML Element
shall be available.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=501511
- Add new Documentation View.
Change-Id: Iac879a5eb1e188dd59cd9bcd38d90bf0e756b83f
Signed-off-by: Mickael ADAM <mickael.adam@ALL4TEC.net>
Diffstat (limited to 'plugins/infra/ui')
3 files changed, 131 insertions, 1 deletions
diff --git a/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/icons/Remote.gif b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/icons/Remote.gif Binary files differnew file mode 100644 index 00000000000..c9336298f15 --- /dev/null +++ b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/icons/Remote.gif diff --git a/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultipleValueEditor.java b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultipleValueEditor.java index 8e97892b86d..575b9038a5e 100644 --- a/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultipleValueEditor.java +++ b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultipleValueEditor.java @@ -38,6 +38,7 @@ import org.eclipse.papyrus.infra.widgets.Activator; import org.eclipse.papyrus.infra.widgets.creation.ReferenceValueFactory; import org.eclipse.papyrus.infra.widgets.messages.Messages; import org.eclipse.papyrus.infra.widgets.providers.TreeCollectionContentProvider; +import org.eclipse.papyrus.infra.widgets.util.PapyrusSelectionService; import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.SelectionEvent; @@ -200,6 +201,7 @@ public class MultipleValueEditor<T extends IElementSelector> extends AbstractLis treeViewer = new TreeViewer(tree); treeViewer.setContentProvider(TreeCollectionContentProvider.instance); + PapyrusSelectionService.getInstance().setSelectionProvider(treeViewer); createListControls(); @@ -630,9 +632,13 @@ public class MultipleValueEditor<T extends IElementSelector> extends AbstractLis @Override public void dispose() { - if (modelProperty != null) { + if (null != modelProperty) { modelProperty.removeChangeListener(this); } + + if (null != treeViewer) { + PapyrusSelectionService.getInstance().unsetSelectionProvider(treeViewer); + } super.dispose(); } diff --git a/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/util/PapyrusSelectionService.java b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/util/PapyrusSelectionService.java new file mode 100644 index 00000000000..b91af0d3dfe --- /dev/null +++ b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/util/PapyrusSelectionService.java @@ -0,0 +1,124 @@ +/***************************************************************************** + * Copyright (c) 2016 CEA LIST 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 + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Mickael ADAM (ALL4TEC) mickael.adam@all4tec.net - Initial API and implementation + * + *****************************************************************************/ + +package org.eclipse.papyrus.infra.widgets.util; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.SelectionChangedEvent; + +/** + * Selection Service for Papyrus widget. Usually for widget instantiate with xwt where we can't use SelectionService like MultipleValueEditor. + */ +public class PapyrusSelectionService implements ISelectionChangedListener, ISelectionProvider { + + /** The instance. */ + private static PapyrusSelectionService instance; + + /** The current selection. */ + private ISelection selection; + + /** the list of registered listener. */ + private List<ISelectionChangedListener> listeners = new ArrayList<ISelectionChangedListener>(); + + /** + * get the instance of the singleton. + */ + public static PapyrusSelectionService getInstance() { + if (null == instance) { + instance = new PapyrusSelectionService(); + } + return instance; + } + + /** + * Constructor. + */ + private PapyrusSelectionService() { + // not to be called publicly + } + + /** + * Set selection provider. + */ + public void setSelectionProvider(final ISelectionProvider selection) { + selection.addSelectionChangedListener(this); + } + + /** + * Unset selection provider. + */ + public void unsetSelectionProvider(final ISelectionProvider selection) { + selection.removeSelectionChangedListener(this); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent) + */ + @Override + public void selectionChanged(final SelectionChangedEvent event) { + setSelection(event.getSelection()); + for (ISelectionChangedListener listener : listeners) { + listener.selectionChanged(event); + } + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) + */ + @Override + public void addSelectionChangedListener(final ISelectionChangedListener listener) { + listeners.add(listener); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection() + */ + @Override + public ISelection getSelection() { + return selection; + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) + */ + @Override + public void removeSelectionChangedListener(final ISelectionChangedListener listener) { + listeners.remove(listener); + } + + /** + * {@inheritDoc} + * + * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection) + */ + @Override + public void setSelection(final ISelection selection) { + this.selection = selection; + } + + + +} |