Browse Source

Dummy Images und nicht funktionierender Drag and Drop

Kevin Trometer 7 years ago
parent
commit
4ecf911eb3

+ 8 - 7
.classpath

@@ -1,7 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="res"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

+ 1 - 0
bin/.gitignore

@@ -2,3 +2,4 @@
 /exceptions/
 /tests/
 /ui/
+/Images/

BIN
bin/exceptions/newException1.class


BIN
bin/tests/Tests1.class


BIN
bin/tests/praktikumHolonsTestMinimal.class


BIN
bin/ui/model/Model.class


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


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


BIN
bin/ui/view/GUI.class


BIN
bin/ui/view/MyCanvas.class


BIN
res/Images/Dummy_House.png


+ 44 - 1
src/ui/view/GUI.java

@@ -19,10 +19,13 @@ import javax.swing.JTabbedPane;
 import javax.swing.JTable;
 import javax.swing.tree.DefaultTreeModel;
 
+import com.sun.glass.events.MouseEvent;
+
 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;
@@ -41,6 +44,7 @@ import javax.swing.JToolBar;
 import javax.swing.JButton;
 import javax.swing.JList;
 import javax.swing.ListSelectionModel;
+import javax.swing.TransferHandler;
 import javax.swing.AbstractListModel;
 
 import java.awt.Choice;
@@ -49,13 +53,17 @@ import javax.swing.JComboBox;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.GroupLayout;
 import javax.swing.GroupLayout.Alignment;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
 
 import Interfaces.CategoryListener;
+import javafx.util.Pair;
 
 import java.awt.GridBagLayout;
 import java.awt.GridBagConstraints;
 import java.awt.Font;
 import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
 import java.awt.event.ActionEvent;
 
 public class GUI implements CategoryListener {
@@ -178,7 +186,42 @@ public class GUI implements CategoryListener {
 
 		splitPane.setLeftComponent(scrollPane_1);
 		tree.setEditable(true);
-
+		
+		Icon icon = new ImageIcon(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage().getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH));
+		//DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();
+		DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();
+        renderer.setLeafIcon(icon);
+        //renderer.setClosedIcon(icon);
+        //renderer.setOpenIcon(icon);
+        tree.setRowHeight(icon.getIconHeight());
+		tree.setCellRenderer(renderer);
+		
+		//add a MouseListener to initiate the Drag on the appropriate
+		//MouseEvent
+		/*tree.addMouseMotionListener(new MouseAdapter(){
+			 	public void mouseDragged(MouseEvent e) {
+		            	System.out.println("Drag");
+		            	Image img = null;
+		            	try {
+		            		URL url = new URL("https://cdn4.iconfinder.com/data/icons/buildings-filled-1/60/house-home-building-construction-32.png");
+		                  	img = ImageIO.read(url);
+		            	} catch (IOException e1) {
+		            		System.out.println("Failed to load the Image!");
+		            	}
+		                JTree treep = (JTree)e.getSource();
+		                TransferHandler handle = treep.getTransferHandler();
+		                handle.setDragImage(img);
+		                handle.exportAsDrag(treep, e, TransferHandler.MOVE);
+		            }
+		        });*/
+		tree.addMouseListener(new MouseAdapter(){
+            public void mouseReleased(MouseEvent e){
+                	Pair<Integer,Integer> xy = new Pair<Integer, Integer>((int)canvas.getMousePosition().getX(),(int)canvas.getMousePosition().getY());
+                	canvas.choords.add(xy);
+                	canvas.repaint();
+	            }
+	        });
+		
 		scrollPane_1.setViewportView(tree);
 
 		scrollPane_1.setColumnHeaderView(panel);

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

@@ -8,28 +8,28 @@ import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
+import java.util.LinkedList;
 
 import javax.imageio.ImageIO;
+import javax.swing.ImageIcon;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.event.MenuDragMouseEvent;
 
+import javafx.util.Pair;
+
 class MyCanvas extends JPanel implements MouseListener
 {
-	private Image img;      // Contains the image to draw on MyCanvas
+	private Image img = null;      // Contains the image to draw on MyCanvas
 	private int x = 0;
 	private int y = 0;
+	LinkedList<Pair<Integer,Integer>> choords = new LinkedList<>();
 	
     public MyCanvas()
     {
-    	img = null;
-    	try {
-    		URL url = new URL("https://cdn4.iconfinder.com/data/icons/buildings-filled-1/60/house-home-building-construction-32.png");
-          
-    		img = ImageIO.read(url);
-    	} catch (IOException e) {
-    		System.out.println("Failed to load the Image!");
-    	}
+    	
+    	img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage().getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
+    	
     	
         this.addMouseListener(this);
     }
@@ -38,7 +38,9 @@ class MyCanvas extends JPanel implements MouseListener
     {
         // Draws the image to the canvas
     	super.paintComponent(g);
-        g.drawImage(img, x, y, null);
+    	for (Pair<Integer,Integer> xy : choords){
+    		g.drawImage(img, xy.getKey(), xy.getValue(), null);
+    	}
     }
 
 	@Override
@@ -66,11 +68,13 @@ class MyCanvas extends JPanel implements MouseListener
 
 	@Override
 	public void mouseReleased(MouseEvent e) {
+		/*
 		x = e.getX();
         y = e.getY();
 
         Graphics g = img.getGraphics();
         System.out.println("Draw!");
 		repaint();
+		*/
 	}
 }