added for convenience: reload simulation with new random seed
This commit is contained in:
parent
28f299ad87
commit
2e66e36755
|
@ -24,7 +24,7 @@
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: GUI.java,v 1.93 2008/12/03 16:06:33 fros4943 Exp $
|
* $Id: GUI.java,v 1.94 2008/12/08 09:38:42 fros4943 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package se.sics.cooja;
|
package se.sics.cooja;
|
||||||
|
@ -501,14 +501,31 @@ public class GUI extends Observable {
|
||||||
menuItem.addActionListener(guiEventHandler);
|
menuItem.addActionListener(guiEventHandler);
|
||||||
menu.add(menuItem);
|
menu.add(menuItem);
|
||||||
|
|
||||||
menuItem = new JMenuItem("Reload simulation");
|
menuItem = new JMenu("Reload simulation");
|
||||||
menuItem.addActionListener(new ActionListener() {
|
menuItem.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
reloadCurrentSimulation(false);
|
reloadCurrentSimulation(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
menuItem.setToolTipText("Reload simulation using the same random seed");
|
||||||
menu.add(menuItem);
|
menu.add(menuItem);
|
||||||
|
|
||||||
|
JMenuItem menuItem2 = new JMenuItem("same random seed");
|
||||||
|
menuItem2.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
reloadCurrentSimulation(false, false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
menuItem.add(menuItem2);
|
||||||
|
|
||||||
|
menuItem2 = new JMenuItem("new random seed");
|
||||||
|
menuItem2.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
reloadCurrentSimulation(false, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
menuItem.add(menuItem2);
|
||||||
|
|
||||||
menuItem = new JMenuItem("Close simulation");
|
menuItem = new JMenuItem("Close simulation");
|
||||||
menuItem.setMnemonic(KeyEvent.VK_C);
|
menuItem.setMnemonic(KeyEvent.VK_C);
|
||||||
menuItem.setActionCommand("close sim");
|
menuItem.setActionCommand("close sim");
|
||||||
|
@ -2273,10 +2290,13 @@ public class GUI extends Observable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reloads current simulation.
|
* Reload currently configured simulation.
|
||||||
* This may include recompiling libraries and renaming mote type identifiers.
|
* Reloading a simulation may include recompiling Contiki.
|
||||||
|
*
|
||||||
|
* @param autoStart Start executing simulation when loaded
|
||||||
|
* @param newSeed Change simulation seed
|
||||||
*/
|
*/
|
||||||
public void reloadCurrentSimulation(final boolean autoStart) {
|
public void reloadCurrentSimulation(final boolean autoStart, final boolean newSeed) {
|
||||||
if (getSimulation() == null) {
|
if (getSimulation() == null) {
|
||||||
logger.fatal("No simulation to reload");
|
logger.fatal("No simulation to reload");
|
||||||
return;
|
return;
|
||||||
|
@ -2289,6 +2309,10 @@ public class GUI extends Observable {
|
||||||
/* Get current simulation configuration */
|
/* Get current simulation configuration */
|
||||||
Element root = new Element("simconf");
|
Element root = new Element("simconf");
|
||||||
Element simulationElement = new Element("simulation");
|
Element simulationElement = new Element("simulation");
|
||||||
|
if (newSeed) {
|
||||||
|
getSimulation().setRandomSeed(getSimulation().getRandomSeed() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
simulationElement.addContent(getSimulation().getConfigXML());
|
simulationElement.addContent(getSimulation().getConfigXML());
|
||||||
root.addContent(simulationElement);
|
root.addContent(simulationElement);
|
||||||
Collection<Element> pluginsConfig = getPluginsConfigXML();
|
Collection<Element> pluginsConfig = getPluginsConfigXML();
|
||||||
|
@ -2318,7 +2342,7 @@ public class GUI extends Observable {
|
||||||
}
|
}
|
||||||
} while (shouldRetry);
|
} while (shouldRetry);
|
||||||
|
|
||||||
if (progressDialog != null && progressDialog.isDisplayable()) {
|
if (progressDialog.isDisplayable()) {
|
||||||
progressDialog.dispose();
|
progressDialog.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2332,11 +2356,11 @@ public class GUI extends Observable {
|
||||||
JButton button = new JButton("Cancel");
|
JButton button = new JButton("Cancel");
|
||||||
button.addActionListener(new ActionListener() {
|
button.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if (loadThread != null && loadThread.isAlive()) {
|
if (loadThread.isAlive()) {
|
||||||
loadThread.interrupt();
|
loadThread.interrupt();
|
||||||
doRemoveSimulation(false);
|
doRemoveSimulation(false);
|
||||||
}
|
}
|
||||||
if (progressDialog != null && progressDialog.isDisplayable()) {
|
if (progressDialog.isDisplayable()) {
|
||||||
progressDialog.dispose();
|
progressDialog.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2360,6 +2384,18 @@ public class GUI extends Observable {
|
||||||
progressDialog.setVisible(true);
|
progressDialog.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reload currently configured simulation.
|
||||||
|
* Reloading a simulation may include recompiling Contiki.
|
||||||
|
* The same random seed is used.
|
||||||
|
*
|
||||||
|
* @see #reloadCurrentSimulation(boolean, boolean)
|
||||||
|
* @param autoStart Start executing simulation when loaded
|
||||||
|
*/
|
||||||
|
public void reloadCurrentSimulation(boolean autoStart) {
|
||||||
|
reloadCurrentSimulation(autoStart, false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save current simulation configuration to disk
|
* Save current simulation configuration to disk
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue