package nbtool.gui.logviews.fieldLocation; import java.awt.*; import javax.swing.*; import com.google.protobuf.InvalidProtocolBufferException; import messages.RobotLocation; import nbtool.gui.field.FieldConstants; import nbtool.gui.logviews.misc.ViewParent; public class FieldView extends ViewParent { /** * */ private static final long serialVersionUID = 1L; private JScrollPane sp; private DrawPane dPane; public float robotLocX; public float robotLocY; public static final Dimension fieldDimension = new Dimension((int)FieldConstants.FIELD_WIDTH+(int)FieldConstants.GREEN_PAD_X, (int)FieldConstants.FIELD_HEIGHT+(int)FieldConstants.GREEN_PAD_X); // public void paintComponent(Graphics g) { // System.out.println("FieldView PaintComponent"); // Graphics2D g2 = (Graphics2D) g; // if(log == null) { // System.out.println("Log is null"); // return; // } // myField.drawField(g2); // myPlayer.draw(g2); // } public void setupDisplay() { RobotLocation ploc = (RobotLocation) displayedLog.blocks.get(0).parseAsProtobufOfClass(RobotLocation.class); float x = ploc.getX(); float y = ploc.getY(); robotLocX = x; robotLocY = y; dPane.myPlayer.moveTo(robotLocX, robotLocY); System.out.println("Player created at X: "+ dPane.myPlayer.getX()+" Y: "+ dPane.myPlayer.getY()); repaint(); } public FieldView() { super(); dPane = new DrawPane(); dPane.setPreferredSize(fieldDimension); sp = new JScrollPane(dPane); sp.setVisible(true); sp.setPreferredSize(new Dimension(800,800)); sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); this.add(sp); } protected void useSize(Dimension s) { dPane.setBounds(0,0,s.width,s.height); sp.setBounds(0, 0, s.width, s.height); } private class DrawPane extends JPanel { public Field myField; public Player myPlayer; public DrawPane() { super(); myField = new Field(); myPlayer = new Player(); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; myField.drawField(g2); myPlayer.draw(g2); } } @Override public String[] displayableTypes() { return new String[]{"RobotLocation"}; } }