Skip to content

Package: ViewerSelectionProvider$1

ViewerSelectionProvider$1

nameinstructionbranchcomplexitylinemethod
selectionChanged(SelectionChangedEvent)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
{...}
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2013 RCP Vision (http://www.rcp-vision.com) and others.
3: * All rights reserved. This program and the accompanying materials
4: * are made available under the terms of the Eclipse Public License v1.0
5: * which accompanies this distribution, and is available at
6: * http://www.eclipse.org/legal/epl-v10.html
7: *
8: * Contributors:
9: * Lorenzo Bettini - initial API and implementation
10: *******************************************************************************/
11: package org.eclipse.emf.parsley.viewers;
12:
13: import java.util.ArrayList;
14: import java.util.Collection;
15:
16: import org.eclipse.jface.viewers.ISelection;
17: import org.eclipse.jface.viewers.ISelectionChangedListener;
18: import org.eclipse.jface.viewers.ISelectionProvider;
19: import org.eclipse.jface.viewers.SelectionChangedEvent;
20: import org.eclipse.jface.viewers.Viewer;
21:
22: /**
23: * A utility class that bridges a {@link Viewer} and a
24: * {@link ISelectionProvider}.
25: *
26: * @author Lorenzo Bettini
27: *
28: */
29: public class ViewerSelectionProvider implements ISelectionProvider {
30:
31:         /**
32:          * This keeps track of all the
33:          * {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are
34:          * listening.
35:          */
36:         private Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
37:
38:         private Viewer viewer;
39:
40:         public ViewerSelectionProvider(Viewer viewer) {
41:                 super();
42:                 this.viewer = viewer;
43:                 this.viewer
44:                                 .addSelectionChangedListener(createSelectionChangedListener());
45:         }
46:
47:         @Override
48:         public void addSelectionChangedListener(ISelectionChangedListener listener) {
49:                 selectionChangedListeners.add(listener);
50:         }
51:
52:         @Override
53:         public ISelection getSelection() {
54:                 return viewer.getSelection();
55:         }
56:
57:         @Override
58:         public void removeSelectionChangedListener(
59:                         ISelectionChangedListener listener) {
60:                 selectionChangedListeners.remove(listener);
61:         }
62:
63:         @Override
64:         public void setSelection(ISelection selection) {
65:                 for (ISelectionChangedListener listener : selectionChangedListeners) {
66:                         listener.selectionChanged(new SelectionChangedEvent(this, selection));
67:                 }
68:         }
69:
70:         protected ISelectionChangedListener createSelectionChangedListener() {
71:                 return new ISelectionChangedListener() {
72:                         @Override
73:                         public void selectionChanged(
74:                                         SelectionChangedEvent selectionChangedEvent) {
75:                                 setSelection(selectionChangedEvent.getSelection());
76:                         }
77:                 };
78:         }
79: }