|
@@ -70,13 +70,14 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
addMouseListener(tl);
|
|
|
}
|
|
|
};
|
|
|
- private Model model;
|
|
|
+ //private Model model;
|
|
|
private Control controller;
|
|
|
private int dragResetIteration = 0;
|
|
|
private JLabel simSpeedLabel = new JLabel("Speed:");
|
|
|
private JSlider speedSlider = new JSlider();
|
|
|
private Timer timer;
|
|
|
private boolean running = false;
|
|
|
+ private GUI parentGUI;
|
|
|
|
|
|
/**
|
|
|
* Constructor.
|
|
@@ -86,19 +87,18 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
* @param cont
|
|
|
* the Controller
|
|
|
*/
|
|
|
- public TimePanel(Model mod, Control cont) {
|
|
|
+ public TimePanel(GUI parent, Control cont) {
|
|
|
super();
|
|
|
- this.model = mod;
|
|
|
this.controller = cont;
|
|
|
-
|
|
|
+ this.parentGUI=parent;
|
|
|
// One Iteration
|
|
|
timer = new Timer(0, new ActionListener() {//TODO: Merge all these damned listeners.
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent ae) {
|
|
|
timeSlider.setValue(timeSlider.getValue() + 1);
|
|
|
controller.setCurIteration(timeSlider.getValue());
|
|
|
- timer.setDelay(model.getTimerSpeed());
|
|
|
- if (timeSlider.getValue() >= model.getIterations() - 1) {
|
|
|
+ timer.setDelay(cont.getModel().getTimerSpeed());
|
|
|
+ if (timeSlider.getValue() >= cont.getModel().getIterations() - 1) {
|
|
|
/*/calc and print performance
|
|
|
performanceTime = System.nanoTime()-performanceTime;
|
|
|
|
|
@@ -119,24 +119,24 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
// Slider
|
|
|
timeSlider.setPaintTicks(true);
|
|
|
timeSlider.setPaintLabels(true);
|
|
|
- timeSlider.setMajorTickSpacing((int)Math.ceil(((double)model.getIterations())/20));
|
|
|
- timeSlider.setMinorTickSpacing((int)Math.ceil(((double)model.getIterations())/100));
|
|
|
+ timeSlider.setMajorTickSpacing((int)Math.ceil(((double)cont.getModel().getIterations())/20));
|
|
|
+ timeSlider.setMinorTickSpacing((int)Math.ceil(((double)cont.getModel().getIterations())/100));
|
|
|
timeSlider.setToolTipText(Languages.getLanguage()[93]);
|
|
|
- timeSlider.setMaximum(model.getIterations() - 1);
|
|
|
+ timeSlider.setMaximum(cont.getModel().getIterations() - 1);
|
|
|
timeSlider.setValue(0);
|
|
|
timeSlider.addChangeListener(changeEvent -> controller.setCurIteration(timeSlider.getValue()));
|
|
|
|
|
|
timeSlider.addMouseListener(new MouseAdapter() {
|
|
|
@Override
|
|
|
public void mousePressed(MouseEvent e) {
|
|
|
- dragResetIteration = model.getCurIteration();
|
|
|
+ dragResetIteration = cont.getModel().getCurIteration();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
timeSlider.addMouseMotionListener(new MouseAdapter() {
|
|
|
@Override
|
|
|
public void mouseDragged(MouseEvent e) {
|
|
|
- if (dragResetIteration != model.getCurIteration()) {
|
|
|
+ if (dragResetIteration != cont.getModel().getCurIteration()) {
|
|
|
controller.resetSimulation();
|
|
|
if (running) {
|
|
|
playBtn.doClick();
|
|
@@ -159,11 +159,11 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
playBtn.addActionListener(new ActionListener() {
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
- if(model.getCurIteration()==model.getIterations()-1)timeSlider.setValue(timeSlider.getMinimum());
|
|
|
+ if(cont.getModel().getCurIteration()==cont.getModel().getIterations()-1)timeSlider.setValue(timeSlider.getMinimum());
|
|
|
running = !running;
|
|
|
controller.setIsSimRunning(running);
|
|
|
if (running) {
|
|
|
- timer.setDelay(model.getTimerSpeed());
|
|
|
+ timer.setDelay(cont.getModel().getTimerSpeed());
|
|
|
|
|
|
/*
|
|
|
* start the Performance Test
|
|
@@ -206,7 +206,7 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
timeForwardBtn.setIcon(new ImageIcon(Util.loadImage(this,"/Button_Images/forward.png",30,30)));
|
|
|
timeForwardBtn.addActionListener(new ActionListener() {
|
|
|
public void actionPerformed(ActionEvent ae) {
|
|
|
- if (!model.getIsSimRunning()) {
|
|
|
+ if (!cont.getModel().getIsSimRunning()) {
|
|
|
controller.setIsSimRunning(true);
|
|
|
}
|
|
|
timeSlider.setValue(timeSlider.getValue() + 1);
|
|
@@ -276,7 +276,7 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
iterationsPanel.setLayout(new GridLayout(3,1));
|
|
|
iterationsPanel.add(iterationsLabel, BorderLayout.NORTH);
|
|
|
iterationsField=new JTextField(6);//Considering hundreds of thousands in an extreme case
|
|
|
- iterationsField.setText(""+model.getIterations());
|
|
|
+ iterationsField.setText(""+cont.getModel().getIterations());
|
|
|
iterationsField.addActionListener(this);//TODO
|
|
|
iterationsPanel.add(iterationsField);
|
|
|
iterationsPanel.add(new JLabel(), BorderLayout.SOUTH);
|
|
@@ -313,7 +313,7 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
- if (!model.getIsSimRunning()) {
|
|
|
+ if (!cont.getModel().getIsSimRunning()) {
|
|
|
controller.setIsSimRunning(true);
|
|
|
}
|
|
|
timeSlider.setValue(timeSlider.getValue() + 1);
|
|
@@ -322,7 +322,7 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Retunrs the TimeSlider.
|
|
|
+ * Returns the TimeSlider.
|
|
|
*
|
|
|
* @return the TimeSlider
|
|
|
*/
|
|
@@ -339,11 +339,12 @@ public class TimePanel extends JPanel implements ActionListener{
|
|
|
else if(iterations>MAX_ITERATIONS)iterations=MAX_ITERATIONS;
|
|
|
else resetField=false;
|
|
|
if(resetField)iterationsField.setText(""+iterations);
|
|
|
- model.setIterations(Integer.parseInt(iterationsField.getText()));
|
|
|
- timeSlider.setMaximum(model.getIterations());
|
|
|
+ controller.getModel().setIterations(Integer.parseInt(iterationsField.getText()));
|
|
|
+ timeSlider.setMaximum(controller.getModel().getIterations()-1);//TODO forgot this
|
|
|
timeSlider.setLabelTable(null);//Otherwise the ticks won't update
|
|
|
- timeSlider.setMajorTickSpacing((int)Math.ceil(((double)model.getIterations())/20));
|
|
|
- timeSlider.setMinorTickSpacing((int)Math.ceil(((double)model.getIterations())/100));
|
|
|
+ timeSlider.setMajorTickSpacing((int)Math.ceil(((double)controller.getModel().getIterations())/20));
|
|
|
+ timeSlider.setMinorTickSpacing((int)Math.ceil(((double)controller.getModel().getIterations())/100));
|
|
|
+ parentGUI.updateIterations();
|
|
|
}catch(NumberFormatException e){
|
|
|
|
|
|
}
|