1 /*******************************************************************************
2 * Copyright (c) 2007, 2010 Association for Decentralized Information Management
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * VTT Technical Research Centre of Finland - initial API and implementation
11 *******************************************************************************/
12 package org.simantics.browsing.ui;
18 * This is an interface for resolvers whose purpose is to adapt data stored in
19 * Eclipse workbench's {@link ISelection} instances into the input data objects
20 * that are stored within GraphExplorer's {@link NodeContext} instances.
23 * This interface is needed to externalize the logic of converting external
24 * Workbench selections into GraphExplorer selections, so that GraphExplorer
25 * itself can stay generic.
28 * @author Tuukka Lehtonen
30 public interface SelectionDataResolver {
33 * Converts the specified selection element into the real data object contained by
34 * the selection to allow the GraphExplorer to generically look for those
35 * data objects within the input objects stored by {@link NodeContext}'s
36 * (see {@link BuiltinKeys#INPUT} and
37 * {@link NodeContext#getConstant(org.simantics.browsing.ui.NodeContext.ConstantKey)}
40 * @param selection a workbench selection
41 * @return an array of data objects resolved from the specified selection or
42 * <code>null</code> if nothing could be resolved.
44 Object resolve(Object selectionElement);