|
@@ -14,6 +14,8 @@ import java.awt.event.ComponentEvent;
|
|
|
import java.awt.event.FocusEvent;
|
|
|
import java.awt.event.FocusListener;
|
|
|
import java.awt.event.KeyEvent;
|
|
|
+import java.awt.event.MouseAdapter;
|
|
|
+import java.awt.event.MouseEvent;
|
|
|
|
|
|
import javax.swing.JButton;
|
|
|
import javax.swing.JDialog;
|
|
@@ -30,9 +32,11 @@ import javax.swing.event.DocumentEvent;
|
|
|
import javax.swing.event.DocumentListener;
|
|
|
import javax.swing.filechooser.FileNameExtensionFilter;
|
|
|
import javax.swing.tree.DefaultTreeModel;
|
|
|
+import javax.swing.tree.TreePath;
|
|
|
|
|
|
import animation.Action;
|
|
|
import animation.AnimationController;
|
|
|
+import animation.PseudoCodeNode;
|
|
|
import bk.BKNodePlacement;
|
|
|
import bk.ExtremalLayoutCalc.LayoutType;
|
|
|
import graph.InitializeNodePositions;
|
|
@@ -672,13 +676,24 @@ public class MainView {
|
|
|
|
|
|
});
|
|
|
pseudoTree = new JTree();
|
|
|
- pseudoTree.setModel( new DefaultTreeModel( algorithm.createPseudocodeTree( pseudoTree ) ) );
|
|
|
+ PseudoCodeNode tree = algorithm.createPseudocodeTree( pseudoTree );
|
|
|
+ tree.setController( controller );
|
|
|
+ pseudoTree.setModel( new DefaultTreeModel( tree ) );
|
|
|
pseudoTree.setCellRenderer( new PseudoCodeRenderer() );
|
|
|
pseudoTree.setSelectionModel( null );
|
|
|
+ pseudoTree.addMouseListener( new MouseAdapter() {
|
|
|
+ public void mousePressed(MouseEvent e) {
|
|
|
+ TreePath selPath = pseudoTree.getPathForLocation(e.getX(), e.getY());
|
|
|
+ if( selPath != null && e.getClickCount() == 3 ) {
|
|
|
+ ((PseudoCodeNode)selPath.getLastPathComponent()).setBreakPoint( !((PseudoCodeNode)selPath.getLastPathComponent()).hasBreakPoint() );
|
|
|
+ pseudoTree.repaint();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } );
|
|
|
JScrollPane treeView = new JScrollPane( pseudoTree );
|
|
|
treeView.setBounds( 10, 110, 380, 380 );
|
|
|
|
|
|
- frame.setSize( Math.min( (int)graph.getWidth( LayoutType.TOP_BOTTOM_LEFT ) * 2 + 200, 1700 ), Math.min( (int)graph.getHeight( LayoutType.TOP_BOTTOM_LEFT ) * 2 + 200, 900 ) );
|
|
|
+ frame.setSize( (int)graph.getWidth( LayoutType.TOP_BOTTOM_LEFT ) * 2 + 575, (int)graph.getHeight( LayoutType.TOP_BOTTOM_LEFT ) * 2 + 200 );
|
|
|
frame.setLocation( 100, 100 );
|
|
|
frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
|
|
|
frame.setVisible( true );
|