瀏覽代碼

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

# By Jessey Widhalm (1) and Kevin Trometer (1)
# Via Jessey Widhalm
* 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons:
  add image for objects to our image folder
  Drop Down Menu

Conflicts:
	bin/classes/CpsObject.class
	bin/ui/controller/ObjectControl.class
	bin/ui/model/Model.class
Edgardo Palza 8 年之前
父節點
當前提交
c9b3ba4fa5
共有 3 個文件被更改,包括 71 次插入10 次删除
  1. 二進制
      bin/ui/view/MyCanvas.class
  2. 42 0
      src/ui/view/AddObjectPopUp.java
  3. 29 10
      src/ui/view/MyCanvas.java

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


+ 42 - 0
src/ui/view/AddObjectPopUp.java

@@ -2,11 +2,15 @@ package ui.view;
 
 import java.awt.BorderLayout;
 import java.awt.FlowLayout;
+import java.awt.event.*;
+import java.io.*;
 
 import javax.swing.JButton;
 import javax.swing.JDialog;
+import javax.swing.JFileChooser;
 import javax.swing.JPanel;
 import javax.swing.border.EmptyBorder;
+import javax.swing.filechooser.FileNameExtensionFilter;
 import javax.swing.JLabel;
 import javax.swing.JTextField;
 import javax.swing.JList;
@@ -56,6 +60,44 @@ public class AddObjectPopUp extends JDialog {
 			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;
+
+		        }
+			});
+
 		}
 		{
 			textField_1 = new JTextField();

+ 29 - 10
src/ui/view/MyCanvas.java

@@ -8,7 +8,9 @@ import java.awt.event.MouseMotionListener;
 import java.util.LinkedList;
 
 import javax.swing.ImageIcon;
+import javax.swing.JMenuItem;
 import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
 
 import classes.CpsObject;
 import classes.HolonObject;
@@ -20,11 +22,18 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener
 	private int y = 0;
 	LinkedList<CpsObject> choords = new LinkedList<>();
 	boolean dragging = false;
+	boolean dropDelete = false;
 	CpsObject tempCPS = null;
 	
+	//PopUpMenu
+	JPopupMenu popmenu = new JPopupMenu();
+	JMenuItem itemDelete = new JMenuItem("Delete Object");
+	
+	
     public MyCanvas()
     {
-    	
+    	popmenu.add(itemDelete);
+    	itemDelete.setEnabled(false);
     	img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage().getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
     	
         this.addMouseListener(this);
@@ -63,16 +72,20 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener
 		// TODO Auto-generated method stub
 		x = e.getX();
         y = e.getY();
+        dropDelete = false;
+        for (CpsObject cps : choords){
+        	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) {
+        		tempCPS = cps;
+        		if(e.getButton() == e.BUTTON1){
+        			dragging = true;
+        		} else {
+        			dropDelete = true;
+        		}
+        	}
+        }
         
-		for (CpsObject cps : choords){
-    		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) {
-				tempCPS = cps;
-				dragging = true;
-			}
-    	}
-		
 	}
 
 	@Override
@@ -85,6 +98,12 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener
         	tempCPS = null;
         	repaint();
         }
+        //Rechtsklick Liste
+        if(e.getButton() == e.BUTTON3){
+        	if(dropDelete) itemDelete.setEnabled(true);
+        	popmenu.show( e.getComponent(), e.getX(), e.getY() ); 
+        	
+        }
 	}
 
 	@Override