PamModel
Class PamModuleInfo

java.lang.Object
  extended by PamModel.PamModuleInfo
All Implemented Interfaces:
PamDependent

public class PamModuleInfo
extends java.lang.Object
implements PamDependent

Holds information about available PAMGUARD modules.

Author:
Doug Gillespie
See Also:
PamModel.createPamModel(), PamDependency

Nested Class Summary
(package private)  class PamModuleInfo.AddModuleMenuAction
           
(package private) static class PamModuleInfo.RemoveModuleMenuAction
           
 
Field Summary
private  MenuItemEnabler addMenuEnabler
           
private  java.lang.String className
           
private  boolean coreModule
           
private  java.lang.String defaultName
           
private  java.lang.String description
           
private  int maxNumber
          maximum number of this type of module that can be created.
private  int minNumber
          minimum number of this type of module that can be created.
private  java.lang.Class moduleClass
           
private static java.util.ArrayList<PamModuleInfo> moduleList
           
private  ModulesMenuGroup modulesMenuGroup
          group modules in the add modules menu into common groups
private  int nInstances
           
private  PamDependency pamDependency
           
private  MenuItemEnabler removeMenuEnabler
           
 
Constructor Summary
private PamModuleInfo(java.lang.String className, java.lang.String description, java.lang.Class moduleClass)
           
 
Method Summary
 void addDependency(PamDependency dependancy)
           
 boolean canCreate()
           
 boolean canRemove()
           
 PamControlledUnit create(java.lang.String unitName)
           
static PamModuleInfo findModuleInfo(java.lang.String className)
           
 MenuItemEnabler getAddMenuEnabler()
           
 java.lang.String getClassName()
           
 java.lang.String getDefaultName()
           
 PamDependency getDependency()
           
 java.lang.String getDependentUserName()
           
 java.lang.String getDescription()
           
 int getMaxNumber()
           
 PamModuleInfo.AddModuleMenuAction getMenuAction(java.awt.Frame parentFrame)
           
 int getMinNumber()
           
 java.lang.Class getModuleClass()
           
static java.util.ArrayList<PamModuleInfo> getModuleList()
           
static javax.swing.JMenu getModulesMenu(java.awt.Frame parentFrame)
           
 ModulesMenuGroup getModulesMenuGroup()
           
 java.lang.String getNewDefaultName()
           
 int getNInstances()
           
static javax.swing.JMenu getRemoveMenu()
           
 MenuItemEnabler getRemoveMenuEnabler()
           
 boolean hasFixedNumber()
           
 boolean isCoreModule()
           
private  void moduleRemoved(PamControlledUnit controlledUnit)
           
static PamModuleInfo registerControlledUnit(java.lang.String className, java.lang.String description)
          registers different controlled units in an ArrayList so that they can be instantiated by the user.
 void setCoreModule(boolean coreModule)
           
 void setDefaultName(java.lang.String defaultName)
           
 void setMaxNumber(int maxNumber)
          Set the maximum number of instances of a given module.
 void setMinNumber(int minNumber)
          Set the minumnum number of instances of a particular module.
 void setModulesMenuGroup(ModulesMenuGroup modulesMenuGroup)
           
private  void setNInstances(int instances)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

className

private java.lang.String className

description

private java.lang.String description

defaultName

private java.lang.String defaultName

moduleClass

private java.lang.Class moduleClass

pamDependency

private PamDependency pamDependency

nInstances

private int nInstances

removeMenuEnabler

private MenuItemEnabler removeMenuEnabler

addMenuEnabler

private MenuItemEnabler addMenuEnabler

minNumber

private int minNumber
minimum number of this type of module that can be created.


maxNumber

private int maxNumber
maximum number of this type of module that can be created.


modulesMenuGroup

private ModulesMenuGroup modulesMenuGroup
group modules in the add modules menu into common groups


coreModule

private boolean coreModule

moduleList

private static java.util.ArrayList<PamModuleInfo> moduleList
Constructor Detail

PamModuleInfo

private PamModuleInfo(java.lang.String className,
                      java.lang.String description,
                      java.lang.Class moduleClass)
Method Detail

registerControlledUnit

public static PamModuleInfo registerControlledUnit(java.lang.String className,
                                                   java.lang.String description)
registers different controlled units in an ArrayList so that they can be instantiated by the user.

Parameters:
className - name of JAVA class.
description - Description of module
Returns:
true if OK

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

findModuleInfo

public static PamModuleInfo findModuleInfo(java.lang.String className)

getMenuAction

public PamModuleInfo.AddModuleMenuAction getMenuAction(java.awt.Frame parentFrame)

create

public PamControlledUnit create(java.lang.String unitName)

moduleRemoved

private void moduleRemoved(PamControlledUnit controlledUnit)

setNInstances

private void setNInstances(int instances)
Parameters:
instances - The nInstances to set.

getModuleList

public static java.util.ArrayList<PamModuleInfo> getModuleList()

getClassName

public java.lang.String getClassName()

getDescription

public java.lang.String getDescription()

getModuleClass

public java.lang.Class getModuleClass()

getModulesMenu

public static javax.swing.JMenu getModulesMenu(java.awt.Frame parentFrame)

getRemoveMenu

public static javax.swing.JMenu getRemoveMenu()

isCoreModule

public boolean isCoreModule()

setCoreModule

public void setCoreModule(boolean coreModule)

getMaxNumber

public int getMaxNumber()
Returns:
Returns the maxNumber.

setMaxNumber

public void setMaxNumber(int maxNumber)
Set the maximum number of instances of a given module.

Parameters:
maxNumber - The maxNumber to set.

getMinNumber

public int getMinNumber()
Returns:
Returns the minNumber.

setMinNumber

public void setMinNumber(int minNumber)
Set the minumnum number of instances of a particular module.

Parameters:
minNumber - The minNumber to set.

hasFixedNumber

public boolean hasFixedNumber()

canCreate

public boolean canCreate()

canRemove

public boolean canRemove()

addDependency

public void addDependency(PamDependency dependancy)
Specified by:
addDependency in interface PamDependent

getDependency

public PamDependency getDependency()
Specified by:
getDependency in interface PamDependent

getDependentUserName

public java.lang.String getDependentUserName()
Specified by:
getDependentUserName in interface PamDependent

getNInstances

public int getNInstances()
Returns:
Returns the nInstances.

getDefaultName

public java.lang.String getDefaultName()
Returns:
Returns the defaultName.

getNewDefaultName

public java.lang.String getNewDefaultName()

setDefaultName

public void setDefaultName(java.lang.String defaultName)
Parameters:
defaultName - The defaultName to set.

getAddMenuEnabler

public MenuItemEnabler getAddMenuEnabler()
Returns:
Returns the addMenuEnabler.

getRemoveMenuEnabler

public MenuItemEnabler getRemoveMenuEnabler()
Returns:
Returns the removeMenuEnabler.

getModulesMenuGroup

public ModulesMenuGroup getModulesMenuGroup()

setModulesMenuGroup

public void setModulesMenuGroup(ModulesMenuGroup modulesMenuGroup)