Class MmsEditor

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by MmsEditor
All Implemented Interfaces:
java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class MmsEditor
extends javax.swing.JFrame
implements java.awt.event.MouseListener, java.awt.event.ItemListener

Editor GUI tool for MegaMek MMS files to create and edit scenarios.

Author:
Michael Latham
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
(package private)  javax.swing.JButton m_bAddFaction
           
(package private)  javax.swing.JButton m_bAddScenario
           
(package private)  javax.swing.JButton m_bClose
           
(package private)  javax.swing.JButton m_bDeleteFaction
           
(package private)  javax.swing.JButton m_bEditFaction
           
(package private)  javax.swing.JButton m_bLoadScenario
           
(package private)  javax.swing.JButton m_bSave
           
(package private)  int M_CANCEL
           
(package private)  javax.swing.JComboBox m_cbFactions
           
(package private)  javax.swing.JComboBox m_cbVersion
           
(package private)  java.awt.Container m_cp
          Attributes
(package private)  boolean m_debug
           
(package private)  java.awt.Dimension m_defHorSpacing
           
(package private)  java.awt.Dimension m_defVerSpacing
           
(package private)  boolean m_editsStarted
           
(package private)  javax.swing.JList m_listFactions
           
(package private)  int M_NO
          Constants
(package private)  Scenario m_scenario
           
(package private)  javax.swing.JTextArea m_taDebugOutput
           
(package private)  javax.swing.JTextField m_tfDesc
           
(package private)  javax.swing.JTextField m_tfHeight
           
(package private)  javax.swing.JTextField m_tfMapHeight
           
(package private)  javax.swing.JTextField m_tfMaps
           
(package private)  javax.swing.JTextField m_tfMapWidth
           
(package private)  javax.swing.JTextField m_tfName
           
(package private)  javax.swing.JTextField m_tfWidth
           
(package private)  int M_YES
           
 
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
MmsEditor()
          Constructor - instantiates the class
 
Method Summary
private  void addPanelCenterFactionList()
          Adds panel to frame and components for Faction list to the panel
private  void addPanelNorthDataEntry()
          Adds panel to frame and components for data entry to the panel
private  void addPanelSouthButtons()
          Adds panel to frame and button components to the panel
private  boolean askToKeep()
          Dialog to ask if current screen values should be kept
private  int askToSave()
          Dialog to ask if current work in progress should be saved
private  void createEditorGUI()
          Builds and shows MmsEditor GUI frame and components
private  void debugMessage(java.lang.String msg)
          If debug is enabled, write message to debug component
private  void displayMms()
          Displays the MMS info
private  Faction getSelectedFaction()
          Returns a clone of the Faction selected in the faction properties list
 void itemStateChanged(java.awt.event.ItemEvent e)
          Handles comboBox selection changes
private  int loadMms()
          Loads MMS info from disk
 void mouseClicked(java.awt.event.MouseEvent me)
          Mouse click event handler
 void mouseEntered(java.awt.event.MouseEvent me)
          mouseEntered - N/A - Invoked when the mouse enters a component.
 void mouseExited(java.awt.event.MouseEvent me)
          mouseEntered - N/A - Invoked when the mouse exits a component.
 void mousePressed(java.awt.event.MouseEvent me)
          mousePressed - N/A - Invoked when a mouse button has been pressed on a component.
 void mouseReleased(java.awt.event.MouseEvent me)
          mouseReleased - N/A - Invoked when a mouse button has been released on a component.
private  void quit()
          Quit application, ask to save work in progress
private  int saveMms()
          Saves MMS info to disk
private  void showError(java.lang.String errMsg)
          Dialog to show an error
 void start(java.lang.String[] args)
          Launches MmsEditor GUI
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, 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.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

M_NO

final int M_NO
Constants

See Also:
Constant Field Values

M_YES

final int M_YES
See Also:
Constant Field Values

M_CANCEL

final int M_CANCEL
See Also:
Constant Field Values

m_cp

java.awt.Container m_cp
Attributes


m_defHorSpacing

java.awt.Dimension m_defHorSpacing

m_defVerSpacing

java.awt.Dimension m_defVerSpacing

m_editsStarted

boolean m_editsStarted

m_debug

boolean m_debug

m_scenario

Scenario m_scenario

m_cbVersion

javax.swing.JComboBox m_cbVersion

m_tfName

javax.swing.JTextField m_tfName

m_tfDesc

javax.swing.JTextField m_tfDesc

m_tfWidth

javax.swing.JTextField m_tfWidth

m_tfHeight

javax.swing.JTextField m_tfHeight

m_tfMapWidth

javax.swing.JTextField m_tfMapWidth

m_tfMapHeight

javax.swing.JTextField m_tfMapHeight

m_tfMaps

javax.swing.JTextField m_tfMaps

m_cbFactions

javax.swing.JComboBox m_cbFactions

m_listFactions

javax.swing.JList m_listFactions

m_bLoadScenario

javax.swing.JButton m_bLoadScenario

m_bAddScenario

javax.swing.JButton m_bAddScenario

m_bAddFaction

javax.swing.JButton m_bAddFaction

m_bEditFaction

javax.swing.JButton m_bEditFaction

m_bDeleteFaction

javax.swing.JButton m_bDeleteFaction

m_bSave

javax.swing.JButton m_bSave

m_bClose

javax.swing.JButton m_bClose

m_taDebugOutput

javax.swing.JTextArea m_taDebugOutput
Constructor Detail

MmsEditor

public MmsEditor()
Constructor - instantiates the class

Method Detail

start

public void start(java.lang.String[] args)
Launches MmsEditor GUI

Parameters:
args - - String array of arguments passed from MmsStart.main

createEditorGUI

private void createEditorGUI()
Builds and shows MmsEditor GUI frame and components


mouseClicked

public void mouseClicked(java.awt.event.MouseEvent me)
Mouse click event handler

Specified by:
mouseClicked in interface java.awt.event.MouseListener
Parameters:
me - Mouse Event generated from mouse button click

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent me)
mouseEntered - N/A - Invoked when the mouse enters a component.

Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent me)
mouseEntered - N/A - Invoked when the mouse exits a component.

Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent me)
mousePressed - N/A - Invoked when a mouse button has been pressed on a component.

Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent me)
mouseReleased - N/A - Invoked when a mouse button has been released on a component.

Specified by:
mouseReleased in interface java.awt.event.MouseListener

addPanelNorthDataEntry

private void addPanelNorthDataEntry()
Adds panel to frame and components for data entry to the panel


addPanelCenterFactionList

private void addPanelCenterFactionList()
Adds panel to frame and components for Faction list to the panel


addPanelSouthButtons

private void addPanelSouthButtons()
Adds panel to frame and button components to the panel


quit

private void quit()
Quit application, ask to save work in progress


askToSave

private int askToSave()
Dialog to ask if current work in progress should be saved

Returns:
M_YES = do save, M_NO = continue, but don't save, M_CANCEL = keep work, don't continue

askToKeep

private boolean askToKeep()
Dialog to ask if current screen values should be kept

Returns:
True to keep values, false to clear them

showError

private void showError(java.lang.String errMsg)
Dialog to show an error

Parameters:
errMsg - Message to show

debugMessage

private void debugMessage(java.lang.String msg)
If debug is enabled, write message to debug component

Parameters:
msg - Debug message to show

saveMms

private int saveMms()
Saves MMS info to disk

Returns:
M_CANCEL if an error stops the save; else M_YES if saved ok

loadMms

private int loadMms()
Loads MMS info from disk

Returns:
M_YES if loaded ok

displayMms

private void displayMms()
Displays the MMS info


itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
Handles comboBox selection changes

Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Parameters:
e - ItemEvent when combo box state changes

getSelectedFaction

private Faction getSelectedFaction()
Returns a clone of the Faction selected in the faction properties list

Returns:
Null, if no valid Faction selected; otherwise a clone of the selected faction