* AbstractVTKNodeMap needs an overridable postCommit() method which is
executed after doCommit() finishes successfully. This is needed in an
extending editor to know the first moment in time when the editor has
been initialized properly.
* Allow customization of FitToWindow action created by Plant3DEditor
gitlab #117
Change-Id: I50a36740e579664ddab83b659b79220b5d33c135
(cherry picked from commit
370a955304d3aeacfdd59aa42d875c6142499dfd)
ExceptionUtils.logAndShowError("Cannot commit editor changes", e);
}
});
ExceptionUtils.logAndShowError("Cannot commit editor changes", e);
}
});
} catch (InvocationTargetException | InterruptedException e) {
LOGGER.error("Unexpected exception", e);
}
}
} catch (InvocationTargetException | InterruptedException e) {
LOGGER.error("Unexpected exception", e);
}
}
+
+ protected void postCommit() {}
+
protected void commit(WriteGraph graph) throws DatabaseException {
synchronized(syncMutex) {
if (DEBUG) System.out.println("Commit");
protected void commit(WriteGraph graph) throws DatabaseException {
synchronized(syncMutex) {
if (DEBUG) System.out.println("Commit");
import org.eclipse.jface.action.Action;
import org.simantics.g3d.vtk.Activator;
import org.simantics.g3d.vtk.common.VtkView;
import org.eclipse.jface.action.Action;
import org.simantics.g3d.vtk.Activator;
import org.simantics.g3d.vtk.common.VtkView;
-import org.simantics.utils.threads.AWTThread;
import vtk.vtkProp;
import vtk.vtkProp3D;
import vtk.vtkProp;
import vtk.vtkProp3D;
import java.util.Set;
import org.eclipse.jface.action.Action;
import java.util.Set;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
protected IMappingSchema<Resource, INode> getSchema(ReadGraph graph) throws DatabaseException {
IMappingSchema<Resource,INode> schema = SchemaBuilder.getSchema(graph);
return schema;
protected IMappingSchema<Resource, INode> getSchema(ReadGraph graph) throws DatabaseException {
IMappingSchema<Resource,INode> schema = SchemaBuilder.getSchema(graph);
return schema;
- private class FitToWindow extends Action {
+ protected class FitToWindow extends Action {
private List<INode> selected;
public FitToWindow(List<INode> selected) {
super("Fit to Window");
private List<INode> selected;
public FitToWindow(List<INode> selected) {
super("Fit to Window");
}
protected void createFocusMenu(IMenuManager m, List<INode> selected) {
}
protected void createFocusMenu(IMenuManager m, List<INode> selected) {
- m.add(new FitToWindow(selected));
+ m.add(createFitToWindowAction(selected));
if (!selected.isEmpty()) {
List<vtkProp3D> actors = new ArrayList<>();
if (!selected.isEmpty()) {
List<vtkProp3D> actors = new ArrayList<>();
+
+ protected IAction createFitToWindowAction(List<INode> selected) {
+ return new FitToWindow(selected);
+ }
+
private IContentOutlinePage createOutline() {
if (rootNode == null || selectionProvider == null)
return null;
private IContentOutlinePage createOutline() {
if (rootNode == null || selectionProvider == null)
return null;