diff --git a/ant/build.xml b/ant/build.xml
index 00cb25d1..94f400ef 100644
--- a/ant/build.xml
+++ b/ant/build.xml
@@ -275,7 +275,7 @@
-
-
+
-
+
@@ -372,7 +372,7 @@
-
+
@@ -389,7 +389,7 @@
-
+
-
+
diff --git a/ant/miniBuild.xml b/ant/miniBuild.xml
index f69d7312..888140d7 100644
--- a/ant/miniBuild.xml
+++ b/ant/miniBuild.xml
@@ -197,7 +197,7 @@
-
+
-
+
diff --git a/pom.xml b/pom.xml
index 283fa4d2..dd5f5d41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,7 +68,7 @@
falsetrue
- eva2.client.EvAClient
+ eva2.gui.Main
@@ -92,7 +92,7 @@
- eva2.client.EvAClient
+ eva2.gui.Main
diff --git a/src/eva2/client/EvAClient.java b/src/eva2/gui/Main.java
similarity index 87%
rename from src/eva2/client/EvAClient.java
rename to src/eva2/gui/Main.java
index 63e5c100..b72db50f 100644
--- a/src/eva2/client/EvAClient.java
+++ b/src/eva2/gui/Main.java
@@ -1,24 +1,13 @@
-package eva2.client;
+package eva2.gui;
-/*
- * Title: EvA2
- * Description: The main client class of the EvA framework.
- * Copyright: Copyright (c) 2008
- * Company: University of Tuebingen, Computer
- * Architecture
- *
- * @author Holger Ulmer, Felix Streichert, Hannes Planatscher
- * @version: $Revision: 322 $ $Date: 2007-12-11 17:24:07 +0100 (Tue, 11 Dec 2007)$
- * $Author: mkron $
- */
import eva2.EvAInfo;
-import eva2.gui.*;
+import eva2.client.*;
import eva2.optimization.OptimizationStateListener;
import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.AbstractModuleAdapter;
-import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.modules.GenericModuleAdapter;
import eva2.optimization.modules.ModuleAdapter;
+import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.stat.AbstractStatistics;
import eva2.optimization.stat.InterfaceStatisticsListener;
import eva2.optimization.stat.InterfaceStatisticsParameter;
@@ -26,22 +15,22 @@ import eva2.tools.BasicResourceLoader;
import eva2.tools.EVAERROR;
import eva2.tools.ReflectPackage;
import eva2.tools.StringTools;
+
+import javax.help.HelpSet;
+import javax.help.JHelpContentViewer;
+import javax.help.JHelpNavigator;
+import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
-import javax.help.*;
-import javax.swing.*;
-
/**
*
*/
-public class EvAClient extends JFrame implements OptimizationStateListener {
+public class Main extends JFrame implements OptimizationStateListener {
/**
* Generated serial version identifier.
@@ -53,8 +42,8 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
private JDesktopPane desktopPane;
private JPanel configurationPane;
private JSplitPane horizontalSplit;
- private Runnable initRnbl = null;
-
+ private Runnable initRnbl = null;
+
//private EvAComAdapter comAdapter;
private transient JMenuBar menuBar;
private transient JExtMenu menuHelp;
@@ -63,49 +52,49 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
private transient JExtMenu menuOptions;
private JPanel statusBar;
private transient JProgressBar progressBar;
-
+
// Option
private ExtAction actPreferences;
private ExtAction actQuit;
-
+
// LogPanel
private LoggingPanel logPanel;
- private static final Logger LOGGER = Logger.getLogger(EvAClient.class.getName());
-
+ private static final Logger LOGGER = Logger.getLogger(Main.class.getName());
+
// Module:
private ExtAction actModuleLoad;
- // Hosts:
+ // Hosts:
private ExtAction actHost;
private ExtAction actAvailableHost;
private ExtAction actKillHost;
private ExtAction actKillAllHosts;
private ModuleAdapter currentModuleAdapter = null;
-
+
// Help:
private ExtAction actHelp;
private ExtAction actAbout;
private ExtAction actLicense;
-
+
// if not null, the module is loaded automatically and no other can be selected
private String useDefaultModule = null; //"Genetic_Optimization";
private boolean showLoadModules = false;
private boolean localMode = false;
-
+
// measuring optimization runtime
private long startTime = 0;
// remember the module in use
- private transient String currentModule = null;
+ private transient String currentModule = null;
private boolean withGUI = true;
private boolean withTreeView = false;
private EvATabbedFrameMaker frameMaker = null;
private Window parentWindow;
-
- private List superListenerList = null;
-
+
+ private java.util.List superListenerList = null;
+
private EvAComAdapter comAdapter;
-
+
public void addOptimizationStateListener(OptimizationStateListener l) {
if (superListenerList == null) {
superListenerList = new ArrayList();
@@ -123,67 +112,67 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
/**
* Constructor of GUI of EvA2. Works as client for the EvA2 server. Note
- * that the EvAClient initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
+ * that the Main initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
* to await full initialization if necessary.
*
*/
- public EvAClient(final String hostName) {
+ public Main(final String hostName) {
this(hostName, null, false, false);
}
/**
* A constructor. Splash screen is optional, Gui is activated, no parent
- * window. Note that the EvAClient initialized multi-threaded for
+ * window. Note that the Main initialized multi-threaded for
* efficiency. Use {@link #awaitGuiInitialized()} to await full
* initialization if necessary.
*
- * @see #EvAClient(String, Window, String, boolean, boolean, boolean)
+ * @see #EvAClient(String, java.awt.Window, String, boolean, boolean, boolean)
* @param hostName
* @param paramsFile
* @param autorun
* @param nosplash
*/
- public EvAClient(final String hostName, final String paramsFile, boolean autorun, boolean nosplash) {
+ public Main(final String hostName, final String paramsFile, boolean autorun, boolean nosplash) {
this(hostName, null, paramsFile, null, autorun, nosplash, false, false);
}
/**
- * A constructor with optional spash screen. Note that the EvAClient is
+ * A constructor with optional spash screen. Note that the Main is
* initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
* to await full initialization if necessary.
*
- * @see #EvAClient(String, String, boolean, boolean)
+ * @see #Main(String, String, boolean, boolean)
*
* @param hostName
* @param autorun
* @param nosplash
*/
- public EvAClient(final String hostName, boolean autorun, boolean nosplash) {
+ public Main(final String hostName, boolean autorun, boolean nosplash) {
this(hostName, null, autorun, nosplash);
}
/**
- * A constructor with optional splash screen. Note that the EvAClient
+ * A constructor with optional splash screen. Note that the Main
* initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
* to await full initialization if necessary.
*
- * @see #EvAClient(String, String, boolean, boolean)
+ * @see #Main(String, String, boolean, boolean)
* @param hostName
* @param paramsFile
* @param autorun
* @param noSplash
* @param noGui
*/
- public EvAClient(final String hostName, String paramsFile, boolean autorun, boolean noSplash, boolean noGui, boolean withTreeView) {
+ public Main(final String hostName, String paramsFile, boolean autorun, boolean noSplash, boolean noGui, boolean withTreeView) {
this(hostName, null, paramsFile, null, autorun, noSplash, noGui, withTreeView);
}
/**
- * A constructor with optional splash screen. Note that the EvAClient
+ * A constructor with optional splash screen. Note that the Main
* initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
* to await full initialization if necessary.
*
- * @see #EvAClient(String, String, boolean, boolean)
+ * @see #Main(String, String, boolean, boolean)
*
* @param hostName
* @param paramsFile
@@ -191,7 +180,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* @param noSplash
* @param noGui
*/
- public EvAClient(final String hostName, InterfaceOptimizationParameters goParams, boolean autorun, boolean noSplash, boolean noGui) {
+ public Main(final String hostName, InterfaceOptimizationParameters goParams, boolean autorun, boolean noSplash, boolean noGui) {
this(hostName, null, null, goParams, autorun, noSplash, noGui, false);
}
@@ -206,7 +195,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* @param noSplash
* @param noGui
*/
- public EvAClient(final String hostName, final Window parent, final String paramsFile, final InterfaceOptimizationParameters goParams, final boolean autorun, final boolean noSplash, final boolean noGui) {
+ public Main(final String hostName, final Window parent, final String paramsFile, final InterfaceOptimizationParameters goParams, final boolean autorun, final boolean noSplash, final boolean noGui) {
this(hostName, parent, paramsFile, goParams, autorun, noSplash, noGui, false);
}
@@ -215,7 +204,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* locally or as client for the EvA2 server. GO parameters may be loaded
* from a file (paramsFile) or given directly as a java instance. Both may
* be null to start with standard parameters. If both are non null, the java
- * instance has the higher priority. Note that the EvAClient initialized
+ * instance has the higher priority. Note that the Main initialized
* multi-threaded for efficiency. Use {@link #awaitGuiInitialized()} to
* await full initialization if necessary.
*
@@ -226,9 +215,9 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* @param noSplash
* @param noGui
*/
- public EvAClient(final String hostName, final Window parent, final String paramsFile, final InterfaceOptimizationParameters goParams, final boolean autorun, final boolean noSplash, final boolean noGui, final boolean showTreeView) {
+ public Main(final String hostName, final Window parent, final String paramsFile, final InterfaceOptimizationParameters goParams, final boolean autorun, final boolean noSplash, final boolean noGui, final boolean showTreeView) {
clientInited = false;
- final SplashScreen splashScreen = new SplashScreen(EvAInfo.splashLocation);
+ final eva2.gui.SplashScreen splashScreen = new eva2.gui.SplashScreen(EvAInfo.splashLocation);
// preload some classes (into system cache) in a parallel thread
preloadClasses();
@@ -261,7 +250,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
if (!autorun) {
if (!noSplash) {
try {
- // if splashScreenTime has not passed, sleep some more
+ // if splashScreenTime has not passed, sleep some more
if (wait < splashScreenTime) {
Thread.sleep(splashScreenTime - wait);
}
@@ -294,7 +283,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
/**
* Since the constructor runs multi-threaded for efficiency, this method may
* be called to await the full initialization of a client instance. As soon
- * as it returns, the EvAClient GUI is fully initialized.
+ * as it returns, the Main GUI is fully initialized.
*/
public void awaitClientInitialized() {
if (initRnbl != null) {
@@ -331,14 +320,14 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
}
}
-
+
/**
* Set UI Font for all controls.
- *
+ *
* @param fontResource The FontUIResource for the controls
- */
+ */
private static void setUIFont(javax.swing.plaf.FontUIResource fontResource) {
- java.util.Enumeration keys = UIManager.getDefaults().keys();
+ Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
@@ -355,9 +344,9 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
private void init(String hostName, String paramsFile, InterfaceOptimizationParameters goParams, final Window parent) {
useDefaultModule = EvAInfo.propDefaultModule();
this.parentWindow = parent;
-
+
setUIFont(new javax.swing.plaf.FontUIResource(Font.SANS_SERIF, 0, 11));
-
+
if (useDefaultModule != null) {
useDefaultModule = useDefaultModule.trim();
if (useDefaultModule.length() < 1) {
@@ -367,7 +356,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
if (withGUI) {
GridBagConstraints gbConstraints = new GridBagConstraints();
-
+
/* Set Look and Feel */
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
@@ -375,18 +364,18 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
} catch (Exception ex) {
LOGGER.log(Level.INFO, "Could not set Look&Feel", ex);
}
-
+
/* Create main frame with GridBagLayout */
setTitle(EvAInfo.productName);
setLayout(new GridBagLayout());
setMinimumSize(new Dimension(800, 600));
/* Creates the desktopPane for Plot/Text Output */
- desktopPane = new JExtDesktopPane();
+ desktopPane = new JExtDesktopPane();
JEFrameRegister.getInstance().setDesktopPane(desktopPane);
/* Creates desktopPane ToolBar to show tiling buttons */
desktopToolBar = new JExtDesktopPaneToolBar((JExtDesktopPane) desktopPane);
-
+
/* Pane to hold ToolBar + DesktopPane */
JPanel desktopPanel = new JPanel(new GridBagLayout());
GridBagConstraints desktopConst = new GridBagConstraints();
@@ -399,7 +388,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
desktopConst.fill = GridBagConstraints.BOTH;
desktopConst.weighty = 1.0;
desktopPanel.add(desktopPane, desktopConst);
-
+
BasicResourceLoader loader = BasicResourceLoader.instance();
byte[] bytes = loader.getBytesFromResourceLocation(EvAInfo.iconLocation, true);
// TODO: use setIconImages (for better support of multiple icons when changing programs etc.)
@@ -410,7 +399,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
} catch (Exception e) {
System.out.println("Error" + e.getMessage());
}
-
+
logPanel = new LoggingPanel(LOGGER);
logPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
@@ -421,9 +410,9 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
showLoadModules = false; // may be set to true again if default module couldnt be loaded
}
createActions();
-
+
setSize(800, 600);
-
+
/* Create a new ConfigurationPanel (left side) */
configurationPane = new JPanel(new GridBagLayout());
gbConstraints.ipadx = 5;
@@ -436,13 +425,13 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
gbConstraints.gridwidth = GridBagConstraints.RELATIVE;
gbConstraints.gridheight = GridBagConstraints.RELATIVE;
add(configurationPane, gbConstraints);
-
+
/* SplitPane for desktopPanel and loggingPanel */
horizontalSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true);
horizontalSplit.setTopComponent(desktopPanel);
horizontalSplit.setBottomComponent(logPanel);
- horizontalSplit.setDividerLocation(0.25);
- horizontalSplit.setDividerSize(8);
+ horizontalSplit.setDividerLocation(0.25);
+ horizontalSplit.setDividerSize(8);
horizontalSplit.setOneTouchExpandable(true);
horizontalSplit.setResizeWeight(1.0);
horizontalSplit.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
@@ -454,33 +443,33 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
gbConstraints.gridwidth = GridBagConstraints.REMAINDER;
gbConstraints.gridheight = GridBagConstraints.RELATIVE;
add(horizontalSplit, gbConstraints);
-
+
/* StatusBar of the main frame */
statusBar = new JPanel(new FlowLayout(FlowLayout.RIGHT));
JPanel statusBarControls = new JPanel();
statusBarControls.setLayout(new BoxLayout(statusBarControls, BoxLayout.LINE_AXIS));
-
+
statusBarControls.add(Box.createHorizontalGlue());
/* Logging settings drop down */
LoggingLevelLabel loggingOption = new LoggingLevelLabel(LOGGER);
-
+
statusBarControls.add(loggingOption);
-
+
statusBarControls.add(Box.createHorizontalStrut(5));
statusBarControls.add(new JSeparator(JSeparator.VERTICAL));
statusBarControls.add(Box.createHorizontalStrut(5));
-
+
/* Create ProgressBar and add it to the status bar */
statusBarControls.add(new JLabel("Progress"));
statusBarControls.add(Box.createHorizontalStrut(5));
-
+
progressBar = new JProgressBar();
progressBar.setValue(0);
progressBar.setStringPainted(true);
statusBarControls.add(progressBar);
-
+
statusBar.add(statusBarControls);
-
+
gbConstraints.gridx = 0;
gbConstraints.gridy = 2;
gbConstraints.gridwidth = 2;
@@ -488,11 +477,11 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
gbConstraints.fill = GridBagConstraints.HORIZONTAL;
gbConstraints.anchor = GridBagConstraints.PAGE_END;
add(statusBar, gbConstraints);
-
+
setVisible(true);
}
if (useDefaultModule != null) {
- /*
+ /*
* if goParams are not defined and a params file is defined
* try to load parameters from file
*/
@@ -509,12 +498,12 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
@Override
public void windowClosing(final WindowEvent event) {
int result = JOptionPane.showConfirmDialog(
- EvAClient.this,
+ Main.this,
"Do you really want to exit EvA2?",
"Exit Application",
JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION) {
- EvAClient.this.close();
+ Main.this.close();
}
}
});
@@ -527,7 +516,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
if (!(configurationPane.isVisible())) {
configurationPane.setVisible(true);
}
-
+
if (!(this.isVisible())) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((int) ((screenSize.width - this.getWidth()) / 2), (int) ((screenSize.height - this.getHeight()) / 2.5));
@@ -536,13 +525,13 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
this.setVisible(true);
this.setVisible(true);
}
-
+
// if this message is omitted, the stupid scroll pane runs to
// the end of the last line which is ugly for a long class path
LOGGER.info("EvA2 ready");
}
}
-
+
/**
* Closes EvA2 workbench. Will not kill the JVM iff
* the MATLAB environment variable has been set.
@@ -572,7 +561,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* The one and only main of the client program. Possible arguments:
* --autorun immediately starts the optimization (with parameters loaded
* from current directory if available. --hostname HOST: sets the hostname
- * for the EvAClient to HOST --nosplash: skip the splash screen. --params
+ * for the Main to HOST --nosplash: skip the splash screen. --params
* PFILE: load the optimization parameter from the serialized file PFILE
*
* @param args command line parameters
@@ -587,21 +576,21 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* command-line arguments! See above!
*/
System.setProperty("com.apple.mrj.application.apple.menu.about.name", EvAInfo.productName);
-
+
System.setProperty("apple.awt.graphics.EnableQ2DX", "true");
System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("com.apple.macos.smallTabs", "true");
System.setProperty("com.apple.macos.useScreenMenuBar", "true");
-
+
System.setProperty("com.apple.mrj.application.growbox.intrudes", "false");
System.setProperty("com.apple.mrj.application.live-resize", "true");
}
/*==========================================================================*/
-
-
+
+
/* Available command-line parameters */
String[] keys = new String[]{
- "--help", "--autorun", "--nosplash", "--nogui",
+ "--help", "--autorun", "--nosplash", "--nogui",
"--remotehost", "--params", "--treeView"
};
/* Number of arguments per parameter */
@@ -630,7 +619,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
String hostName = StringTools.checkSingleStringArg(keys[4], values[4], arities[4] - 1);
String paramsFile = StringTools.checkSingleStringArg(keys[5], values[5], arities[5] - 1);
- new EvAClient(hostName, paramsFile, autorun, nosplash, nogui, treeView);
+ new Main(hostName, paramsFile, autorun, nosplash, nogui, treeView);
}
}
@@ -643,12 +632,12 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* optimization
* @param windowListener additional window listener for client frame
*/
- public static EvAClient initClientGUI(OptimizationParameters goParams,
+ public static Main initClientGUI(OptimizationParameters goParams,
InterfaceStatisticsListener statisticsListener,
WindowListener windowListener, final Window parent) {
- EvAClient evaClient;
+ Main evaClient;
- evaClient = new EvAClient(null, parent, null, goParams,
+ evaClient = new Main(null, parent, null, goParams,
false, true, false, false); // initializes GUI in the background
// important: wait for GUI initialization before accessing any internal
// settings:
@@ -656,7 +645,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
// GUI is ready
evaClient.addWindowListener(windowListener);
// modify initial settings and activate output of all data:
- evaClient.getStatistics().getStatisticsParameter().setOutputAllFieldsAsText(true);
+ evaClient.getStatistics().getStatisticsParameter().setOutputAllFieldsAsText(true);
// add a data listener instance:
evaClient.getStatistics().addDataListener(statisticsListener);
@@ -718,16 +707,16 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
showLicense();
}
};
-
+
actQuit = new ExtAction("&Quit", "Quit EvA2 workbench",
KeyStroke.getKeyStroke(KeyEvent.VK_Q, Event.CTRL_MASK)) {
@Override
public void actionPerformed(final ActionEvent event) {
- EvAClient.this.close();
+ Main.this.close();
}
};
-
+
actPreferences = new ExtAction("&Preferences", "Show preferences dialog",
KeyStroke.getKeyStroke(KeyEvent.VK_P, Event.CTRL_MASK)) {
@@ -736,7 +725,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
// ToDo
}
};
-
+
actHelp = new ExtAction("&Help", "Show help contents",
KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0)) {
@@ -744,7 +733,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
public void actionPerformed(final ActionEvent event) {
// ToDo
String helpHS = "EvA2Help/EvA2Help.hs";
- ClassLoader cl = EvAClient.class.getClassLoader();
+ ClassLoader cl = Main.class.getClassLoader();
JHelpContentViewer helpPane;
try {
URL hsURL = HelpSet.findHelpSet(cl, helpHS);
@@ -760,7 +749,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
} catch (Exception ee) {
// Say what the exception really is
LOGGER.log(Level.WARNING, "Could not open application help", ee);
- }
+ }
}
};
}
@@ -877,14 +866,14 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
frameMaker = newModuleAdapter.getModuleFrame();
/* This is the left TabPane on the main frame */
- JPanel moduleContainer = frameMaker.makePanel();
+ JPanel moduleContainer = frameMaker.makePanel();
boolean wasVisible = configurationPane.isVisible();
configurationPane.setVisible(false);
configurationPane.removeAll();
GridBagConstraints gbConstraints = new GridBagConstraints();
-
+
/* ToDo: Find a way to properly add the TreeView to the GOPanel */
if (withTreeView && (newModuleAdapter instanceof AbstractModuleAdapter)) {
JComponent tree = null;
@@ -896,8 +885,8 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
gbConstraints.weighty = 1.0;
configurationPane.add(tree, gbConstraints);
}
-
-
+
+
gbConstraints.weightx = 1.0;
gbConstraints.weighty = 0.0;
gbConstraints.gridx = 0;
@@ -906,13 +895,13 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
gbConstraints.fill = GridBagConstraints.HORIZONTAL;
gbConstraints.anchor = GridBagConstraints.PAGE_START;
add(frameMaker.getToolBar(), gbConstraints);
-
+
GridBagConstraints gbConstraints2 = new GridBagConstraints();
gbConstraints2.gridx = 0;
- gbConstraints2.gridy = 0;
- gbConstraints2.fill = GridBagConstraints.VERTICAL;
+ gbConstraints2.gridy = 0;
+ gbConstraints2.fill = GridBagConstraints.VERTICAL;
//gbConstraints2.gridheight = GridBagConstraints.REMAINDER;
- gbConstraints2.weighty = 1.0;
+ gbConstraints2.weighty = 1.0;
configurationPane.add(moduleContainer, gbConstraints2);
configurationPane.validate();
}
@@ -942,7 +931,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
* Create a tree view of an object based on EvATreeNode. It is encapsulated
* in a JScrollPane.
*
- * @see EvATreeNode
+ * @see eva2.gui.EvATreeNode
* @param title
* @param object
* @return
@@ -954,7 +943,7 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
EvATreeSelectionListener treeListener = new EvATreeSelectionListener(root, goPanel.getEditor(), jtree);
// hooks itself up as the tree listener. It reacts both to changes in the selection
- // state of the tree (to update the parameter panel) and to changes in the
+ // state of the tree (to update the parameter panel) and to changes in the
// parameters to update the tree
return treeView;
}
@@ -1036,35 +1025,3 @@ public class EvAClient extends JFrame implements OptimizationStateListener {
}
}
}
-final class SplashScreen extends Frame {
-
- private static final long serialVersionUID = 1281793825850423095L;
- private String imgLocation;
-
- public SplashScreen(String imgLoc) {
- imgLocation = imgLoc;
- }
-
- /**
- * Show the splash screen to the end user.
- *
- *
Once this method returns, the splash screen is realized, which means
- * that almost all work on the splash screen should proceed through the
- * event dispatch thread. In particular, any call to
- * dispose for the splash screen must be performed in the event
- * dispatch thread.
- */
- public void splash() {
- JWindow splashWindow = new JWindow(this);
- BasicResourceLoader loader = BasicResourceLoader.instance();
- byte[] bytes = loader.getBytesFromResourceLocation(imgLocation, true);
- ImageIcon ii = new ImageIcon(Toolkit.getDefaultToolkit().createImage(bytes));
- JLabel splashLabel = new JLabel(ii);
-
- splashWindow.add(splashLabel);
- splashWindow.pack();
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- splashWindow.setLocation(screenSize.width / 2 - splashWindow.getSize().width / 2, screenSize.height / 2 - splashWindow.getSize().height / 2);
- splashWindow.setVisible(true);
- }
-}
\ No newline at end of file
diff --git a/src/eva2/gui/SplashScreen.java b/src/eva2/gui/SplashScreen.java
new file mode 100644
index 00000000..8fa6f111
--- /dev/null
+++ b/src/eva2/gui/SplashScreen.java
@@ -0,0 +1,51 @@
+package eva2.gui;
+
+/*
+ * Title: EvA2
+ * Description: The main client class of the EvA framework.
+ * Copyright: Copyright (c) 2008
+ * Company: University of Tuebingen, Computer
+ * Architecture
+ *
+ * @author Holger Ulmer, Felix Streichert, Hannes Planatscher
+ * @version: $Revision: 322 $ $Date: 2007-12-11 17:24:07 +0100 (Tue, 11 Dec 2007)$
+ * $Author: mkron $
+ */
+import eva2.tools.BasicResourceLoader;
+
+import java.awt.*;
+import javax.swing.*;
+
+
+class SplashScreen extends Frame {
+
+ private static final long serialVersionUID = 1281793825850423095L;
+ private String imgLocation;
+
+ public SplashScreen(String imgLoc) {
+ imgLocation = imgLoc;
+ }
+
+ /**
+ * Show the splash screen to the end user.
+ *
+ *
Once this method returns, the splash screen is realized, which means
+ * that almost all work on the splash screen should proceed through the
+ * event dispatch thread. In particular, any call to
+ * dispose for the splash screen must be performed in the event
+ * dispatch thread.
+ */
+ public void splash() {
+ JWindow splashWindow = new JWindow(this);
+ BasicResourceLoader loader = BasicResourceLoader.instance();
+ byte[] bytes = loader.getBytesFromResourceLocation(imgLocation, true);
+ ImageIcon ii = new ImageIcon(Toolkit.getDefaultToolkit().createImage(bytes));
+ JLabel splashLabel = new JLabel(ii);
+
+ splashWindow.add(splashLabel);
+ splashWindow.pack();
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ splashWindow.setLocation(screenSize.width / 2 - splashWindow.getSize().width / 2, screenSize.height / 2 - splashWindow.getSize().height / 2);
+ splashWindow.setVisible(true);
+ }
+}
\ No newline at end of file
diff --git a/src/eva2/optimization/go/GOStandaloneVersion.java b/src/eva2/optimization/go/GOStandaloneVersion.java
index cfaccd65..2ff23d08 100644
--- a/src/eva2/optimization/go/GOStandaloneVersion.java
+++ b/src/eva2/optimization/go/GOStandaloneVersion.java
@@ -166,7 +166,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu
}
this.m_O1 = (paraPanel.makePanel());
// TODO this is defunct anyways... (MK, 2010-03)
-// EvAClient.setProperty("eva2.server.oa.go.Tools.InterfaceTest", "eva2.server.oa.go.Tools.Test1,eva2.server.oa.go.Tools.Test2");
+// Main.setProperty("eva2.server.oa.go.Tools.InterfaceTest", "eva2.server.oa.go.Tools.Test1,eva2.server.oa.go.Tools.Test2");
this.m_OptionsPanel = new JTabbedPane();
JParaPanel paraPanel2 = new JParaPanel(this.m_GO, "MyGUI");
this.m_O2 = (paraPanel2.makePanel());
diff --git a/src/eva2/optimization/operator/archiving/ArchivingNSGAII.java b/src/eva2/optimization/operator/archiving/ArchivingNSGAII.java
index 9ec548de..7ce9aa12 100644
--- a/src/eva2/optimization/operator/archiving/ArchivingNSGAII.java
+++ b/src/eva2/optimization/operator/archiving/ArchivingNSGAII.java
@@ -39,25 +39,6 @@ public class ArchivingNSGAII extends ArchivingNSGA implements java.io.Serializab
pop.SetArchive(new Population());
}
- //////////////////////////////////////////////////////////////////////////////////////////////
- if (this.m_Debug && false) {
- // plot the complete population
- double[] tmpD = new double[2];
- tmpD[0] = 0;
- tmpD[1] = 0;
- this.m_Plot = new eva2.gui.Plot("Debug NSGAII", "Y1", "Y2", tmpD, tmpD);
- System.out.println("Population size: " + pop.size());
- // plot the population
- this.m_Plot.setUnconnectedPoint(0, 0, 11);
- this.m_Plot.setUnconnectedPoint(1.05, 2.5, 11);
- double[][] trueFitness = new double[pop.size()][];
- for (int i = 0; i < pop.size(); i++) {
- trueFitness[i] = ((AbstractEAIndividual)pop.get(i)).getFitness();
- this.m_Plot.setUnconnectedPoint(trueFitness[i][0], trueFitness[i][1], 11);
- }
- }
- //////////////////////////////////////////////////////////////////////////////////////////////
-
// First merge the current population and the archive
Population tmpPop = new Population();
tmpPop.addPopulation((Population)pop.getClone());
diff --git a/src/eva2/optimization/operator/archiving/ArchivingPESAII.java b/src/eva2/optimization/operator/archiving/ArchivingPESAII.java
index 394f9fc9..4eedb070 100644
--- a/src/eva2/optimization/operator/archiving/ArchivingPESAII.java
+++ b/src/eva2/optimization/operator/archiving/ArchivingPESAII.java
@@ -48,36 +48,6 @@ public class ArchivingPESAII extends AbstractArchiving implements java.io.Serial
}
Population archive = pop.getArchive();
- ////////////////////////////////////////////////////////////////////////////////////
- if (this.m_Debug) {
- this.m_Plot = new eva2.gui.Plot("Debug SPEAII", "Y1", "Y2", true);
- System.out.println("Population size: " + pop.size());
- // plot the population
- this.m_Plot.setUnconnectedPoint(0, 0, 11);
- this.m_Plot.setUnconnectedPoint(1.2, 2.0, 11);
- Population tmpPop = new Population();
- tmpPop.addPopulation(pop);
- tmpPop.addPopulation(pop.getArchive());
- double[][] trueFitness;
- GraphPointSet mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
- DPoint myPoint;
- Chart2DDPointIconText tmp;
- trueFitness = new double[archive.size()][];
- for (int i = 0; i < archive.size(); i++) {
- trueFitness[i] = ((AbstractEAIndividual)archive.get(i)).getFitness();
- }
- mySet.setConnectedMode(false);
- for (int i = 0; i < trueFitness.length; i++) {
- myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
- tmp = new Chart2DDPointIconText("");
- tmp.setIcon(new Chart2DDPointIconCircle());
- myPoint.setIcon(tmp);
- mySet.addDPoint(myPoint);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////
-
-
// test for each element in population if it
// is dominating a element in the archive
for (int i = 0; i < pop.size(); i++) {
@@ -87,57 +57,7 @@ public class ArchivingPESAII extends AbstractArchiving implements java.io.Serial
}
////////////////////////////////////////////////////////////////////////////////////
- if (this.m_Debug) {
- // first plot the grid
- double[][] bounds;
- double[][] trueFitness = new double[archive.size()][];
- // first calculate the bounds of the search space
- bounds = new double[((AbstractEAIndividual)archive.get(0)).getFitness().length][2];
- for (int i = 0; i < bounds.length; i++) {
- bounds[i][0] = Double.POSITIVE_INFINITY;
- bounds[i][1] = Double.NEGATIVE_INFINITY;
- }
- for (int i = 0; i < archive.size(); i++) {
- trueFitness[i] = ((AbstractEAIndividual)archive.get(i)).getFitness();
- for (int j = 0; j < trueFitness[i].length; j++) {
- if (trueFitness[i][j] < bounds[j][0]) {
- bounds[j][0] = trueFitness[i][j];
- }
- if (trueFitness[i][j] > bounds[j][1]) {
- bounds[j][1] = trueFitness[i][j];
- }
- }
- }
- double gridx, gridy;
- DLine line;
- gridx = (bounds[0][1] - bounds[0][0])/this.m_GridSize;
- gridy = (bounds[1][1] - bounds[1][0])/this.m_GridSize;
- for (int i = 0; i <= this.m_GridSize; i++) {
- line = new DLine(bounds[0][0]+gridx*i, bounds[1][0], bounds[0][0]+gridx*i, bounds[1][1], Color.BLUE);
- this.m_Plot.getFunctionArea().addDElement(line);
- line = new DLine(bounds[0][0], bounds[1][0]+gridy*i, bounds[0][1], bounds[1][0]+gridy*i, Color.BLUE);
- this.m_Plot.getFunctionArea().addDElement(line);
- }
-
- // now plot the archive with squeezing factor
- int[] sqFactor = this.calculateSqueezeFactor(archive);
- GraphPointSet mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
- DPoint myPoint;
- Chart2DDPointIconText tmp;
- Chart2DDPointIconCircle tmp2;
- mySet.setConnectedMode(false);
- for (int i = 0; i < trueFitness.length; i++) {
- myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
- tmp = new Chart2DDPointIconText("SF:"+sqFactor[i]);
- tmp2 = new Chart2DDPointIconCircle();
- tmp2.setFillColor(Color.GREEN);
- tmp.setIcon(tmp2);
- myPoint.setIcon(tmp);
- mySet.addDPoint(myPoint);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////
// Now check whether there are individuals to remove
int bigSqueeze, index;
@@ -157,27 +77,6 @@ public class ArchivingPESAII extends AbstractArchiving implements java.io.Serial
}
archive.remove(index);
}
- ////////////////////////////////////////////////////////////////////////////////////
- if (this.m_Debug) {
- double[][] trueFitness;
- GraphPointSet mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
- DPoint myPoint;
- Chart2DDPointIconCircle tmp;
- trueFitness = new double[archive.size()][];
- for (int i = 0; i < archive.size(); i++) {
- trueFitness[i] = ((AbstractEAIndividual)archive.get(i)).getFitness();
- }
- mySet.setConnectedMode(false);
- for (int i = 0; i < trueFitness.length; i++) {
- myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
- tmp = new Chart2DDPointIconCircle();
- tmp.setFillColor(Color.RED);
- myPoint.setIcon(tmp);
- mySet.addDPoint(myPoint);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////
-
}
/** This method will calculate the squeeze factor for a population
diff --git a/src/eva2/optimization/operator/archiving/ArchivingSPEAII.java b/src/eva2/optimization/operator/archiving/ArchivingSPEAII.java
index 84821ae8..37397849 100644
--- a/src/eva2/optimization/operator/archiving/ArchivingSPEAII.java
+++ b/src/eva2/optimization/operator/archiving/ArchivingSPEAII.java
@@ -48,16 +48,6 @@ public class ArchivingSPEAII extends AbstractArchiving implements java.io.Serial
pop.SetArchive(new Population());
}
- ////////////////////////////////////////////////////////////////////////////////////
- if (this.m_Debug) {
- this.m_Plot = new eva2.gui.Plot("Debug SPEAII", "Y1", "Y2", true);
- System.out.println("Population size: " + pop.size());
- // plot the population
- this.m_Plot.setUnconnectedPoint(0, 0, 11);
- this.m_Plot.setUnconnectedPoint(1.2, 2.0, 11);
- }
- ////////////////////////////////////////////////////////////////////////////////////
-
// First merge the current population and the archive
Population tmpPop = new Population();
tmpPop.addPopulation((Population)pop.getClone());
@@ -73,30 +63,6 @@ public class ArchivingSPEAII extends AbstractArchiving implements java.io.Serial
// ((AbstractEAIndividual)tmpPop.get(i)).SetData("kthDistance", new Double(kthDistance[i]));
// }
- ////////////////////////////////////////////////////////////////////////////////////
- if (this.m_Debug) {
- double[][] trueFitness;
- GraphPointSet mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
- DPoint myPoint;
- double tmp1, tmp2;
- Chart2DDPointIconText tmp;
- trueFitness = new double[tmpPop.size()][];
- for (int i = 0; i < tmpPop.size(); i++) {
- trueFitness[i] = ((AbstractEAIndividual)tmpPop.get(i)).getFitness();
- }
- mySet.setConnectedMode(false);
- for (int i = 0; i < trueFitness.length; i++) {
- myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
- tmp1 = Math.round(RawFitness[i]*100)/(double)100;
- tmp2 = Math.round(kthDistance[i]*100)/(double)100;
- tmp = new Chart2DDPointIconText("RF:"+RawFitness[i]+"/ KD:"+tmp2);
- tmp.setIcon(new Chart2DDPointIconCircle());
- myPoint.setIcon(tmp);
- mySet.addDPoint(myPoint);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////
-
// Now init the new archive
Population archive = new Population();
archive.setTargetSize(pop.getArchive().getTargetSize());
@@ -110,54 +76,6 @@ public class ArchivingSPEAII extends AbstractArchiving implements java.io.Serial
archive.add(tmpPop.get(i));
}
}
- ///////////////////////////////////////////////////////////////////////////////
-
-// double[][] p = this.showMay(archive);
-// if ((true) && ((p[0][0] > d[0][0]) || (p[1][1] > d[1][1]))) {
-// this.tz = true;
-// this.calculateRawFitness(tmpPop);
-// this.tz = false;
-// this.m_Plot = new eva2.gui.Plot("Debug SPEAII", "Y1", "Y2");
-// // plot the population
-// this.m_Plot.setUnconnectedPoint(0, 0, 11);
-// this.m_Plot.setUnconnectedPoint(1.2, 2.0, 11);
-// System.out.println("------------------Alert max!");
-// double[][] trueFitness;
-// GraphPointSet mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
-// DPoint myPoint;
-// double tmp1, tmp2;
-// Chart2DDPointIconText tmp;
-// trueFitness = new double[tmpPop.size()][];
-// for (int i = 0; i < tmpPop.size(); i++) {
-// trueFitness[i] = ((AbstractEAIndividual)tmpPop.get(i)).getFitness();
-// }
-// mySet.setConnectedMode(false);
-// for (int i = 0; i < trueFitness.length; i++) {
-// myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
-// tmp1 = Math.round(RawFitness[i]*100)/(double)100;
-// tmp2 = Math.round(kthDistance[i]*100)/(double)100;
-// tmp = new Chart2DDPointIconText(""+RawFitness[i]+"/"+tmp2);
-// tmp.setIcon(new Chart2DDPointIconCircle());
-// myPoint.setIcon(tmp);
-// mySet.addDPoint(myPoint);
-// }
-//
-// mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
-// Chart2DDPointIconCircle tmpC;
-// trueFitness = new double[archive.size()][];
-// for (int i = 0; i < archive.size(); i++) {
-// trueFitness[i] = ((AbstractEAIndividual)archive.get(i)).getFitness();
-// }
-// mySet.setConnectedMode(false);
-// for (int i = 0; i < trueFitness.length; i++) {
-// myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
-// tmpC = new Chart2DDPointIconCircle();
-// tmpC.setFillColor(Color.GREEN);
-// myPoint.setIcon(tmpC);
-// mySet.addDPoint(myPoint);
-// }
-// }
- /////////////////////////////////////////////////////////////////////////////////////
// if there is some place left let's add some more
int currentLevel = 0;
@@ -169,26 +87,6 @@ public class ArchivingSPEAII extends AbstractArchiving implements java.io.Serial
}
}
}
- ////////////////////////////////////////////////////////////////////////////////////
- if (this.m_Debug) {
- double[][] trueFitness;
- GraphPointSet mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
- DPoint myPoint;
- Chart2DDPointIconCircle tmp;
- trueFitness = new double[archive.size()][];
- for (int i = 0; i < archive.size(); i++) {
- trueFitness[i] = ((AbstractEAIndividual)archive.get(i)).getFitness();
- }
- mySet.setConnectedMode(false);
- for (int i = 0; i < trueFitness.length; i++) {
- myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
- tmp = new Chart2DDPointIconCircle();
- tmp.setFillColor(Color.GREEN);
- myPoint.setIcon(tmp);
- mySet.addDPoint(myPoint);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////
// Here i want to remove surplus individuals *pff*
// So the basic idea is to search on the highes level of
@@ -215,72 +113,8 @@ public class ArchivingSPEAII extends AbstractArchiving implements java.io.Serial
archive.remove(ICurSma);
}
- ////////////////////////////////////////////////////////////////////////////////////
- if (this.m_Debug) {
- double[][] trueFitness;
- GraphPointSet mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
- DPoint myPoint;
- Chart2DDPointIconCircle tmp;
- trueFitness = new double[archive.size()][];
- for (int i = 0; i < archive.size(); i++) {
- trueFitness[i] = ((AbstractEAIndividual)archive.get(i)).getFitness();
- }
- mySet.setConnectedMode(false);
- for (int i = 0; i < trueFitness.length; i++) {
- myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
- tmp = new Chart2DDPointIconCircle();
- tmp.setFillColor(Color.RED);
- myPoint.setIcon(tmp);
- mySet.addDPoint(myPoint);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////
pop.SetArchive(archive);
- // if there are too many let's remove the surplus
- // i could simply remove the individuals with the
- // smallest distance to a neighbor selecting from
- // all individuals or just selecting from the ones
- // in the range of currentLevel to currentLevel+1
-// while (archive.size() > archive.getPopulationSize()) {
-// // now it's time to use the <=d operator e.g.
-// // remove the individuals that are to close
-// // to thier neighbours
-// double[][] dist
-//
-// }
-
-//
-// // might sound stuid but as far as i understood this
-// // i'll simply select the n best ones regarding SPEAFit
-// Population archive = (Population)pop.getArchive().clone();
-// archive.clear();
-// double smallest;
-// int index;
-// for (int i = 0; i < archive.getPopulationSize(); i++) {
-// // find the smallest one
-// index = -1;
-// smallest = Double.POSITIVE_INFINITY;
-// for (int j = 0; j < SPEAFit.length; j++) {
-// if (smallest > SPEAFit[j]) {
-// smallest = SPEAFit[j];
-// index = j;
-// }
-// }
-//
-// if (index > -1) {
-// SPEAFit[index] = Double.POSITIVE_INFINITY;
-// archive.add(tmpPop.get(index));
-// }
-// }
-// if (this.m_Debug) {
-// // plot the archive
-// double[] tmpD;
-// for (int i = 0; i < archive.size(); i++) {
-// tmpD = ((AbstractEAIndividual)archive.get(i)).getFitness();
-// this.m_Plot.setUnconnectedPoint(tmpD[0], tmpD[1], 12);
-// }
-// }
}
private double[][] showMay(Population pop) {
@@ -539,26 +373,6 @@ public class ArchivingSPEAII extends AbstractArchiving implements java.io.Serial
((AbstractEAIndividual)pop.get(i)).putData("SPEAFit", new Double(SPEAResult[i]));
}
- if (this.m_Debug && this.m_Plot != null) {
- //System.out.println("k: " + k);
- GraphPointSet mySet = new GraphPointSet(10, this.m_Plot.getFunctionArea());
- DPoint myPoint;
- double tmp1, tmp2;
- Chart2DDPointIconText tmp;
-
- mySet.setConnectedMode(false);
- for (int i = 0; i < trueFitness.length; i++) {
-
- myPoint = new DPoint(trueFitness[i][0], trueFitness[i][1]);
- tmp1 = Math.round(SPEAResult[i]*100)/(double)100;
- tmp2 = Math.round(D[i]*100)/(double)100;
- tmp = new Chart2DDPointIconText(""+SPEAStrength[i]+"/"+SPEAFitness[i]);
- tmp.setIcon(new Chart2DDPointIconCircle());
- myPoint.setIcon(tmp);
- mySet.addDPoint(myPoint);
- }
- }
-
// Puh!
return SPEAResult;
}
diff --git a/src/eva2/optimization/problems/ERPStarter.java b/src/eva2/optimization/problems/ERPStarter.java
index 19432881..e982bc94 100644
--- a/src/eva2/optimization/problems/ERPStarter.java
+++ b/src/eva2/optimization/problems/ERPStarter.java
@@ -2,7 +2,7 @@ package eva2.optimization.problems;
import eva2.OptimizerFactory;
import eva2.OptimizerRunnable;
-import eva2.client.EvAClient;
+import eva2.gui.Main;
import eva2.gui.BeanInspector;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.modules.OptimizationParameters;
@@ -85,7 +85,7 @@ public class ERPStarter {
// Instantiate optimization
OptimizationParameters params = new OptimizationParameters(opt, erp, new EvaluationTerminator(maxEvals));
if (startGUI) {
- EvAClient.initClientGUI(params, null, null, null);
+ Main.initClientGUI(params, null, null, null);
} else {
OptimizerRunnable rnbl = new OptimizerRunnable(params, new StatisticsStandalone(outputFilePrefix, 1, 3, true), false);
// actually start the optimization
diff --git a/src/eva2/optimization/stat/AbstractStatistics.java b/src/eva2/optimization/stat/AbstractStatistics.java
index f46358e1..eb666c77 100644
--- a/src/eva2/optimization/stat/AbstractStatistics.java
+++ b/src/eva2/optimization/stat/AbstractStatistics.java
@@ -13,6 +13,7 @@ import eva2.tools.StringSelection;
import eva2.tools.StringTools;
import eva2.tools.ToolBox;
import eva2.tools.math.Mathematics;
+
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
@@ -21,654 +22,637 @@ import java.util.*;
/**
* An abstract class handling statistics. Most important stuff happens in startOptPerformed, stopOptPerformed
- * and createNextGenerationPerformed. Any measures (run based or multi-run based) are reset in startOptPerformed,
+ * and createNextGenerationPerformed. Any measures (run based or multi-run based) are reset in startOptPerformed,
* updated per iteration in createNextGenerationPerformed and reported to listeners in stopOptPerformed.
- * Several different verbosity levels are regarded.
- * The method plotCurrentResults should be implemented to plot further results per iteration.
- *
+ * Several different verbosity levels are regarded.
+ * The method plotCurrentResults should be implemented to plot further results per iteration.
+ *
* All displayable data is now routed through a single pipeline, which consists in a
* list of Objects assembled in the getOutputValues method. This allows all simple data types which are
* provided by the external informer instances to be handled uniformly to the internally collected data, and
* thus they can be plotted and text-dumped in the same manner.
* Basic fields are identified by the enum GraphSelectionEnum and are available independently of additional
* informer instances.
- *
+ *
* Depending on the field selection state and the informers, the list of data fields is dynamically altered,
- * however changes during a multi-run are ignored, since the potential of inconsistencies is too high.
- *
- * Listeners implementing InterfaceTextListener receive String output (human readable).
+ * however changes during a multi-run are ignored, since the potential of inconsistencies is too high.
+ *
+ * Listeners implementing InterfaceTextListener receive String output (human readable).
* Listeners implementing InterfaceStatisticsListener receive the raw data per iteration.
- *
- * @see StatsParameter
- * @author mkron
*
+ * @author mkron
+ * @see StatsParameter
*/
public abstract class AbstractStatistics implements InterfaceTextListener, InterfaceStatistics {
- private transient PrintWriter resultOut;
- public final static boolean TRACE = false;
- protected InterfaceStatisticsParameter m_StatsParams;
-
- /**
- * Keep track of all intermediate fitness values, best, avg. and worst, averaging over all runs
- * for final output, "refining" the multi run data.
- * If the runs have different lengths, the shortest of all defines the length
- * of averaged data to be displayed. This mechanism expects that createNextGenerationPerformed
- * comes in regular intervals (in terms of function calls performed). This needs to be emulated
- * by dynamic population optimizers, also due to the graph output.
- */
- private boolean refineMultiRuns = true;
-// private ArrayList meanCollection;
- private ArrayList