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

📄 tasknodepanel.java

📁 人工智能中Agent开发包。多 Agent 系统是处理自治 Agent 之间知识层的协作问题
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    gridBagLayout.setConstraints(toolbar,gbc);
    rightPanel.add(toolbar);

    gbc = new GridBagConstraints();
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbc.anchor = GridBagConstraints.WEST;
    gbc.fill = GridBagConstraints.BOTH;
    gbc.weightx = gbc.weighty = 1;
    gbc.insets = new Insets(8,8,8,8);
    gridBagLayout.setConstraints(postconditionsPanel,gbc);
    rightPanel.add(postconditionsPanel);
  }

  protected class GroupToolBar extends JToolBar
                    implements ActionListener {

     protected HelpWindow    helpWin;
     protected JToggleButton helpBtn;
     protected JButton       newBtn;
     protected JButton       deleteBtn;
     protected JButton       copyBtn;
     protected GroupManager  groupManager;

     public GroupToolBar(GroupManager groupManager) {
        this.groupManager = groupManager;

        setBackground(Color.lightGray);
        setBorder(new BevelBorder(BevelBorder.LOWERED));
        setMargin(new Insets(0,0,0,0));
        setFloatable(false);

        String sep = System.getProperty("file.separator");
        String path = SystemProps.getProperty("gif.dir") + "generator" + sep;

        // New Button
        newBtn = new JButton(new ImageIcon(path + "new1.gif"));
	newBtn.setMargin(new Insets(0,0,0,0));
        add(newBtn);
        newBtn.setToolTipText("New group");
        newBtn.addActionListener(this);

        // Delete Button
        deleteBtn = new JButton(new ImageIcon(path + "delete1.gif"));
	deleteBtn.setMargin(new Insets(0,0,0,0));
        add(deleteBtn);
        deleteBtn.setToolTipText("Delete group");
        deleteBtn.addActionListener(this);

        // Clone Button
        copyBtn = new JButton(new ImageIcon(path + "copy.gif"));
	copyBtn.setMargin(new Insets(0,0,0,0));
        add(copyBtn);
        copyBtn.setToolTipText("Copy group");
        copyBtn.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 setEnabled(boolean set) {
        newBtn.setEnabled(set);
        deleteBtn.setEnabled(set);
        copyBtn.setEnabled(set);
        helpBtn.setEnabled(set);
     }

     public void actionPerformed(ActionEvent e)  {
        Object src = e.getSource();
        if ( src == newBtn )
           groupManager.newGroup();
        else if ( src == deleteBtn )
           groupManager.deleteGroup();
        else if ( src == copyBtn )
           groupManager.copyGroup();
        else if ( src == helpBtn ) {
          if ( helpBtn.isSelected() ) {
              Point pt = getLocation();
              helpWin = new HelpWindow(SwingUtilities.getRoot(this),
                 pt, "generator", "Task Node Conditions Group");
              helpWin.setSource(helpBtn);
          }
          else
              helpWin.dispose();
        }
     }
  }

  protected class SymRenameAction implements RenameListener {
     public void nameChanged(RenameEvent e) {
        Object src = e.getSource();
        if ( src == leftGroupManager || src == rightGroupManager ) {
           nameTable.put(e.getOriginal(),e.getCurrent());
        }
     }
  }
  protected class SymFocusAction implements FocusListener, ActionListener {
     public void focusGained(FocusEvent e) {
     }
     public void focusLost(FocusEvent e) {
        this.update(e);
     }
     public void actionPerformed(ActionEvent e) {
        this.update(e);
     }
     public void update(AWTEvent e) {
        Object src = e.getSource();
        if ( src == namefield ) {
           if ( previousName != null ) {
              String name = namefield.getText();
              if ( name == null ) {
                 errorMsg(0);
                 namefield.setText(previousName);
              }
              name = name.trim();
              if ( name.equals("") ) {
                 errorMsg(0);
                 namefield.setText(previousName);
              }
              if ( !previousName.equals(name) ) {
                 nameTable.put(previousName,name);
                 fireRenameAction(namefield,previousName,name);
              }
           }
        }
     }
  }

  protected void errorMsg(int tag) {
     JOptionPane.showMessageDialog(this,ERROR_MESSAGE[tag],
                                   "Error", JOptionPane.ERROR_MESSAGE);
  }

  GroupManager getPostconditionsManager() { return rightGroupManager; }
  GroupManager getPreconditionsManager()  { return leftGroupManager; }

  TaskNode getNode() {
     TaskNode node;
     if ( isConditionalNode )
        node = new ConditionalNode(namefield.getText());
     else
        node = new TaskNode(namefield.getText());
     node.setPreconditions(leftGroupManager.getManagerData());
     node.setPostconditions(rightGroupManager.getManagerData());
     return node;
  }

  Hashtable getNameTable() {
     return nameTable;
  }

  void reset(TaskNode node) {
     isConditionalNode = false;
     previousName = node.getName();
     namefield.setText(previousName);

     factPanel.removeAll();
     nameTable.clear();

     leftGroupManager.removeRelatedModel(rightGroupManager);
     rightGroupManager.removeRelatedModel(leftGroupManager);
     leftGroupManager.removeFactModelListener(rightGroupManager);
     leftGroupManager.resetManager(node.getAllPreconditions());
     rightGroupManager.resetManager(node.getAllPostconditions());

     postconditionsPanel.setToolBarState(true);
     rightGroupManager.setEditable(true);

     if ( node.isBeginNode() ) {
        namefield.setEditable(false);
        factPanel.add(rightPanel);
        toolbar.setEnabled(false);
        rightCombo.setEnabled(false);
        postAttrTable.setFactModel(rightGroupManager);
     }
     else if ( node.isEndNode() ) {
        namefield.setEditable(false);
        factPanel.add(leftPanel);
        preAttrTable.setFactModel(leftGroupManager);
     }
     else if ( node.isConditionalNode() ) {
        isConditionalNode = true;

        namefield.setEditable(true);
        factPanel.add(leftPanel);
        factPanel.add(rightPanel);
        toolbar.setEnabled(true);
        rightCombo.setEnabled(true);
        postconditionsPanel.setToolBarState(false);
        rightGroupManager.setEditable(false);
	leftGroupManager.addFactModelListener(rightGroupManager);

        preAttrTable.setFactModel(leftGroupManager);
        postAttrTable.setFactModel(leftGroupManager);

        rightGroupManager.resetManager(node.getAllPostconditions(),
           node.getPreconditions());
     }
     else {
        namefield.setEditable(true);
        factPanel.add(leftPanel);
        factPanel.add(rightPanel);
        toolbar.setEnabled(false);
        rightCombo.setEnabled(false);

        leftGroupManager.addRelatedModel(rightGroupManager);
        rightGroupManager.addRelatedModel(leftGroupManager);

        preAttrTable.setFactModels(leftGroupManager,rightGroupManager);
        postAttrTable.setFactModels(leftGroupManager,rightGroupManager);
     }
  }

  public void addRenameListener(RenameListener x) {
     nameListeners.add(RenameListener.class, x);
     leftGroupManager.addRenameListener(x);
     rightGroupManager.addRenameListener(x);
  }
  public void removeRenameListener(RenameListener x) {
     nameListeners.remove(RenameListener.class, x);
     leftGroupManager.removeRenameListener(x);
     rightGroupManager.removeRenameListener(x);
  }

  protected void fireRenameAction(Object src, Object prev, Object curr) {
     RenameEvent e = new RenameEvent(this,src,prev,curr);
     Object[] listeners = nameListeners.getListenerList();
     for(int i = listeners.length-2; i >= 0; i -= 2) {
        if (listeners[i] == RenameListener.class) {
           RenameListener l = (RenameListener)listeners[i+1];
           l.nameChanged(e);
        }
     }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -