Ver Fonte

Merge branch 'developer' of https://bitbucket.org/gjoosen/festivalplanner into developer

Supermaniac101 há 10 anos atrás
pai
commit
2e17d887b7

+ 9 - 0
src/agenda/Stage.java

@@ -8,6 +8,7 @@ import java.io.Serializable;
 public class Stage implements Serializable {
     
     private String name;
+    private boolean inUse = false;
     
     public Stage(String name){
         this.name = name;
@@ -25,4 +26,12 @@ public class Stage implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
+
+    public boolean inUse() {
+        return inUse;
+    }
+
+    public void setInUse(boolean inUse) {
+        this.inUse = inUse;
+    }
 }

+ 3 - 3
src/gui/simulator/Sidebar.java

@@ -1,7 +1,7 @@
 package gui.simulator;
 
 import gui.simulator.facilities.RestRoom;
-import gui.simulator.facilities.Stage;
+import gui.simulator.facilities.SimulatorStage;
 
 import java.awt.BasicStroke;
 import java.awt.Color;
@@ -46,7 +46,7 @@ public class Sidebar {
         g2.drawLine(199, 0, 199, sideBarHeight);
         
         //draw objects
-        DrawEngine object1 = new Stage(20,100, 0.4, 10);
+        DrawEngine object1 = new SimulatorStage(20,100, 0.4, 10);
         object1.draw(g2);
         g2.drawString("stage", 80, 275);
         DrawEngine object2 = new RestRoom(60,350, 1 , 10);
@@ -66,7 +66,7 @@ public class Sidebar {
     	if(e.getX() < sideBarWidth)
 		{
 			if(e.getY() < 300){
-				dragObject = new Stage((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
+				dragObject = new SimulatorStage((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
 				terrain.setDragObject(dragObject);
 			}else if(e.getY() > 300 && e.getY() < 550){
 				dragObject = new RestRoom((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);

+ 42 - 3
src/gui/simulator/StageDialog.java

@@ -2,8 +2,11 @@ package gui.simulator;
 
 import agenda.Agenda;
 import agenda.Stage;
+import gui.simulator.facilities.SimulatorStage;
 
 import javax.swing.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 
 /**
  * Created by gjoosen on 26/03/15.
@@ -11,8 +14,11 @@ import javax.swing.*;
 public class StageDialog extends JDialog {
 
     private Agenda agenda;
+    private DrawEngine drawEngine;
+    private JComboBox<Stage> comboBox;
 
-    public StageDialog(Agenda agenda){
+    public StageDialog(DrawEngine drawEngine, Agenda agenda){
+        this.drawEngine = drawEngine;
         this.agenda = agenda;
         super.setContentPane(this.panel());
         super.pack();
@@ -25,8 +31,39 @@ public class StageDialog extends JDialog {
         //TODO dialog
         panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
         panel.add(new JLabel("Stage: "));
-        panel.add(this.comboBox());
+        this.comboBox = this.comboBox();
+        panel.add(this.comboBox);
+        panel.add(this.buttons());
+        return panel;
+    }
+
+    private JPanel buttons(){
+        JPanel panel = new JPanel();
+        panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
+
+        JButton save = new JButton("save");
+        save.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                //TODO save
+                if(drawEngine instanceof SimulatorStage){
+                    SimulatorStage stage = (SimulatorStage) drawEngine;
+
+                    //if stage isn't set
+                    if(stage.getStage() == null){
+                        stage.setStage((Stage) comboBox.getSelectedItem());
+                        stage.getStage().setInUse(true);
+                    }else{
+                        stage.getStage().setInUse(false);
+                        stage.setStage((Stage) comboBox.getSelectedItem());
+                        stage.getStage().setInUse(true);
+                    }
 
+                    dispose();
+                }
+            }
+        });
+        panel.add(save);
         return panel;
     }
 
@@ -35,7 +72,9 @@ public class StageDialog extends JDialog {
         DefaultComboBoxModel<Stage> defaultComboBoxModel = new DefaultComboBoxModel<>();
 
         for(Stage stage: this.agenda.getStages()){
-            defaultComboBoxModel.addElement(stage);
+            if(!stage.inUse()){
+                defaultComboBoxModel.addElement(stage);
+            }
         }
         JComboBox<Stage> stages = new JComboBox<>(defaultComboBoxModel);
         return stages;

+ 3 - 5
src/gui/simulator/Terrain.java

@@ -2,7 +2,7 @@ package gui.simulator;
 
 import agenda.Agenda;
 import gui.simulator.facilities.RestRoom;
-import gui.simulator.facilities.Stage;
+import gui.simulator.facilities.SimulatorStage;
 
 import java.awt.*;
 import java.awt.event.MouseAdapter;
@@ -107,7 +107,7 @@ public class Terrain extends JPanel {
     	if(e.getX() < sideBarWidth)
 		{
 			if(e.getY() < 300){
-				dragObject = new Stage((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
+				dragObject = new SimulatorStage((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
 			}else if(e.getY() > 300 && e.getY() < 550){
 				dragObject = new RestRoom((int)clickPoint.getX(),(int)clickPoint.getY(), 0.5, 10);
 			}else if(e.getY() > 550 && e.getY() < 800){
@@ -158,7 +158,7 @@ public class Terrain extends JPanel {
 								//double click
 								if(e.getClickCount() == 2){
 									//TODO open dialog
-									JDialog dialog = new StageDialog(agenda);
+									JDialog dialog = new StageDialog(drawObject, agenda);
 
 									//position
 									Toolkit toolkit = Toolkit.getDefaultToolkit();
@@ -321,9 +321,7 @@ public class Terrain extends JPanel {
             	g2.fill(drawObject.getAffineTransform().createTransformedShape(new Rectangle((int)(drawObject.getX()-(drawObject.getWidth()/2)-10),(int)(drawObject.getY()-(drawObject.getHeight()/2)-10), 20, 20)));
             }
         }
-		
 
-		
 		//draw collide boxes 
         if(this.selectedObject != null){
             Shape shape = this.selectedObject.getRect();

+ 13 - 3
src/gui/simulator/facilities/Stage.java → src/gui/simulator/facilities/SimulatorStage.java

@@ -1,22 +1,32 @@
 package gui.simulator.facilities;
 
+import agenda.Stage;
 import gui.simulator.DrawEngine;
 import gui.simulator.SimulatorPane;
 
-public class Stage extends DrawEngine {
+public class SimulatorStage extends DrawEngine {
 
 	private static String imageLocation = "/simulator/tent.png";
 	private static String facilityName = "Stage";
+    private Stage stage;
 
-    public Stage(int x, int y) {
+    public SimulatorStage(int x, int y) {
         super(imageLocation, x, y, 1, 0,SimulatorPane.Objects.STAGE);
     }
 
-    public Stage(int x, int y, double scale, double distance) {
+    public SimulatorStage(int x, int y, double scale, double distance) {
         super(imageLocation, x, y, scale, distance,SimulatorPane.Objects.STAGE);
     }
     
     public String getFacilityName(){
     	return facilityName;
     }
+
+    public void setStage(Stage stage) {
+        this.stage = stage;
+    }
+
+    public Stage getStage() {
+        return stage;
+    }
 }