1 /*******************************************************************************
2  * Copyright (c) 2000, 2017 IBM Corporation and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     IBM Corporation - initial API and implementation
13  *******************************************************************************/
14 package org.eclipse.ui.tests.api;
15 
16 import java.util.ArrayList;
17 import java.util.Iterator;
18 import java.util.List;
19 
20 import org.eclipse.jface.viewers.ISelection;
21 import org.eclipse.jface.viewers.ISelectionChangedListener;
22 import org.eclipse.jface.viewers.ISelectionProvider;
23 import org.eclipse.jface.viewers.SelectionChangedEvent;
24 import org.eclipse.jface.viewers.StructuredSelection;
25 
26 public class MockSelectionProvider implements ISelectionProvider {
27 
28 	private List<ISelectionChangedListener> listeners = new ArrayList<>(3);
29 
30 	/**
31 	 * Fires out a selection to all listeners.
32 	 */
fireSelection()33 	public void fireSelection() {
34 		fireSelection(new SelectionChangedEvent(this, StructuredSelection.EMPTY));
35 	}
36 
37 	/**
38 	 * Fires out a selection to all listeners.
39 	 */
fireSelection(SelectionChangedEvent event)40 	public void fireSelection(SelectionChangedEvent event) {
41 		Iterator<ISelectionChangedListener> iter = listeners.iterator();
42 		while (iter.hasNext()) {
43 			iter.next().selectionChanged(event);
44 		}
45 	}
46 
47 	@Override
addSelectionChangedListener(ISelectionChangedListener listener)48 	public void addSelectionChangedListener(ISelectionChangedListener listener) {
49 		listeners.add(listener);
50 	}
51 
52 	@Override
getSelection()53 	public ISelection getSelection() {
54 		return StructuredSelection.EMPTY;
55 	}
56 
57 	@Override
removeSelectionChangedListener( ISelectionChangedListener listener)58 	public void removeSelectionChangedListener(
59 			ISelectionChangedListener listener) {
60 		listeners.remove(listener);
61 	}
62 
63 	@Override
setSelection(ISelection selection)64 	public void setSelection(ISelection selection) {
65 	}
66 }
67 
68