/*
- * Sixth - System for data storage, computation, exploration and interaction.
- * Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 3 of the GNU Lesser General Public License
- * or later as published by the Free Software Foundation.
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
+ * This project is released under Creative Commons Zero (CC0) license.
*/
-
package eu.svjatoslav.sixth.e3d.gui;
import eu.svjatoslav.sixth.e3d.geometry.Box;
import eu.svjatoslav.sixth.e3d.geometry.Point3D;
-import eu.svjatoslav.sixth.e3d.geometry.Transform;
import eu.svjatoslav.sixth.e3d.gui.humaninput.MouseInteractionController;
-import eu.svjatoslav.sixth.e3d.gui.humaninput.UserInputHandler;
-import eu.svjatoslav.sixth.e3d.gui.textEditorComponent.KeyboardHelper;
+import eu.svjatoslav.sixth.e3d.gui.humaninput.KeyboardInputHandler;
+import eu.svjatoslav.sixth.e3d.gui.humaninput.KeyboardHelper;
+import eu.svjatoslav.sixth.e3d.math.Transform;
import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.line.LineAppearance;
import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.base.AbstractCompositeShape;
import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.WireframeBox;
import java.awt.event.KeyEvent;
public class GuiComponent extends AbstractCompositeShape implements
- UserInputHandler, MouseInteractionController {
+ KeyboardInputHandler, MouseInteractionController {
private static final String GROUP_GUI_FOCUS = "gui.focus";
- public final ViewContext viewContext;
+ public final ViewPanel viewPanel;
Box containingBox = new Box();
private WireframeBox borders = null;
private boolean borderShown = false;
public GuiComponent(final Transform transform,
- final ViewContext viewContext, final Point3D size) {
+ final ViewPanel viewPanel, final Point3D size) {
super(transform);
- this.viewContext = viewContext;
+ this.viewPanel = viewPanel;
setDimensions(size);
}
- @Override
- public boolean beforeViewUpdate(final ViewContext viewContext,
- final int millisecondsSinceLastFrame) {
- return false;
- }
-
private WireframeBox createBorder() {
final LineAppearance appearance = new LineAppearance(10,
new eu.svjatoslav.sixth.e3d.renderer.raster.Color(255, 0, 0, 100));
}
@Override
- public void focusLost(final ViewContext viewContext) {
+ public boolean focusLost(final ViewPanel viewPanel) {
hideBorder();
+ return true;
}
@Override
- public void focusReceived(final ViewContext viewContext) {
+ public boolean focusReceived(final ViewPanel viewPanel) {
showBorder();
+ return true;
}
public WireframeBox getBorders() {
}
@Override
- public void keyPressed(final KeyEvent event, final ViewContext viewContext) {
+ public boolean keyPressed(final KeyEvent event, final ViewPanel viewPanel) {
if (event.getKeyChar() == KeyboardHelper.ESC)
- viewContext.getKeyboardFocusTracker().popFocusOwner();
+ viewPanel.getKeyboardFocusStack().popFocusOwner();
+ return true;
}
@Override
- public void keyReleased(final KeyEvent event, final ViewContext viewContext) {
+ public boolean keyReleased(final KeyEvent event, final ViewPanel viewPanel) {
+ return false;
}
@Override
- public void mouseClicked() {
- viewContext.getKeyboardFocusTracker().setFocusOwner(this);
+ public boolean mouseClicked() {
+ return viewPanel.getKeyboardFocusStack().pushFocusOwner(this);
}
@Override
- public void mouseEntered() {
+ public boolean mouseEntered() {
+ return false;
}
@Override
- public void mouseExited() {
+ public boolean mouseExited() {
+ return false;
}
private void setDimensions(final Point3D size) {
containingBox.setSizeCentered(size);
}
- public void showBorder() {
+ private void showBorder() {
if (borderShown)
return;
borderShown = true;