Class PlainView3D
- All Implemented Interfaces:
edu.cnu.mdi.feedback.IFeedbackProvider,edu.cnu.mdi.transfer.IFileDropHandler,ActionListener,ComponentListener,FocusListener,MouseListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
- Direct Known Subclasses:
GeometrySlice3DView,GlobeView3D,ScatterPlot3DDemo,SimulationView3D
Panel3D.
This class supports both the legacy Object... keyVals
construction pattern and the cleaner Properties-based pattern used by
BaseView. The legacy constructor is retained as a compatibility shim.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JInternalFrame
JInternalFrame.AccessibleJInternalFrame, JInternalFrame.JDesktopIconNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsFields inherited from class edu.cnu.mdi.view.BaseView
container, desktop, infoDialog, properties, scrollPane, statusWP, viewPopupMenu, VIEWPROPNAME, virtualItemFields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTYFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionPlainView3D(Object... keyVals) Construct a 3D view from legacy alternating key/value pairs.PlainView3D(Properties props) Construct a 3D view from a properties object. -
Method Summary
Modifier and TypeMethodDescriptionvoidprotected voidaddMenus()Hook for subclasses to add menus to the view's menu bar.voidWhen a 3D internal frame is moved, schedule a refresh.voidWhen a 3D internal frame is resized, re-flow this view's ownBorderLayoutbefore scheduling a 3D refresh.voidWhen a 3D internal frame becomes visible, schedule a refresh.voidprotected abstract Panel3Dmake3DPanel(float angleX, float angleY, float angleZ, float xDist, float yDist, float zDist) Create the 3D panel for this view.voidrefresh()protected voidSchedule a best-effort refresh of the 3D panel after Swing has processed the current event.protected edu.cnu.mdi.container.IContainerresolveContainer(Rectangle2D.Double worldSystem) Methods inherited from class edu.cnu.mdi.view.BaseView
addWestPanel, applyFocusFix, center, checkBooleanProperty, componentHidden, enableFileDrop, enableFileDrop, filesDropped, focusLost, getAnnotationLayer, getCenterComponent, getConfigurationProperties, getConnectionLayer, getDefaultLayer, getFeedbackStrings, getFileFilter, getIContainer, getInfoButton, getInsets, getIntProperty, getName, getParentFrame, getProperties, getPropertyName, getScrollPane, getSpecialClip, getToolBar, getViewInfo, getViewPopupMenu, getVirtualItem, handleMagnify, hoverClosed, hoverUpdate, initFeedback, initFeedback, isOnTop, isScrollable, isViewVisible, mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased, offset, onFirstRealize, prepareForExit, rightClicked, setAfterDraw, setBeforeDraw, setBooleanProperty, setFileFilter, setFromProperties, setIntProperty, setVirtualItem, viewInfoMethods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, updateUIMethods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
_panel3D
The hosted 3D panel.
-
-
Constructor Details
-
PlainView3D
Construct a 3D view from legacy alternating key/value pairs.This constructor is retained for backward compatibility and simply converts the key/value pairs into
Propertiesbefore delegating toPlainView3D(Properties).- Parameters:
keyVals- alternating property key/value pairs
-
PlainView3D
Construct a 3D view from a properties object.- Parameters:
props- the properties used to configure the view; may be null
-
-
Method Details
-
make3DPanel
protected abstract Panel3D make3DPanel(float angleX, float angleY, float angleZ, float xDist, float yDist, float zDist) Create the 3D panel for this view.- Parameters:
angleX- initial x rotation angleangleY- initial y rotation angleangleZ- initial z rotation anglexDist- initial camera x offsetyDist- initial camera y offsetzDist- initial camera z offset- Returns:
- the created 3D panel
-
addMenus
protected void addMenus()Hook for subclasses to add menus to the view's menu bar. -
actionPerformed
- Specified by:
actionPerformedin interfaceActionListener
-
focusGained
- Specified by:
focusGainedin interfaceFocusListener- Overrides:
focusGainedin classedu.cnu.mdi.view.BaseView
-
refresh
public void refresh()- Overrides:
refreshin classedu.cnu.mdi.view.BaseView
-
componentShown
When a 3D internal frame becomes visible, schedule a refresh. This is especially important for lazily created views.- Specified by:
componentShownin interfaceComponentListener- Overrides:
componentShownin classedu.cnu.mdi.view.BaseView
-
componentResized
When a 3D internal frame is resized, re-flow this view's ownBorderLayoutbefore scheduling a 3D refresh.Subclasses that add extra components at other
BorderLayoutregions (e.g. a control strip atSOUTH) may contain aFlowLayoutbar that wraps to a different number of rows as the view gets narrower or wider. Without an explicit layout pass here, a resize driven programmatically by the MDI virtual desktop (rather than a native window-manager drag) does not reliably trigger Swing's normal invalidate/validate cascade, so a newly-wrapped row's extra height is never accounted for and gets clipped at the view's bottom edge.- Specified by:
componentResizedin interfaceComponentListener- Overrides:
componentResizedin classedu.cnu.mdi.view.BaseView- Parameters:
e- the resize event
-
componentMoved
When a 3D internal frame is moved, schedule a refresh. This is a likely trigger in virtual-desktop activation.- Specified by:
componentMovedin interfaceComponentListener- Overrides:
componentMovedin classedu.cnu.mdi.view.BaseView
-
resolveContainer
- Overrides:
resolveContainerin classedu.cnu.mdi.view.BaseView
-
getImageComponent
With no container,
BaseView's default would fall back tothis— the whole view, menu bar and any north/south control panels included. What a 3D view's image should actually be is just the rendered frame, so this returns theGLJPaneldirectly.- Overrides:
getImageComponentin classedu.cnu.mdi.view.BaseView
-
request3DRefresh
protected void request3DRefresh()Schedule a best-effort refresh of the 3D panel after Swing has processed the current event.
-