1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package View;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Point;
- import java.util.ArrayList;
- import javax.swing.JPanel;
- import Model.LayeredGraphEdge;
- public class EdgeView extends JPanel {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private LayeredGraphEdge model;
-
- public EdgeView( LayeredGraphEdge model ) {
- this.model = model;
- }
-
- @Override
- public int getX()
- {
- ArrayList<Point> bps = model.getLinePoints();
- double min = bps.get( 0 ).getX();
- for( Point p : bps )
- min = Math.min( min, p.getX() );
- return (int)min - 5;
- }
-
- @Override
- public int getY()
- {
- ArrayList<Point> bps = model.getLinePoints();
- double min = bps.get( 0 ).getY();
- for( Point p : bps )
- min = Math.min( min, p.getY() );
- return (int)min - 5;
- }
-
- @Override
- public int getWidth()
- {
- ArrayList<Point> bps = model.getLinePoints();
- double max = bps.get( 0 ).getX();
- for( Point p : bps )
- max = Math.max( max, p.getX() );
- return (int)max + 10;
- }
-
- @Override
- public int getHeight()
- {
- ArrayList<Point> bps = model.getLinePoints();
- double max = bps.get( 0 ).getY();
- for( Point p : bps )
- max = Math.max( max, p.getY() );
- return (int)max + 10;
- }
-
- @Override
- public void paint( Graphics g )
- {
- paintComponent( g );
- for( Component c : getComponents() )
- c.paint( g.create(
- c.getX() + 10,
- c.getY() + 10,
- Math.min( getWidth() - 10, c.getWidth() + c.getX() + 10 ),
- Math.min( getHeight() - 10, c.getHeight() + c.getY() + 10 ) ) );
- }
- @Override
- public void paintComponent( Graphics g )
- {
- System.out.println( "Clipping: x:" + g.getClip().getBounds().getX() + " y:" + g.getClip().getBounds().getY() + " w:" + g.getClip().getBounds().getWidth() + " h:" + g.getClip().getBounds().getHeight() );
- g.setColor( Color.GREEN );
- ArrayList<Point> bps = model.getLinePoints();
- for( int i = 1; i < bps.size(); i++ )
- {
- System.out.println( "Draw a Line from (" + (int)bps.get( i - 1 ).getX() + "," + (int)bps.get( i - 1 ).getY() + ") to (" + (int)bps.get( i ).getX() + "," + (int)bps.get( i ).getY() + ")" );
- g.drawLine( (int)bps.get( i - 1 ).getX() - getX(), (int)bps.get( i - 1 ).getY() - getY(), (int)bps.get( i ).getX() - getX(), (int)bps.get( i ).getY() - getY() );
- }
- ((Graphics2D)g).fill( RenderHelper.createArrowShape( new Point( bps.get( bps.size() - 2 ).x - getX(), bps.get( bps.size() - 2 ).y - getY() ), new Point( bps.get( bps.size() - 1 ).x - getX(), bps.get( bps.size() - 1 ).y - getY() ) ) );
- }
- }
|