瀏覽代碼

Merge branch 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons into Ohne_Drag_and_Drop

Conflicts:
	bin/ui/view/GUI$1.class
	bin/ui/view/GUI$2.class
	bin/ui/view/GUI$3.class
	bin/ui/view/GUI$4.class
	bin/ui/view/GUI$5.class
	bin/ui/view/GUI$6.class
	bin/ui/view/GUI.class
Edgardo Palza 8 年之前
父節點
當前提交
2b188dad04

二進制
bin/ui/controller/Control.class


二進制
bin/ui/model/Model.class


二進制
bin/ui/view/AddObjectPopUp.class


二進制
bin/ui/view/MyCanvas.class


+ 0 - 6
src/classes/GlobalVariables.java

@@ -1,6 +0,0 @@
-package classes;
-
-public class GlobalVariables {
-	public static int SCALE = 50;
-	public static int SCALE_DIVIDED2 = SCALE/2;
-}

+ 10 - 1
src/ui/controller/Control.java

@@ -25,13 +25,15 @@ public class Control {
 	private final CategoryController categoryController;
 	private final ObjectController objectController;
 	private final CanvasController canvasController;
-
+	private final GlobalController globalController;
+	
 	public Control(Model model) {
 		this.MODEL = model;
 		// this.ID = id;
 		this.categoryController = new CategoryController(model);
 		this.objectController = new ObjectController(model);
 		this.canvasController = new CanvasController(model);
+		this.globalController = new GlobalController(model);
 	}
 
 	/* Operations for Categories and Objects */
@@ -95,6 +97,13 @@ public class Control {
 
 	}
 
+	public int getScale(){
+		return globalController.getScale();
+	}
+	
+	public int getScaleDiv2(){
+		return globalController.getScaleDiv2();
+	}
 	////////// etc
 	/**
 	 * Getter for Model

+ 21 - 0
src/ui/controller/GlobalController.java

@@ -0,0 +1,21 @@
+package ui.controller;
+
+import ui.model.Model;
+
+public class GlobalController {
+
+	private Model MODEL;
+
+	public GlobalController(Model model) {
+		this.MODEL = model;
+	}
+
+	public int getScale(){
+		return MODEL.getScale();
+	}
+	
+	public int getScaleDiv2(){
+		return MODEL.getScaleDiv2();
+	}
+
+}

+ 22 - 0
src/ui/model/Model.java

@@ -13,6 +13,10 @@ import ui.controller.*;
 
 public class Model {
 
+	//Global Variables
+	public static int SCALE = 50;	//Picture Scale
+	public static int SCALE_DIV2 = SCALE/2;
+	
 	// ID of the Selected Object
 	private int selectedID = 0;
 	// eventuell wenn Canvasgröße gewählt werden kann
@@ -146,5 +150,23 @@ public class Model {
 	public int getSelectedObjectID(){
 		return selectedID;
 	}
+	
+	/**
+	 * Returns SCALE
+	 * 
+	 * @return SCALE
+	 */
+	public int getScale(){
+		return SCALE;
+	}
+	
+	/**
+	 * Returns SCALE_DIV2
+	 * 
+	 * @return SCALE_DIV2
+	 */
+	public int getScaleDiv2(){
+		return SCALE_DIV2;
+	}
 
 }

+ 28 - 12
src/ui/view/AddObjectPopUp.java

@@ -3,11 +3,14 @@ package ui.view;
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.FlowLayout;
+import java.awt.Image;
 import java.awt.event.*;
+import java.awt.image.ImageProducer;
 import java.io.*;
 import java.util.ArrayList;
 
 import javax.swing.DefaultListModel;
+import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JDialog;
 import javax.swing.JFileChooser;
@@ -47,6 +50,7 @@ public class AddObjectPopUp extends JDialog {
 	private File selectedFile = null;
 	private String filePath = " ";
 	private String givenCategory;
+	private JLabel lblImagePreview;
 
 	/**
 	 * Launch the application.
@@ -65,7 +69,7 @@ public class AddObjectPopUp extends JDialog {
 	 * Create the dialog.
 	 */
 	public AddObjectPopUp() {
-		setBounds(100, 100, 450, 300);
+		setBounds(100, 100, 450, 342);
 		getContentPane().setLayout(new BorderLayout());
 		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
 		getContentPane().add(contentPanel, BorderLayout.CENTER);
@@ -75,18 +79,18 @@ public class AddObjectPopUp extends JDialog {
 		{
 			JLabel lblName = new JLabel("Name:");
 			lblName.setHorizontalAlignment(SwingConstants.CENTER);
-			lblName.setBounds(28, 11, 76, 14);
+			lblName.setBounds(28, 21, 76, 14);
 			contentPanel.add(lblName);
 		}
 		{
 			objectName = new JTextField();
-			objectName.setBounds(135, 8, 86, 20);
+			objectName.setBounds(98, 18, 172, 20);
 			contentPanel.add(objectName);
 			objectName.setColumns(10);
 		}
 		{
 			JButton btnBrowseImage = new JButton("Browse Image");
-			btnBrowseImage.setBounds(10, 50, 112, 23);
+			btnBrowseImage.setBounds(10, 75, 134, 23);
 			contentPanel.add(btnBrowseImage);
 			btnBrowseImage.addMouseListener(new MouseAdapter() {
 				public void mouseClicked(MouseEvent e) {
@@ -97,12 +101,12 @@ public class AddObjectPopUp extends JDialog {
 		}
 		{
 			sourcePath = new JTextField();
-			sourcePath.setBounds(135, 51, 271, 20);
+			sourcePath.setBounds(148, 77, 271, 20);
 			contentPanel.add(sourcePath);
 			sourcePath.setColumns(10);
 		}
 		{
-			JButton btnAddDefaultElement = new JButton("Add Default Element");
+			JButton btnAddDefaultElement = new JButton("Add Element");
 			btnAddDefaultElement.addActionListener(new ActionListener() {
 				public void actionPerformed(ActionEvent arg0) {
 					addElement = new AddElementPopUp();
@@ -112,28 +116,28 @@ public class AddObjectPopUp extends JDialog {
 				}
 			});
 
-			btnAddDefaultElement.setBounds(262, 95, 144, 23);
+			btnAddDefaultElement.setBounds(270, 144, 142, 23);
 			contentPanel.add(btnAddDefaultElement);
 		}
 		{
 			JScrollPane scrollPane = new JScrollPane();
-			scrollPane.setBounds(10, 84, 236, 133);
+			scrollPane.setBounds(10, 114, 236, 150);
 			contentPanel.add(scrollPane);
 			{
 
 				listModel = new DefaultListModel();
 				HolonElement hel = new HolonElement("Test", 100, 5);
 				String name = hel.getEleName();
-				for (int i = 0; i < 11; i++) {
+				/*for (int i = 0; i < 11; i++) {
 					hel.setEleName(name + i);
 					addElement(hel);
-				}
+				}*/
 				list = new JList(listModel);
 				scrollPane.setViewportView(list);
 			}
 		}
 		{
-			JButton btnNewButton = new JButton("Delete Default Element");
+			JButton btnNewButton = new JButton("Delete Element");
 			btnNewButton.addActionListener(new ActionListener() {
 				public void actionPerformed(ActionEvent e) {
 					int selectedIndex = list.getSelectedIndex();
@@ -143,9 +147,14 @@ public class AddObjectPopUp extends JDialog {
 					}
 				}
 			});
-			btnNewButton.setBounds(262, 129, 144, 23);
+			btnNewButton.setBounds(270, 182, 142, 27);
 			contentPanel.add(btnNewButton);
 		}
+		{
+			lblImagePreview = new JLabel("");
+			lblImagePreview.setBounds(295, 3, 50, 50);
+			contentPanel.add(lblImagePreview);
+		}
 
 		{
 			JPanel buttonPane = new JPanel();
@@ -182,6 +191,10 @@ public class AddObjectPopUp extends JDialog {
 				JButton cancelButton = new JButton("Cancel");
 				cancelButton.setActionCommand("Cancel");
 				buttonPane.add(cancelButton);
+				cancelButton.addActionListener(new ActionListener() {
+		            public void actionPerformed(ActionEvent e) {
+		                dispose();
+		            }});
 			}
 		}
 	}
@@ -201,6 +214,9 @@ public class AddObjectPopUp extends JDialog {
 			selectedFile = FileChooser.getSelectedFile();
 			filePath = selectedFile.getAbsolutePath();
 			sourcePath.setText(filePath);
+//			Image image = createImage((ImageProducer) selectedFile);
+			ImageIcon icon = new ImageIcon(new ImageIcon(filePath).getImage().getScaledInstance(50, 50, Image.SCALE_SMOOTH));
+			lblImagePreview.setIcon(icon);
 		} else {
 			System.out.println("Failed to Load");
 		}

+ 3 - 4
src/ui/view/GUI.java

@@ -42,7 +42,6 @@ import javax.swing.ImageIcon;
 
 import classes.Category;
 import classes.CpsObject;
-import classes.GlobalVariables;
 import classes.HolonObject;
 import classes.HolonSwitch;
 import classes.HolonTransformer;
@@ -180,7 +179,7 @@ public class GUI implements CategoryListener {
 						for (CpsObject cps : cat.getObjects()) {
 							if (value.toString().compareTo(cps.getCompareName()) == 0) {
 								imgR = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage()
-										.getScaledInstance(GlobalVariables.SCALE, GlobalVariables.SCALE,
+										.getScaledInstance(controller.getScale(), controller.getScale(),
 												java.awt.Image.SCALE_SMOOTH);
 								if (imgR != null) {
 									label.setIcon(new ImageIcon(imgR));
@@ -190,7 +189,7 @@ public class GUI implements CategoryListener {
 						}
 					}
 				}
-				tree.setRowHeight(GlobalVariables.SCALE);
+				tree.setRowHeight(controller.getScale());
 				if (hasFocus) {
 					label.setForeground(new Color(0, 0, 255));
 					label.setOpaque(true);
@@ -253,7 +252,7 @@ public class GUI implements CategoryListener {
 						for (CpsObject cps : cat.getObjects()) {
 							if (actualObjectClicked.compareTo(cps.getCompareName()) == 0) {
 								img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage()
-										.getScaledInstance(GlobalVariables.SCALE, GlobalVariables.SCALE,
+										.getScaledInstance(controller.getScale(), controller.getScale(),
 												java.awt.Image.SCALE_SMOOTH);
 								tempCps = cps;
 								dragging = true;

+ 22 - 23
src/ui/view/MyCanvas.java

@@ -30,7 +30,6 @@ import javax.swing.JPopupMenu;
 import javax.swing.JToolTip;
 
 import classes.CpsObject;
-import classes.GlobalVariables;
 import classes.HolonElement;
 import classes.HolonObject;
 import ui.controller.Control;
@@ -103,16 +102,16 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		// drawEdges
 		g2.setColor(Color.BLACK);
 		if (drawEdge)
-			g2.drawLine(tempCps.getPos().x + GlobalVariables.SCALE_DIVIDED2,
-					tempCps.getPos().y + GlobalVariables.SCALE_DIVIDED2, x, y);
+			g2.drawLine(tempCps.getPos().x + controller.getScaleDiv2(),
+					tempCps.getPos().y + controller.getScaleDiv2(), x, y);
 
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			for (CpsObject con : cps.getConnectedTo()) {
 				if (con.getID() != model.getSelectedObjectID() && cps.getID() != model.getSelectedObjectID())
-					g2.drawLine(cps.getPos().x + GlobalVariables.SCALE_DIVIDED2,
-							cps.getPos().y + GlobalVariables.SCALE_DIVIDED2,
-							con.getPos().x + GlobalVariables.SCALE_DIVIDED2,
-							con.getPos().y + GlobalVariables.SCALE_DIVIDED2);
+					g2.drawLine(cps.getPos().x + controller.getScaleDiv2(),
+							cps.getPos().y + controller.getScaleDiv2(),
+							con.getPos().x + controller.getScaleDiv2(),
+							con.getPos().y + controller.getScaleDiv2());
 			}
 		}
 
@@ -121,17 +120,17 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			for (CpsObject con : cps.getConnectedTo()) {
 				if (con.getID() == model.getSelectedObjectID())
-					g2.drawLine(cps.getPos().x + GlobalVariables.SCALE_DIVIDED2,
-							cps.getPos().y + GlobalVariables.SCALE_DIVIDED2,
-							con.getPos().x + GlobalVariables.SCALE_DIVIDED2,
-							con.getPos().y + GlobalVariables.SCALE_DIVIDED2);
+					g2.drawLine(cps.getPos().x + controller.getScaleDiv2(),
+							cps.getPos().y + controller.getScaleDiv2(),
+							con.getPos().x + controller.getScaleDiv2(),
+							con.getPos().y + controller.getScaleDiv2());
 			}
 		}
 
 		// Objects
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage();
-			g2.drawImage(img, cps.getPos().x, cps.getPos().y, GlobalVariables.SCALE, GlobalVariables.SCALE, null);
+			g2.drawImage(img, cps.getPos().x, cps.getPos().y, controller.getScale(), controller.getScale(), null);
 		}
 	}
 
@@ -163,7 +162,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			cx = cps.getPos().x;
 			cy = cps.getPos().y;
-			if (x - GlobalVariables.SCALE <= cx && y - GlobalVariables.SCALE <= cy && x >= cx && y >= cy) {
+			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
 				tempCps = cps;
 				if (e.isControlDown())
 					drawEdge = true;
@@ -188,7 +187,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			y = e.getY();
 
 			dragging = false;
-			tempCps.setPos(e.getX() - GlobalVariables.SCALE_DIVIDED2, e.getY() - GlobalVariables.SCALE_DIVIDED2);
+			tempCps.setPos(e.getX() - controller.getScaleDiv2(), e.getY() - controller.getScaleDiv2());
 			tempCps = null;
 		}
 
@@ -214,10 +213,10 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			repaint();
 		} else {
 			try {
-				tempCps.setPos(e.getX() - GlobalVariables.SCALE_DIVIDED2, e.getY() - GlobalVariables.SCALE_DIVIDED2);
+				tempCps.setPos(e.getX() - controller.getScaleDiv2(), e.getY() - controller.getScaleDiv2());
 				dragging = true;
-				selectRect.setLocation(tempCps.getPos().x - (GlobalVariables.SCALE / 20),
-						tempCps.getPos().y - (GlobalVariables.SCALE / 20));
+				selectRect.setLocation(tempCps.getPos().x - (controller.getScale() / 20),
+						tempCps.getPos().y - (controller.getScale() / 20));
 				objectTT.setTipText(tempCps.getName());
 				objectTT.setLocation(tempCps.getPos().x, tempCps.getPos().y);
 				repaint();
@@ -236,7 +235,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			cx = cps.getPos().x;
 			cy = cps.getPos().y;
-			if (x - GlobalVariables.SCALE <= cx && y - GlobalVariables.SCALE <= cy && x >= cx && y >= cy) {
+			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
 				objectTT.setTipText(cps.getName());
 				objectTT.setLocation(cx, cy);
 				on = true;
@@ -253,10 +252,10 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 	 */
 	private void objectSelectionHighlighting() {
 		if (tempCps != null) {
-			selectRect.setBounds(tempCps.getPos().x - (GlobalVariables.SCALE / 20),
-					tempCps.getPos().y - (GlobalVariables.SCALE / 20),
-					GlobalVariables.SCALE + GlobalVariables.SCALE / 10,
-					GlobalVariables.SCALE + GlobalVariables.SCALE / 10);
+			selectRect.setBounds(tempCps.getPos().x - (controller.getScale() / 20),
+					tempCps.getPos().y - (controller.getScale() / 20),
+					controller.getScale() + controller.getScale() / 10,
+					controller.getScale() + controller.getScale() / 10);
 			controller.setSelectedObjectID(tempCps.getID());
 		} else {
 			controller.setSelectedObjectID(0);
@@ -271,7 +270,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			cx = cps.getPos().x;
 			cy = cps.getPos().y;
-			if (x - GlobalVariables.SCALE <= cx && y - GlobalVariables.SCALE <= cy && x >= cx && y >= cy) {
+			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
 				if (!cps.getConnectedTo().contains(tempCps)) {
 					cps.AddConnection(tempCps);
 					tempCps.AddConnection(cps);