⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nodespanel.java

📁 人工智能中Agent开发包。多 Agent 系统是处理自治 Agent 之间知识层的协作问题
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
       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 + -