|
@@ -7,6 +7,8 @@ import java.awt.Graphics;
|
|
|
import java.awt.Graphics2D;
|
|
|
import java.awt.Rectangle;
|
|
|
import java.awt.RenderingHints;
|
|
|
+import java.awt.event.MouseEvent;
|
|
|
+import java.awt.event.MouseListener;
|
|
|
|
|
|
import javax.swing.ImageIcon;
|
|
|
import javax.swing.JComponent;
|
|
@@ -14,6 +16,7 @@ import javax.swing.JScrollPane;
|
|
|
import javax.swing.JTree;
|
|
|
import javax.swing.JViewport;
|
|
|
import javax.swing.tree.TreeNode;
|
|
|
+import javax.swing.tree.TreePath;
|
|
|
|
|
|
import animation.PseudoCodeNode;
|
|
|
|
|
@@ -24,7 +27,7 @@ import animation.PseudoCodeNode;
|
|
|
*
|
|
|
*/
|
|
|
|
|
|
-public class PseudoCodeLines extends JComponent{
|
|
|
+public class PseudoCodeLines extends JComponent implements MouseListener{
|
|
|
|
|
|
static final long serialVersionUID = 432143214L;
|
|
|
|
|
@@ -43,6 +46,7 @@ public class PseudoCodeLines extends JComponent{
|
|
|
public PseudoCodeLines( JTree t ){
|
|
|
super();
|
|
|
tree = t;
|
|
|
+ this.addMouseListener( this );
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -137,4 +141,43 @@ public class PseudoCodeLines extends JComponent{
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private int getRowNumber( int y ) {
|
|
|
+ int curr = 0;
|
|
|
+ int res = -1;
|
|
|
+ for ( int i = 0; i < tree.getRowCount(); i++ ){
|
|
|
+ Rectangle rect = tree.getRowBounds( i );
|
|
|
+ if( y > curr && y < rect.y + rect.height )
|
|
|
+ {
|
|
|
+ res = i;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ curr = rect.y + rect.height;
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void mouseClicked(MouseEvent e) {
|
|
|
+ int rNum = getRowNumber( e.getY() );
|
|
|
+ if( rNum < 0 )
|
|
|
+ return;
|
|
|
+ TreePath path = tree.getPathForRow( rNum );
|
|
|
+ if( path == null )
|
|
|
+ return;
|
|
|
+ ((PseudoCodeNode)path.getLastPathComponent()).setBreakPoint( !((PseudoCodeNode)path.getLastPathComponent()).hasBreakPoint() );
|
|
|
+ tree.repaint();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void mousePressed(MouseEvent e) {}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void mouseReleased(MouseEvent e) {}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void mouseEntered(MouseEvent e) {}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void mouseExited(MouseEvent e) {}
|
|
|
}
|