X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2FViewPanel.java;h=6fda15390ba653fd1b704a1ab7ba7ce30f4e8404;hp=f38d3c04222a2d5cf5f5700a149263918f9d5447;hb=afdebf8f4f532ed5b456040c6c481f3cfbf8d236;hpb=8bceefbdb7316557ee77902cc6ac216f5c1ff160 diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java index f38d3c0..6fda153 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java @@ -22,34 +22,16 @@ import java.util.ArrayList; import java.util.List; import java.util.Timer; +/** + * Java Swing GUI panel that contains canvas for 3D rendering. + */ public class ViewPanel extends JPanel implements ComponentListener { + private static final long serialVersionUID = 1683277888885045387L; private final UserInputTracker userInputTracker = new UserInputTracker(this); - private final KeyboardFocusTracker keyboardFocusTracker = new KeyboardFocusTracker( this); - private final Avatar avatar = new Avatar(); - private final ShapeCollection rootShapeCollection = new ShapeCollection(); - - - public Avatar getAvatar() { - return avatar; - } - - public KeyboardFocusTracker getKeyboardFocusTracker() { - return keyboardFocusTracker; - } - - public ShapeCollection getRootShapeCollection() { - return rootShapeCollection; - } - - public UserInputTracker getUserInputTracker() { - return userInputTracker; - } - - private static final long serialVersionUID = 1683277888885045387L; private final List viewRenderListeners = new ArrayList<>(); /** * Last time this view was updated. @@ -58,24 +40,20 @@ public class ViewPanel extends JPanel implements ComponentListener { private Timer canvasUpdateTimer; private ViewUpdateTimerTask canvasUpdateTimerTask; private RenderingContext renderingContext = null; - /** * UI component that mouse is currently hovering over. */ private MouseInteractionController currentMouseOverComponent; - /** * Currently target FPS for this view. It can be changed at runtime. Also when nothing * changes in the view, then frames are not really repainted. */ private int targetFPS = 30; - /** * Set to true if it is known than next frame reeds to be painted. Flag is cleared * immediately after frame got updated. */ private boolean viewRepaintNeeded = true; - public ViewPanel() { viewRenderListeners.add(avatar); viewRenderListeners.add(userInputTracker); @@ -87,6 +65,22 @@ public class ViewPanel extends JPanel implements ComponentListener { addComponentListener(this); } + public Avatar getAvatar() { + return avatar; + } + + public KeyboardFocusTracker getKeyboardFocusTracker() { + return keyboardFocusTracker; + } + + public ShapeCollection getRootShapeCollection() { + return rootShapeCollection; + } + + public UserInputTracker getUserInputTracker() { + return userInputTracker; + } + public void addViewUpdateListener(final ViewRenderListener listener) { viewRenderListeners.add(listener); } @@ -240,7 +234,7 @@ public class ViewPanel extends JPanel implements ComponentListener { * graphics is needed. */ public void updateView() { - if (renderingContext != null){ + if (renderingContext != null) { renderingContext.mouseClick = null; renderingContext.clickedItem = null; }