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

📄 knowledgeflowapp.java

📁 代码是一个分类器的实现,其中使用了部分weka的源代码。可以将项目导入eclipse运行
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
  private JButton m_loadB;  private JButton m_stopB;  private JButton m_helpB;  private JButton m_newB;  /**   * Reference to bean being manipulated   */  private BeanInstance m_editElement;  /**   * Event set descriptor for the bean being manipulated   */  private EventSetDescriptor m_sourceEventSetDescriptor;  /**   * Used to record screen coordinates during move, select and connect   * operations   */  private int m_oldX, m_oldY;  private int m_startX, m_startY;    /** The file chooser for selecting layout files */  protected JFileChooser m_FileChooser     = new JFileChooser(new File(System.getProperty("user.dir")));  protected LogPanel m_logPanel = new LogPanel(null, true);  protected BeanContextSupport m_bcSupport = new BeanContextSupport();  /** the extension for the serialized setups (Java serialization) */  public final static String FILE_EXTENSION = ".kf";  /** the extension for the serialized setups (Java serialization) */  public final static String FILE_EXTENSION_XML = ".kfml";    /** A filter to ensure only KnowledgeFlow files in binary format get shown in      the chooser */  protected FileFilter m_KfFilter =     new ExtensionFileFilter(FILE_EXTENSION,                             "KnowledgeFlow configuration files (*"                             + FILE_EXTENSION + ")");  /** A filter to ensure only KnowledgeFlow files in KOML format       get shown in the chooser */  protected FileFilter m_KOMLFilter =     new ExtensionFileFilter(KOML.FILE_EXTENSION,                             "KnowledgeFlow configuration files (*"                             + KOML.FILE_EXTENSION + ")");  /** A filter to ensure only KnowledgeFlow layout files in XML format get       shown in the chooser */  protected FileFilter m_XMLFilter =     new ExtensionFileFilter(FILE_EXTENSION_XML,                             "KnowledgeFlow layout files (*"                             + FILE_EXTENSION_XML + ")");  /** the scrollbar increment of the layout scrollpane */  protected int m_ScrollBarIncrementLayout = 20;  /** the scrollbar increment of the components scrollpane */  protected int m_ScrollBarIncrementComponents = 50;  /** the flow layout width */  protected int m_FlowWidth = 1024;  /** the flow layout height */  protected int m_FlowHeight = 768;  /** the preferred file extension */  protected String m_PreferredExtension = FILE_EXTENSION;    /** whether to store the user components in XML or in binary format */  protected boolean m_UserComponentsInXML = false;    /**   * Creates a new <code>KnowledgeFlowApp</code> instance.   */  public KnowledgeFlowApp() {    // Grab a fontmetrics object    JWindow temp = new JWindow();    temp.show();    temp.getGraphics().setFont(new Font("Monospaced", Font.PLAIN, 10));    m_fontM = temp.getGraphics().getFontMetrics();    temp.hide();    // some GUI defaults    try {      m_ScrollBarIncrementLayout = Integer.parseInt(          BEAN_PROPERTIES.getProperty(            "ScrollBarIncrementLayout", "" + m_ScrollBarIncrementLayout));      m_ScrollBarIncrementComponents = Integer.parseInt(          BEAN_PROPERTIES.getProperty(            "ScrollBarIncrementComponents", "" + m_ScrollBarIncrementComponents));      m_FlowWidth = Integer.parseInt(          BEAN_PROPERTIES.getProperty(            "FlowWidth", "" + m_FlowWidth));      m_FlowHeight = Integer.parseInt(          BEAN_PROPERTIES.getProperty(            "FlowHeight", "" + m_FlowHeight));      m_PreferredExtension = BEAN_PROPERTIES.getProperty(          "PreferredExtension", m_PreferredExtension);      m_UserComponentsInXML = Boolean.valueOf(          BEAN_PROPERTIES.getProperty(            "UserComponentsInXML", "" + m_UserComponentsInXML)).booleanValue();    }    catch (Exception ex) {      ex.printStackTrace();    }    // FileChooser    m_FileChooser.addChoosableFileFilter(m_KfFilter);    if (KOML.isPresent()) {      m_FileChooser.addChoosableFileFilter(m_KOMLFilter);    }    m_FileChooser.addChoosableFileFilter(m_XMLFilter);    if (m_PreferredExtension.equals(FILE_EXTENSION_XML))      m_FileChooser.setFileFilter(m_XMLFilter);    else if (KOML.isPresent() && m_PreferredExtension.equals(KOML.FILE_EXTENSION))      m_FileChooser.setFileFilter(m_KOMLFilter);    else      m_FileChooser.setFileFilter(m_KfFilter);    m_FileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);    m_bcSupport.setDesignTime(true);    m_beanLayout.setLayout(null);        // handle mouse events    m_beanLayout.addMouseListener(new MouseAdapter() {	public void mousePressed(MouseEvent me) {	  if (m_toolBarBean == null) {	    if (((me.getModifiers() & InputEvent.BUTTON1_MASK)		 == InputEvent.BUTTON1_MASK) && m_mode == NONE) {	      BeanInstance bi = BeanInstance.findInstance(me.getPoint());	      JComponent bc = null;	      if (bi != null) {		bc = (JComponent)(bi.getBean());	      }	      if (bc != null && (bc instanceof Visible)) {		m_editElement = bi;		m_oldX = me.getX();		m_oldY = me.getY();		m_mode = MOVING;	      }              if (m_mode != MOVING) {                m_mode = SELECTING;                m_oldX = me.getX();                m_oldY = me.getY();                m_startX = m_oldX;                m_startY = m_oldY;                Graphics2D gx = (Graphics2D)m_beanLayout.getGraphics();                gx.setXORMode(java.awt.Color.white);                //                gx.drawRect(m_oldX, m_oldY, m_oldX, m_oldY);                //                gx.drawLine(m_startX, m_startY, m_startX, m_startY);                gx.dispose();                m_mode = SELECTING;              }	    }	  }	}	public void mouseReleased(MouseEvent me) {	  if (m_editElement != null && m_mode == MOVING) {	    m_editElement = null;	    revalidate();	    m_beanLayout.repaint();	    m_mode = NONE;	  }          if (m_mode == SELECTING) {            revalidate();            m_beanLayout.repaint();            m_mode = NONE;            checkSubFlow(m_startX, m_startY, me.getX(), me.getY());          }	}	public void mouseClicked(MouseEvent me) {	  BeanInstance bi = BeanInstance.findInstance(me.getPoint());	  if (m_mode == ADDING || m_mode == NONE) {	    // try and popup a context sensitive menu if we have	    // been clicked over a bean.	    if (bi != null) {	      JComponent bc = (JComponent)bi.getBean();	      if (((me.getModifiers() & InputEvent.BUTTON1_MASK)		   != InputEvent.BUTTON1_MASK) || me.isAltDown()) {		doPopup(me.getPoint(), bi, me.getX(), me.getY());	      }	    } else {	      if (((me.getModifiers() & InputEvent.BUTTON1_MASK)		   != InputEvent.BUTTON1_MASK) || me.isAltDown()) {		// find connections if any close to this point		int delta = 10;		deleteConnectionPopup(BeanConnection.		      getClosestConnections(new Point(me.getX(), me.getY()), 					    delta), me.getX(), me.getY());	      } else if (m_toolBarBean != null) {		// otherwise, if a toolbar button is active then 		// add the component		addComponent(me.getX(), me.getY());	      }	    }	  }		  if (m_mode == CONNECTING) {	    // turn off connecting points and remove connecting line	    m_beanLayout.repaint();	    Vector beanInstances = BeanInstance.getBeanInstances();	    for (int i = 0; i < beanInstances.size(); i++) {	      JComponent bean = 		(JComponent)((BeanInstance)beanInstances.elementAt(i)).		getBean();	      if (bean instanceof Visible) {		((Visible)bean).getVisual().setDisplayConnectors(false);	      }	    }	    if (bi != null) {	      boolean doConnection = false;	      if (!(bi.getBean() instanceof BeanCommon)) {		doConnection = true;	      } else {		// Give the target bean a chance to veto the proposed		// connection		if (((BeanCommon)bi.getBean()).		    connectionAllowed(m_sourceEventSetDescriptor)) {		  doConnection = true;		}	      }	      if (doConnection) {		// attempt to connect source and target beans                if (bi.getBean() instanceof MetaBean) {                  BeanConnection.doMetaConnection(m_editElement, bi,                                                  m_sourceEventSetDescriptor,                                                  m_beanLayout);                } else {                  BeanConnection bc =                     new BeanConnection(m_editElement, bi,                                        m_sourceEventSetDescriptor);                }	      }	      m_beanLayout.repaint();	    }	    m_mode = NONE;	    m_editElement = null;	    m_sourceEventSetDescriptor = null;	  }	}      });         m_beanLayout.addMouseMotionListener(new MouseMotionAdapter() {	public void mouseDragged(MouseEvent me) {	  if (m_editElement != null && m_mode == MOVING) {	    ImageIcon ic = ((Visible)m_editElement.getBean()).	      getVisual().getStaticIcon();	    int width = ic.getIconWidth() / 2;	    int height = ic.getIconHeight() / 2;            /*	    m_editElement.setX(m_oldX-width);                    m_editElement.setY(m_oldY-height); */            m_editElement.setXY(m_oldX-width,                                m_oldY-height);	    m_beanLayout.repaint();	    	    // note the new points	    m_oldX = me.getX(); m_oldY = me.getY();	  }          if (m_mode == SELECTING) {            m_beanLayout.repaint();            m_oldX = me.getX(); m_oldY = me.getY();          }	}	 public void mouseMoved(MouseEvent e) {	   if (m_mode == CONNECTING) {	     m_beanLayout.repaint();	     // note the new coordinates	     m_oldX = e.getX(); m_oldY = e.getY();	   }	 }       });          String date = (new SimpleDateFormat("EEEE, d MMMM yyyy"))       .format(new Date());     m_logPanel.logMessage("Weka Knowledge Flow was written by Mark Hall");     m_logPanel.logMessage("Weka Knowledge Flow");     m_logPanel.logMessage("(c) 2002-2005 Mark Hall");     m_logPanel.logMessage("web: http://www.cs.waikato.ac.nz/~ml/");     m_logPanel.logMessage( date);     m_logPanel.statusMessage("Welcome to the Weka Knowledge Flow");         JPanel p1 = new JPanel();     p1.setLayout(new BorderLayout());     p1.setBorder(javax.swing.BorderFactory.createCompoundBorder(			    javax.swing.BorderFactory.			    createTitledBorder("Knowledge Flow Layout"),                   javax.swing.BorderFactory.createEmptyBorder(0, 5, 5, 5)                   ));     final JScrollPane js = new JScrollPane(m_beanLayout);     p1.add(js, BorderLayout.CENTER);     js.getVerticalScrollBar().setUnitIncrement(m_ScrollBarIncrementLayout);     js.getHorizontalScrollBar().setUnitIncrement(m_ScrollBarIncrementLayout);     setLayout(new BorderLayout());          add(p1, BorderLayout.CENTER);     m_beanLayout.setSize(m_FlowWidth, m_FlowHeight);     Dimension d = m_beanLayout.getPreferredSize();     m_beanLayout.setMinimumSize(d);     m_beanLayout.setMaximumSize(d);     m_beanLayout.setPreferredSize(d);     add(m_logPanel, BorderLayout.SOUTH);          setUpToolBars();     loadUserComponents();  }    private Image loadImage(String path) {    Image pic = null;    java.net.URL imageURL = ClassLoader.getSystemResource(path);    if (imageURL == null) {      //      System.err.println("Warning: unable to load "+path);    } else {      pic = Toolkit.getDefaultToolkit().	getImage(imageURL);    }    return pic;  }  /**   * Describe <code>setUpToolBars</code> method here.   */  private void setUpToolBars() {    JPanel toolBarPanel = new JPanel();    toolBarPanel.setLayout(new BorderLayout());    // first construct the toolbar for saving, loading etc    JToolBar fixedTools = new JToolBar();    fixedTools.setOrientation(JToolBar.VERTICAL);    m_saveB = new JButton(new ImageIcon(loadImage(BeanVisual.ICON_PATH						  +"Save24.gif")));    m_saveB.setToolTipText("Save layout");    m_loadB = new JButton(new ImageIcon(loadImage(BeanVisual.ICON_PATH						  +"Open24.gif")));    m_stopB = new JButton(new ImageIcon(loadImage(BeanVisual.ICON_PATH						  +"Stop24.gif")));    m_helpB = new JButton(new ImageIcon(loadImage(BeanVisual.ICON_PATH						  +"Help24.gif")));    m_newB = new JButton(new ImageIcon(loadImage(BeanVisual.ICON_PATH						  +"New24.gif")));    m_stopB.setToolTipText("Stop all execution");    m_loadB.setToolTipText("Load layout");    m_helpB.setToolTipText("Display help");    m_newB.setToolTipText("Clear the layout");    Image tempI = loadImage(BeanVisual.ICON_PATH+"Pointer.gif");    m_pointerB = new JToggleButton(new ImageIcon(tempI));    m_pointerB.addActionListener(new ActionListener() {	public void actionPerformed(ActionEvent e) {	  m_toolBarBean = null;	  m_mode = NONE;	  setCursor(Cursor.		    getPredefinedCursor(Cursor.DEFAULT_CURSOR));	}      });    m_toolBarGroup.add(m_pointerB);    fixedTools.add(m_newB);    fixedTools.add(m_saveB);    fixedTools.add(m_loadB);    Dimension dP = m_saveB.getPreferredSize();    Dimension dM = m_saveB.getMaximumSize();    fixedTools.setFloatable(false);    m_pointerB.setPreferredSize(dP);    m_pointerB.setMaximumSize(dM);    toolBarPanel.add(fixedTools, BorderLayout.WEST);

⌨️ 快捷键说明

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