浏览代码

Dialog to connect a stage to a simulator stage.

Gilian Joosen 10 年之前
父节点
当前提交
95c0208a0c
共有 3 个文件被更改,包括 74 次插入12 次删除
  1. 1 1
      src/gui/simulator/SimulatorPane.java
  2. 43 0
      src/gui/simulator/StageDialog.java
  3. 30 11
      src/gui/simulator/Terrain.java

+ 1 - 1
src/gui/simulator/SimulatorPane.java

@@ -27,7 +27,7 @@ public class SimulatorPane extends JPanel{
         this.setOpaque(true);
         this.setBackground(Color.WHITE);
         this.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
-        this.terrain = new Terrain(length, width, terrains);
+        this.terrain = new Terrain(length, width, terrains, this.agenda);
         this.add(this.terrain, BorderLayout.CENTER);
        updatetimer =  new Timer(1000/30, new ActionListener() {
         	@Override

+ 43 - 0
src/gui/simulator/StageDialog.java

@@ -0,0 +1,43 @@
+package gui.simulator;
+
+import agenda.Agenda;
+import agenda.Stage;
+
+import javax.swing.*;
+
+/**
+ * Created by gjoosen on 26/03/15.
+ */
+public class StageDialog extends JDialog {
+
+    private Agenda agenda;
+
+    public StageDialog(Agenda agenda){
+        this.agenda = agenda;
+        super.setContentPane(this.panel());
+        super.pack();
+        super.setVisible(true);
+    }
+
+    private JPanel panel(){
+        JPanel panel = new JPanel();
+
+        //TODO dialog
+        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
+        panel.add(new JLabel("Stage: "));
+        panel.add(this.comboBox());
+
+        return panel;
+    }
+
+    private JComboBox<Stage> comboBox(){
+
+        DefaultComboBoxModel<Stage> defaultComboBoxModel = new DefaultComboBoxModel<>();
+
+        for(Stage stage: this.agenda.getStages()){
+            defaultComboBoxModel.addElement(stage);
+        }
+        JComboBox<Stage> stages = new JComboBox<>(defaultComboBoxModel);
+        return stages;
+    }
+}

+ 30 - 11
src/gui/simulator/Terrain.java

@@ -1,16 +1,10 @@
 package gui.simulator;
 
+import agenda.Agenda;
 import gui.simulator.facilities.RestRoom;
 import gui.simulator.facilities.Stage;
 
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.Shape;
-import java.awt.TexturePaint;
+import java.awt.*;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseMotionAdapter;
@@ -29,8 +23,7 @@ import java.util.LinkedList;
 import java.util.List;
 
 import javax.imageio.ImageIO;
-import javax.swing.JPanel;
-import javax.swing.SwingUtilities;
+import javax.swing.*;
 
 public class Terrain extends JPanel {
 
@@ -58,7 +51,10 @@ public class Terrain extends JPanel {
 	Point lastMousePosition;
 	Point2D lastMovedMousePosition;
 
-    public Terrain(int length, int width, SimulatorPane.Terrains terrain){
+
+	private Agenda agenda;
+
+    public Terrain(int length, int width, SimulatorPane.Terrains terrain, Agenda agenda){
     	//get values
     	setFestivalHeight(length);
     	setFestivalWidth(width);
@@ -102,6 +98,9 @@ public class Terrain extends JPanel {
         this.entities = new LinkedList();
         this.initEntities();
         this.listeners();
+
+		//agenda
+		this.agenda = agenda;
     }
 
     private void getFacility(MouseEvent e){
@@ -152,6 +151,25 @@ public class Terrain extends JPanel {
 	                    		oldPosition = new Point2D.Double(selectedObject.getX(), selectedObject.getY());
 								oldRotation = selectedObject.getScale();
 								oldScale = selectedObject.getScale();
+
+								//double click
+								if(e.getClickCount() == 2){
+									//TODO open dialog
+									JDialog dialog = new StageDialog(agenda);
+
+									//position
+									Toolkit toolkit = Toolkit.getDefaultToolkit();
+									Dimension screenSize = toolkit.getScreenSize();
+
+									int x = (int) ((screenSize.getWidth() - dialog.getWidth()) / 2);
+									int y = (int) ((screenSize.getHeight() - dialog.getHeight()) / 2);
+
+									Point center = new Point(x, y);
+
+									dialog.setLocation(center);
+									dialog.pack();
+									dialog.setVisible(true);
+								}
 	                    		return;
 	                    	}
 	                    }
@@ -360,6 +378,7 @@ public class Terrain extends JPanel {
     		p.reCalculate();
     	}
     }
+
     public void setFestivalHeight(int height){
     	this.festivalheight = height;
     }