|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
jmri.util.JmriJFrame
jmri.jmrit.display.Editor
jmri.jmrit.display.panelEditor.PanelEditor
jmri.jmrit.display.layoutEditor.LayoutEditor
public class LayoutEditor
Provides a scrollable Layout Panel and editor toolbars (that can be hidden)
This module serves as a manager for the LayoutTurnout, Layout Block, PositionablePoint, Track Segment, and LevelXing objects which are integral subparts of the LayoutEditor class.
All created objects are put on specific levels depending on their type (higher levels are in front): Note that higher numbers appear behind lower numbers.
The "contents" List keeps track of all text and icon label objects added to the targetframe for later manipulation. Other Lists keep track of drawn items.
Based in part on PanelEditor.java (Bob Jacobsen (c) 2002, 2003). In particular, text and icon label items are copied from Panel editor, as well as some of the control design.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class jmri.jmrit.display.Editor |
|---|
Editor.JFrameItem, Editor.TargetPane |
| Nested classes/interfaces inherited from class javax.swing.JFrame |
|---|
JFrame.AccessibleJFrame |
| Nested classes/interfaces inherited from class java.awt.Frame |
|---|
Frame.AccessibleAWTFrame |
| Nested classes/interfaces inherited from class java.awt.Window |
|---|
Window.AccessibleAWTWindow |
| Nested classes/interfaces inherited from class java.awt.Container |
|---|
Container.AccessibleAWTContainer |
| Nested classes/interfaces inherited from class java.awt.Component |
|---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
| Fields inherited from class jmri.jmrit.display.panelEditor.PanelEditor |
|---|
_debug, _multiItemCopyGroup, addItemViaMouseClick, pasteItemFlag |
| Fields inherited from class jmri.jmrit.display.Editor |
|---|
_anchorX, _anchorY, _contents, _currentSelection, _dragging, _editable, _highlightcomponent, _lastX, _lastY, _paintScale, _pastePending, _scrollState, _selectionGroup, _selectRect, _targetPanel, BKG, CLOCK, frameLocationX, frameLocationY, ICON_EDITORS, ICONS, LABELS, LIGHTS, MARKERS, MEMORIES, NUM_LEVELS, OPTION_CONTROLS, OPTION_HIDDEN, OPTION_POSITION, OPTION_TOOLTIP, POSITIONABLE_FLAVOR, REPORTERS, SCROLL_BOTH, SCROLL_HORIZONTAL, SCROLL_NONE, SCROLL_VERTICAL, SECURITY, SENSORS, SIGNALS, TEMP, TURNOUTS, xLoc, yLoc |
| Fields inherited from class jmri.util.JmriJFrame |
|---|
reuseFrameSavedPosition, reuseFrameSavedSized |
| Fields inherited from class javax.swing.JFrame |
|---|
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled |
| Fields inherited from class java.awt.Frame |
|---|
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR |
| Fields inherited from class java.awt.Component |
|---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
| Fields inherited from interface javax.swing.WindowConstants |
|---|
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE |
| Fields inherited from interface java.awt.image.ImageObserver |
|---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
| Constructor Summary | |
|---|---|
LayoutEditor()
|
|
LayoutEditor(String name)
|
|
| Method Summary | |
|---|---|
void |
addAnchor()
Add an Anchor point. |
void |
addBackground()
Add a background image |
void |
addEndBumper()
Add an End Bumper point. |
void |
addLayoutTurnout(int type)
Add a Layout Turnout |
void |
addLevelXing()
Add a Level Crossing |
LocoIcon |
addLocoIcon(String name)
Add a loco marker to the target |
void |
addMultiSensor(MultiSensorIcon l)
|
void |
addTrackSegment()
Add a Track Segment |
void |
addTurntable(Point2D pt)
Add a layout turntable at location specified |
void |
alignSelection(boolean alignX)
|
static String |
colorToString(Color color)
|
boolean |
deletePanel()
Invoked by DeletePanel menu item Validate user intent before deleting |
protected void |
drawTurnouts(Graphics2D g2)
|
protected void |
enterReporter(int defaultX,
int defaultY)
|
protected void |
enterTrackWidth()
|
LayoutTurnout |
findLayoutTurnoutByName(String name)
|
LayoutTurnout |
findLayoutTurnoutBySensor(String sensorName)
|
LayoutTurnout |
findLayoutTurnoutBySignalMast(String signalMastName)
|
LayoutTurntable |
findLayoutTurntableByName(String name)
|
LevelXing |
findLevelXingByName(String name)
|
LevelXing |
findLevelXingBySensor(String sensorName)
|
LevelXing |
findLevelXingBySignalMast(String signalMastName)
|
Object |
findObjectByTypeAndName(int type,
String name)
|
PositionablePoint |
findPositionablePointAtTrackSegments(TrackSegment tr1,
TrackSegment tr2)
|
PositionablePoint |
findPositionablePointByEastBoundSensor(String sensorName)
|
PositionablePoint |
findPositionablePointByEastBoundSignal(String signalName)
|
PositionablePoint |
findPositionablePointByEastBoundSignalMast(String signalMastName)
|
PositionablePoint |
findPositionablePointByName(String name)
|
PositionablePoint |
findPositionablePointByWestBoundSensor(String sensorName)
|
PositionablePoint |
findPositionablePointByWestBoundSignal(String signalName)
|
PositionablePoint |
findPositionablePointByWestBoundSignalMast(String signalMastName)
|
ArrayList<TrackSegment> |
findTrackSegmentByBlock(String name)
Returns an array list of track segments matching the block name. |
TrackSegment |
findTrackSegmentByName(String name)
|
LayoutBlock |
getAffectedBlock(Object o,
int type)
|
boolean |
getAntialiasingOn()
|
ConnectivityUtil |
getConnectivityUtil()
|
protected Point2D |
getCoords(Object o,
int type)
|
String |
getDefaultTextColor()
|
String |
getDefaultTrackColor()
|
boolean |
getDrawGrid()
|
Point2D |
getEndCoords(Object o,
int type)
|
LayoutBlock |
getLayoutBlock(String blockID)
Return a layout block with the given name if one exists. |
int |
getLayoutHeight()
|
String |
getLayoutName()
|
int |
getLayoutWidth()
|
LayoutEditorTools |
getLETools()
|
int |
getMainlineTrackWidth()
|
boolean |
getScroll()
|
boolean |
getShowHelpBar()
|
int |
getSideTrackWidth()
|
boolean |
getSnapOnAdd()
|
boolean |
getSnapOnMove()
|
boolean |
getTooltipsInEdit()
|
boolean |
getTooltipsNotEdit()
|
double |
getTurnoutBX()
|
boolean |
getTurnoutCircles()
|
double |
getTurnoutCX()
|
double |
getTurnoutWid()
|
int |
getUpperLeftX()
|
int |
getUpperLeftY()
|
int |
getWindowHeight()
|
int |
getWindowWidth()
|
double |
getXOverHWid()
|
double |
getXOverLong()
|
double |
getXOverShort()
|
double |
getXScale()
|
double |
getYScale()
|
protected void |
init(String name)
|
void |
initView()
After construction, initialize all the widgets to their saved config settings. |
boolean |
isAnimating()
|
boolean |
isDirty()
Check the dirty state |
void |
keyPressed(KeyEvent e)
|
void |
mouseClicked(MouseEvent event)
|
void |
mouseDragged(MouseEvent event)
|
void |
mouseMoved(MouseEvent event)
|
void |
mousePressed(MouseEvent event)
Handle a mouse pressed event |
void |
mouseReleased(MouseEvent event)
|
protected void |
moveSelection()
|
protected void |
paintTargetPanel(Graphics g)
Special internal class to allow drawing of layout to a JLayeredPane This is the 'target' pane where the layout is displayed |
LayoutBlock |
provideLayoutBlock(String s)
Return a layout block with the entered name, creating a new one if needed. |
void |
putItem(Positionable l)
|
void |
putLocoIcon(LocoIcon l,
String name)
|
void |
putSensor(SensorIcon l)
|
void |
putSignal(SignalHeadIcon l)
|
void |
putSignalMast(SignalMastIcon l)
|
void |
redrawPanel()
Allow external trigger of re-draw |
protected boolean |
remove(Object s)
Remove object from all Layout Editor temmporary lists of items not part of track schematic |
protected void |
removeBackground(PositionableLabel b)
Remove a background image from the list of background images |
boolean |
removeFromContents(Positionable l)
|
protected boolean |
removeLayoutTurnout(LayoutTurnout o)
Remove a LayoutTurnout |
protected boolean |
removeLevelXing(LevelXing o)
Remove a Level Crossing |
protected void |
removeMarkers()
Remove marker icons from panel |
protected boolean |
removePositionablePoint(PositionablePoint o)
Remove a PositionablePoint -- an Anchor or an End Bumper. |
protected void |
removeTrackSegment(TrackSegment o)
Remove a Track Segment |
protected boolean |
removeTurntable(LayoutTurntable o)
Remove a Layout Turntable |
void |
resetAwaitingIconChange()
|
void |
resetDirty()
Allow external reset of dirty bit |
protected void |
scaleTrackDiagram()
|
void |
setAllEditable(boolean editable)
Control whether target panel items are editable. |
void |
setAllPositionable(boolean state)
Control whether panel items are positionable. |
void |
setAntialiasingOn(boolean state)
|
void |
setAwaitingIconChange()
Allow external set/reset of awaitingIconChange |
void |
setConnections()
|
void |
setCurrentPositionAndSize()
|
void |
setDefaultTextColor(String color)
|
void |
setDefaultTrackColor(String color)
|
void |
setDirty()
|
void |
setDirty(boolean val)
Allow external set of dirty bit |
void |
setDrawGrid(boolean state)
|
void |
setLayoutDimensions(int windowW,
int windowH,
int x,
int y,
int panelW,
int panelH)
|
void |
setLayoutName(String name)
|
void |
setLoc(int x,
int y)
|
void |
setMainlineTrackWidth(int w)
|
protected void |
setNextLocation(Positionable obj)
Set object location and size for icon and label object as it is created. |
protected void |
setOptionMenuTextColor()
|
protected void |
setOptionMenuTrackColor()
|
void |
setScroll(int state)
|
boolean |
setShowAlignmentMenu(JPopupMenu popup)
Offer actions to align the selected Positionable items either Horizontally (at avearage y coord) or Vertically (at avearage x coord). |
void |
setShowHelpBar(boolean state)
|
void |
setSideTrackWidth(int w)
|
void |
setSize(int w,
int h)
|
void |
setSnapOnAdd(boolean state)
|
void |
setSnapOnMove(boolean state)
|
void |
setTooltipsInEdit(boolean state)
|
void |
setTooltipsNotEdit(boolean state)
|
protected void |
setTrackStrokeWidth(Graphics2D g2,
boolean need)
|
void |
setTurnoutAnimation(boolean state)
Control whether target panel items are controlling layout items. |
void |
setTurnoutBX(double bx)
|
void |
setTurnoutCircles(boolean state)
|
void |
setTurnoutCX(double cx)
|
void |
setTurnoutWid(double wid)
|
protected JMenu |
setupOptionMenu(JMenuBar menuBar)
|
void |
setXOverHWid(double hwid)
|
void |
setXOverLong(double lg)
|
void |
setXOverShort(double sh)
|
void |
setXScale(double xSc)
|
void |
setYScale(double ySc)
|
protected boolean |
showAlignPopup()
|
protected boolean |
showAlignPopup(Positionable l)
|
protected void |
showPopUp(Positionable p,
MouseEvent event)
Select the menu items to display for the Positionable's popup |
void |
showToolTip(Positionable selection,
MouseEvent event)
Mouse Methods |
static Color |
stringToColor(String string)
|
protected void |
targetWindowClosingEvent(WindowEvent e)
The target window has been requested to close, don't delete it at this time. |
boolean |
validatePhysicalTurnout(String turnoutName,
Component openPane)
Validates that a physical turnout exists and is unique among Layout Turnouts Returns true if valid turnout was entered, false otherwise |
boolean |
validateSensor(String sensorName,
LayoutBlock blk,
Component openFrame)
Validates that the supplied occupancy sensor name corresponds to an existing sensor and is unique among all blocks. |
| Methods inherited from class jmri.jmrit.display.panelEditor.PanelEditor |
|---|
addColorMenuEntry, addItemPopUp, backgroundPopUp, copyItem, itemStateChanged, makeColorMenu, makeFrame, mouseEntered, mouseExited, pasteItem, pasteItemPopUp, setBackgroundMenu, setColorButton, setRemoveMenu, showAddItemPopUp, showMultiSelectPopUp, windowClosing |
| Methods inherited from class java.awt.Frame |
|---|
getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.awt.MenuContainer |
|---|
getFont, postEvent |
| Field Detail |
|---|
public static final int NONE
public static final int POS_POINT
public static final int TURNOUT_A
public static final int TURNOUT_B
public static final int TURNOUT_C
public static final int TURNOUT_D
public static final int LEVEL_XING_A
public static final int LEVEL_XING_B
public static final int LEVEL_XING_C
public static final int LEVEL_XING_D
public static final int TRACK
public static final int TURNOUT_CENTER
public static final int LEVEL_XING_CENTER
public static final int TURNTABLE_CENTER
public static final int LAYOUT_POS_LABEL
public static final int LAYOUT_POS_JCOMP
public static final int MULTI_SENSOR
public static final int MARKER
public static final int TRACK_CIRCLE_CENTRE
public static final int TURNTABLE_RAY_OFFSET
protected boolean skipIncludedTurnout
public ArrayList<PositionableLabel> backgroundImage
public ArrayList<SensorIcon> sensorImage
public ArrayList<SignalHeadIcon> signalHeadImage
public ArrayList<SignalMastIcon> signalMastImage
public ArrayList<LocoIcon> markerImage
public ArrayList<PositionableLabel> labelImage
public ArrayList<AnalogClock2Display> clocks
public ArrayList<MultiSensorIcon> multiSensors
public LayoutEditorAuxTools auxTools
public MultiIconEditor sensorIconEditor
public JFrame sensorFrame
public MultiIconEditor signalIconEditor
public JFrame signalFrame
public ArrayList<LayoutTurnout> turnoutList
public ArrayList<TrackSegment> trackList
public ArrayList<PositionablePoint> pointList
public ArrayList<LevelXing> xingList
public ArrayList<LayoutTurntable> turntableList
public ArrayList<SignalHeadIcon> signalList
public ArrayList<MemoryIcon> memoryLabelList
public ArrayList<SensorIcon> sensorList
public ArrayList<SignalMastIcon> signalMastList
| Constructor Detail |
|---|
public LayoutEditor()
public LayoutEditor(String name)
| Method Detail |
|---|
protected void init(String name)
init in class PanelEditorpublic void initView()
PanelEditor
initView in class PanelEditor
public void setSize(int w,
int h)
setSize in class Windowprotected void targetWindowClosingEvent(WindowEvent e)
PanelEditor
targetWindowClosingEvent in class PanelEditorprotected JMenu setupOptionMenu(JMenuBar menuBar)
protected void removeMarkers()
removeMarkers in class Editorprotected void enterTrackWidth()
protected void enterReporter(int defaultX,
int defaultY)
protected void scaleTrackDiagram()
protected void moveSelection()
public void setCurrentPositionAndSize()
protected void setOptionMenuTrackColor()
protected void setOptionMenuTextColor()
public void setScroll(int state)
setScroll in class Editorpublic void addTurntable(Point2D pt)
public void redrawPanel()
public void setAwaitingIconChange()
public void resetAwaitingIconChange()
public void resetDirty()
public void setDirty(boolean val)
public void setDirty()
public boolean isDirty()
public void mousePressed(MouseEvent event)
mousePressed in interface MouseListenermousePressed in class PanelEditor
public Point2D getEndCoords(Object o,
int type)
public void mouseReleased(MouseEvent event)
mouseReleased in interface MouseListenermouseReleased in class PanelEditor
protected void showPopUp(Positionable p,
MouseEvent event)
showPopUp in class PanelEditorpublic void mouseClicked(MouseEvent event)
mouseClicked in interface MouseListenermouseClicked in class PanelEditorpublic void alignSelection(boolean alignX)
protected boolean showAlignPopup()
public boolean setShowAlignmentMenu(JPopupMenu popup)
public void keyPressed(KeyEvent e)
keyPressed in interface KeyListenerkeyPressed in class Editorpublic void mouseMoved(MouseEvent event)
mouseMoved in interface MouseMotionListenermouseMoved in class PanelEditorpublic void mouseDragged(MouseEvent event)
mouseDragged in interface MouseMotionListenermouseDragged in class PanelEditor
public void setLoc(int x,
int y)
public void addAnchor()
public void addEndBumper()
public void addTrackSegment()
public void addLevelXing()
public void addLayoutTurnout(int type)
public boolean validatePhysicalTurnout(String turnoutName,
Component openPane)
public LayoutBlock provideLayoutBlock(String s)
public boolean validateSensor(String sensorName,
LayoutBlock blk,
Component openFrame)
public LayoutBlock getLayoutBlock(String blockID)
protected boolean remove(Object s)
public boolean removeFromContents(Positionable l)
removeFromContents in class Editorprotected boolean removePositionablePoint(PositionablePoint o)
protected boolean removeLayoutTurnout(LayoutTurnout o)
protected boolean removeLevelXing(LevelXing o)
protected boolean removeTurntable(LayoutTurntable o)
protected void removeTrackSegment(TrackSegment o)
public LayoutBlock getAffectedBlock(Object o,
int type)
public void putSensor(SensorIcon l)
public void putSignal(SignalHeadIcon l)
public void putSignalMast(SignalMastIcon l)
public void putItem(Positionable l)
putItem in class PanelEditorpublic LocoIcon addLocoIcon(String name)
addLocoIcon in class Editor
public void putLocoIcon(LocoIcon l,
String name)
putLocoIcon in class Editorpublic void addBackground()
protected void removeBackground(PositionableLabel b)
public void addMultiSensor(MultiSensorIcon l)
protected void setNextLocation(Positionable obj)
setNextLocation in class PanelEditorpublic ConnectivityUtil getConnectivityUtil()
public LayoutEditorTools getLETools()
public boolean deletePanel()
deletePanel in class Editorpublic void setAllEditable(boolean editable)
Editor.setAllEditable(boolean) function of
the parent class. This also controls the relevant pop-up menu items
(which are the primary way that items are edited).
setAllEditable in class Editoreditable - true for editable.public void setAllPositionable(boolean state)
setAllPositionable in class Editorstate - true for positionable.public void setTurnoutAnimation(boolean state)
Positionable.setControlling(boolean) function of
each item on the target panel. This also controls the relevant pop-up menu items.
state - true for controlling.public boolean isAnimating()
public int getLayoutWidth()
public int getLayoutHeight()
public int getWindowWidth()
public int getWindowHeight()
public int getUpperLeftX()
public int getUpperLeftY()
public boolean getScroll()
public int getMainlineTrackWidth()
public int getSideTrackWidth()
public double getXScale()
public double getYScale()
public String getDefaultTrackColor()
public String getDefaultTextColor()
public String getLayoutName()
public boolean getShowHelpBar()
public boolean getDrawGrid()
public boolean getSnapOnAdd()
public boolean getSnapOnMove()
public boolean getAntialiasingOn()
public boolean getTurnoutCircles()
public boolean getTooltipsNotEdit()
public boolean getTooltipsInEdit()
public void setLayoutDimensions(int windowW,
int windowH,
int x,
int y,
int panelW,
int panelH)
public void setMainlineTrackWidth(int w)
public void setSideTrackWidth(int w)
public void setDefaultTrackColor(String color)
public void setDefaultTextColor(String color)
public void setXScale(double xSc)
public void setYScale(double ySc)
public void setLayoutName(String name)
public void setShowHelpBar(boolean state)
public void setDrawGrid(boolean state)
public void setSnapOnAdd(boolean state)
public void setSnapOnMove(boolean state)
public void setAntialiasingOn(boolean state)
public void setTurnoutCircles(boolean state)
public void setTooltipsNotEdit(boolean state)
public void setTooltipsInEdit(boolean state)
public void setTurnoutBX(double bx)
public double getTurnoutBX()
public void setTurnoutCX(double cx)
public double getTurnoutCX()
public void setTurnoutWid(double wid)
public double getTurnoutWid()
public void setXOverLong(double lg)
public double getXOverLong()
public void setXOverHWid(double hwid)
public double getXOverHWid()
public void setXOverShort(double sh)
public double getXOverShort()
public void setConnections()
public static String colorToString(Color color)
public static Color stringToColor(String string)
public TrackSegment findTrackSegmentByName(String name)
public PositionablePoint findPositionablePointByName(String name)
public PositionablePoint findPositionablePointAtTrackSegments(TrackSegment tr1,
TrackSegment tr2)
public ArrayList<TrackSegment> findTrackSegmentByBlock(String name)
public PositionablePoint findPositionablePointByEastBoundSignal(String signalName)
public PositionablePoint findPositionablePointByWestBoundSignal(String signalName)
public PositionablePoint findPositionablePointByEastBoundSignalMast(String signalMastName)
public PositionablePoint findPositionablePointByWestBoundSignalMast(String signalMastName)
public LayoutTurnout findLayoutTurnoutBySignalMast(String signalMastName)
public LayoutTurnout findLayoutTurnoutBySensor(String sensorName)
public LevelXing findLevelXingBySignalMast(String signalMastName)
public LevelXing findLevelXingBySensor(String sensorName)
public PositionablePoint findPositionablePointByEastBoundSensor(String sensorName)
public PositionablePoint findPositionablePointByWestBoundSensor(String sensorName)
public LayoutTurnout findLayoutTurnoutByName(String name)
public LevelXing findLevelXingByName(String name)
public LayoutTurntable findLayoutTurntableByName(String name)
public Object findObjectByTypeAndName(int type,
String name)
protected void paintTargetPanel(Graphics g)
paintTargetPanel in class PanelEditor
protected void setTrackStrokeWidth(Graphics2D g2,
boolean need)
protected void drawTurnouts(Graphics2D g2)
protected Point2D getCoords(Object o,
int type)
protected boolean showAlignPopup(Positionable l)
showAlignPopup in class Editor
public void showToolTip(Positionable selection,
MouseEvent event)
Editor
showToolTip in class Editor
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||