|
@@ -61,6 +61,45 @@ public class NodeView extends JPanel {
|
|
|
return y;
|
|
|
}
|
|
|
|
|
|
+ public String updateTooltipText( int mx, int my ) {
|
|
|
+ int x = 0;
|
|
|
+ int y = 0;
|
|
|
+ double scaleW = Math.min( (double)super.getWidth() / (int)model.getWidth( layout ), (double)super.getHeight() / (int)model.getHeight( layout ));
|
|
|
+ double scaleH = scaleW;
|
|
|
+ int width = (int)(super.getWidth() / scaleW);
|
|
|
+ if( scaleW == (double)super.getWidth() / (int)model.getWidth( layout ) )
|
|
|
+ y += (super.getHeight() - (model.getHeight( layout ) * scaleH )) / scaleH / 2;
|
|
|
+ if( scaleH == (double)super.getHeight() / (int)model.getHeight( layout ) )
|
|
|
+ x += (super.getWidth() - (model.getWidth( layout ) * scaleW )) / scaleW / 2;
|
|
|
+ if( model.isDummyNode() )
|
|
|
+ {
|
|
|
+ scaleW *= 1 / 4.0;
|
|
|
+ x += width / (3/4.0);
|
|
|
+ }
|
|
|
+ double minX = Double.POSITIVE_INFINITY;
|
|
|
+ for( Component c : getComponents() )
|
|
|
+ {
|
|
|
+ minX = Math.min( c.getLocation().x, minX);
|
|
|
+ }
|
|
|
+ for( Component c : getComponents() )
|
|
|
+ {
|
|
|
+ int nx = (int)(mx / scaleW) - (c.getLocation().x + 25 - (int)minX + x);
|
|
|
+ int ny = (int)(my / scaleH) - (c.getLocation().y + 25 + y);
|
|
|
+ int width1 = Math.min( (int)model.getWidth( layout ) - 25, c.getPreferredSize().width + 25 );
|
|
|
+ int height1 = Math.min( (int)model.getHeight( layout ) - 25, c.getPreferredSize().height + 25 );
|
|
|
+ if( nx < width1 && ny < height1 && nx > 0 && ny > 0 && c instanceof NodeView )
|
|
|
+ return ((NodeView)c).updateTooltipText( nx, ny );
|
|
|
+ }
|
|
|
+ if( layout != LayoutType.COMBINED )
|
|
|
+ {
|
|
|
+ return "<html>Name: " + model.toString() +
|
|
|
+ "<br>Root: " + model.getRoot( layout ).toString() +
|
|
|
+ "<br>Shink: " + model.getSink( layout ).toString() +
|
|
|
+ "<br>Shift: " + model.getShift( layout ) + "</html>";
|
|
|
+ }
|
|
|
+ return "Name: " + model.toString();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void paint( Graphics g )
|
|
|
{
|
|
@@ -100,6 +139,10 @@ public class NodeView extends JPanel {
|
|
|
@Override
|
|
|
public void paintComponent( Graphics g )
|
|
|
{
|
|
|
+
|
|
|
+ "<br>Root: " + model.getRoot( layout ).toString() +
|
|
|
+ "<br>Shink: " + model.getSink( layout ).toString() +
|
|
|
+ "<br>Shift: " + model.getShift( layout ) );*/
|
|
|
Graphics2D g2 = (Graphics2D)g;
|
|
|
g2.setColor( model.getColor( layout ) );
|
|
|
g2.setStroke(new BasicStroke(5));
|