2 * Sixth - System for data storage, computation, exploration and interaction.
3 * Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 3 of the GNU Lesser General Public License
7 * or later as published by the Free Software Foundation.
10 package eu.svjatoslav.sixth.e3d.gui;
14 import java.awt.event.ComponentEvent;
15 import java.awt.event.ComponentListener;
16 import java.awt.event.WindowEvent;
17 import java.awt.event.WindowListener;
19 public class ViewFrame extends JFrame implements ViewListener, WindowListener {
21 private static final long serialVersionUID = -7037635097739548470L;
23 private final View view;
26 setTitle("3D engine");
28 addWindowListener(new java.awt.event.WindowAdapter() {
30 public void windowClosing(final java.awt.event.WindowEvent e) {
39 getView().addViewListener(this);
44 setExtendedState(JFrame.MAXIMIZED_BOTH);
48 addWindowListener(this);
51 public void addResizeListener() {
52 addComponentListener(new ComponentListener() {
53 // This method is called after the component's size changes
55 public void componentHidden(final ComponentEvent e) {
59 public void componentMoved(final ComponentEvent e) {
63 public void componentResized(final ComponentEvent evt) {
65 final Component c = (Component) evt.getSource();
68 final Dimension newSize = c.getSize();
70 boolean sizeFixed = false;
72 if (newSize.width < 400) {
77 if (newSize.height < 400) {
88 public void componentShown(final ComponentEvent e) {
89 view.repaintDuringNextViewUpdate();
97 if (getView() != null) {
99 getView().setEnabled(false);
100 getView().setVisible(false);
106 public java.awt.Dimension getPreferredSize() {
107 return new java.awt.Dimension(640, 480);
113 public View getView() {
118 public void windowActivated(final WindowEvent e) {
119 view.repaintDuringNextViewUpdate();
123 public void windowClosed(final WindowEvent e) {
127 public void windowClosing(final WindowEvent e) {
131 public void windowDeactivated(final WindowEvent e) {
135 public void windowDeiconified(final WindowEvent e) {
136 view.repaintDuringNextViewUpdate();
140 public void windowIconified(final WindowEvent e) {
144 public void windowOpened(final WindowEvent e) {
145 view.repaintDuringNextViewUpdate();