Package eu.svjatoslav.sixth.e3d.gui
Class GuiComponent
java.lang.Object
eu.svjatoslav.sixth.e3d.renderer.raster.shapes.AbstractShape
eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.base.AbstractCompositeShape
eu.svjatoslav.sixth.e3d.gui.GuiComponent
- All Implemented Interfaces:
KeyboardInputHandler,MouseInteractionController
- Direct Known Subclasses:
TextEditComponent
public class GuiComponent
extends AbstractCompositeShape
implements KeyboardInputHandler, MouseInteractionController
Base class for interactive GUI components rendered in 3D space.
GuiComponent combines a composite shape with keyboard and mouse interaction
handling. When clicked, it acquires keyboard focus (via the KeyboardFocusStack),
and a red wireframe border is displayed to indicate focus. Pressing ESC releases focus.
This class is the foundation for interactive widgets like the
TextEditComponent.
Usage example - creating a custom GUI component:
GuiComponent myWidget = new GuiComponent(
new Transform(new Point3D(0, 0, 300)),
viewPanel,
new Point3D(400, 300, 0) // width, height, depth
);
// Add visual content to the widget
myWidget.addShape(someTextCanvas);
// Add to the scene
viewPanel.getRootShapeCollection().addShape(myWidget);
- See Also:
-
Field Summary
FieldsFields inherited from class eu.svjatoslav.sixth.e3d.renderer.raster.shapes.AbstractShape
mouseInteractionController -
Constructor Summary
ConstructorsConstructorDescriptionGuiComponent(Transform transform, ViewPanel viewPanel, Point3D size) Creates a GUI component with the specified transform, view panel, and bounding box size. -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleanfocusReceived(ViewPanel viewPanel) intgetDepth()intintgetWidth()voidbooleankeyPressed(KeyEvent event, ViewPanel viewPanel) booleankeyReleased(KeyEvent event, ViewPanel viewPanel) booleanmouseClicked(int button) Called when mouse is clicked on component.booleanCalled when mouse gets over given component.booleanCalled when mouse leaves screen area occupied by component.Methods inherited from class eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.base.AbstractCompositeShape
addShape, addShape, beforeTransformHook, getGroup, getLocation, getOriginalSubShapes, getViewSpaceTracker, hideGroup, removeGroup, setBackfaceCulling, setColor, setGroupForUngrouped, setLightingManager, setMouseInteractionController, setShadingEnabled, setTransform, showGroup, transform
-
Field Details
-
viewPanel
The view panel this component is attached to.
-
-
Constructor Details
-
GuiComponent
Creates a GUI component with the specified transform, view panel, and bounding box size.- Parameters:
transform- the position and orientation of the component in 3D spaceviewPanel- the view panel this component belongs tosize- the bounding box dimensions (width, height, depth)
-
-
Method Details
-
focusLost
- Specified by:
focusLostin interfaceKeyboardInputHandler- Returns:
trueif view needs to be re-rendered.
-
focusReceived
- Specified by:
focusReceivedin interfaceKeyboardInputHandler- Returns:
trueif view needs to be re-rendered.
-
getBorders
-
getDepth
public int getDepth() -
getHeight
public int getHeight() -
getWidth
public int getWidth() -
hideBorder
public void hideBorder() -
keyPressed
- Specified by:
keyPressedin interfaceKeyboardInputHandler- Returns:
trueif view needs to be re-rendered.
-
keyReleased
- Specified by:
keyReleasedin interfaceKeyboardInputHandler- Returns:
trueif view needs to be re-rendered.
-
mouseClicked
public boolean mouseClicked(int button) Description copied from interface:MouseInteractionControllerCalled when mouse is clicked on component.- Specified by:
mouseClickedin interfaceMouseInteractionController- Returns:
trueif view update is needed as a consequence of this mouse click.
-
mouseEntered
public boolean mouseEntered()Description copied from interface:MouseInteractionControllerCalled when mouse gets over given component.- Specified by:
mouseEnteredin interfaceMouseInteractionController- Returns:
trueif view update is needed as a consequence of this mouse enter.
-
mouseExited
public boolean mouseExited()Description copied from interface:MouseInteractionControllerCalled when mouse leaves screen area occupied by component.- Specified by:
mouseExitedin interfaceMouseInteractionController- Returns:
trueif view update is needed as a consequence of this mouse exit.
-