]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/PageSettingsHandler.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / actions / PageSettingsHandler.java
1 /*******************************************************************************
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management
3  * in Industry THTH ry.
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
8  *
9  * Contributors:
10  *     VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.modeling.ui.actions;
13
14 import org.eclipse.core.commands.AbstractHandler;
15 import org.eclipse.core.commands.ExecutionEvent;
16 import org.eclipse.core.commands.ExecutionException;
17 import org.eclipse.ui.IWorkbenchPart;
18 import org.eclipse.ui.handlers.HandlerUtil;
19 import org.simantics.db.Resource;
20 import org.simantics.modeling.ui.diagram.PageSettingsDialog;
21 import org.simantics.modeling.ui.diagramEditor.DiagramEditor;
22 import org.simantics.ui.workbench.IResourceEditorInput;
23
24
25 /**
26  * A Handler that shows PageSettings Dialog for DiagramViewer
27  * 
28  * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
29  */
30 public class PageSettingsHandler extends AbstractHandler {
31
32     @Override
33     public Object execute(ExecutionEvent event) throws ExecutionException {
34         IWorkbenchPart ap = HandlerUtil.getActivePart(event);
35         if (ap instanceof DiagramEditor) {
36             DiagramEditor editor = (DiagramEditor) ap;
37             IResourceEditorInput input = (IResourceEditorInput)editor.getEditorInput();
38             Resource diagramResource = input.getResource();
39             if (diagramResource == null)
40                 return null;
41
42             PageSettingsDialog dialog = new PageSettingsDialog(diagramResource, ap.getSite().getShell());
43             if (dialog.open() == PageSettingsDialog.OK) {
44                 dialog.applySettings();
45             }
46         }
47         return null;
48     }
49
50 }