package org.lucci.madhoc.gui.runtime;
import java.awt.GridLayout;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.swing.JDesktopPane;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;
import org.lucci.madhoc.gui.SimulationRuntime;
import org.lucci.madhoc.simulation.MadhocSimulation;
public class RuntimeComponent extends JPanel
{
private SimulationRuntime runtime;
private Map runtimeComponentElements = new HashMap();
public RuntimeComponent()
{
setBorder(new BevelBorder(BevelBorder.RAISED));
setLayout(new GridLayout(1, 4));
{
RuntimeComponentElement a = new PlayPauseComponent();
runtimeComponentElements.put(a.getClass(), a);
add(a);
}
{
RuntimeComponentElement a = new SimulationComponent();
runtimeComponentElements.put(a.getClass(), a);
add(a);
}
{
RuntimeComponentElement a = new InformationComponent();
runtimeComponentElements.put(a.getClass(), a);
add(a);
}
{
RuntimeComponentElement a = new WindowShorcutComponent();
runtimeComponentElements.put(a.getClass(), a);
add(a);
}
}
public void setSimulation(MadhocSimulation simulation)
{
this.runtime = new SimulationRuntime(simulation);
Iterator i = runtimeComponentElements.values().iterator();
while (i.hasNext())
{
RuntimeComponentElement r = (RuntimeComponentElement) i.next();
r.setRuntimeComponent(this);
}
getRuntime().start();
}
public void setDesktopPane(JDesktopPane dp)
{
((WindowShorcutComponent) runtimeComponentElements.get(WindowShorcutComponent.class)).setDesktopPane(dp);
}
public SimulationRuntime getRuntime()
{
return runtime;
}
public Map getRuntimeComponentElements()
{
return runtimeComponentElements;
}
}