miSim

misim
Class Plugin

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--misim.Plugin
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
BetterLed, BreadBoard, CapacitorDelay, KeyPlugin, Lcd2Plugin, LCDPlugin, LedArrayPlugin, LedPlugin, MonitorPlugin, MotorPlugin, SegmentPlugin, Switch5Plugin, SwitchPlugin, TVFrame

public abstract class Plugin
extends java.awt.Frame

If you want to add a new device to the miSim DE, you must implement the Plugin interface. Plugins are loaded from the settings file - See the included settings.txt file for an example. The class must also implement the PortListener interface if it wants to respond to output on the Pics ports.

See Also:
PortListener, Serialized Form

Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
protected  MachineState machineState
           
protected  java.awt.Component owner
           
static int PLUGIN_GUI
           
static int PLUGIN_NONE
           
static int PLUGIN_SELF
           
protected  RobustReaderIF reader
           
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, 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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Plugin(java.awt.Component owner, MachineState machineState, RobustReaderIF reader, java.lang.String params)
          Constructor for the plugin.
 
Method Summary
abstract  int configType()
          The User Interface calls this to see if the Plugin needs configuration information, and if so whether the information can be controlled by the user interface (in which case the user will edit the config string by hand), or if the Plugin itself will provide a configuration interface.
abstract  java.lang.String getAbout()
          This method should return any information appropriate to this plugin.
abstract  java.lang.String getConfig()
          Method to retrieve the config for this plugin
abstract  java.lang.String getHelp()
          Return more detailed information on the configuration string format for this plugin.
abstract  void init(java.lang.String params)
          This is the method that is called to initialise (and display) the plugin.
abstract  java.lang.String readConfig(java.lang.String config)
          This method should read the given config parameter string and update its own settings to match it.
 void setMachineState(MachineState machineState)
          Update the machine that this plugin is related to.
 void setPluginTitle(java.lang.String title)
          Set the title of this plugin
abstract  void showPlugin(boolean visible)
          This is called when the user wants the Plugin to display or hide itself.
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getAccessibleContext, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, paramString, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, processWindowEvent, removeWindowListener, setCursor, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setFont, setLayout, update, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, 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, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
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

machineState

protected MachineState machineState

reader

protected RobustReaderIF reader

owner

protected java.awt.Component owner

PLUGIN_NONE

public static final int PLUGIN_NONE

PLUGIN_GUI

public static final int PLUGIN_GUI

PLUGIN_SELF

public static final int PLUGIN_SELF
Constructor Detail

Plugin

public Plugin(java.awt.Component owner,
              MachineState machineState,
              RobustReaderIF reader,
              java.lang.String params)
       throws MiSimException
Constructor for the plugin. This sets the machineState, reader and owner variables and calls init.
Method Detail

init

public abstract void init(java.lang.String params)
                   throws MiSimException
This is the method that is called to initialise (and display) the plugin.
Parameters:
params - Initialisation parameters for the plugin

showPlugin

public abstract void showPlugin(boolean visible)
This is called when the user wants the Plugin to display or hide itself. The plugin should add or remove itself as a port listener as appropriate
Parameters:
visible - True if the Plugin should display itself.

configType

public abstract int configType()
The User Interface calls this to see if the Plugin needs configuration information, and if so whether the information can be controlled by the user interface (in which case the user will edit the config string by hand), or if the Plugin itself will provide a configuration interface.
Returns:
PLUGIN_NONE - if this plugin needs no config information PLUGIN_GUI - if the standard GUI should provide config editing PLUGIN_SELF - if the plugin itself will provide a config GUI

getConfig

public abstract java.lang.String getConfig()
Method to retrieve the config for this plugin
Returns:
The config string

readConfig

public abstract java.lang.String readConfig(java.lang.String config)
This method should read the given config parameter string and update its own settings to match it. If the Plugin has stated that it will edit the configs through its own gui, it should display the GUI and gather the results, before updating itself. In this case, the config and update parameters can be ignored.
Parameters:
config - The new configuration string, or null if the config type is PLUGIN_SELF.
Returns:
Null if the parameters are OK, otherwise an explanation of what is wrong.

getAbout

public abstract java.lang.String getAbout()
This method should return any information appropriate to this plugin. If the config parameter is to be edited by the standard GUI, the help text should explain what the parameters mean.
Returns:
The about text for this plugin

getHelp

public abstract java.lang.String getHelp()
Return more detailed information on the configuration string format for this plugin.
Returns:
The help text for this plugin

setPluginTitle

public void setPluginTitle(java.lang.String title)
Set the title of this plugin
Parameters:
title - The new title for this plugin

setMachineState

public void setMachineState(MachineState machineState)
Update the machine that this plugin is related to. This happens when assembly causes the processor type to change. The method updates the class variable and calls setVisible if the plugin is currently visible, so that the plugin will re-add itself as a listener to the machine.
Parameters:
machineState - The new machine state for the plugin

miSim