]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scenegraph.ui/src/org/simantics/scenegraph/ui/LinkToActiveWorkbenchPartHandler.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scenegraph.ui / src / org / simantics / scenegraph / ui / LinkToActiveWorkbenchPartHandler.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.scenegraph.ui;\r
13 \r
14 import org.eclipse.core.commands.AbstractHandler;\r
15 import org.eclipse.core.commands.Command;\r
16 import org.eclipse.core.commands.ExecutionEvent;\r
17 import org.eclipse.core.commands.ExecutionException;\r
18 import org.eclipse.core.commands.State;\r
19 import org.eclipse.ui.IWorkbenchPart;\r
20 import org.eclipse.ui.PlatformUI;\r
21 import org.eclipse.ui.commands.ICommandService;\r
22 import org.eclipse.ui.handlers.HandlerUtil;\r
23 \r
24 /**\r
25  * @author Tuukka Lehtonen\r
26  */\r
27 public class LinkToActiveWorkbenchPartHandler extends AbstractHandler {\r
28 \r
29     static final String COMMAND = "org.simantics.scenegraph.linkToActiveWorkbenchPart";\r
30     static final String STATE   = "org.simantics.scenegraph.linkToActiveWorkbenchPart.state";\r
31 \r
32     @Override\r
33     public Object execute(ExecutionEvent event) throws ExecutionException {\r
34         IWorkbenchPart part = HandlerUtil.getActivePart(event);\r
35         if (part == null || !(part instanceof SceneGraphViewPart))\r
36             return null;\r
37         SceneGraphViewPart sg = (SceneGraphViewPart) part;\r
38 \r
39         ICommandService service = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);\r
40         Command command = service.getCommand(COMMAND);\r
41         State state = command.getState(STATE);\r
42         Boolean value = (Boolean) state.getValue();\r
43         value = !value;\r
44         state.setValue(value);\r
45 \r
46         sg.linkToActiveWorkbenchPart(value);\r
47 \r
48         return null;\r
49     }\r
50 \r
51 }\r