1 package de.lathanda.eos.geo.gui;
3 import de.lathanda.eos.base.MutableColor;
4 import de.lathanda.eos.base.math.Point;
5 import de.lathanda.eos.base.util.GuiToolkit;
6 import de.lathanda.eos.geo.Window;
7 import de.lathanda.eos.geo.gui.event.CursorListener;
9 import java.awt.BorderLayout;
10 import java.awt.Rectangle;
11 import java.awt.Toolkit;
12 import java.awt.event.KeyEvent;
13 import java.awt.event.KeyListener;
14 import java.awt.event.WindowEvent;
15 import java.awt.event.WindowListener;
16 import java.text.MessageFormat;
17 import javax.swing.JButton;
18 import javax.swing.JFrame;
19 import javax.swing.JLabel;
20 import javax.swing.JToolBar;
21 import static de.lathanda.eos.geo.icons.Icons.*;
22 import static de.lathanda.eos.base.icons.Icons.*;
23 import static de.lathanda.eos.geo.text.Text.VIEW;
32 public class ViewFrame extends JFrame implements WindowListener {
33 private static final long serialVersionUID = 8808554555627848478L;
35 private final JToolBar toolbar;
36 private final JButton zoomIn;
37 private final JButton zoomOut;
38 private final JButton zoom100;
39 private final JLabel status;
42 super(VIEW.getString(
"View.Title"));
43 this.setIconImage(LOGO);
45 toolbar =
new JToolBar();
51 setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
52 addWindowListener(
this);
53 setLayout(
new BorderLayout());
55 view.setFocusable(
false);
57 toolbar.setFloatable(
false);
62 getContentPane().add(view, BorderLayout.CENTER);
63 getContentPane().add(toolbar, BorderLayout.NORTH);
64 getContentPane().add(status, BorderLayout.SOUTH);
66 addKeyListener(this.
new ViewKeyListener());
71 Toolkit.getDefaultToolkit().getScreenSize().width -
this.getWidth(),
77 view.setGridColor(color);
81 return view.getGridColor();
85 view.setBackground(color.
getColor());
93 view.setHeightMM(height);
98 view.setWidthMM(width);
102 return view.getHeightMM();
106 return view.getWidthMM();
109 Rectangle r = getBounds();
115 Rectangle r = getBounds();
120 Rectangle r = getBounds();
126 Rectangle r = getBounds();
130 view.setGridWidth(gridwidth);
134 return view.getGridWidth();
137 public void move(
double dx,
double dy) {
138 Rectangle r = getBounds();
150 view.setGridVisible(b);
153 return view.getGridVisible();
159 private class ViewKeyListener
implements KeyListener {
162 public void keyTyped(KeyEvent e) {
166 public void keyPressed(KeyEvent e) {
167 switch (e.getKeyChar()) {
183 public void keyReleased(KeyEvent e) {
186 private class ViewListener
implements CursorListener {
189 public void cursorMoved(Point p) {
194 private void update() {
197 msg =
new MessageFormat(VIEW.getString(
"View.Status.Cursor1"));
199 msg =
new MessageFormat(VIEW.getString(
"View.Status.Cursor2"));
201 status.setText(msg.format(
new Object[]{p.getX(), p.getY()}));
205 public void cursorUp(Point p) {
211 public void cursorDown(Point p) {
void setGridColor(MutableColor color)
void addCursorListener(CursorListener cl)
void windowDeactivated(WindowEvent e)
void windowClosing(WindowEvent e)
void windowClosed(WindowEvent e)
void setGridWidth(double gridwidth)
void setWidthMM(double width)
void setCenter(double x, double y)
MutableColor getBackgroundColor()
void setZoom(double zoom)
void windowIconified(WindowEvent e)
void setLeft(double left)
void windowDeiconified(WindowEvent e)
void setGridVisible(boolean b)
void move(double dx, double dy)
void setHeightMM(double height)
void setBackgroundColor(MutableColor color)
MutableColor getGridColor()
void windowOpened(WindowEvent e)
void windowActivated(WindowEvent e)
double pixel2mm(int pixel)
void addCursorListener(CursorListener cl)
void setZoom(double zoom)
void setCenter(double x, double y)