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;
@Override
public void run() {
+ nodeMap.setChangeTracking(false);
nodeMap.populate();
+ nodeMap.setChangeTracking(true);
panel.addListener(new RenderListener() {
-
- @Override
- public void preRender() {
-
- }
-
- @Override
- public void postRender() {
- panel.removeListener(this);
-
- try {
- P3DUtil.finalizeDBLoad2(rootNode);
- if (nodeMap.isRangeModified());
- nodeMap.commit("Load sync");
- } catch (Exception e) {
- ExceptionUtils.logAndShowError("Failed to load model correctly", e);
- }
-
- List<vtkProp3D> props = new ArrayList<>();
- collectProps(rootNode, props);
- fitToWindow(props);
- }
- });
+
+ @Override
+ public void preRender() {
+
+ }
+
+ @Override
+ public void postRender() {
+ panel.removeListener(this);
+
+ try {
+ P3DUtil.finalizeDBLoad2(rootNode);
+ if (nodeMap.getMapping().isRangeModified())
+ nodeMap.commit("Load sync");
+ } catch (Exception e) {
+ ExceptionUtils.logAndShowError("Failed to load model correctly", e);
+ }
+
+ onEditorInitializationComplete();
+
+ List<vtkProp3D> props = new ArrayList<>();
+ collectProps(rootNode, props);
+ fitToWindow(props);
+ }
+ });
}
});
-
+
+ }
+
+ /**
+ * This can be overridden by clients to perform extra initialization tasks
+ */
+ protected void onEditorInitializationComplete() {
}
protected IMappingSchema<Resource, INode> getSchema(ReadGraph graph) throws DatabaseException {
}
}
- private class FitToWindow extends Action {
+ protected class FitToWindow extends Action {
private List<INode> selected;
public FitToWindow(List<INode> selected) {
super("Fit to Window");
}
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<>();
}
}
}
-
+
+ protected IAction createFitToWindowAction(List<INode> selected) {
+ return new FitToWindow(selected);
+ }
+
private IContentOutlinePage createOutline() {
if (rootNode == null || selectionProvider == null)
return null;