/** * */ package agg.gui.treeview.path; import javax.swing.JOptionPane; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; import agg.editor.impl.EdRule; import agg.editor.impl.EdRuleScheme; import agg.gui.event.TreeViewEvent; import agg.gui.treeview.GraGraTreeView; import agg.gui.treeview.nodedata.GraGraTreeNodeData; /** * @author olga * */ @SuppressWarnings("serial") public class RuleSchemeTreeNode extends DefaultMutableTreeNode { public RuleSchemeTreeNode() {} public RuleSchemeTreeNode(final EdRuleScheme rs) { } public TreePath deleteMultiRule( final GraGraTreeView treeView, final DefaultMutableTreeNode delNode, final TreePath selPath, boolean withWarning) { final GraGraTreeNodeData data = (GraGraTreeNodeData) delNode.getUserObject(); final TreePath ruleschemePath = selPath.getParentPath(); if (ruleschemePath != null) { final DefaultMutableTreeNode ruleschemeNode = (DefaultMutableTreeNode) ruleschemePath .getLastPathComponent(); final GraGraTreeNodeData ruleschemeData = (GraGraTreeNodeData) ruleschemeNode .getUserObject(); if (data.getRule() != treeView.getCurrentRule()) { int answer = withWarning? treeView.removeWarning("Multi Rule"): 0; if (answer == JOptionPane.YES_OPTION) { int row = treeView.getTree().getRowForPath(selPath); treeView.fireTreeViewEvent(new TreeViewEvent(this, TreeViewEvent.DELETED, selPath)); treeView.getTreeModel().removeNodeFromParent(delNode); final EdRule r = data.getRule(); treeView.getGraGraStore().storeMultiRule(ruleschemeData.getRuleScheme(), r); ruleschemeData.getRuleScheme().removeMultiRule(r); row--; treeView.setEditPath(row); treeView.setFlagForNew(); treeView.fireTreeViewEvent(new TreeViewEvent(this, TreeViewEvent.SELECTED, treeView.getEditorPath())); return treeView.getSelectedPath(); } } else { int answer = withWarning? treeView.removeCurrentObjectWarning("Multi Rule"):0; if (answer == JOptionPane.YES_OPTION) { int row = treeView.getTree().getRowForPath(selPath); treeView.fireTreeViewEvent(new TreeViewEvent(this, TreeViewEvent.DELETED, selPath)); treeView.getTreeModel().removeNodeFromParent(delNode); EdRule r = data.getRule(); treeView.getGraGraStore().storeMultiRule(ruleschemeData.getRuleScheme(), r); ruleschemeData.getRuleScheme().removeMultiRule(r); row--; treeView.setEditPath(row); treeView.setFlagForNew(); treeView.fireTreeViewEvent(new TreeViewEvent(this, TreeViewEvent.SELECTED, treeView.getEditorPath())); return treeView.getSelectedPath(); } } } return selPath; } public TreePath deleteAmalgamatedRule( final GraGraTreeView treeView, final DefaultMutableTreeNode delNode, final TreePath selPath, boolean withWarning) { final TreePath ruleschemePath = selPath.getParentPath(); if (ruleschemePath != null) { final DefaultMutableTreeNode ruleschemeNode = (DefaultMutableTreeNode) ruleschemePath .getLastPathComponent(); int rsRow = treeView.getTree().getRowForPath(ruleschemePath); final GraGraTreeNodeData ruleschemeData = (GraGraTreeNodeData) ruleschemeNode.getUserObject(); treeView.fireTreeViewEvent(new TreeViewEvent(this,TreeViewEvent.DELETED, selPath)); treeView.getTreeModel().removeNodeFromParent(delNode); if (ruleschemeData.getRuleScheme() != null) ruleschemeData.getRuleScheme().removeAmalgamatedRule(); treeView.setEditPath(rsRow); treeView.setFlagForNew(); treeView.fireTreeViewEvent(new TreeViewEvent(this, TreeViewEvent.SELECTED, treeView.getEditorPath())); return treeView.getSelectedPath(); } return selPath; } }