/*
* Encog(tm) Workbench v3.4
* http://www.heatonresearch.com/encog/
* https://github.com/encog/encog-java-workbench
*
* Copyright 2008-2016 Heaton Research, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* For more information on Heaton Research copyrights, licenses
* and trademarks visit:
* http://www.heatonresearch.com/copyright
*/
package org.encog.workbench.frames.document;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTabbedPane;
import javax.swing.KeyStroke;
import org.encog.Encog;
import org.encog.workbench.EncogWorkBench;
import org.encog.workbench.process.CreateNewFile;
import org.encog.workbench.process.ImportExport;
import org.encog.workbench.process.TrainBasicNetwork;
import org.encog.workbench.tabs.EncogCommonTab;
import org.encog.workbench.tabs.SupportsClipboard;
import org.encog.workbench.tabs.ValidationChart;
public class EncogMenus {
public static final String FILE_CHANGE_DIR = "Change Directory/Open Project";
public static final String FILE_NEW_PROJECT = "New Project...";
public static final String FILE_NEW_FILE = "New File...";
public static final String FILE_IMPORT = "Import File...";
public static final String FILE_SAVE = "Save";
public static final String FILE_QUIT = "Quit...";
public static final String EDIT_CUT = "Cut";
public static final String EDIT_COPY = "Copy";
public static final String EDIT_PASTE = "Paste";
public static final String EDIT_SELECT_ALL = "Select All";
public static final String EDIT_CONFIG = "Config...";
public static final String EDIT_FIND = "Find...";
public static final String VIEW_RBF = "Chart RBF...";
public static final String TOOLS_TRAIN = "Train...";
public static final String TOOLS_GENERATE_TRAINING = "Generate Training Data...";
public static final String TOOLS_EVALUATE = "Evaluate Method...";
public static final String TOOLS_BENCHMARK = "Benchmark Encog...";
public static final String TOOLS_VALIDATION_CHART = "Validation Chart...";
public static final String TOOLS_BIN2EXTERNAL = "Convert Encog Binary to Other File...";
public static final String TOOLS_EXTERNAL2BIN = "Convert Other File to Encog Binary...";
public static final String TOOLS_PROBEN = "Proben1...";
public static final String TOOLS_NOISE = "Generate Noise...";
public static final String TOOLS_WIZARD = "Wizards...";
public static final String HELP_ABOUT = "About Encog Workbench...";
private JMenuBar menuBar;
private JMenu menuFile;
private JMenu menuEdit;
private JMenu menuHelp;
private JMenu menuTools;
private JMenu menuView;
private JMenuItem menuFileNew;
private JMenuItem menuFileNewProject;
private JMenuItem menuFileImport;
private JMenuItem menuFileChangeDir;
private JMenuItem menuFileSeve;
private JMenuItem menuFileQuit;
private JMenuItem menuEditCut;
private JMenuItem menuEditCopy;
private JMenuItem menuEditPaste;
private JMenuItem menuEditSelectAll;
private JMenuItem menuEditConfig;
private JMenuItem menuEditFind;
private JMenuItem menuViewRBF;
private JMenuItem menuToolsTrain;
private JMenuItem menuToolsGenerate;
private JMenuItem menuToolsEvaluate;
private JMenuItem menuToolsBenchmark;
private JMenuItem menuToolsBrowse;
private JMenuItem menuToolsValidation;
private JMenuItem menuToolsBin2Ext;
private JMenuItem menuToolsExt2Bin;
private JMenuItem menuToolsProben;
private JMenuItem menuToolsNoise;
private JMenuItem menuToolsWizard;
private JMenuItem menuHelpAbout;
private EncogDocumentFrame owner;
public EncogMenus(EncogDocumentFrame owner) {
this.owner = owner;
}
void initMenuBar() {
// menu bar
this.menuBar = new JMenuBar();
this.menuFile = new JMenu("File");
this.menuFileNewProject = this.menuFile.add(owner
.addItem(this.menuFile, EncogMenus.FILE_NEW_PROJECT, 0));
this.menuFileChangeDir = this.menuFile.add(owner
.addItem(this.menuFile, EncogMenus.FILE_CHANGE_DIR, KeyEvent.VK_C));
this.menuFileNew = this.menuFile.add(owner
.addItem(this.menuFile, EncogMenus.FILE_NEW_FILE, KeyEvent.VK_N));
this.menuFileImport = this.menuFile.add(owner.addItem(this.menuFile,EncogMenus.FILE_IMPORT,KeyEvent.VK_I));
this.menuFileSeve = this.menuFile.add(owner
.addItem(this.menuFile, EncogMenus.FILE_SAVE, KeyEvent.VK_S));
if (!Encog.isOSX()) {
this.menuFile.addSeparator();
this.menuFileQuit = this.menuFile.add(owner.addItem(this.menuFile, EncogMenus.FILE_QUIT,
KeyEvent.VK_Q));
}
this.menuFile.addActionListener(this.owner);
this.menuBar.add(this.menuFile);
this.menuEdit = new JMenu("Edit");
this.menuEditCut = this.menuEdit.add(owner
.addItem(this.menuEdit, EncogMenus.EDIT_CUT, KeyEvent.VK_X));
this.menuEditCopy = this.menuEdit.add(owner.addItem(this.menuEdit, EncogMenus.EDIT_COPY,
KeyEvent.VK_C));
this.menuEditPaste = this.menuEdit.add(owner.addItem(this.menuEdit, EncogMenus.EDIT_PASTE,
KeyEvent.VK_V));
this.menuEditSelectAll = this.menuEdit.add(owner.addItem(this.menuEdit, EncogMenus.EDIT_SELECT_ALL,
KeyEvent.VK_A));
this.menuEdit.addSeparator();
this.menuEditConfig = this.menuEdit.add(owner.addItem(this.menuEdit,
EncogMenus.EDIT_CONFIG, 0));
this.menuEditFind = this.menuEdit.add(owner.addItem(this.menuEdit,
EncogMenus.EDIT_FIND, KeyEvent.VK_F));
this.menuBar.add(this.menuEdit);
this.menuView = new JMenu("View");
this.menuViewRBF = owner.addItem(this.menuView, EncogMenus.VIEW_RBF, 0);
this.menuBar.add(this.menuView);
this.menuTools = new JMenu("Tools");
//
this.menuToolsGenerate = owner.addItem(this.menuTools, EncogMenus.TOOLS_GENERATE_TRAINING, 0);
this.menuToolsTrain = owner.addItem(this.menuTools, EncogMenus.TOOLS_TRAIN, 0);
this.menuToolsBenchmark = owner.addItem(this.menuTools, EncogMenus.TOOLS_BENCHMARK, 0);
this.menuToolsEvaluate = owner.addItem(this.menuTools, EncogMenus.TOOLS_EVALUATE, 0);
this.menuToolsValidation = owner.addItem(this.menuTools, EncogMenus.TOOLS_VALIDATION_CHART, 0);
this.menuToolsBin2Ext = owner.addItem(this.menuTools, EncogMenus.TOOLS_BIN2EXTERNAL, 0);
this.menuToolsExt2Bin = owner.addItem(this.menuTools, EncogMenus.TOOLS_EXTERNAL2BIN, 0);
this.menuToolsProben = owner.addItem(this.menuTools, EncogMenus.TOOLS_PROBEN, 0);
this.menuToolsNoise = owner.addItem(this.menuTools, EncogMenus.TOOLS_NOISE, 0);
this.menuToolsWizard = owner.addItem(this.menuTools, EncogMenus.TOOLS_WIZARD, 0);
this.menuBar.add(this.menuTools);
this.menuHelp = new JMenu("Help");
this.menuHelpAbout = this.menuHelp.add(owner.addItem(this.menuHelp, EncogMenus.HELP_ABOUT,
'a'));
this.menuBar.add(this.menuHelp);
owner.setJMenuBar(this.menuBar);
}
public void updateMenus()
{
boolean modal = this.owner.getTabManager().isModalTabOpen();
boolean documentOpen = EncogWorkBench.getInstance().getProjectDirectory()!=null;
JTabbedPane tabs = this.owner.getTabManager().getDocumentTabs();
EncogCommonTab currentTab = (EncogCommonTab)tabs.getSelectedComponent();
boolean supportsClipboard = currentTab instanceof SupportsClipboard;
this.menuFileNew.setEnabled(!modal && documentOpen);
this.menuFileChangeDir.setEnabled(!modal);
this.menuFileNewProject.setEnabled(!modal);
if (!Encog.isOSX()) {
this.menuFileQuit.setEnabled(true);
}
this.menuFileImport.setEnabled(!modal && documentOpen);
this.menuFileSeve.setEnabled(!modal && documentOpen && currentTab!=null);
this.menuEditCut.setEnabled(!modal && supportsClipboard && documentOpen);
this.menuEditCopy.setEnabled(!modal && supportsClipboard && documentOpen);
this.menuEditPaste.setEnabled(!modal && supportsClipboard && documentOpen);
this.menuEditSelectAll.setEnabled(!modal && supportsClipboard && documentOpen);
this.menuEditConfig.setEnabled(!modal);
this.menuViewRBF.setEnabled(!modal);
this.menuToolsTrain.setEnabled(!modal && documentOpen);
this.menuToolsGenerate.setEnabled(!modal && documentOpen);
this.menuToolsEvaluate.setEnabled(!modal && documentOpen);
this.menuToolsBenchmark.setEnabled(!modal);
this.menuToolsValidation.setEnabled(!modal && documentOpen);
this.menuToolsExt2Bin.setEnabled(!modal);
this.menuToolsBin2Ext.setEnabled(!modal);
this.menuToolsWizard.setEnabled(!modal && documentOpen);
this.menuHelpAbout.setEnabled(!modal);
}
public void actionPerformed(final ActionEvent event) {
try {
EncogWorkBench.getInstance().getMainWindow().endWait();
if (event.getActionCommand().equals(EncogMenus.FILE_CHANGE_DIR)) {
owner.getOperations().performFileChooseDirectory();
} else if (event.getActionCommand().equals(EncogMenus.FILE_NEW_PROJECT)) {
owner.getOperations().performFileNewProject();
} else if (event.getActionCommand().equals(EncogMenus.FILE_NEW_FILE)) {
CreateNewFile.performCreateFile();
} else if (event.getActionCommand().equals(EncogMenus.FILE_IMPORT)) {
owner.getOperations().importFile();
} else if (event.getActionCommand().equals(EncogMenus.FILE_SAVE)) {
owner.getOperations().performSave();
} else if (event.getActionCommand().equals(EncogMenus.FILE_QUIT)) {
owner.getOperations().performQuit();
} else if (event.getActionCommand().equals(EncogMenus.EDIT_CUT)) {
owner.getOperations().performEditCut();
} else if (event.getActionCommand().equals(EncogMenus.EDIT_COPY)) {
owner.getOperations().performEditCopy();
} else if (event.getActionCommand().equals(EncogMenus.EDIT_PASTE)) {
owner.getOperations().performEditPaste();
} else if (event.getActionCommand().equals(EncogMenus.EDIT_SELECT_ALL)) {
owner.getOperations().performEditSelectAll();
} else if (event.getActionCommand().equals(EncogMenus.EDIT_CONFIG)) {
owner.getOperations().performEditConfig();
} else if (event.getActionCommand().equals(EncogMenus.EDIT_FIND)) {
owner.getOperations().performEditFind();
} else if (event.getActionCommand().equals(EncogMenus.HELP_ABOUT)) {
owner.getOperations().performHelpAbout();
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_BENCHMARK)) {
owner.getOperations().performBenchmark();
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_PROBEN)) {
owner.getOperations().performProben();
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_NOISE)) {
owner.getOperations().performNoise();
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_EVALUATE)) {
owner.getOperations().performEvaluate();
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_TRAIN)) {
TrainBasicNetwork t = new TrainBasicNetwork(null,null);
t.performTrain();
} else if (event.getActionCommand().equals(
EncogMenus.TOOLS_VALIDATION_CHART)) {
ValidationChart check = new ValidationChart();
check.perform(EncogWorkBench.getInstance().getMainWindow());
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_BIN2EXTERNAL)) {
ImportExport.performBin2External();
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_EXTERNAL2BIN)) {
ImportExport.performExternal2Bin(null,null,null);
} else if (event.getActionCommand().equals(EncogMenus.VIEW_RBF)) {
owner.getOperations().performRBF();
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_GENERATE_TRAINING)) {
owner.getOperations().performCreateTrainingData();
} else if (event.getActionCommand().equals(EncogMenus.TOOLS_WIZARD)) {
owner.getOperations().performWizard();
}
}
catch(Throwable t)
{
EncogWorkBench.displayError("Error", t);
}
}
}