import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.simantics.db.Resource;
import org.simantics.db.exception.DatabaseException;
import org.simantics.modeling.ui.Activator;
-import org.simantics.ui.workbench.action.ChooseActionRequest;
-import org.simantics.utils.ui.workbench.WorkbenchUtils;
+import org.simantics.ui.workbench.action.DefaultActions;
public class SCLExpressionView extends ViewPart {
}
private static void openResource(Shell shell, Resource resource) {
- try {
- ISelection input = new StructuredSelection(resource);
- String perspectiveId = WorkbenchUtils.getCurrentPerspectiveId();
- // Try the doubleClick-extensions
- Simantics.getSession().asyncRequest(new ChooseActionRequest(shell, input, perspectiveId, false, true));
- } catch (NumberFormatException e) {
- return;
- }
+ DefaultActions.performDefaultAction(shell, new StructuredSelection(resource));
}
@Override
package org.simantics.ui.workbench.action;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
session.asyncRequest(new ChooseActionRequest(shell, null, input, WorkbenchUtils.getCurrentPerspectiveId(), rememberAction, alwaysAsk, neverPromptForAction));
}
+ /**
+ * Perform a default workbench action on the specified input object using
+ * {@link ChooseActionRequest} from the current thread. The current thread
+ * must be the SWT UI thread.
+ *
+ * @param control the control contained
+ */
+ public static void performDefaultAction(Control control, Object input) {
+ new PerformDefaultAction("Perform Default Action", control, input).run();
+ }
+
}
/*******************************************************************************
- * Copyright (c) 2012 Association for Decentralized Information Management in
- * Industry THTH ry.
+ * Copyright (c) 2012, 2017 Association for Decentralized Information Management
+ * in Industry THTH ry.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
*******************************************************************************/
package org.simantics.ui.workbench.action;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.Action;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
-import org.simantics.db.Resource;
+import org.simantics.db.common.procedure.adapter.ProcedureAdapter;
import org.simantics.ui.SimanticsUI;
+import org.simantics.ui.internal.Activator;
import org.simantics.utils.ui.workbench.WorkbenchUtils;
/**
public class PerformDefaultAction extends Action {
private Control control;
- private Resource component;
+ private Object input;
- public PerformDefaultAction(String name, Control control, Resource component) {
+ public PerformDefaultAction(String name, Control control, Object input) {
super(name);
this.control = control;
- this.component = component;
+ this.input = input;
}
@Override
if (window != null)
shell = window.getShell();
}
- SimanticsUI.getSession().asyncRequest(new ChooseActionRequest(shell, control, component, perspectiveId));
+ SimanticsUI.getSession().asyncRequest(
+ new ChooseActionRequest(shell, control, input, perspectiveId),
+ new ProcedureAdapter<Object>() {
+ @Override
+ public void exception(Throwable t) {
+ Activator.getDefault().getLog().log(
+ new Status(IStatus.ERROR, Activator.PLUGIN_ID,
+ "Failed to choose action for input " + input + ", see exception for details.", t));
+ }
+ });
}
}
\ No newline at end of file