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

📄 knowledgeflowapp.java

📁 代码是一个分类器的实现,其中使用了部分weka的源代码。可以将项目导入eclipse运行
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        JToolBar fixedTools2 = new JToolBar();    fixedTools2.setOrientation(JToolBar.VERTICAL);    fixedTools2.setFloatable(false);    fixedTools2.add(m_pointerB);    fixedTools2.add(m_helpB);    fixedTools2.add(m_stopB);    m_helpB.setPreferredSize(dP);    m_helpB.setMaximumSize(dP);    toolBarPanel.add(fixedTools2, BorderLayout.EAST);    m_saveB.addActionListener(new ActionListener() {	public void actionPerformed(ActionEvent e) {	  saveLayout();	}      });    m_loadB.addActionListener(new ActionListener() {	public void actionPerformed(ActionEvent e) {	  loadLayout();	}      });    m_stopB.addActionListener(new ActionListener() {	public void actionPerformed(ActionEvent e) {	  Vector components = BeanInstance.getBeanInstances();	  for (int i = 0; i < components.size(); i++) {	    Object temp = ((BeanInstance)components.elementAt(i)).getBean();	    if (temp instanceof BeanCommon) {	      ((BeanCommon)temp).stop();	    }	  }	}      });    m_helpB.addActionListener(new ActionListener() {	public void actionPerformed(ActionEvent ae) {	  popupHelp();	}      });    m_newB.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent ae) {          clearLayout();        }      });    final int STANDARD_TOOLBAR = 0;    final int WEKAWRAPPER_TOOLBAR = 1;    int toolBarType = STANDARD_TOOLBAR;    // set up wrapper toolbars    for (int i = 0; i < TOOLBARS.size(); i++) {      Vector tempBarSpecs = (Vector)TOOLBARS.elementAt(i);            // name for the tool bar      String tempBarName = (String)tempBarSpecs.elementAt(0);            // Used for weka leaf packages       Box singletonHolderPanel = null;      // name of the bean component to handle this class of weka algorithms      String tempBeanCompName = (String)tempBarSpecs.elementAt(1);      // a JPanel holding an instantiated bean + label ready to be added      // to the current toolbar      JPanel tempBean;      // the root package for weka algorithms      String rootPackage = "";      weka.gui.HierarchyPropertyParser hpp = null;      Hashtable hpps = null;      // Is this a wrapper toolbar?      if (tempBeanCompName.compareTo("null") != 0) {	tempBean = null;	toolBarType = WEKAWRAPPER_TOOLBAR;	rootPackage = (String)tempBarSpecs.elementAt(2);        //	hpp = (weka.gui.HierarchyPropertyParser)tempBarSpecs.elementAt(3);        hpps = (Hashtable)tempBarSpecs.elementAt(3);	try {	  Beans.instantiate(null, tempBeanCompName);	} catch (Exception ex) {	  // ignore	  System.err.println("Failed to instantiate: "+tempBeanCompName);	  break;	}      } else {	toolBarType = STANDARD_TOOLBAR;      }      // a toolbar to hold buttons---one for each algorithm      JToolBar tempToolBar = new JToolBar();      //      System.err.println(tempToolBar.getLayout());      //      tempToolBar.setLayout(new FlowLayout());      int z = 2;      if (toolBarType == WEKAWRAPPER_TOOLBAR) {        Enumeration enm = hpps.keys();        while (enm.hasMoreElements()) {          String root = (String) enm.nextElement();          String userPrefix = "";          hpp = (HierarchyPropertyParser) hpps.get(root);          if (!hpp.goTo(rootPackage)) {            System.err.println("**** Processing user package... ");            //            System.exit(1);            userPrefix = root+".";          }          String [] primaryPackages = hpp.childrenValues();          for (int kk = 0; kk < primaryPackages.length; kk++) {            hpp.goToChild(primaryPackages[kk]);            // check to see if this is a leaf - if so then there are no            // sub packages            if (hpp.isLeafReached()) {              if (singletonHolderPanel == null) {                singletonHolderPanel = Box.createHorizontalBox();                singletonHolderPanel.setBorder(javax.swing.BorderFactory.                                               createTitledBorder(tempBarName));              }              String algName = hpp.fullValue();              tempBean = instantiateToolBarBean(true,                                                tempBeanCompName, algName);              if (tempBean != null) {                // tempToolBar.add(tempBean);                singletonHolderPanel.add(tempBean);              }              hpp.goToParent();            } else {              // make a titledborder JPanel to hold all the schemes in this              // package              //	    JPanel holderPanel = new JPanel();              Box holderPanel = Box.createHorizontalBox();              holderPanel.setBorder(javax.swing.BorderFactory.                                    createTitledBorder(userPrefix+primaryPackages[kk]));              processPackage(holderPanel, tempBeanCompName, hpp);              tempToolBar.add(holderPanel);            }          }          if (singletonHolderPanel != null) {            tempToolBar.add(singletonHolderPanel);            singletonHolderPanel = null;          }        }      } else {	Box holderPanel = Box.createHorizontalBox();	 holderPanel.setBorder(javax.swing.BorderFactory.			       createTitledBorder(tempBarName));	for (int j = z; j < tempBarSpecs.size(); j++) {	  tempBean = null;	  tempBeanCompName = (String)tempBarSpecs.elementAt(j);	  tempBean = 	    instantiateToolBarBean((toolBarType == WEKAWRAPPER_TOOLBAR),				   tempBeanCompName, "");	  if (tempBean != null) {	    // set tool tip text (if any)	    // setToolTipText(tempBean)	    holderPanel.add(tempBean);	  } 	}	tempToolBar.add(holderPanel);      }            JScrollPane tempJScrollPane =         createScrollPaneForToolBar(tempToolBar);      // ok, now create tabbed pane to hold this toolbar      m_toolBars.addTab(tempBarName, null, 			tempJScrollPane,			tempBarName);          }    toolBarPanel.add(m_toolBars, BorderLayout.CENTER);    //    add(m_toolBars, BorderLayout.NORTH);    add(toolBarPanel, BorderLayout.NORTH);  }  private JScrollPane createScrollPaneForToolBar(JToolBar tb) {    JScrollPane tempJScrollPane =       new JScrollPane(tb,                       JScrollPane.VERTICAL_SCROLLBAR_NEVER,                      JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);        Dimension d = tb.getPreferredSize();    tempJScrollPane.setMinimumSize(new Dimension((int)d.getWidth(),                                                 (int)(d.getHeight()+15)));    tempJScrollPane.setPreferredSize(new Dimension((int)d.getWidth(),                                                   (int)(d.getHeight()+15)));    tempJScrollPane.getHorizontalScrollBar().setUnitIncrement(        m_ScrollBarIncrementComponents);    return tempJScrollPane;  }  private void processPackage(JComponent holderPanel,			      String tempBeanCompName,			      weka.gui.HierarchyPropertyParser hpp) {    if (hpp.isLeafReached()) {      // instantiate a bean and add it to the holderPanel      //      System.err.println("Would add "+hpp.fullValue());      String algName = hpp.fullValue();      JPanel tempBean = 	instantiateToolBarBean(true, tempBeanCompName, algName);      if (tempBean != null) {	holderPanel.add(tempBean);      }      hpp.goToParent();      return;    }    String [] children = hpp.childrenValues();    for (int i = 0; i < children.length; i++) {      hpp.goToChild(children[i]);      processPackage(holderPanel, tempBeanCompName, hpp);    }    hpp.goToParent();  }  /**   * Instantiates a bean for display in the toolbars   *   * @param wekawrapper true if the bean to be instantiated is a wekawrapper   * @param tempBeanCompName the name of the bean to instantiate   * @param algName holds the name of a weka algorithm to configure the   * bean with if it is a wekawrapper bean   * @return a JPanel holding the instantiated (and configured bean)   */  private JPanel instantiateToolBarBean(boolean wekawrapper, 					String tempBeanCompName,					String algName) {    Object tempBean;    if (wekawrapper) {      try {	tempBean = Beans.instantiate(null, tempBeanCompName);      } catch (Exception ex) {	System.err.println("Failed to instantiate :"+tempBeanCompName			   +"KnowledgeFlowApp.instantiateToolBarBean()");	return null;      }      if (tempBean instanceof WekaWrapper) {	//	algName = (String)tempBarSpecs.elementAt(j);	Class c = null;	try {	  c = Class.forName(algName);	} catch (Exception ex) {	  System.err.println("Can't find class called: "+algName);	  return null;	}	try {	  Object o = c.newInstance();	  ((WekaWrapper)tempBean).setWrappedAlgorithm(o);	} catch (Exception ex) {	  System.err.println("Failed to configure "+tempBeanCompName			     +" with "+algName);	  return null;	}      }    } else {      try {	tempBean = Beans.instantiate(null, tempBeanCompName);      } catch (Exception ex) {	ex.printStackTrace();	System.err.println("Failed to instantiate :"+tempBeanCompName			   +"KnowledgeFlowApp.setUpToolBars()");	return null;      }    }        if (tempBean instanceof BeanContextChild) {      m_bcSupport.add(tempBean);    }    if (tempBean instanceof Visible) {      ((Visible)tempBean).getVisual().scale(3);    }    return makeHolderPanelForToolBarBean(tempBeanCompName, tempBean,                                          wekawrapper, algName, false);  }  /**   * Instantiates (by making a serialized copy) the supplied   * template meta bean for display in the user tool bar   *    * @param bean the prototype MetaBean to display in the toolbar   */  private JPanel instantiateToolBarMetaBean(MetaBean bean) {    // copy the bean via serialization    ((Visible)bean).getVisual().removePropertyChangeListener(this);    bean.removePropertyChangeListenersSubFlow(this);    Object copy = null;    try {      SerializedObject so = new SerializedObject(bean);      copy = (MetaBean)so.getObject();    } catch (Exception ex) {      ex.printStackTrace();      return null;    }    ((Visible)bean).getVisual().addPropertyChangeListener(this);    bean.addPropertyChangeListenersSubFlow(this);    String displayName ="";    //    if (copy instanceof Visible) {      ((Visible)copy).getVisual().scale(3);      displayName = ((Visible)copy).getVisual().getText();    }    return makeHolderPanelForToolBarBean(displayName,                                         copy,                                         false,                                         null,                                         true);  }  private JPanel makeHolderPanelForToolBarBean(final String tempName,                                               Object tempBean,                                               boolean wekawrapper,                                               String algName,                                               final boolean metabean) {    // ---------------------------------------    JToggleButton tempButton;    final JPanel tempP = new JPanel();    JLabel tempL = new JLabel();    tempL.setFont(new Font("Monospaced", Font.PLAIN, 10));    String labelName = (wekawrapper == true)       ? algName       : tempName;    labelName = labelName.substring(labelName.lastIndexOf('.')+1, 				    labelName.length());    tempL.setText(" "+labelName+" ");    tempL.setHorizontalAlignment(JLabel.CENTER);    tempP.setLayout(new BorderLayout());    if (tempBean instanceof Visible) {      BeanVisual bv = ((Visible)tempBean).getVisual();      tempButton = 	new JToggleButton(bv.getStaticIcon());      int width = bv.getStaticIcon().getIconWidth();      int height = bv.getStaticIcon().getIconHeight();            JPanel labelPanel = 	multiLineLabelPanel(labelName, width);      tempP.add(labelPanel, BorderLayout.SOUTH);    } else {      tempButton = new JToggleButton();      tempP.add(tempL, BorderLayout.SOUTH);    }    tempP.add(tempButton, BorderLayout.NORTH);    //    tempP.add(tempL, BorderLayout.SOUTH);        //  holderPanel.add(tempP);    //    tempToolBar.add(tempP);    m_toolBarGroup.add(tempButton);        // add an action listener for the button here    final Object tempBN = tempBean;    final JToggleButton fButton = tempButton;    //	  final JToggleButton tempButton2 = tempButton;    tempButton.addActionListener(new ActionListener() {	public void actionPerformed(ActionEvent e) {          boolean changeCursor = true;	  try {	    m_toolBarBean = null;            if (metabean) {              if ((e.getModifiers() & ActionEvent.SHIFT_MASK) != 0) {                changeCursor = false;                m_toolBarGroup.remove(fButton);                m_userBoxPanel.remove(tempP);                m_userBoxPanel.revalidate();                m_userComponents.remove(tempBN);                if (m_firstUserComponentOpp) {                  installWindowListenerForSavingUserBeans();                  m_firstUserComponentOpp = false;                }                if (m_userComponents.size() == 0) {                  m_toolBars.removeTabAt(m_toolBars.getTabCount() - 1);                  m_userToolBar = null;                }              } else {                SerializedObject so = new SerializedObject(tempBN);                MetaBean copy = (MetaBean)so.getObject();                ((Visible)copy).getVisual().                  addPropertyChangeListener(KnowledgeFlowApp.this);                copy.addPropertyChangeListenersSubFlow(KnowledgeFlowApp.this);

⌨️ 快捷键说明

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