Search in sources :

Example 1 with ChangeOrder

use of gov.sandia.n2a.ui.eq.undo.ChangeOrder in project n2a by frothga.

the class PanelEquationTree method moveSelected.

public void moveSelected(int direction) {
    if (container.locked)
        return;
    TreePath path = tree.getLeadSelectionPath();
    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);
            MainFrame.instance.undoManager.apply(new ChangeOrder((NodePart) parent, indexBefore, indexAfter));
        }
    }
}
Also used : NodeBase(gov.sandia.n2a.ui.eq.tree.NodeBase) TreePath(javax.swing.tree.TreePath) ChangeOrder(gov.sandia.n2a.ui.eq.undo.ChangeOrder) NodePart(gov.sandia.n2a.ui.eq.tree.NodePart)

Aggregations

NodeBase (gov.sandia.n2a.ui.eq.tree.NodeBase)1 NodePart (gov.sandia.n2a.ui.eq.tree.NodePart)1 ChangeOrder (gov.sandia.n2a.ui.eq.undo.ChangeOrder)1 TreePath (javax.swing.tree.TreePath)1