public class RhombDisplay
extends javax.swing.JPanel
implements java.awt.event.ActionListener
Hex
. The rhombs in this Hex are
then rotated, which changes the Hexes in this that can subsequently
be modified.javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
static int |
HEIGHT_BUFFER
Extra space added at the top and bottom of a patch when
determining the window size.
|
double |
scale
The scale that is used for drawing
SimpleRhomb s in this display. |
static double |
SCALE
The default scale for drawing
SimpleRhomb s. |
static int |
WIDTH_BUFFER
Extra space added at the left and right of a patch when
determining the window size.
|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
RhombDisplay(RhombBoundary r)
Default Constructor.
|
RhombDisplay(RhombBoundary r,
double scale)
Constructor with custom scale for the
SimpleRhomb s. |
RhombDisplay(RhombBoundary r,
double scale,
int w,
int h)
Constructor with custom dimensions for the window.
|
Modifier and Type | Method and Description |
---|---|
void |
actionPerformed(java.awt.event.ActionEvent e)
Print a gap-readable version of the underlying data structure if the
print button is pressed.
|
void |
click(java.util.List<Hex> l)
Call this method whenever a
Hex is clicked on. |
static java.util.List<RhombDisplay> |
displayList(java.util.List<RhombBoundary> rules,
int paneWidth,
int paneHeight)
Take a List of RhombBoundaries and return a List of the corresponding RhombDisplays,
all given the same scale, which is chosen in such a way as to make each one fit in
a pane of the given dimensions.
|
void |
flushButtons(java.util.List<Hex> l)
Refresh the list of buttons that can be clicked in this.
|
RhombBoundary |
getBoundary()
Get the underlying data structure for this patch.
|
int |
getHeight()
Get the height of this.
|
java.awt.Dimension |
getPreferredSize() |
int |
getWidth()
Get the width of this.
|
int |
getXMin()
Get the minimum x-coordinate of any rhomb in this.
|
int |
getYMin()
Get the minimum y-coordinate of any rhomb in this.
|
void |
paintComponent(java.awt.Graphics g)
Draw this.
|
void |
resetButtons()
Clear all the buttons and create new ones from the
RhombBoundary
in this. |
static void |
setEditor(SubstitutionEditor e)
Set the
SubstitutionEditor to which all RhombDisplays point. |
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, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, 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
public static final int WIDTH_BUFFER
public static final int HEIGHT_BUFFER
public static final double SCALE
SimpleRhomb
s.public final double scale
SimpleRhomb
s in this display.public RhombDisplay(RhombBoundary r) throws java.awt.HeadlessException
SCALE
and infer the window size from the
contents of r, with WIDTH_BUFFER
and HEIGHT_BUFFER
added to the edges.r
- The underlying patch that this allows the user to edit.java.awt.HeadlessException
public RhombDisplay(RhombBoundary r, double scale, int w, int h) throws java.awt.HeadlessException
r
- The underlying patch that this allows the user to edit.scale
- The factor by which the SimpleRhomb
s of r are
scaled.w
- The width of this component.h
- The height of this component.java.awt.HeadlessException
public RhombDisplay(RhombBoundary r, double scale) throws java.awt.HeadlessException
SimpleRhomb
s.r
- The underlying patch that this allows the user to edit.scale
- The factor by which the SimpleRhomb
s of r are
scaled.java.awt.HeadlessException
public void click(java.util.List<Hex> l)
Hex
is clicked on.l
- The Hexes that can be dragged after this click.public void flushButtons(java.util.List<Hex> l)
l
- A List of Hexes to add and remove. For each element of l,
if this already has a corresponding button, then we remove it,
otherwise we create such a button and add it.public void resetButtons()
RhombBoundary
in this.public int getWidth()
getWidth
in class javax.swing.JComponent
public int getHeight()
getHeight
in class javax.swing.JComponent
public int getXMin()
public int getYMin()
public RhombBoundary getBoundary()
public void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
g
- The graphis object on which we draw this.public java.awt.Dimension getPreferredSize()
getPreferredSize
in class javax.swing.JComponent
public void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed
in interface java.awt.event.ActionListener
RhombBoundary.gapString()
public static void setEditor(SubstitutionEditor e)
SubstitutionEditor
to which all RhombDisplays point.
When a RhombDisplay is changed, this change will be reflected in the
PatchDisplay
of e.e
- All RhombDisplays will now point to e.public static java.util.List<RhombDisplay> displayList(java.util.List<RhombBoundary> rules, int paneWidth, int paneHeight)
rules
- The RhombBoundaries we want to put into RhombDisplays.paneWidth
- The width of the pane in which we want each one to fit.paneHeight
- The height of the pane in which we want each one to fit.