Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMickael ADAM2016-10-04 15:05:54 +0000
committerGerrit Code Review @ Eclipse.org2016-11-09 08:21:00 +0000
commit22d6cd8dcddee32ab067c07b742fadccd0847f41 (patch)
tree131fde39c2b31392f8da2e90a4e7ec1a6e8cda59 /plugins/infra/ui
parent567776b61bd3f399951d7ad182389e0ca9ecc487 (diff)
downloadorg.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')
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.widgets/icons/Remote.gifbin0 -> 996 bytes
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/editors/MultipleValueEditor.java8
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/util/PapyrusSelectionService.java124
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
new file mode 100644
index 00000000000..c9336298f15
--- /dev/null
+++ b/plugins/infra/ui/org.eclipse.papyrus.infra.widgets/icons/Remote.gif
Binary files differ
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;
+ }
+
+
+
+}

Back to the top