Browse Source

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

dominik.rieder 7 years ago
parent
commit
bc6143868f
2 changed files with 48 additions and 23 deletions
  1. 13 10
      src/ui/view/MyCanvas.java
  2. 35 13
      src/ui/view/UpperNodeCanvas.java

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

@@ -86,11 +86,13 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 	public JMenuItem itemUngroup = new JMenuItem(Languages.getLanguage()[100]);
 	public JMenuItem itemTrack = new JMenuItem(Languages.getLanguage()[101]);
 	public JMenuItem itemUntrack = new JMenuItem(Languages.getLanguage()[102]);
+	
+	//Tooltip
 	private boolean toolTip; // Tooltip on or off
 	private Position toolTipPos = new Position(); //Tooltip Position
 	private String toolTipText = "";
-	private Point mousePosition = new Point(); // Mouse Position when
-												// rightclicked
+	
+	private Point mousePosition = new Point(); // Mouse Position when rightclicked
 
 	javax.swing.Timer animT; // animation Timer
 	private final int ANIMTIME = 500; // animation Time
@@ -604,16 +606,17 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 
 		}
 
-		
+		//Tooltip
 		if (toolTip) {
-			g2.setColor(new Color(255, 215, 100));
+			g2.setColor(new Color(255, 225, 150));
 			g2.setStroke(new BasicStroke(1));
-			JLabel tempLabel = new JLabel(toolTipText);
-			g2.fillRect(toolTipPos.x, toolTipPos.y, 100, 15);
+			int textWidth = g.getFontMetrics().stringWidth(toolTipText)+2; //Text width
+			g2.fillRect(toolTipPos.x-(textWidth>>1)+model.getScaleDiv2(), toolTipPos.y, textWidth, 15);
 			g2.setColor(Color.BLACK);
-			g2.drawRect(toolTipPos.x, toolTipPos.y, 100, 15);
-			g2.drawString(toolTipText, toolTipPos.x+2, toolTipPos.y+12);
+			g2.drawRect(toolTipPos.x-(textWidth>>1)+model.getScaleDiv2(), toolTipPos.y, textWidth, 15);
+			g2.drawString(toolTipText, toolTipPos.x-(textWidth>>1)+model.getScaleDiv2()+2, toolTipPos.y+12);
 		}
+		
 		// Dragg Highlighting
 		if (doMark) {
 			g2.setColor(Color.BLACK);
@@ -827,7 +830,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				// TipText Position and name
 				toolTip = true;
 				toolTipText =  tempCps.getName()+", "+tempCps.getID();
-				toolTipPos.x = tempCps.getPosition().x-2;
+				toolTipPos.x = tempCps.getPosition().x;
 				toolTipPos.y = tempCps.getPosition().y + model.getScale();
 
 				// All Selected Objects
@@ -893,7 +896,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 			cy = cps.getPosition().y;
 			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
 				on = true;
-				toolTipPos.x = cps.getPosition().x-2;
+				toolTipPos.x = cps.getPosition().x;
 				toolTipPos.y = cps.getPosition().y+ model.getScale();
 				toolTipText =  cps.getName()+", "+cps.getID();
 			}

+ 35 - 13
src/ui/view/UpperNodeCanvas.java

@@ -90,7 +90,11 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 	public JMenuItem itemUngroup = new JMenuItem("Ungroup");
 	public JMenuItem itemTrack = new JMenuItem("Track");
 	public JMenuItem itemUntrack = new JMenuItem("Untrack");
-	private JToolTip objectTT = new JToolTip();
+
+	// Tooltip
+	private boolean toolTip; // Tooltip on or off
+	private Position toolTipPos = new Position(); // Tooltip Position
+	private String toolTipText = "";
 
 	private Point mousePosition = new Point(); // Mouse Position when
 												// rightclicked
@@ -121,10 +125,11 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 	 *            the Controller
 	 */
 	public UpperNodeCanvas(Model mod, Control control, CpsUpperNode UpperNode, String parentPath) {
-		// this.add(objectTT);
-		objectTT.setVisible(false);
+		toolTip = false;
+
 		this.controller = control;
 		this.model = mod;
+
 		this.upperNode = UpperNode;
 		this.path = parentPath + upperNode.getName();
 		this.breadCrumb = new JLabel(path);
@@ -740,6 +745,17 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		// Border Line
 		g2.setColor(Color.BLACK);
 		g2.drawLine(borderPos, 0, borderPos, this.getHeight());
+
+		// Tooltip
+		if (toolTip) {
+			g2.setColor(new Color(255, 225, 150));
+			g2.setStroke(new BasicStroke(1));
+			int textWidth = g.getFontMetrics().stringWidth(toolTipText) + 2; // Text width
+			g2.fillRect(toolTipPos.x - (textWidth >> 1) + model.getScaleDiv2(), toolTipPos.y, textWidth, 15);
+			g2.setColor(Color.BLACK);
+			g2.drawRect(toolTipPos.x - (textWidth >> 1) + model.getScaleDiv2(), toolTipPos.y, textWidth, 15);
+			g2.drawString(toolTipText, toolTipPos.x - (textWidth >> 1) + model.getScaleDiv2() + 2, toolTipPos.y + 12);
+		}
 	}
 
 	@Override
@@ -994,9 +1010,12 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 					yDist = y - tempCps.getPosition().y;
 
 					tempCps.setPosition(x, y); // Drag Position
+
 					// TipText Position and name
-					objectTT.setTipText(tempCps.getName() + ", " + tempCps.getID());
-					objectTT.setLocation(x, y + controller.getScale());
+					toolTip = true;
+					toolTipText = tempCps.getName() + ", " + tempCps.getID();
+					toolTipPos.x = tempCps.getPosition().x;
+					toolTipPos.y = tempCps.getPosition().y + model.getScale();
 
 					// All Selected Objects
 					for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
@@ -1092,8 +1111,10 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 			cy = cps.getPosition().y;
 			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
 
-				objectTT.setLocation(cx, cy + controller.getScale());
-				objectTT.setTipText(cps.getName() + ", " + cps.getID());
+				on = true;
+				toolTipPos.x = cps.getPosition().x;
+				toolTipPos.y = cps.getPosition().y + model.getScale();
+				toolTipText = cps.getName() + ", " + cps.getID();
 
 				on = true;
 			}
@@ -1112,20 +1133,21 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 			cy = (int) (scalediv20 + 5 + (model.getScale() + scalediv20 + 10) * count);
 			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
 
-				objectTT.setLocation(cx - model.getScaleDiv2(), cy + controller.getScale());
-				objectTT.setTipText(cps.getName() + ", " + cps.getID());
-
 				on = true;
+				toolTipPos.x = cx - model.getScaleDiv2();
+				toolTipPos.y = cy + controller.getScale();
+				toolTipText = cps.getName() + ", " + cps.getID();
+
 			}
 			count++;
 		}
 
 		if (on) {
-			objectTT.setVisible(true);
+			toolTip = true;
 		} else {
-			objectTT.setVisible(false);
+			toolTip = false;
 		}
-
+		repaint();
 	}
 
 	/**