123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package View;
- import java.awt.BasicStroke;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import javax.swing.*;
- import Model.LayeredGraphNode;
- /**
- * A drawable representation of a node.
- * @author kolja
- *
- */
- public class NodeView extends JPanel {
- private static final long serialVersionUID = 1L;
- private LayeredGraphNode model;
-
- public NodeView( LayeredGraphNode model ) {
- this.model = model;
- model.setView( this );
- setSize( (int)model.getWidth(), (int)model.getHeight() );
- }
-
- @Override
- public int getX()
- {
- return (int)model.getX();
- }
-
- @Override
- public int getY()
- {
- return (int)model.getY();
- }
-
- @Override
- public Dimension getPreferredSize()
- {
- return new Dimension( (int)model.getWidth(), (int)model.getHeight() );
- }
-
- @Override
- public void paint( Graphics g )
- {
- System.out.println( super.getWidth() + " " + super.getHeight() );
- double scale = Math.min( (double)super.getWidth() / (int)model.getWidth(), (double)super.getHeight() / (int)model.getHeight());
- System.out.println( scale );
- ((Graphics2D)g).scale( scale, scale );
- paintComponent( g );
- for( Component c : getComponents() )
- {
- c.paint( g.create(
- c.getX() + 25,
- c.getY() + 25,
- Math.min( (int)model.getWidth() - 25, c.getPreferredSize().width + c.getX() + 25 ),
- Math.min( (int)model.getHeight() - 25, c.getPreferredSize().height + c.getY() + 25 ) ) );
- System.out.println( c.getX() + " " + c.getY() + " " + c.getPreferredSize() + " " + scale );
- }
- }
- @Override
- public void paintComponent( Graphics g )
- {
- /*else
- {
- g.setColor( Color.WHITE );
- g.fillRect( 0, 0, getWidth()-1, getHeight()-1 );
- }*/
- Graphics2D g2 = (Graphics2D)g;
- g2.setColor( model.getColor() );
- g2.setStroke(new BasicStroke(5));
- if( model.getContainedNodes().size() == 0 )
- g2.fillRect( 0, 0, (int)model.getWidth()-1, (int)model.getHeight()-1 );
- if( model.isSelected() )
- {
- g.setColor( Color.GRAY );
- g.fillRect( 0, 0, (int)model.getWidth()-1, (int)model.getHeight()-1 );
- }
- g2.setColor( model.getColor() );
- g2.drawRect( 0, 0, (int)model.getWidth()-1, (int)model.getHeight()-1 );
- }
- }
|