📄 snns.java
字号:
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 + -