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

📄 snns.java

📁 著名的神经网络工具箱
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    mLog = new JMenuItem("Log", KeyEvent.VK_L);
    mLog.setIcon(icons.getIcon("History16.gif"));
    mLog.getAccessibleContext().setAccessibleDescription("Log Panel");
    mLog.addActionListener(this);
    menu.add(mLog);

    menu.addSeparator();

    cbmiStatusPanel = new JCheckBoxMenuItem("Status panel", true);
    cbmiStatusPanel.addActionListener(this);
    menu.add(cbmiStatusPanel);

    if( properties.editable() ){
      mProperties = new JMenuItem("Properties...");
      mProperties.getAccessibleContext().setAccessibleDescription("Properties Editor");
      mProperties.addActionListener(this);
      menu.add(mProperties);
    }

    // Tools menu
    menu = new JMenu("Tools");
    menu.setMnemonic(KeyEvent.VK_T);
    menu.getAccessibleContext().setAccessibleDescription("Tools menu");
    menuBar.add(menu);

    mControl = new JMenuItem("Control Panel", KeyEvent.VK_C);
    mControl.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK));
    mControl.getAccessibleContext().setAccessibleDescription("Control panel");
    mControl.addActionListener(this);
    menu.add(mControl);

    mCascade = new JMenuItem("Cascade & TACOMA", KeyEvent.VK_S);
    mCascade.getAccessibleContext().setAccessibleDescription("Cascade correlation and TACOMA");
    mCascade.addActionListener(this);
    menu.add(mCascade);

    mAnalyzer = new JMenuItem("Analyzer", KeyEvent.VK_A);
    mAnalyzer.getAccessibleContext().setAccessibleDescription("Analyzer");
    mAnalyzer.addActionListener(this);
    menu.add(mAnalyzer);

    // Submenu "Create"
    mCreate = new JMenu("Create");
    mCreate.setMnemonic(KeyEvent.VK_R);
    mCreate.addActionListener(this);
    menu.add(mCreate);

      mLayer = new JMenuItem("Layers...", KeyEvent.VK_L);
      mLayer.addActionListener( this );
      mCreate.add(mLayer);

      mConnect = new JMenuItem("Connections...");
      mConnect.setEnabled( false );
      mConnect.addActionListener( this );
      mCreate.add(mConnect);

    // Pattern menu
    menu = new JMenu("Pattern");
    menu.setMnemonic(KeyEvent.VK_P);
    menu.getAccessibleContext().setAccessibleDescription("Pattern menu");
    menuBar.add(menu);

    mAddPattern = new JMenuItem("Add", KeyEvent.VK_A);
    mAddPattern.setIcon(icons.getIcon("addPattern.gif"));
//    mAddPattern.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
    mAddPattern.getAccessibleContext().setAccessibleDescription("Add new pattern");
    mAddPattern.addActionListener(this);
    menu.add(mAddPattern);

    mModifyPattern = new JMenuItem("Modify", KeyEvent.VK_M);
    mModifyPattern.setIcon(icons.getIcon("modifyPattern.gif"));
//    mModifyPattern.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
    mModifyPattern.getAccessibleContext().setAccessibleDescription("Modify current pattern");
    mModifyPattern.addActionListener(this);
    menu.add(mModifyPattern);

    mDeletePattern = new JMenuItem("Delete", KeyEvent.VK_D);
    mDeletePattern.setIcon(icons.getIcon("deletePattern.gif"));
//    mDeletePattern.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
    mDeletePattern.getAccessibleContext().setAccessibleDescription("Delete current pattern");
    mDeletePattern.addActionListener(this);
    menu.add(mDeletePattern );

    menu.addSeparator();

    mNewPatternSet = new JMenuItem("New Set", KeyEvent.VK_N);
    mNewPatternSet .setIcon(icons.getIcon("newPatternSet.gif"));
//    mNewPatternSet.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
    mNewPatternSet.getAccessibleContext().setAccessibleDescription("Delete current pattern");
    mNewPatternSet.addActionListener(this);
    menu.add(mNewPatternSet);
    mNewPatternSet.setEnabled(false);

    // Window menu
    mWindows = new JMenu("Window");
    mWindows.setMnemonic(KeyEvent.VK_W);
    mWindows.getAccessibleContext().setAccessibleDescription("Window menu");
    menuBar.add(mWindows);

    mCascadeW = new JMenuItem("Cascade", KeyEvent.VK_C);
    mCascadeW.getAccessibleContext().setAccessibleDescription("Cascade windows");
    mCascadeW.addActionListener(this);
    mWindows.add(mCascadeW);

    mCloseW = new JMenuItem("Close all", KeyEvent.VK_A);
    mCloseW.getAccessibleContext().setAccessibleDescription("Close all windows");
    mCloseW.addActionListener(this);
    mWindows.add(mCloseW);
/*
    mArrangeIcons = new JMenuItem("Arrange Icons", KeyEvent.VK_I);
    mArrangeIcons.getAccessibleContext().setAccessibleDescription("Arrange Icons");
    mArrangeIcons.addActionListener(this);
    mWindows.add(mArrangeIcons);
*/
    mWindows.addSeparator();

    // Help menu
    menu = new JMenu("Help");
    menu.setMnemonic(KeyEvent.VK_H);
    menu.getAccessibleContext().setAccessibleDescription("Help menu");
    menuBar.add(menu);

    mContents = new JMenuItem("Contents", KeyEvent.VK_C);
    mContents.setIcon(icons.getIcon("Help16.gif"));
    mContents.getAccessibleContext().setAccessibleDescription("Help contents");
    mContents.addActionListener(this);
    menu.add(mContents);
    //mContents.setEnabled(false);

    mSearch = new JMenuItem("Search...", KeyEvent.VK_S);
    mSearch.setIcon(icons.getIcon("empty16.gif"));
    mSearch.getAccessibleContext().setAccessibleDescription("Search help");
    mSearch.addActionListener(this);
    //menu.add(mSearch);
    //mSearch.setEnabled(false);

    menu.addSeparator();

    mAbout = new JMenuItem("About...", KeyEvent.VK_A);
    mAbout.setIcon(icons.getIcon("About16.gif"));
    mAbout.getAccessibleContext().setAccessibleDescription("About JavaNNS");
    mAbout.addActionListener(this);
    menu.add(mAbout);

    // Popup menu:
    popup = new JPopupMenu("Edit&Info");

    mPopDelU = new JMenuItem("Delete Units");
    mPopDelU.addActionListener( this );
    popup.add( mPopDelU );
    mPopDelU.setEnabled( false );

    mPopDelL = new JMenuItem("Delete Links");
    mPopDelL.addActionListener( this );
    popup.add( mPopDelL );
    mPopDelL.setEnabled( false );

    popup.addSeparator();

    mPopEditU = new JMenuItem("Edit Units...");
    mPopEditU.addActionListener( this );
    popup.add( mPopEditU );
    mPopEditU.setEnabled( false );

    mPopEditL = new JMenuItem("Edit Links...");
    mPopEditL.addActionListener( this );
    popup.add( mPopEditL );
    mPopEditL.setEnabled( false );
  }

  /**
   * updates the menu when a certain event ocurred
   *
   * @param the event
   */
  private void updateTheMenu( Event evt ){
    if( evt instanceof NetworkViewEvent ){
      NetworkView view = getLastSelectedView();
      if( view != null ){
        if( view.isDirectEdit() ){
          mTop.setEnabled( false );
          mBottom.setEnabled( false );
        }
        else{
          mTop.setEnabled( true );
          mBottom.setEnabled( true );
        }
        mProjection.setEnabled( ProjectionPanel.projectionIsPossible( network ) );
        mViewSettings.setEnabled( true );
        NetworkViewSettings settings = view.settings;
        String label;
        switch( settings.top_label_type ) {
          case NetworkViewSettings.ACT:       label = "Activation values"; break;
          case NetworkViewSettings.INIT_ACT:  label = "Initial activation"; break;
          case NetworkViewSettings.OUTPUT:    label = "Output values"; break;
          case NetworkViewSettings.BIAS:      label = "Bias"; break;
          case NetworkViewSettings.NAME:      label = "Names"; break;
          case NetworkViewSettings.NUMBER:    label = "Numbers"; break;
          case NetworkViewSettings.Z_VAL:     label = "Z-values"; break;
//        case NetworkViewSettings.WINNER:    label = ;
          default:      label = "Top labels";
        }
        mTop.setText( label );
        if( settings.top_label_type == NetworkViewSettings.NUMBER ) mTop.setEnabled( false );

        switch( settings.base_label_type ) {
          case NetworkViewSettings.ACT:       label = "Activation values"; break;
          case NetworkViewSettings.INIT_ACT:  label = "Initial activation"; break;
          case NetworkViewSettings.OUTPUT:    label = "Output values"; break;
          case NetworkViewSettings.BIAS:      label = "Bias"; break;
          case NetworkViewSettings.NAME:      label = "Names"; break;
          case NetworkViewSettings.NUMBER:    label = "Numbers"; break;
          case NetworkViewSettings.Z_VAL:     label = "Z-values"; break;
//        case NetworkViewSettings.WINNER:    label = ;
          default:      label = "Bottom labels";
        }
        mBottom.setText( label );
        if( settings.base_label_type == NetworkViewSettings.NUMBER ) mBottom.setEnabled( false );
      }
      else{
        mTop.setText("Top labels");
        mTop.setEnabled( false );
        mBottom.setText("Bottom labels");
        mBottom.setEnabled( false );
        mViewSettings.setEnabled( false );
        mProjection.setEnabled( false );
      }
    }
    else if( evt instanceof NetworkEvent ){
      NetworkEvent e = (NetworkEvent)evt;

      if( e.id == NetworkEvent.UNIT_VALUES_EDITED ){
        mTop.setEnabled( true );
        mBottom.setEnabled( true );
      }

      else if( e.id == NetworkEvent.SELECTED_UNITS_CHANGED ){
        int no = network.getSelectedUnitsCount();
        mEditUnits.setEnabled( ( no > 0 ) );
        mDelete.setEnabled( ( no > 0 ) );

        mPopEditU.setEnabled( ( no > 0 ) );
        mPopEditL.setEnabled( LinkEdit.linkSelected( network ) );
        mPopDelU.setEnabled( ( no > 0 ) );
        mPopDelL.setEnabled( ( no > 1 ) );
        // projection :
        mProjection.setEnabled( ProjectionPanel.projectionIsPossible( network ) );
      }

      else if( e.id == NetworkEvent.UNITS_DELETED     ||
               e.id == NetworkEvent.UNITS_CREATED     ||
               e.id == NetworkEvent.NEW_NETWORK_LOADED  )
        mConnect.setEnabled( ( network.getNumberOfUnits() > 1 ) );
    }
  }


/*----------------------------- interfaces -----------------------------------*/
  /**
   * Implementation of NetworkListener interface.
   * Asks if also configuration should be loaded with a new network.
   * Changes cursor if needed.
   *
   * @param evt event that was fired
   */
  public void networkChanged( NetworkEvent evt ){
    int type = evt.id;
    Cursor crs = null;

    if( type == NetworkEvent.NEW_NETWORK_LOADED ){
      updateTheMenu( evt );
      // looking for configuration file
      File configFile, netFile = network.getFile();
      String configPath, netPath;
      try{
        netPath = netFile.getCanonicalPath();
        int index = netPath.lastIndexOf(".");
        configPath = netPath.substring(0, index) + "." + getFileExtension();
        configFile = new File( configPath );
      }
      catch( Exception e ){ showException( e ); return; }

      if( !configFile.exists() ){
        if( net_views.size() == 0 ) openNetworkView();
        return;
      }

      //if( configuration.hasHomeFile() && configuration.getFile().getName().equals( configFile.getName() ) ) return;
      int choice = JOptionPane.showOptionDialog( this, "Load corresponding configuration file?", "Loading " + netFile,
                             JOptionPane.YES_NO_OPTION,
                             JOptionPane.QUESTION_MESSAGE, null, null, null);
      if( choice == JOptionPane.OK_OPTION ) {
        deleteNetworkViews();
        try{ load( configFile ); }
        catch(Exception e){ showException(e); }
      }
    }
    else if(
      type == NetworkEvent.SELECTED_UNITS_CHANGED ||
      type == NetworkEvent.UNIT_VALUES_EDITED     ||
      type == NetworkEvent.UNITS_CREATED          ||
      type == NetworkEvent.UNITS_DELETED
    ) updateTheMenu( evt );
    else if(type == NetworkEvent.LONG_TASK_STARTED)
      crs = new Cursor(Cursor.WAIT_CURSOR);
    else if(type == NetworkEvent.LONG_TASK_OVER)
      crs = new Cursor(Cursor.DEFAULT_CURSOR);

    if(crs != null) {
      setCursor(crs);
      int no = desktop.getComponentCount();
      for(int i=0; i<no; i++) {
        java.awt.Component c = desktop.getComponent(i);
        if(c instanceof JInternalFrame) ((JInternalFrame)c).setCursor(crs);
      }
    }
  }

  // implementing action listener :
  /**
   * Handles menu events in Snns main frame.
   *
   * @param e ActionEvent object
   */
  // action performer for Snns. Mainly handling of menus
  public void actionPerformed(ActionEvent e) {
    Object source = e.getSource();
    //String s = "Action: " + source.getText();
    //System.out.println(s);
    JInternalFrame[] frames = desktop.getAllFrames();


    if(source == mExit) close();

    // File menu:
    else if( source == mNew ) {
      network.deleteNetwork();
      patternSets.deleteAllPatternSets();
      net_views_count = 0;
      if( net_views.size() == 0 ) openNetworkView();
    }

    else if(source == mOpen) {
      try{
        fileManager.showOpenDialog(
          new LoaderAndSaver[]{ network, patternSets.getCover(), this, pLog }
        );
      }
      catch( Exception e2 ){ showException( e2 ); }
    }

    else if(source == mSave) {
      if( network.hasHomeFile() )
        try{ network.save(); }
        catch( Exception ex ){
        showException( ex );
      }
      else actionPerformed( new ActionEvent( mSaveAs, 0, "" ) );
    }

    else if(source == mSaveAs) {
      try{ fileManager.showSaveDialog( network ); }
      catch( Exception e2 ){
        showException( e2 );
      }
    }

    else if(source == mSaveData) {
      try{
        fileManager.showSaveDialog(
          new LoaderAndSaver[]{ patternSets.getCurrent(), this, pLog, new Result( network ) }
        );
      }
      catch( Exception e2 ){
        showException( e2 );
      }
    }

⌨️ 快捷键说明

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