|
@@ -3,6 +3,7 @@ package view;
|
|
|
import java.awt.BorderLayout;
|
|
|
import java.awt.Color;
|
|
|
import java.awt.Dimension;
|
|
|
+import java.awt.Font;
|
|
|
import java.awt.GridLayout;
|
|
|
import java.awt.event.ActionEvent;
|
|
|
import java.awt.event.ActionListener;
|
|
@@ -17,6 +18,7 @@ import javax.swing.JLabel;
|
|
|
import javax.swing.JLayeredPane;
|
|
|
import javax.swing.JPanel;
|
|
|
import javax.swing.JScrollPane;
|
|
|
+import javax.swing.JTextArea;
|
|
|
import javax.swing.JTextField;
|
|
|
import javax.swing.JTree;
|
|
|
import javax.swing.UIManager;
|
|
@@ -59,6 +61,7 @@ public class MainView {
|
|
|
private JLabel delayText;
|
|
|
private JTextField delay;
|
|
|
public static JTree pseudoTree;
|
|
|
+ private LayeredGraphNode graph;
|
|
|
|
|
|
private String strToLen( String s, int l )
|
|
|
{
|
|
@@ -71,12 +74,67 @@ public class MainView {
|
|
|
return s;
|
|
|
}
|
|
|
|
|
|
+ private String debugInfo()
|
|
|
+ {
|
|
|
+ String info = "Debug Information Table: \n";
|
|
|
+ info += "_______________________________________________________________________________________________________________________________________________________________________________________________________________________\n";
|
|
|
+ info += "|" + strToLen( "Top -> Bottom :> Left", 51 ) + "| |" + strToLen( "Top -> Bottom :> Right", 51 ) + "| |" + strToLen( "Bottom -> Top :> Left", 51 ) + "| |" + strToLen( "Bottom -> Top :> Right", 51 ) + "|\n";
|
|
|
+ info += "|___________________________________________________| |___________________________________________________| |___________________________________________________| |___________________________________________________|\n";
|
|
|
+ info += "| Node | Shift | Sink | Root | Align | x | xDef | | Node | Shift | Sink | Root | Align | x | xDef | | Node | Shift | Sink | Root | Align | x | xDef | | Node | Shift | Sink | Root | Align | x | xDef |\n";
|
|
|
+ for( LayeredGraphNode n : graph.getContainedNodes() )
|
|
|
+ {
|
|
|
+ info += "|" + strToLen( n.getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getShift( LayoutType.TOP_BOTTOM_LEFT ) + "", 7 ) +
|
|
|
+ "|" + strToLen( n.getSink( LayoutType.TOP_BOTTOM_LEFT ).getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getRoot( LayoutType.TOP_BOTTOM_LEFT ).getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getAlignedTo( LayoutType.TOP_BOTTOM_LEFT ).getName(), 7 ) +
|
|
|
+ "|" + strToLen( n.getX( LayoutType.TOP_BOTTOM_LEFT ) + "", 5 ) +
|
|
|
+ "|" + strToLen( !n.isXUndefined( LayoutType.TOP_BOTTOM_LEFT ) + "", 8 ) + "| " +
|
|
|
+ "|" + strToLen( n.getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getShift( LayoutType.TOP_BOTTOM_RIGHT ) + "", 7 ) +
|
|
|
+ "|" + strToLen( n.getSink( LayoutType.TOP_BOTTOM_RIGHT ).getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getRoot( LayoutType.TOP_BOTTOM_RIGHT ).getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getAlignedTo( LayoutType.TOP_BOTTOM_RIGHT ).getName(), 7 ) +
|
|
|
+ "|" + strToLen( n.getX( LayoutType.TOP_BOTTOM_RIGHT ) + "", 5 ) +
|
|
|
+ "|" + strToLen( !n.isXUndefined( LayoutType.TOP_BOTTOM_RIGHT ) + "", 8 ) + "| " +
|
|
|
+ "|" + strToLen( n.getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getShift( LayoutType.BOTTOM_TOP_LEFT ) + "", 7 ) +
|
|
|
+ "|" + strToLen( n.getSink( LayoutType.BOTTOM_TOP_LEFT ).getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getRoot( LayoutType.BOTTOM_TOP_LEFT ).getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getAlignedTo( LayoutType.BOTTOM_TOP_LEFT ).getName(), 7 ) +
|
|
|
+ "|" + strToLen( n.getX( LayoutType.BOTTOM_TOP_LEFT ) + "", 5 ) +
|
|
|
+ "|" + strToLen( !n.isXUndefined( LayoutType.BOTTOM_TOP_LEFT ) + "", 8 ) + "| " +
|
|
|
+ "|" + strToLen( n.getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getShift( LayoutType.BOTTOM_TOP_RIGHT ) + "", 7 ) +
|
|
|
+ "|" + strToLen( n.getSink( LayoutType.BOTTOM_TOP_RIGHT ).getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getRoot( LayoutType.BOTTOM_TOP_RIGHT ).getName(), 6 ) +
|
|
|
+ "|" + strToLen( n.getAlignedTo( LayoutType.BOTTOM_TOP_RIGHT ).getName(), 7 ) +
|
|
|
+ "|" + strToLen( n.getX( LayoutType.BOTTOM_TOP_RIGHT ) + "", 5 ) +
|
|
|
+ "|" + strToLen( !n.isXUndefined( LayoutType.BOTTOM_TOP_RIGHT ) + "", 8 ) + "|\n";
|
|
|
+ }
|
|
|
+ info += "-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";
|
|
|
+ return info;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void showDebugInfo()
|
|
|
+ {
|
|
|
+ JFrame debugFrame = new JFrame();
|
|
|
+ JTextArea info = new JTextArea();
|
|
|
+ info.setEditable( false );
|
|
|
+ info.setFont( new Font( Font.MONOSPACED, Font.PLAIN, 11 ) );
|
|
|
+ info.setText( debugInfo() );
|
|
|
+ JScrollPane view = new JScrollPane( info );
|
|
|
+ debugFrame.add( view );
|
|
|
+ debugFrame.setVisible( true );
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Initialize the window and its contents.
|
|
|
* @param graph the graph that is displayed in this window.
|
|
|
*/
|
|
|
public MainView( LayeredGraphNode graph )
|
|
|
{
|
|
|
+ this.graph = graph;
|
|
|
controller = new AnimationController();
|
|
|
controller.setTimeBetween( 50 );
|
|
|
BKNodePlacement algorithm = new BKNodePlacement( controller, graph );
|
|
@@ -182,6 +240,14 @@ public class MainView {
|
|
|
});
|
|
|
debug = new NiceButton( "debug" );
|
|
|
debug.setLocation( 350, 10 );
|
|
|
+ debug.addActionListener( new ActionListener() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
+ showDebugInfo();
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
generateRandom = new NiceButton( "generateRandom" );
|
|
|
generateRandom.setLocation( 350, 60 );
|
|
|
generateRandom.addActionListener( new ActionListener() {
|
|
@@ -271,43 +337,7 @@ public class MainView {
|
|
|
frame.validate();
|
|
|
if( e.getKeyCode() == KeyEvent.VK_D )
|
|
|
{
|
|
|
- System.out.println( "Debug Information Table: " );
|
|
|
- System.out.println( "_______________________________________________________________________________________________________________________________________________________________________________________________________________________" );
|
|
|
- System.out.println( "|" + strToLen( "Top -> Bottom :> Left", 51 ) + "| |" + strToLen( "Top -> Bottom :> Right", 51 ) + "| |" + strToLen( "Bottom -> Top :> Left", 51 ) + "| |" + strToLen( "Bottom -> Top :> Right", 51 ) + "|" );
|
|
|
- System.out.println( "|___________________________________________________| |___________________________________________________| |___________________________________________________| |___________________________________________________|" );
|
|
|
- System.out.println( "| Node | Shift | Sink | Root | Align | x | xDef | | Node | Shift | Sink | Root | Align | x | xDef | | Node | Shift | Sink | Root | Align | x | xDef | | Node | Shift | Sink | Root | Align | x | xDef |" );
|
|
|
- for( LayeredGraphNode n : graph.getContainedNodes() )
|
|
|
- {
|
|
|
- System.out.println( "|" + strToLen( n.getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getShift( LayoutType.TOP_BOTTOM_LEFT ) + "", 7 ) +
|
|
|
- "|" + strToLen( n.getSink( LayoutType.TOP_BOTTOM_LEFT ).getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getRoot( LayoutType.TOP_BOTTOM_LEFT ).getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getAlignedTo( LayoutType.TOP_BOTTOM_LEFT ).getName(), 7 ) +
|
|
|
- "|" + strToLen( n.getX( LayoutType.TOP_BOTTOM_LEFT ) + "", 5 ) +
|
|
|
- "|" + strToLen( !n.isXUndefined( LayoutType.TOP_BOTTOM_LEFT ) + "", 8 ) + "| " +
|
|
|
- "|" + strToLen( n.getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getShift( LayoutType.TOP_BOTTOM_RIGHT ) + "", 7 ) +
|
|
|
- "|" + strToLen( n.getSink( LayoutType.TOP_BOTTOM_RIGHT ).getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getRoot( LayoutType.TOP_BOTTOM_RIGHT ).getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getAlignedTo( LayoutType.TOP_BOTTOM_RIGHT ).getName(), 7 ) +
|
|
|
- "|" + strToLen( n.getX( LayoutType.TOP_BOTTOM_RIGHT ) + "", 5 ) +
|
|
|
- "|" + strToLen( !n.isXUndefined( LayoutType.TOP_BOTTOM_RIGHT ) + "", 8 ) + "| " +
|
|
|
- "|" + strToLen( n.getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getShift( LayoutType.BOTTOM_TOP_LEFT ) + "", 7 ) +
|
|
|
- "|" + strToLen( n.getSink( LayoutType.BOTTOM_TOP_LEFT ).getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getRoot( LayoutType.BOTTOM_TOP_LEFT ).getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getAlignedTo( LayoutType.BOTTOM_TOP_LEFT ).getName(), 7 ) +
|
|
|
- "|" + strToLen( n.getX( LayoutType.BOTTOM_TOP_LEFT ) + "", 5 ) +
|
|
|
- "|" + strToLen( !n.isXUndefined( LayoutType.BOTTOM_TOP_LEFT ) + "", 8 ) + "| " +
|
|
|
- "|" + strToLen( n.getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getShift( LayoutType.BOTTOM_TOP_RIGHT ) + "", 7 ) +
|
|
|
- "|" + strToLen( n.getSink( LayoutType.BOTTOM_TOP_RIGHT ).getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getRoot( LayoutType.BOTTOM_TOP_RIGHT ).getName(), 6 ) +
|
|
|
- "|" + strToLen( n.getAlignedTo( LayoutType.BOTTOM_TOP_RIGHT ).getName(), 7 ) +
|
|
|
- "|" + strToLen( n.getX( LayoutType.BOTTOM_TOP_RIGHT ) + "", 5 ) +
|
|
|
- "|" + strToLen( !n.isXUndefined( LayoutType.BOTTOM_TOP_RIGHT ) + "", 8 ) + "|");
|
|
|
- }
|
|
|
- System.out.println( "-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" );
|
|
|
+ System.out.println( debugInfo() );
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -351,7 +381,7 @@ public class MainView {
|
|
|
menue.add( delayText );
|
|
|
menue.add( delay );
|
|
|
menue.add( treeView );
|
|
|
- //menue.add( stepBackwardInto );
|
|
|
+ menue.add( stepBackwardInto );
|
|
|
menue.add( stepBackwardOut );
|
|
|
menue.add( runBackward );
|
|
|
frame.add( menue, BorderLayout.EAST );
|