Browse Source

#63 fixed; Disabled some key inputs

Kevin Trometer 7 years ago
parent
commit
ee4557686e
1 changed files with 25 additions and 13 deletions
  1. 25 13
      src/ui/view/TimePanel.java

+ 25 - 13
src/ui/view/TimePanel.java

@@ -38,6 +38,7 @@ public class TimePanel extends JPanel {
 
 	private Model model;
 	private Control controller;
+	private int dragResetIteration = 0;
 
 	JSlider timeSlider = new JSlider() {
 		/**
@@ -136,19 +137,18 @@ public class TimePanel extends JPanel {
 		timeSlider.addMouseListener(new MouseAdapter() {
 			@Override
 			public void mousePressed(MouseEvent e) {
-				controller.resetSimulation();
-				if (running) {
-					playBtn.doClick();
-				}
+				dragResetIteration = model.getCurIteration();
 			}
 		});
 
 		timeSlider.addMouseMotionListener(new MouseAdapter() {
 			@Override
 			public void mouseDragged(MouseEvent e) {
-				controller.resetSimulation();
-				if (running) {
-					playBtn.doClick();
+				if (dragResetIteration != model.getCurIteration()) {
+					controller.resetSimulation();
+					if (running) {
+						playBtn.doClick();
+					}
 				}
 			}
 		});
@@ -229,10 +229,10 @@ public class TimePanel extends JPanel {
 		});
 
 		timeBtnPanel.add(playBtn);
-		timeBtnPanel.add(Box.createRigidArea(new Dimension(10,0)));
+		timeBtnPanel.add(Box.createRigidArea(new Dimension(10, 0)));
 		timeBtnPanel.add(timeResetBtn);
-		timeBtnPanel.add(Box.createRigidArea(new Dimension(10,0)));
-		timeBtnPanel.add(timeForwardBtn);	
+		timeBtnPanel.add(Box.createRigidArea(new Dimension(10, 0)));
+		timeBtnPanel.add(timeForwardBtn);
 
 		// Speed Panel
 		speedPanel.add(simSpeedLabel);
@@ -259,26 +259,38 @@ public class TimePanel extends JPanel {
 
 		this.add(btnAndSpeedPanel, BorderLayout.WEST);
 		this.add(timeSlider);
+
+		//Disable Keys
+		timeSlider.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0, false), "UP_ARROW");
+		timeSlider.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0, false), "DOWN_ARROW");
+		timeSlider.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, 0, false), "PAGE_DOWN");
+		timeSlider.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, 0, false), "PAGE_UP");
+		timeSlider.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_END, 0, false), "END");
+		timeSlider.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, 0, false), "HOME");
 		
-		//Left arrow Key
+		// Left arrow Key
 		timeSlider.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0, false), "LEFT_ARROW");
 		timeSlider.getActionMap().put("LEFT_ARROW", new AbstractAction() {
 			private static final long serialVersionUID = 1L;
+
 			@Override
 			public void actionPerformed(ActionEvent e) {
-				timeSlider.setValue(timeSlider.getValue()-1);
+				timeSlider.setValue(timeSlider.getValue() - 1);
 				controller.resetSimulation();
 			}
 		});
+		
+		//Right arrow Key
 		timeSlider.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0, false), "Right_ARROW");
 		timeSlider.getActionMap().put("Right_ARROW", new AbstractAction() {
 			private static final long serialVersionUID = 1L;
+
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				if (!model.getIsSimRunning()) {
 					controller.setIsSimRunning(true);
 				}
-				timeSlider.setValue(timeSlider.getValue()+1);
+				timeSlider.setValue(timeSlider.getValue() + 1);
 			}
 		});
 	}