📄 nodespanel.java
字号:
ValueFunction fn = ZeusParser.Expression(s);
if ( fn != null && (fn instanceof NumericFn || fn instanceof ElseFn) )
field.setForeground(Color.black);
else
field.setForeground(Color.red);
}
}
protected class SymMouseAction extends MouseAdapter
implements AttributeSelector {
protected JTextComponent field = null;
protected AttributeDialog dialog = null;
protected AttributeTreeModel attributeTreeModel = null;
public SymMouseAction() {
attributeTreeModel = new AttributeTreeModel();
attributeTreeModel.setFactModels(preconditionsModel,
postconditionsModel);
}
public void mouseClicked(MouseEvent e) {
if ( SwingUtilities.isRightMouseButton(e) ) {
field = (JTextComponent)e.getSource();
if ( dialog == null )
dialog = new AttributeDialog(
(Frame)SwingUtilities.getRoot(field),attributeTreeModel);
field = (JTextComponent)e.getSource();
dialog.setLocationRelativeTo(field);
dialog.display(this);
}
}
public void attributeSelected(String attribute) {
try {
Document doc = field.getDocument();
int length = doc.getLength();
AttributeSet a = doc.getDefaultRootElement().getAttributes();
doc.insertString(length,attribute,a);
}
catch(BadLocationException e) {
}
}
}
protected class SymRenameAction implements RenameListener {
public void nameChanged(RenameEvent e) {
String prev = (String)e.getOriginal();
String curr = (String)e.getCurrent();
String s;
s = costfield.getText();
costfield.setText(Misc.substitute(s,prev,curr));
s = timefield.getText();
timefield.setText(Misc.substitute(s,prev,curr));
}
}
protected class SummaryTaskNodeRenderer implements GraphNodeRenderer {
public Component getNodeRendererComponent(Graph g, GraphNode node) {
TaskNode obj = (TaskNode)node.getUserObject();
return new JLabel(obj.getName(),JLabel.CENTER);
}
}
protected class NodesToolBar extends JToolBar implements ActionListener {
protected HelpWindow helpWin;
protected JToggleButton helpBtn;
protected JButton nodeBtn;
protected JButton guardBtn;
protected JButton selectBtn;
protected JButton selectAllBtn;
protected JButton hideBtn;
protected JButton showBtn;
protected JButton collapseBtn;
protected JButton expandBtn;
protected JButton deleteBtn;
protected JButton cutBtn;
protected JButton copyBtn;
protected JButton pasteBtn;
protected JButton recomputeBtn;
protected JButton redrawBtn;
public NodesToolBar(boolean is_script) {
setBackground(Color.lightGray);
setBorder(new BevelBorder(BevelBorder.LOWERED));
setFloatable(false);
String sep = System.getProperty("file.separator");
String path = SystemProps.getProperty("gif.dir") + "generator" + sep;
// Node Buttons
nodeBtn = new JButton("Node"); // new ImageIcon(path + "node.gif"));
nodeBtn.setMargin(new Insets(0,0,0,0));
add(nodeBtn);
nodeBtn.setToolTipText("New task node");
nodeBtn.addActionListener(this);
if ( is_script ) {
guardBtn = new JButton("Guard"); // new ImageIcon(path + "guard.gif"));
guardBtn.setMargin(new Insets(0,0,0,0));
add(guardBtn);
guardBtn.setToolTipText("New conditional node");
guardBtn.addActionListener(this);
}
addSeparator();
// Draw Buttons
recomputeBtn = new JButton(new ImageIcon(path + "recompute.gif"));
recomputeBtn.setMargin(new Insets(0,0,0,0));
add(recomputeBtn);
recomputeBtn.setToolTipText("Recompute node positions");
recomputeBtn.addActionListener(this);
redrawBtn = new JButton(new ImageIcon(path + "redraw.gif"));
redrawBtn.setMargin(new Insets(0,0,0,0));
add(redrawBtn);
redrawBtn.setToolTipText("Redraw");
redrawBtn.addActionListener(this);
addSeparator();
selectBtn = new JButton(new ImageIcon(path + "select.gif"));
selectBtn.setMargin(new Insets(0,0,0,0));
add(selectBtn);
selectBtn.setToolTipText("Select nodes");
selectBtn.addActionListener(this);
selectAllBtn = new JButton(new ImageIcon(path + "selectAll.gif"));
selectAllBtn.setMargin(new Insets(0,0,0,0));
add(selectAllBtn);
selectAllBtn.setToolTipText("Select all nodes");
selectAllBtn.addActionListener(this);
addSeparator();
collapseBtn = new JButton(new ImageIcon(path + "collapse.gif"));
collapseBtn.setMargin(new Insets(0,0,0,0));
add(collapseBtn);
collapseBtn.setToolTipText("Collapse nodes");
collapseBtn.addActionListener(this);
expandBtn = new JButton(new ImageIcon(path + "expand.gif"));
expandBtn.setMargin(new Insets(0,0,0,0));
add(expandBtn);
expandBtn.setToolTipText("Expand nodes");
expandBtn.addActionListener(this);
addSeparator();
hideBtn = new JButton(new ImageIcon(path + "hide.gif"));
hideBtn.setMargin(new Insets(0,0,0,0));
add(hideBtn);
hideBtn.setToolTipText("Hide nodes");
hideBtn.addActionListener(this);
showBtn = new JButton(new ImageIcon(path + "show.gif"));
showBtn.setMargin(new Insets(0,0,0,0));
add(showBtn);
showBtn.setToolTipText("Show nodes");
showBtn.addActionListener(this);
addSeparator();
// Delete Button
deleteBtn = new JButton(new ImageIcon(path + "delete1.gif"));
deleteBtn.setMargin(new Insets(0,0,0,0));
add(deleteBtn);
deleteBtn.setToolTipText("Delete");
deleteBtn.addActionListener(this);
addSeparator();
// Cut Button
cutBtn = new JButton(new ImageIcon(path + "cut.gif"));
cutBtn.setMargin(new Insets(0,0,0,0));
add(cutBtn);
cutBtn.setToolTipText("Cut");
cutBtn.addActionListener(this);
// Copy Button
copyBtn = new JButton(new ImageIcon(path + "copy.gif"));
copyBtn.setMargin(new Insets(0,0,0,0));
add(copyBtn);
copyBtn.setToolTipText("Copy");
copyBtn.addActionListener(this);
// Paste Button
pasteBtn = new JButton(new ImageIcon(path + "paste.gif"));
pasteBtn.setMargin(new Insets(0,0,0,0));
add(pasteBtn);
pasteBtn.setToolTipText("Paste");
pasteBtn.addActionListener(this);
addSeparator();
// Help Button
helpBtn = new JToggleButton(new ImageIcon(path + "help.gif"));
helpBtn.setMargin(new Insets(0,0,0,0));
add(helpBtn);
helpBtn.setToolTipText("Help");
helpBtn.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if ( src == nodeBtn )
model.addNewNode(SummaryTaskModel.BASIC_NODE);
else if ( src == guardBtn )
model.addNewNode(SummaryTaskModel.GUARD_NODE);
else if ( src == recomputeBtn )
graph.recompute();
else if ( src == redrawBtn )
graph.redraw();
else if ( src == selectBtn )
graph.select();
else if ( src == selectAllBtn )
graph.selectAll();
else if ( src == collapseBtn )
graph.collapse();
else if ( src == expandBtn )
graph.expand();
else if ( src == hideBtn )
graph.hide();
else if ( src == showBtn )
graph.show();
else if ( src == deleteBtn )
deleteSelectedNodes();
else if ( src == copyBtn )
clipboard = graph.getSelectedNodes();
else if ( src == pasteBtn )
model.addNodes(clipboard);
else if ( src == cutBtn )
clipboard = cutSelectedNodes();
else if ( src == helpBtn ) {
if ( helpBtn.isSelected() ) {
helpWin = new HelpWindow(SwingUtilities.getRoot(this),
getLocation(),"generator","Summary Task Decomposition Graph");
helpWin.setSource(helpBtn);
}
else
helpWin.dispose();
}
}
}
BasicFactModel getPreconditionsModel() {
return preconditionsModel;
}
BasicFactModel getPostconditionsModel() {
return postconditionsModel;
}
void save() {
task.setNodes(model.getNodes());
task.setLinks(model.getLinks());
task.setCostFn(costfield.getText());
task.setTimeFn(timefield.getText());
if ( task.isScript() )
((PlanScript)task).setAutorun(autorun.isSelected());
}
protected void deleteSelectedNodes() {
model.removeNodes(graph.getSelectedNodes());
graph.redraw();
}
protected GraphNode[] cutSelectedNodes() {
GraphNode[] out = graph.getSelectedNodes();
model.removeNodes(out);
graph.redraw();
return out;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -