databionics.esom.tool
Class AbstractTool

java.lang.Object
  extended by databionics.esom.tool.AbstractTool
All Implemented Interfaces:
java.awt.event.ActionListener, java.util.EventListener
Direct Known Subclasses:
BackgroundTool, BMInfoTool, ClassmaskTool, ComponentTool, DataclassTool, DataTool, ForegroundTool, InfoTool, IslandTool, LegendTool, MapViewTool, OptionsTool, ProjectionTool, RendererTool, SimilarityTool, SlideshowTool

public abstract class AbstractTool
extends java.lang.Object
implements java.awt.event.ActionListener

Superclass for all of Somana's GUI-Tools.

Author:
stammi

Field Summary
protected  Application application
          Reference to the running application.
protected  BottomBar bottomBar
          Somana's main BottomPanel
protected  BottomTab bottomTab
          BottomTab to be inserted into BottomBar.
protected  javax.swing.JButton btnClear
          Standard clear-button for the Toolbar.
protected  javax.swing.JButton btnLoad
          Standard load-button for the Toolbar.
protected  javax.swing.JButton btnPaint
          Button to switch foreground-rendering on/off.
protected  javax.swing.JButton btnSave
          Standard save-button for the Toolbar.
protected  javax.swing.JMenuItem clearItm
           
protected  boolean clickMode
          Booleans for different selection modes
protected  javax.swing.JButton controlButton
          the Main Button switching the Tool on for the ControlPanel.
protected  ProtoPanel creatorPanel
          CreatorPanel to be linked to renderPanel.
protected  AbstractToolTable dataTable
           
protected  javax.swing.table.AbstractTableModel dataTableModel
          Table model for the dataTable.
protected  javax.swing.JPanel displayPanel
          Can be used to display Data in the BottomTab.
protected  boolean dragMode
           
protected  boolean drawing
          Flag decides if Foreground is rendered.
protected  javax.swing.JMenu fileMenu
          fileMenu to be inserted into Main Menu.
protected  java.lang.String filename
          to be removed.
protected  boolean gui
          Flag showing if the Tool is used in GUI-mode.
protected  ToolLoader loader
          Somanas ToolLoader
protected  javax.swing.JMenuItem loadItm
           
protected static org.apache.log4j.Logger log
           
protected  CallBack moveCallback
           
protected  javax.swing.JPanel pnlControl
          Panel containing control-elements for the ControlPanel.
protected  boolean polygonMode
           
protected  javax.swing.JPopupMenu popMenu
          popup menu for the BottomTab.
protected  javax.swing.JMenuItem removeItm
           
protected  Renderer renderer
          Somanas main Renderer
protected  RenderPanel renderPanel
          Somana's main RenderPanel.
protected  javax.swing.JMenuItem saveItm
           
protected  javax.swing.JToolBar toolBar
          ToolBar for the BottomTAb.
protected  AbstractToolRenderer toolRenderer
          If the Tool has a foreground-rendering function it is handled there.
 
Constructor Summary
AbstractTool(boolean gui, Application application)
          Standard Constructor.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          If the big ControlButton is pressed, select this Tool also the draw/undrawbutton is handled here.
 void callback(java.lang.Object object)
          If this tool has registered a callback anywhere this function will be called.
 Application getApplication()
           
 BottomTab getBottomTab()
           
 CallBack getCallback()
           
 javax.swing.JButton getControlButton()
           
 ProtoPanel getCreatorPanel()
          Get the CreatorPanel belonging to this tool.
 AbstractToolTable getDataTable()
           
 javax.swing.table.AbstractTableModel getDataTableModel()
           
 javax.swing.JPanel getDisplayPanel()
           
 javax.swing.JMenu getFileMenu()
           
 java.lang.String getFilename()
           
 ToolLoader getLoader()
           
 java.lang.String getMessage(java.lang.String key)
          Get a Message from the running application.
 CallBack getMoveCallback()
           
 javax.swing.JPanel getPnlControl()
           
 javax.swing.JPopupMenu getPopMenu()
           
 Renderer getRenderer()
           
abstract  java.lang.String getShortTitle()
           
 javax.swing.JToolBar getToolBar()
           
 AbstractToolRenderer getToolRenderer()
           
abstract  void init()
          Initialize what needs to be Initialized.
 void initGui(RenderPanel renderPanel, BottomBar bottomBar)
          init the Tool and register its components to the Gui when this method is overriden, inheritors should call super.initGui().
 boolean isClickMode()
           
 boolean isDragMode()
           
 boolean isDrawing()
           
 boolean isGui()
           
 boolean isPolygonMode()
           
 void moveSelection(int index)
          activates move callback, with bm under mouse
 void reAreas()
           
 void reColorize()
           
 void reDraw()
           
 void reFore()
          Redraw all foregrounds.
 void reMask()
           
 void rePostFore()
           
protected  void rePreFore()
          this lauches a Rerender from those Foreground on, which are painted before the Image is tiled.
 void reRender()
          Set the main renderer's ReRender-flag true.
abstract  void reset()
          reset the tool.
 void reTile()
           
 void reZoom()
           
 void select()
          make this tool the active one, notify all relevant gui-components (ControlPanel, RenderPanel, BottomBar) when this method is overriden, it should call super.select()
 void setApplication(Application application)
           
 void setBottomTab(BottomTab bottomTab)
           
 void setCallback(CallBack callback)
           
 void setClickMode(boolean clickMode)
           
 void setControlButton(javax.swing.JButton controlButton)
           
 void setCreatorPanel(ProtoPanel creatorPanel)
          Set the CreatorPanel belonging to this tool.
protected  void setCtrlAccelerator(javax.swing.JMenuItem mi, char acc)
          Sets the ctrlaccelerator to the menuitems
 void setDataTable(AbstractToolTable dataTable)
           
 void setDataTableModel(javax.swing.table.AbstractTableModel dataTableModel)
          Get the DataTabelModel.
 void setDisplayPanel(javax.swing.JPanel displayPanel)
           
 void setDragMode(boolean dragMode)
           
 void setDrawing(boolean drawing)
          set the drawing mode for this tool.
 void setFilename(java.lang.String filename)
           
 void setLoader(ToolLoader loader)
           
 void setMoveCallback(CallBack moveCallback)
           
 void setPolygonMode(boolean polygonMode)
           
 void setRenderer(Renderer renderer)
           
 void setToolBar(javax.swing.JToolBar toolBar)
           
 void update()
          Updates all gui elements, if not null.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static final org.apache.log4j.Logger log

application

protected Application application
Reference to the running application. will hopefully be removed.


renderPanel

protected RenderPanel renderPanel
Somana's main RenderPanel.


bottomBar

protected BottomBar bottomBar
Somana's main BottomPanel


renderer

protected Renderer renderer
Somanas main Renderer


loader

protected ToolLoader loader
Somanas ToolLoader


toolRenderer

protected AbstractToolRenderer toolRenderer
If the Tool has a foreground-rendering function it is handled there. Maybe null.


controlButton

protected javax.swing.JButton controlButton
the Main Button switching the Tool on for the ControlPanel. Maybe null.


pnlControl

protected javax.swing.JPanel pnlControl
Panel containing control-elements for the ControlPanel. Maybe null.


creatorPanel

protected ProtoPanel creatorPanel
CreatorPanel to be linked to renderPanel. Draws Polygons on the displayed maps. Maybe null.


bottomTab

protected BottomTab bottomTab
BottomTab to be inserted into BottomBar. Maybe null.


popMenu

protected javax.swing.JPopupMenu popMenu
popup menu for the BottomTab. Maybe null.


fileMenu

protected javax.swing.JMenu fileMenu
fileMenu to be inserted into Main Menu. Maybe null.


saveItm

protected javax.swing.JMenuItem saveItm

loadItm

protected javax.swing.JMenuItem loadItm

removeItm

protected javax.swing.JMenuItem removeItm

clearItm

protected javax.swing.JMenuItem clearItm

dataTable

protected AbstractToolTable dataTable

displayPanel

protected javax.swing.JPanel displayPanel
Can be used to display Data in the BottomTab. Maybe null.


dataTableModel

protected javax.swing.table.AbstractTableModel dataTableModel
Table model for the dataTable. Maybe null.


toolBar

protected javax.swing.JToolBar toolBar
ToolBar for the BottomTAb. Maybe null.


btnPaint

protected javax.swing.JButton btnPaint
Button to switch foreground-rendering on/off. Maybe null.


btnSave

protected javax.swing.JButton btnSave
Standard save-button for the Toolbar. Maybe null.


btnLoad

protected javax.swing.JButton btnLoad
Standard load-button for the Toolbar. Maybe null.


btnClear

protected javax.swing.JButton btnClear
Standard clear-button for the Toolbar. Maybe null.


filename

protected java.lang.String filename
to be removed.


drawing

protected boolean drawing
Flag decides if Foreground is rendered.


gui

protected boolean gui
Flag showing if the Tool is used in GUI-mode. false shouldn't occur.


clickMode

protected boolean clickMode
Booleans for different selection modes


dragMode

protected boolean dragMode

polygonMode

protected boolean polygonMode

moveCallback

protected CallBack moveCallback
Constructor Detail

AbstractTool

public AbstractTool(boolean gui,
                    Application application)
Standard Constructor.

Parameters:
gui - - flag if gui elements should be created. false for command-line mode.
application - - pointer on main application
Method Detail

initGui

public void initGui(RenderPanel renderPanel,
                    BottomBar bottomBar)
init the Tool and register its components to the Gui when this method is overriden, inheritors should call super.initGui().


select

public void select()
make this tool the active one, notify all relevant gui-components (ControlPanel, RenderPanel, BottomBar) when this method is overriden, it should call super.select()


callback

public void callback(java.lang.Object object)
If this tool has registered a callback anywhere this function will be called.


init

public abstract void init()
Initialize what needs to be Initialized.


reset

public abstract void reset()
reset the tool.


getMessage

public java.lang.String getMessage(java.lang.String key)
Get a Message from the running application.

Parameters:
key - a key-string

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
If the big ControlButton is pressed, select this Tool also the draw/undrawbutton is handled here. Implementors should call super.actionperformed at the end of their actionPerformed method. if not, be shure, you want this behaviour.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - an ActionEvent

setCtrlAccelerator

protected void setCtrlAccelerator(javax.swing.JMenuItem mi,
                                  char acc)
Sets the ctrlaccelerator to the menuitems

Parameters:
mi - the menuitem to set an ctrlAccelerator
acc - the character to be the ctrlAccelerator

getCreatorPanel

public ProtoPanel getCreatorPanel()
Get the CreatorPanel belonging to this tool.

Returns:
Returns the creatorPanel. May be null.

setCreatorPanel

public void setCreatorPanel(ProtoPanel creatorPanel)
Set the CreatorPanel belonging to this tool.

Parameters:
creatorPanel - The creatorPanel to set.

getBottomTab

public BottomTab getBottomTab()
Returns:
Returns the bottomTab. May be null.

setBottomTab

public void setBottomTab(BottomTab bottomTab)
Parameters:
bottomTab - The bottomTab to set.

getControlButton

public javax.swing.JButton getControlButton()
Returns:
Returns the controlButton. May be null.

getShortTitle

public abstract java.lang.String getShortTitle()

setControlButton

public void setControlButton(javax.swing.JButton controlButton)
Parameters:
controlButton - The controlButton to set.

getFileMenu

public javax.swing.JMenu getFileMenu()
Returns:
Returns the fileMenu.

getPopMenu

public javax.swing.JPopupMenu getPopMenu()
Returns:
Returns the popMenu.

getDataTable

public AbstractToolTable getDataTable()
Returns:
Returns the dataTable.

setDataTable

public void setDataTable(AbstractToolTable dataTable)
Parameters:
dataTable - The dataTable to set.

getToolBar

public javax.swing.JToolBar getToolBar()
Returns:
Returns the toolBar.

setToolBar

public void setToolBar(javax.swing.JToolBar toolBar)
Parameters:
toolBar - The toolBar to set.

isDrawing

public boolean isDrawing()
Returns:
Returns the drawing.

setDrawing

public void setDrawing(boolean drawing)
set the drawing mode for this tool. if it changes, reDraw() will be called.

Parameters:
drawing - The drawing to set.

getRenderer

public Renderer getRenderer()
Returns:
Returns the renderer.

setRenderer

public void setRenderer(Renderer renderer)
Parameters:
renderer - The renderer to set.

getDataTableModel

public javax.swing.table.AbstractTableModel getDataTableModel()
Returns:
Returns the dataTableModel.

setDataTableModel

public void setDataTableModel(javax.swing.table.AbstractTableModel dataTableModel)
Get the DataTabelModel. The tool should override this in case it has several Models to choose from.

Parameters:
dataTableModel - The dataTableModel to set.

getToolRenderer

public AbstractToolRenderer getToolRenderer()
Returns:
Returns the toolRenderer.

isGui

public boolean isGui()
Returns:
Returns the gui.

update

public void update()
Updates all gui elements, if not null. Uses JComponent.revalidate() Better solution maybe possible.


reRender

public void reRender()
Set the main renderer's ReRender-flag true. Lets a new Image beeing created.


rePreFore

protected void rePreFore()
this lauches a Rerender from those Foreground on, which are painted before the Image is tiled. It is protected in order to kepp acces separated for e.g. colorize and areas, because in a future version the internal representation of the foregrounds may change.


reColorize

public void reColorize()

reAreas

public void reAreas()

reDraw

public void reDraw()

reZoom

public void reZoom()

reTile

public void reTile()

reFore

public void reFore()
Redraw all foregrounds. If possible use rePreFore, rePostFore or reMask, as those are more specific and will save you calculation time.


rePostFore

public void rePostFore()

reMask

public void reMask()

getDisplayPanel

public javax.swing.JPanel getDisplayPanel()
Returns:
Returns the displayPanel.

setDisplayPanel

public void setDisplayPanel(javax.swing.JPanel displayPanel)
Parameters:
displayPanel - The displayPanel to set.

getApplication

public Application getApplication()
Returns:

setApplication

public void setApplication(Application application)
Parameters:
application -

getCallback

public CallBack getCallback()
Returns:
Returns the callback. Maybe null.

setCallback

public void setCallback(CallBack callback)
Parameters:
callback - The callback to set.

getLoader

public ToolLoader getLoader()
Returns:
Returns the loader.

setLoader

public void setLoader(ToolLoader loader)
Parameters:
loader - The loader to set.

getFilename

public java.lang.String getFilename()
Returns:
Returns the filename.

setFilename

public void setFilename(java.lang.String filename)
Parameters:
filename - The filename to set.

getPnlControl

public javax.swing.JPanel getPnlControl()
Returns:
Returns the pnlControl.

isClickMode

public boolean isClickMode()
Returns:
Returns the clickMode.

setClickMode

public void setClickMode(boolean clickMode)
Parameters:
clickMode - The clickMode to set.

isDragMode

public boolean isDragMode()
Returns:
Returns the dragMode.

setDragMode

public void setDragMode(boolean dragMode)
Parameters:
dragMode - The dragMode to set.

isPolygonMode

public boolean isPolygonMode()
Returns:
Returns the polygonMode.

setPolygonMode

public void setPolygonMode(boolean polygonMode)
Parameters:
polygonMode - The polygonMode to set.

moveSelection

public void moveSelection(int index)
activates move callback, with bm under mouse

Parameters:
idxs - IntArrayList with indexes of bms

getMoveCallback

public CallBack getMoveCallback()
Returns:
Returns the moveCallback.

setMoveCallback

public void setMoveCallback(CallBack moveCallback)
Parameters:
moveCallback - The moveCallback to set.


Copyright © 2005-2006 Databionics Research Group. All Rights Reserved.