refs #17
Added JavaHelp and some first entries into the documentation. JExtDesktopPane now defines keystrokes to access tiling/cascading windows. The main GUI has a new menu structure, showing a preferences entry in the options menu and a "Help Contents" under the Help menu.
This commit is contained in:
parent
4cf0375f35
commit
97ffdbf33a
BIN
lib/jh.jar
Normal file
BIN
lib/jh.jar
Normal file
Binary file not shown.
2
resources/EvA2Help/EvA2Help.hs
Normal file
2
resources/EvA2Help/EvA2Help.hs
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 2.0//EN" "http://java.sun.com/products/javahelp/helpset_2_0.dtd">
|
||||
<helpset version="2.0"><maps><mapref location="EvA2Help.jhm"/><homeID>html_index_html</homeID></maps><title>EvA2 Help</title><view><type>javax.help.TOCView</type><name>TOC</name><label>Table Of Contents</label><data>toc.xml</data></view><view><type>javax.help.SearchView</type><name>Search</name><label>Search</label><data>JavaHelpSearch</data></view></helpset>
|
2
resources/EvA2Help/EvA2Help.jhm
Normal file
2
resources/EvA2Help/EvA2Help.jhm
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 2.0//EN" "http://java.sun.com/products/javahelp/map_2_0.dtd">
|
||||
<map version="2.0"><mapID target="html_index_html" url="html/index.html"/><mapID target="html_ide-basics_keyboard-shortcuts_about-shortcuts_html" url="html/ide-basics/keyboard-shortcuts/about-shortcuts.html"/><mapID target="html_ide-basics_keyboard-shortcuts_menu-shortcuts_html" url="html/ide-basics/keyboard-shortcuts/menu-shortcuts.html"/></map>
|
1
resources/EvA2Help/JavaHelpSearch/DOCS
Normal file
1
resources/EvA2Help/JavaHelpSearch/DOCS
Normal file
@ -0,0 +1 @@
|
||||
<01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01><01>
|
1
resources/EvA2Help/JavaHelpSearch/DOCS.TAB
Normal file
1
resources/EvA2Help/JavaHelpSearch/DOCS.TAB
Normal file
@ -0,0 +1 @@
|
||||
e<><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j<><6A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
1
resources/EvA2Help/JavaHelpSearch/OFFSETS
Normal file
1
resources/EvA2Help/JavaHelpSearch/OFFSETS
Normal file
@ -0,0 +1 @@
|
||||
<05><>`<05>2<EFBFBD><07><>@
|
BIN
resources/EvA2Help/JavaHelpSearch/POSITIONS
Normal file
BIN
resources/EvA2Help/JavaHelpSearch/POSITIONS
Normal file
Binary file not shown.
2
resources/EvA2Help/JavaHelpSearch/SCHEMA
Normal file
2
resources/EvA2Help/JavaHelpSearch/SCHEMA
Normal file
@ -0,0 +1,2 @@
|
||||
JavaSearch 1.0
|
||||
TMAP bs=2048 rt=0 fl=-1 id1=128 id2=1
|
BIN
resources/EvA2Help/JavaHelpSearch/TMAP
Normal file
BIN
resources/EvA2Help/JavaHelpSearch/TMAP
Normal file
Binary file not shown.
@ -0,0 +1,69 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
<h3>Menu Shortcuts</h3>
|
||||
<p>There are keyboard shortcuts available to activate the following menu commands and other general commands:</p>
|
||||
<ul>
|
||||
<li><a href="#options">Options menu</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4><a name="options">Options menu</a></h4>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Keys</th>
|
||||
<th>Command</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CTRL+P</td>
|
||||
<td>Preferences</td>
|
||||
<td>Opens the preferences dialog</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CTRL+Q</td>
|
||||
<td>Quit</td>
|
||||
<td>Exits the application</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h4><a name="options">Windows menu</a></h4>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Keys</th>
|
||||
<th>Command</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CTRL+M</td>
|
||||
<td>Cascade Windows</td>
|
||||
<td>Cascades the visible internal windows</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CTRL+,</td>
|
||||
<td>Tile vertically</td>
|
||||
<td>Tile the visible internal windows vertically</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CTRL+.</td>
|
||||
<td>Tile horizontally</td>
|
||||
<td>Tile the visible internal windows horizontally</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h4><a name="options">Help menu</a></h4>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Keys</th>
|
||||
<th>Command</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>F1</td>
|
||||
<td>Help</td>
|
||||
<td>Opens the help contents</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
11
resources/EvA2Help/html/index.html
Normal file
11
resources/EvA2Help/html/index.html
Normal file
@ -0,0 +1,11 @@
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
<h1>EvA2 Help</h1>
|
||||
<p>EvA2 (an Evolutionary Algorithms framework, revised version 2) is a comprehensive heuristic optimization framework with emphasis on Evolutionary Algorithms implemented in Java. It is a revised version of the JavaEvA optimization toolbox, which has been developed as a resumption of the former EvA software package.
|
||||
EvA2 integrates several derivation free optimization methods, preferably population based, such as Evolution Strategies (ES), Genetic Algorithms (GA), Differential Evolution (DE), Particle Swarm Optimization (PSO), as well as classical techniques such as multi-start Hill Climbing or Simulated Annealing. Besides typical single-objective problems, multi-modal and multi-objective problem are handled directly by the EvA2 framework. Via the Java mechanism of Remote Method Invocation (RMI), the algorithms of EvA2 can be distributed over network nodes based on a client-server architecture.</p>
|
||||
|
||||
<p>EvA2 aims at two groups of users. Firstly, the end user who does not know much about the theory of Evolutionary Algorithms, but wants to use Evolutionary Algorithms to solve an application problem. Secondly, the scientific user who wants to investigate the performance of different optimization algorithms or wants to compare the effect of alternative or specialized evolutionary or heuristic operators. The latter usually knows more about evolutionary algorithms or heuristic optimization and is able to extend EvA2 by adding specific optimization strategies or solution representations.</p>
|
||||
|
||||
<p>EvA2 is being used as teaching aid in lecture tutorials, as a developing platform in student research projects and applied to numerous optimisation problems within active research and ongoing industrial cooperations.</p>
|
||||
<body>
|
2
resources/EvA2Help/toc.xml
Normal file
2
resources/EvA2Help/toc.xml
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 2.0//EN" "http://java.sun.com/products/javahelp/toc_2_0.dtd">
|
||||
<toc version="2.0"><tocitem target="html_index_html" text="Introduction"/><tocitem text="IDE Basics"><tocitem text="Getting Started"><tocitem text="User Interface"/></tocitem><tocitem text="Keyboard Shortcuts"><tocitem target="html_ide-basics_keyboard-shortcuts_about-shortcuts_html" text="About Shortcuts"/><tocitem target="html_ide-basics_keyboard-shortcuts_menu-shortcuts_html" text="Menu Shortcuts"/><tocitem text="Window Navigation Shortcuts"/></tocitem><tocitem text="Tutorials"><tocitem text="Monte-Carlo-Search"/><tocitem text="Hill-Climber"/><tocitem text="Simulated Annealing"/><tocitem text="Genetic Algorithms and Genetic Programming"/><tocitem text="Population Based Incremental Learning"/><tocitem text="Evolution Strategies"/><tocitem text="Model Assisted Evolution Strategies"/><tocitem text="Genetic Optimization"/></tocitem></tocitem><tocitem text="EvA2 Modules"><tocitem text="Getting Started"/><tocitem text="Implementing a new Module"/></tocitem></toc>
|
@ -36,6 +36,7 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import javax.help.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.TitledBorder;
|
||||
|
||||
@ -68,6 +69,7 @@ public class EvAClient implements RemoteStateListener {
|
||||
private transient JProgressBar progressBar;
|
||||
|
||||
// Option
|
||||
private ExtAction actPreferences;
|
||||
private ExtAction actQuit;
|
||||
|
||||
// LogPanel
|
||||
@ -84,7 +86,8 @@ public class EvAClient implements RemoteStateListener {
|
||||
private ExtAction actKillAllHosts;
|
||||
private ModuleAdapter currentModuleAdapter = null;
|
||||
|
||||
// About:
|
||||
// Help:
|
||||
private ExtAction actHelp;
|
||||
private ExtAction actAbout;
|
||||
private ExtAction actLicense;
|
||||
|
||||
@ -721,8 +724,7 @@ public class EvAClient implements RemoteStateListener {
|
||||
}
|
||||
};
|
||||
|
||||
actAbout = new ExtAction("&About", "Product Information",
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_A, Event.CTRL_MASK)) {
|
||||
actAbout = new ExtAction("&About", "Product Information") {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent event) {
|
||||
@ -730,8 +732,7 @@ public class EvAClient implements RemoteStateListener {
|
||||
showAboutDialog();
|
||||
}
|
||||
};
|
||||
actLicense = new ExtAction("&License", "View License",
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_L, Event.CTRL_MASK)) {
|
||||
actLicense = new ExtAction("&License", "View License") {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent event) {
|
||||
@ -802,6 +803,42 @@ public class EvAClient implements RemoteStateListener {
|
||||
EvAClient.this.close();
|
||||
}
|
||||
};
|
||||
|
||||
actPreferences = new ExtAction("&Preferences", "Show preferences dialog",
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_P, Event.CTRL_MASK)) {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent event) {
|
||||
// ToDo
|
||||
}
|
||||
};
|
||||
|
||||
actHelp = new ExtAction("&Help", "Show help contents",
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0)) {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent event) {
|
||||
// ToDo
|
||||
String helpHS = "resources/EvA2Help/EvA2Help.hs";
|
||||
ClassLoader cl = EvAClient.class.getClassLoader();
|
||||
JHelpContentViewer helpPane;
|
||||
try {
|
||||
URL hsURL = HelpSet.findHelpSet(cl, helpHS);
|
||||
HelpSet helpSet = new HelpSet(null, hsURL);
|
||||
// Trigger the help viewer:
|
||||
helpPane = new JHelpContentViewer(helpSet);
|
||||
JHelpNavigator helpNavigator = (JHelpNavigator) helpSet.getNavigatorView("TOC").createNavigator(helpPane.getModel());
|
||||
JEFrame helpFrame = new JEFrame("Help contents");
|
||||
JSplitPane helpSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, helpNavigator, helpPane);
|
||||
helpFrame.add(helpSplit);
|
||||
helpFrame.setVisible(true);
|
||||
helpFrame.setMaximum(true);
|
||||
} catch (Exception ee) {
|
||||
// Say what the exception really is
|
||||
LOGGER.log(Level.WARNING, "Could not open application help", ee);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -822,11 +859,15 @@ public class EvAClient implements RemoteStateListener {
|
||||
menuSelHosts.add(actKillAllHosts);
|
||||
|
||||
menuHelp = new JExtMenu("&Help");
|
||||
menuHelp.add(actHelp);
|
||||
menuHelp.addSeparator();
|
||||
menuHelp.add(actAbout);
|
||||
menuHelp.add(actLicense);
|
||||
|
||||
menuOptions = new JExtMenu("&Options");
|
||||
menuOptions.add(actPreferences);
|
||||
menuOptions.add(menuSelHosts);
|
||||
menuOptions.addSeparator();
|
||||
menuOptions.add(actQuit);
|
||||
// this is accessible if no default module is given
|
||||
if (showLoadModules) {
|
||||
@ -1078,7 +1119,7 @@ public class EvAClient implements RemoteStateListener {
|
||||
if (hostNames == null || hostNames.length == 0) {
|
||||
showNoHostFoundDialog();
|
||||
} else {
|
||||
String hostName = (String) JOptionPane.showInputDialog(configurationPane,
|
||||
String hostName = (String) JOptionPane.showInputDialog(mainFrame,
|
||||
"Which active host do you want to connect to?", "Host", JOptionPane.QUESTION_MESSAGE, null,
|
||||
hostNames, comAdapter.getHostName());
|
||||
if (hostName != null) {
|
||||
@ -1115,7 +1156,7 @@ public class EvAClient implements RemoteStateListener {
|
||||
}
|
||||
|
||||
private void showNoHostFoundDialog() {
|
||||
JOptionPane.showMessageDialog(configurationPane, "No host with running EVASERVER found. Please start one or \nadd the correct address to the properties list.", EvAInfo.infoTitle, 1);
|
||||
JOptionPane.showMessageDialog(mainFrame, "No host with running EVASERVER found. Please start one or \nadd the correct address to the properties list.", EvAInfo.infoTitle, 1);
|
||||
}
|
||||
|
||||
private void selectAvailableHostToKill(String[] HostNames) {
|
||||
@ -1123,7 +1164,7 @@ public class EvAClient implements RemoteStateListener {
|
||||
showNoHostFoundDialog();
|
||||
return;
|
||||
}
|
||||
String HostName = (String) JOptionPane.showInputDialog(configurationPane,
|
||||
String HostName = (String) JOptionPane.showInputDialog(mainFrame,
|
||||
"Which server do you want to be killed ?", "Host", JOptionPane.QUESTION_MESSAGE, null,
|
||||
HostNames, comAdapter.getHostName());
|
||||
if (HostName == null) {
|
||||
@ -1131,7 +1172,6 @@ public class EvAClient implements RemoteStateListener {
|
||||
}
|
||||
LOGGER.info("Kill host process on = " + HostName);
|
||||
comAdapter.killServer(HostName);
|
||||
// m_LogPanel.statusMessage("");
|
||||
}
|
||||
|
||||
private void selectAllAvailableHostToKill(String[] hostNames) {
|
||||
|
@ -56,7 +56,8 @@ public class JExtDesktopPane extends JDesktopPane {
|
||||
}
|
||||
};
|
||||
|
||||
windowMenu.add(actWindowTileVert = new ExtAction("Tile &Vertically", "Tiles all windows vertically") {
|
||||
windowMenu.add(actWindowTileVert = new ExtAction("Tile &Vertically", "Tiles all windows vertically",
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_COMMA, Event.CTRL_MASK)) {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent event) {
|
||||
@ -64,7 +65,8 @@ public class JExtDesktopPane extends JDesktopPane {
|
||||
}
|
||||
});
|
||||
|
||||
windowMenu.add(actWindowTileHorz = new ExtAction("Tile &Horizontally", "Tiles all windows horizontically") {
|
||||
windowMenu.add(actWindowTileHorz = new ExtAction("Tile &Horizontally", "Tiles all windows horizontically",
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_PERIOD, Event.CTRL_MASK)) {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent event) {
|
||||
@ -72,7 +74,8 @@ public class JExtDesktopPane extends JDesktopPane {
|
||||
}
|
||||
});
|
||||
|
||||
windowMenu.add(actWindowOverlap = new ExtAction("&Cascade Windows", "Cascades all visible windows") {
|
||||
windowMenu.add(actWindowOverlap = new ExtAction("&Cascade Windows", "Cascades all visible windows",
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_M, Event.CTRL_MASK)) {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent event) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user