Browse Source

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

# Conflicts:
#	bin/classes/HolonObject.class
Teh-Hai Julian Zheng 8 years ago
parent
commit
a36de4fdd9

BIN
bin/Images/Thumbs.db


BIN
bin/classes/HolonSwitch.class


BIN
bin/classes/HolonTransformer.class


BIN
bin/ui/view/AddObjectPopUp.class


BIN
bin/ui/view/GUI$1.class


BIN
bin/ui/view/GUI$2.class


BIN
bin/ui/view/GUI$3.class


BIN
bin/ui/view/GUI$4.class


BIN
bin/ui/view/GUI$5.class


BIN
bin/ui/view/GUI$6.class


BIN
bin/ui/view/GUI.class


BIN
bin/ui/view/MyCanvas.class


BIN
res/Images/Thumbs.db


+ 5 - 0
src/classes/GlobalVariables.java

@@ -0,0 +1,5 @@
+package classes;
+
+public class GlobalVariables {
+	public static int SCALE = 70;
+}

+ 5 - 4
src/classes/HolonObject.java

@@ -34,10 +34,11 @@ public class HolonObject extends CpsObject {
 	}
 
 	public HolonObject(CpsObject obj) {
-		super(obj.objName);
-		/*
-		 * this.consumers = obj.consumers; this.producers = obj.producers;
-		 */
+		super(obj);
+		consumers = new ArrayList<HolonElement>();
+		producers = new ArrayList<HolonElement>();
+		this.consumers = ((HolonObject)obj).getConsumers();
+		this.producers = ((HolonObject)obj).getProducers();
 	}
 
 	public void addConsumer(HolonElement consumer) {

+ 3 - 3
src/classes/HolonSwitch.java

@@ -18,9 +18,9 @@ public class HolonSwitch extends CpsObject {
 		isWorking = false;
 	}
 
-	public HolonSwitch(HolonObject obj) {
-		super(obj.objName);
-		isWorking = false;
+	public HolonSwitch(CpsObject obj) {
+		super(obj);
+		this.isWorking = ((HolonSwitch)obj).getStates();
 	}
 
 	public void switchState() {

+ 2 - 1
src/classes/HolonTransformer.java

@@ -18,8 +18,9 @@ public class HolonTransformer extends CpsObject {
 		super.name = obj;
 	}
 
-	public HolonTransformer(HolonObject obj) {
+	public HolonTransformer(CpsObject obj) {
 		super(obj.objName);
+		this.transformRatio = ((HolonTransformer)obj).getTransformRatio();
 	}
 
 	/**

+ 65 - 41
src/ui/view/AddObjectPopUp.java

@@ -1,6 +1,7 @@
 package ui.view;
 
 import java.awt.BorderLayout;
+import java.awt.Component;
 import java.awt.FlowLayout;
 import java.awt.event.*;
 import java.io.*;
@@ -14,6 +15,7 @@ import javax.swing.filechooser.FileNameExtensionFilter;
 import javax.swing.JLabel;
 import javax.swing.JTextField;
 import javax.swing.JList;
+import javax.swing.JOptionPane;
 import javax.swing.SwingConstants;
 
 public class AddObjectPopUp extends JDialog {
@@ -22,6 +24,8 @@ public class AddObjectPopUp extends JDialog {
 	private AddElementPopUp addElement;
 	private JTextField textField;
 	private JTextField textField_1;
+	private File selectedFile = null;
+	private String filePath = " ";
 
 	/**
 	 * Launch the application.
@@ -58,55 +62,23 @@ public class AddObjectPopUp extends JDialog {
 			contentPanel.add(textField);
 			textField.setColumns(10);
 		}
+		{
+			textField_1 = new JTextField();
+			textField_1.setBounds(135, 51, 271, 20);
+			contentPanel.add(textField_1);
+			textField_1.setColumns(10);
+		}
 		{
 			JButton btnBrowseImage = new JButton("Browse Image");
 			btnBrowseImage.setBounds(10, 50, 112, 23);
 			contentPanel.add(btnBrowseImage);
 			btnBrowseImage.addMouseListener(new MouseAdapter() {
-				public void mouseClicked(MouseEvent e){
-		            JFileChooser FileChooser = new JFileChooser();
-		            FileNameExtensionFilter filter = new FileNameExtensionFilter("png, jpg or jpeg", "png", "jpg", "jpeg");
-		            FileChooser.setFileFilter(filter);
-		            int returnValue = FileChooser.showOpenDialog(null);
-		            if (returnValue == JFileChooser.APPROVE_OPTION){
-		                File selectedFile = FileChooser.getSelectedFile();
-		                String filePath = selectedFile.getAbsolutePath();
-		                InputStream inStream = null;
-		                OutputStream outStream = null;
-		                try{
-		                    File source =new File(filePath);
-		                    File dest =new File(System.getProperty("user.dir") + "/res/Images/", selectedFile.getName());
-		                    inStream = new FileInputStream(source);
-		                    outStream = new FileOutputStream(dest);
-
-		                    byte[] buffer = new byte[1024];
-
-		                    int length;
-		                    while ((length = inStream.read(buffer)) > 0){
-		                        outStream.write(buffer, 0, length);
-		                    }
-
-		                    if (inStream != null)inStream.close();
-		                    if (outStream != null)outStream.close();
-		                    System.out.println("File Copied..");
-		                }catch(IOException e1){
-		                    e1.printStackTrace();
-		                }
-		              //  textArea.setText("File Loaded: " + selectedFile.getName() + "\n\n\n" + "Hit 'Run Code'");
-		            }
-		            else System.out.println("Failed to Load");
-		                //UnitXMLReader.ChosenFile = filePath;
-
-		        }
+				public void mouseClicked(MouseEvent e) {
+					fileChooser();
+				}
 			});
 
 		}
-		{
-			textField_1 = new JTextField();
-			textField_1.setBounds(135, 51, 271, 20);
-			contentPanel.add(textField_1);
-			textField_1.setColumns(10);
-		}
 		{
 			JList list = new JList();
 			list.setBounds(10, 98, 242, 130);
@@ -129,6 +101,16 @@ public class AddObjectPopUp extends JDialog {
 			getContentPane().add(buttonPane, BorderLayout.SOUTH);
 			{
 				JButton okButton = new JButton("OK");
+				okButton.addMouseListener(new MouseAdapter() {
+					public void mouseClicked(MouseEvent e) {
+						if (!textField_1.getText().equals(filePath)) {
+							Component frame = null;
+							JOptionPane.showMessageDialog(frame, "No image selected!");
+						} else {
+							copieFile();
+						}
+					}
+				});
 				okButton.setActionCommand("OK");
 				buttonPane.add(okButton);
 				getRootPane().setDefaultButton(okButton);
@@ -141,4 +123,46 @@ public class AddObjectPopUp extends JDialog {
 		}
 	}
 
+	protected void fileChooser() {
+		// TODO Auto-generated method stub
+		JFileChooser FileChooser = new JFileChooser();
+		FileNameExtensionFilter filter = new FileNameExtensionFilter("png, jpg or jpeg", "png", "jpg", "jpeg");
+		FileChooser.setFileFilter(filter);
+		int returnValue = FileChooser.showOpenDialog(null);
+		if (returnValue == JFileChooser.APPROVE_OPTION) {
+			selectedFile = FileChooser.getSelectedFile();
+			filePath = selectedFile.getAbsolutePath();
+			textField_1.setText(filePath);
+		} else {
+			System.out.println("Failed to Load");
+		}
+
+	}
+
+	protected void copieFile() {
+		InputStream inStream = null;
+		OutputStream outStream = null;
+		try {
+			File source = new File(filePath);
+			File dest = new File(System.getProperty("user.dir") + "/res/Images/", selectedFile.getName());
+			inStream = new FileInputStream(source);
+			outStream = new FileOutputStream(dest);
+
+			byte[] buffer = new byte[1024];
+
+			int length;
+			while ((length = inStream.read(buffer)) > 0) {
+				outStream.write(buffer, 0, length);
+			}
+
+			if (inStream != null)
+				inStream.close();
+			if (outStream != null)
+				outStream.close();
+			System.out.println("File Copied..");
+		} catch (IOException e1) {
+			e1.printStackTrace();
+		}
+	}
+
 }

+ 17 - 48
src/ui/view/GUI.java

@@ -1,13 +1,9 @@
 package ui.view;
 
 import java.io.File;
-import java.net.URL;
 import java.util.ArrayList;
-import java.util.Enumeration;
-
 import javax.swing.JFrame;
 import javax.swing.JLabel;
-import javax.swing.JList;
 import javax.swing.JMenuBar;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
@@ -19,15 +15,11 @@ import javax.swing.JScrollPane;
 import javax.swing.JTabbedPane;
 import javax.swing.JTable;
 import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.MutableTreeNode;
 import javax.swing.tree.TreeCellRenderer;
-import javax.swing.tree.TreeNode;
-
 import ui.controller.Control;
 import ui.model.*;
 
 import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeCellRenderer;
 import javax.swing.JEditorPane;
 import javax.swing.JFileChooser;
 import javax.swing.table.DefaultTableModel;
@@ -38,17 +30,11 @@ import java.awt.Cursor;
 import java.awt.Image;
 import java.awt.Point;
 import java.awt.Toolkit;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.dnd.DragSource;
 import java.awt.BorderLayout;
 
 import javax.swing.JPanel;
 import javax.swing.JToolBar;
 import javax.swing.JButton;
-import javax.swing.TransferHandler;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
 import javax.swing.JComboBox;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.Icon;
@@ -56,18 +42,15 @@ import javax.swing.ImageIcon;
 
 import classes.Category;
 import classes.CpsObject;
-import classes.HolonElement;
+import classes.GlobalVariables;
 import classes.HolonObject;
 import classes.HolonSwitch;
 import classes.HolonTransformer;
 import Interfaces.CategoryListener;
 
 import java.awt.event.ActionListener;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
 import java.awt.event.ActionEvent;
 
 public class GUI implements CategoryListener {
@@ -200,7 +183,7 @@ public class GUI implements CategoryListener {
 		splitPane_2.setDividerLocation(200);
 
 		splitPane.setLeftComponent(scrollPane_1);
-		img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage().getScaledInstance(30, 30,
+		img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage().getScaledInstance(GlobalVariables.SCALE, GlobalVariables.SCALE,
 				java.awt.Image.SCALE_SMOOTH);
 		Icon icon = new ImageIcon(img);
 
@@ -214,21 +197,22 @@ public class GUI implements CategoryListener {
 				CpsObject tempCPS = null;
 
 				for (Category cat : model.getCategories()) {
+					if (value.toString().compareTo(cat.getCompareName()) == 0) {
+						label.setText(cat.getCompareName());
+					}
 					for (CpsObject cps : cat.getObjects()) {
 						if (value.toString().compareTo(cps.getCompareName()) == 0) {
 							tempCPS = cps;
-							// System.out.println(tempCPS.getImage());
 							imgR = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage()
-									.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
+									.getScaledInstance(GlobalVariables.SCALE, GlobalVariables.SCALE, java.awt.Image.SCALE_SMOOTH);
 							if (imgR != null) {
 								label.setIcon(new ImageIcon(imgR));
 							}
-						} else {
-							
+							label.setText(cps.getName());
 						}
 					}
 				}
-				label.setText(value.toString());
+				if(label.getText().length() == 0) label.setText(value.toString());
 				return label;
 
 			}
@@ -247,23 +231,17 @@ public class GUI implements CategoryListener {
 			public void mouseReleased(MouseEvent e) {
 				try {
 					if (dragging) {
-
-						// if(){
-						// HolonSwitch h = new HolonSwitch(actualObjectClicked);
-						// }else if(){
-						// HolonTransformer h = new
-						// HolonTransformer(actualObjectClicked);
-						// }else{
-						HolonObject h = new HolonObject(actualObjectClicked);
+						CpsObject h = null;
+						System.out.println(tempCps.getClass().toString());
+						if(tempCps.getClass() == HolonObject.class) {h = new HolonObject(tempCps);}
+						if(tempCps.getClass() == HolonSwitch.class) {h = new HolonSwitch(tempCps);}
+						if(tempCps.getClass() == HolonTransformer.class) {h = new HolonTransformer(tempCps);}
+						
 						h.setPos((int) canvas.getMousePosition().getX(), (int) canvas.getMousePosition().getY());
 						controller.addObject(h);
 						for (int i = 0; i < model.getObjectsOnCanvas().size(); i++) {
 							System.out.println("Element: " + model.getObjectsOnCanvas().get(i).getObjName()
-									+ " with ID: " + model.getObjectsOnCanvas().get(i).getID()
-									+ " and the following gadgets: Consumers: "
-									+ ((HolonObject) model.getObjectsOnCanvas().get(i)).toStringConsumers()
-									+ " and Producers: "
-									+ ((HolonObject) model.getObjectsOnCanvas().get(i)).toStringProducers());
+									+ " with ID: " + model.getObjectsOnCanvas().get(i).getID());
 						}
 						canvas.repaint();
 						dragging = false;
@@ -277,22 +255,13 @@ public class GUI implements CategoryListener {
 		tree.addMouseListener(new MouseAdapter() {
 			public void mousePressed(MouseEvent e) {
 				try {
-					HolonObject h = new HolonObject("test");
 					actualObjectClicked = tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent().toString();
-					/*
-					 * //System.out.println(actualObjectClicked); if
-					 * (actualObjectClicked.compareTo("Power Plant") == 0 ||
-					 * actualObjectClicked.compareTo("House") == 0 ||
-					 * actualObjectClicked.compareTo("Switch") == 0 ||
-					 * actualObjectClicked.compareTo("Transformer") == 0) {
-					 * 
-					 * }
-					 */
+					
 					for (Category cat : model.getCategories()) {
 						for (CpsObject cps : cat.getObjects()) {
 							if (actualObjectClicked.compareTo(cps.getCompareName()) == 0) {
 								img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage()
-										.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
+										.getScaledInstance(GlobalVariables.SCALE, GlobalVariables.SCALE, java.awt.Image.SCALE_SMOOTH);
 								tempCps = cps;
 								dragging = true;
 								Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(img, new Point(0, 0),

+ 11 - 9
src/ui/view/MyCanvas.java

@@ -19,6 +19,7 @@ import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 
 import classes.CpsObject;
+import classes.GlobalVariables;
 import classes.HolonElement;
 import classes.HolonObject;
 import ui.model.*;
@@ -51,8 +52,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			}
 		});
 
-		img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
-				.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
+		//img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
+		//		.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
 		
 		this.addMouseListener(this);
 		this.addMouseMotionListener(this);
@@ -67,7 +68,9 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		}
 		
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
-			g.drawImage(img, cps.getPos().x, cps.getPos().y, null);
+			img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage();
+			g.drawImage(img, cps.getPos().x, cps.getPos().y, GlobalVariables.SCALE, GlobalVariables.SCALE, null);
+			//g.drawImage(img, cps.getPos().x, cps.getPos().y, null);
 		}
 	}
 
@@ -97,13 +100,12 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			int cx = cps.getPos().x;
 			int cy = cps.getPos().y;
-			if (x - img.getWidth(null) <= cx && y - img.getHeight(null) <= cy && x + img.getWidth(null) >= cx
-					&& y + img.getHeight(null) >= cy) {
+			if (x - GlobalVariables.SCALE <= cx && y - GlobalVariables.SCALE <= cy && x >= cx && y >= cy) {
 				tempCps = cps;
 			}
 		}
 		if(tempCps != null){
-			selectRect.setBounds(tempCps.getPos().x-1, tempCps.getPos().y-1, 32, 32);
+			selectRect.setBounds(tempCps.getPos().x-(GlobalVariables.SCALE/20), tempCps.getPos().y-(GlobalVariables.SCALE/20), GlobalVariables.SCALE+GlobalVariables.SCALE/10, GlobalVariables.SCALE+GlobalVariables.SCALE/10);
 			System.out.println("Select");
 		}else {
 			selectRect.setRect(0, 0, 0, 0);
@@ -118,7 +120,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			x = e.getX();
 			y = e.getY();
 			dragging = false;
-			tempCps.setPos(e.getX() - 15, e.getY() - 15);
+			tempCps.setPos(e.getX() - GlobalVariables.SCALE/2, e.getY() - GlobalVariables.SCALE/2);
 			tempCps = null;
 			repaint();
 		}
@@ -138,9 +140,9 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 	public void mouseDragged(MouseEvent e) {
 		// TODO Auto-generated method stub
 			try {
-				tempCps.setPos(e.getX() - 15, e.getY() - 15);
+				tempCps.setPos(e.getX() - GlobalVariables.SCALE/2, e.getY() - GlobalVariables.SCALE/2);
 				dragging = true;
-				selectRect.setLocation(tempCps.getPos().x-1, tempCps.getPos().y-1);
+				selectRect.setLocation(tempCps.getPos().x-(GlobalVariables.SCALE/20), tempCps.getPos().y-(GlobalVariables.SCALE/20));
 				repaint();
 				System.out.println("drag: " + e.getX() + " " + e.getY());
 			} catch (Exception e2) {