diff --git a/src/eva2/client/EvAClient.java b/src/eva2/client/EvAClient.java index 61c6ad02..795429ef 100644 --- a/src/eva2/client/EvAClient.java +++ b/src/eva2/client/EvAClient.java @@ -400,7 +400,16 @@ public class EvAClient implements RemoteStateListener, Serializable { m_LogPanel.logMessage("EvA2 ready"); // 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 } } - + + /** + * Refresh the parameter panels (if settings have been changed outside + * of the GUI which should be updated in the GUI. + * + */ + public void refreshMainPanels() { + frmMkr.refreshPanels(); + } + /** * The one and only main of the client program. Possible arguments: * --autorun immediately starts the optimization (with parameters loaded from current diff --git a/src/eva2/gui/EvATabbedFrameMaker.java b/src/eva2/gui/EvATabbedFrameMaker.java index d5759e57..aa70fb96 100644 --- a/src/eva2/gui/EvATabbedFrameMaker.java +++ b/src/eva2/gui/EvATabbedFrameMaker.java @@ -19,6 +19,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JTabbedPane; @@ -31,12 +32,17 @@ import eva2.server.go.problems.InterfaceAdditionalPopulationInformer; */ public class EvATabbedFrameMaker implements Serializable, PanelMaker, InterfaceNotifyOnInformers { private static final long serialVersionUID = 2637376545826821423L; - private ArrayList guiContainer; + private ArrayList pmContainer = null; private JExtToolBar m_BarStandard; EvAModuleButtonPanelMaker butPanelMkr=null; - public EvATabbedFrameMaker(ArrayList GUIContainer) { - guiContainer = GUIContainer; + public EvATabbedFrameMaker() { + pmContainer = null; + } + + public void addPanelMaker(PanelMaker pm) { + if (pmContainer==null) pmContainer = new ArrayList(2); + pmContainer.add(pm); } public JPanel makePanel() { @@ -69,14 +75,15 @@ public class EvATabbedFrameMaker implements Serializable, PanelMaker, InterfaceN m_BarStandard = new JExtToolBar(); m_BarStandard.setFloatable(false); - - for (int i=0;i informers) { // if the informers have changed, update the GUI element which displays them try { - JParaPanel statsPan = (JParaPanel) guiContainer.get(2); + JParaPanel statsPan = (JParaPanel) pmContainer.get(2); if (statsPan.m_Editor!=null) { statsPan.m_Editor.setValue(statsPan.m_Editor.getValue()); // really update the contents of the stats panel // System.out.println("OOO setting informers to stats panel succeeded!"); diff --git a/src/eva2/server/modules/GenericModuleAdapter.java b/src/eva2/server/modules/GenericModuleAdapter.java index b98ded92..f911860e 100644 --- a/src/eva2/server/modules/GenericModuleAdapter.java +++ b/src/eva2/server/modules/GenericModuleAdapter.java @@ -81,20 +81,20 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria System.err.println("Error: Unable to create Frame when startet with noGUI option (GenericModuleAdapter)!"); return null; } - ArrayList GUIContainer = new ArrayList(); + EvATabbedFrameMaker frmMkr = new EvATabbedFrameMaker(); + InterfaceStatisticsParameter Stat = ((StatisticsWithGUI)m_StatisticsModul).getStatisticsParameter(); EvAModuleButtonPanelMaker ButtonPanel = new EvAModuleButtonPanelMaker(m_RemoteThis,((Processor)m_Processor).isOptRunning()); ButtonPanel.setHelperFilename(helperFilename); - GUIContainer.add(ButtonPanel); + frmMkr.addPanelMaker(ButtonPanel); InterfaceGOParameters Para = ((Processor)m_Processor).getGOParams(); if (TRACE) System.out.println("parameters are of type "+Para.getClass()); // TODO do we really need proxies here? - if (m_RMI && !Proxy.isProxyClass(Para.getClass())) GUIContainer.add(new JParaPanel( RMIProxyLocal.newInstance(Para), Para.getName())); - else GUIContainer.add(new JParaPanel(Para, Para.getName())); - if (m_RMI && !Proxy.isProxyClass(Stat.getClass())) GUIContainer.add(new JParaPanel( RMIProxyLocal.newInstance(Stat), Stat.getName())); - else GUIContainer.add(new JParaPanel(Stat, Stat.getName())); + if (m_RMI && !Proxy.isProxyClass(Para.getClass())) frmMkr.addPanelMaker(new JParaPanel( RMIProxyLocal.newInstance(Para), Para.getName())); + else frmMkr.addPanelMaker(new JParaPanel(Para, Para.getName())); + if (m_RMI && !Proxy.isProxyClass(Stat.getClass())) frmMkr.addPanelMaker(new JParaPanel( RMIProxyLocal.newInstance(Stat), Stat.getName())); + else frmMkr.addPanelMaker(new JParaPanel(Stat, Stat.getName())); - EvATabbedFrameMaker frmMkr = new EvATabbedFrameMaker(GUIContainer); ((Processor)m_Processor).getGOParams().addInformableInstance(frmMkr); return frmMkr; }