use of gov.sandia.n2a.ui.eq.tree.NodePart in project n2a by frothga.
the class PanelEquationTree method moveSelected.
public void moveSelected(int direction) {
if (locked)
return;
TreePath path = tree.getSelectionPath();
if (path == null)
return;
NodeBase nodeBefore = (NodeBase) path.getLastPathComponent();
NodeBase parent = (NodeBase) nodeBefore.getParent();
if (// Only parts support $metadata.gui.order
parent instanceof NodePart) {
// First check if we can move in the filtered (visible) list.
int indexBefore = model.getIndexOfChild(parent, nodeBefore);
int indexAfter = indexBefore + direction;
if (indexAfter >= 0 && indexAfter < model.getChildCount(parent)) {
// Then convert to unfiltered indices.
NodeBase nodeAfter = (NodeBase) model.getChild(parent, indexAfter);
indexBefore = parent.getIndex(nodeBefore);
indexAfter = parent.getIndex(nodeAfter);
PanelModel.instance.undoManager.add(new Move((NodePart) parent, indexBefore, indexAfter));
}
}
}
use of gov.sandia.n2a.ui.eq.tree.NodePart in project n2a by frothga.
the class PanelEquationTree method loadRootFromDB.
public void loadRootFromDB(MNode doc) {
if (record == doc)
return;
if (record != null) {
tree.stopEditing();
// Save tree state for current record, but only if it's better than the previously-saved state.
if (focusCache.get(record) == null || tree.getSelectionPath() != null)
focusCache.put(record, new StoredPath(tree));
}
record = doc;
try {
root = new NodePart(new MPart((MPersistent) record));
root.build();
root.findConnections();
// triggers repaint, but may be too slow
model.setRoot(root);
updateLock();
// next call to repaintSouth() will repaint everything
needsFullRepaint = true;
StoredPath sp = focusCache.get(record);
if (sp == null) {
tree.expandRow(0);
tree.setSelectionRow(0);
} else {
sp.restore(tree);
}
} catch (Exception e) {
System.err.println("Exception while parsing model: " + e);
e.printStackTrace();
}
}
Aggregations