public class DrawPanel extends javax.swing.JPanel implements ICanvas
javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
private View2D |
drawnView |
(package private) View2D |
IDENTITY_VIEW |
private int |
MARGIN |
private java.awt.geom.Point2D.Float |
offset |
private java.awt.Rectangle |
prevBounds |
private SceneRenderer |
renderer |
private float |
scale |
(package private) java.awt.geom.Point2D |
scrollTargetModel |
(package private) java.awt.Point |
scrollTargetView |
private java.awt.geom.AffineTransform |
tr |
private View2D |
view |
EventSource.NoArg |
viewChanged |
private static int |
ZOOM_MASK |
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
DrawPanel() |
Modifier and Type | Method and Description |
---|---|
void |
autoScale(java.awt.Dimension preferredSize) |
private java.awt.Rectangle |
calcPureRender()
Renders the scene with no applied transform and no output to the device (because it is clipped).
|
private void |
controllerHistoryUpdate(HistoryUpdateEvent event) |
private void |
delegateToParent(java.awt.event.MouseWheelEvent e)
bubble the mouse wheel event up to the parent JScrollPane
|
private static java.lang.String |
fmt(java.awt.geom.Dimension2D d) |
private static java.lang.String |
fmt(java.awt.geom.Point2D p) |
private static java.lang.String |
fmt(java.awt.geom.Rectangle2D rc) |
private java.awt.Rectangle |
getBounds(java.lang.Iterable<IScreenObject> objs) |
java.awt.Component |
getComponent() |
java.awt.geom.Point2D |
getOffset() |
SceneRenderer |
getRenderer() |
float |
getScale() |
View2D |
getView() |
private java.awt.Point |
getZoomScroll(java.awt.Dimension contentBounds,
java.awt.Dimension viewRect) |
private static void |
log(boolean useError,
java.lang.String format,
java.lang.Object... args) |
private static void |
log(java.lang.String format,
java.lang.Object... args) |
private static void |
loge(java.lang.String format,
java.lang.Object... args) |
protected void |
paintComponent(java.awt.Graphics gg) |
void |
repaintRequired() |
void |
resetOffset() |
void |
scrollToPoint(java.awt.Point p) |
void |
setOffset(float dx,
float dy) |
void |
setOffset(java.awt.geom.Point2D offset) |
void |
setRenderer(SceneRenderer renderer) |
void |
setScale(float newScale) |
void |
setView(float scale,
float offsetX,
float offsetY) |
void |
setView(float scale,
java.awt.geom.Point2D offset) |
private void |
setZoomScroll(java.awt.Point screenLocation) |
private void |
updateContentSize(java.awt.Rectangle bounds) |
private void |
updateTransform() |
void |
updateView() |
void |
zoom(int steps) |
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
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, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, 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, reshape, 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, update
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
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, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
private View2D drawnView
final View2D IDENTITY_VIEW
private final int MARGIN
private java.awt.geom.Point2D.Float offset
private java.awt.Rectangle prevBounds
private SceneRenderer renderer
private float scale
java.awt.geom.Point2D scrollTargetModel
java.awt.Point scrollTargetView
private java.awt.geom.AffineTransform tr
private View2D view
public final EventSource.NoArg viewChanged
private static final int ZOOM_MASK
public void autoScale(java.awt.Dimension preferredSize)
private java.awt.Rectangle calcPureRender()
private void controllerHistoryUpdate(HistoryUpdateEvent event)
private void delegateToParent(java.awt.event.MouseWheelEvent e)
private static java.lang.String fmt(java.awt.geom.Dimension2D d)
private static java.lang.String fmt(java.awt.geom.Point2D p)
private static java.lang.String fmt(java.awt.geom.Rectangle2D rc)
@Nullable private java.awt.Rectangle getBounds(java.lang.Iterable<IScreenObject> objs)
public java.awt.Component getComponent()
getComponent
in interface ICanvas
public java.awt.geom.Point2D getOffset()
public SceneRenderer getRenderer()
public float getScale()
private java.awt.Point getZoomScroll(java.awt.Dimension contentBounds, java.awt.Dimension viewRect)
private static void log(boolean useError, java.lang.String format, java.lang.Object... args)
private static void log(java.lang.String format, java.lang.Object... args)
private static void loge(java.lang.String format, java.lang.Object... args)
protected void paintComponent(java.awt.Graphics gg)
paintComponent
in class javax.swing.JComponent
public void repaintRequired()
repaintRequired
in interface ICanvas
public void resetOffset()
public void scrollToPoint(java.awt.Point p)
public void setOffset(float dx, float dy)
public void setOffset(java.awt.geom.Point2D offset)
public void setRenderer(SceneRenderer renderer)
public void setScale(float newScale)
public void setView(float scale, float offsetX, float offsetY)
public void setView(float scale, java.awt.geom.Point2D offset)
private void setZoomScroll(java.awt.Point screenLocation)
private void updateContentSize(java.awt.Rectangle bounds)
private void updateTransform()
public void updateView()
public void zoom(int steps)