Class PjWorkshop
- java.lang.Object
-
- jv.object.PsObject
-
- jvx.project.PjWorkshop
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, PsUpdateIf, PjWorkshopIf
- Direct Known Subclasses:
- PnCellOperator, PsExportInfo, PsModelInfo, PwAdjustColors, PwBlocks, PwBoundary, PwCleanMesh, PwClip, PwCubeSet, PwEnergy, PwEvolve, PwExplode, PwGeodesic, PwGeodesicFlow, PwHistogram, PwHodge, PwIdentify, PwIntegralLine, PwIntegralLineSet, PwIntersectElementSet, PwIsoline, PwLIC, PwLocalButterfly, PwLocalRemesh, PwMarkWithSphere, PwMatching, PwMaterial, PwModel, PwNoise, PwParameterLines, PwPlatonic, PwReeb, PwRefineElementSet, PwRefinePolygon, PwRotDiv, PwScalarField, PwSeeds, PwShapeOperator, PwSimplify, PwSimplifyTet, PwSmooth, PwSnake, PwStc, PwSurface, PwSymmetry, PwTetraRivara, PwTetraSet, PwTex2Cubes, PwTexture, PwTopology, PwTransform, PwUnfold, PwVectorField
public abstract class PjWorkshop extends PsObject implements PjWorkshopIf
This superclass of workshops provides several frequently used methods such as setGeometry(), ok(), close(), reset() and cancel(). It also simplifies the integration of workshop info panels and dialogs.- See Also:
- Serialized Form
- Author:
- Konrad Polthier
- Version:
- 13.12.13, 1.20 revised (kp) Temporary implementation of method PjWorkshop#openDialog removed.
03.10.06, 1.10 revised (kp) Methods for handling modes added.
23.12.01, 1.00 created (kp)
-
-
Field Summary
-
Fields inherited from class jv.object.PsObject
HAS_BOUNDARY_PANEL, HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_LABEL_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, HAS_VECTOR_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_FOCUSSED, IS_PICKED, IS_SELECTED, IS_USED, NUM_TAGS
-
Fields inherited from interface jv.project.PjWorkshopIf
MODE_BUG, MODE_STANDARD, MODE_VALIDATE
-
-
Constructor Summary
Constructors Constructor and Description PjWorkshop(java.lang.String aName)Constructor with unique name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidcancel()Cancel operation of this workshop by resetting the assigned geometry, and finally close this workshop.voidclose()Close workshop and remove itself as listener from various classes.PvDisplayIfgetDisplay()Get the active display when this workshop was launched.java.util.VectorgetDisplays()Get the list of displays.PgGeometrygetGeometry()Get the assigned geometry on which this workshop operates.intgetMode()Gets the mode in which this workshop runs.PgGeometrygetSavedGeometry()Get clone of originally assigned geometry.PvViewerIfgetViewer()Get the viewer manager when this workshop was launched.voidinit()Initialize and reset project, stops the running animation if any.booleanisModal()Check if workshop runs modal, that means only this workshop should be open.booleanisStandalone()Check if current workshop is running standalone (default), that is, the workshop is not embedded inside another parent workshop.voidok()Accept current version of the geometry as new version.voidremoveGeometry()Remove the assigned geometry and its backup clone.voidreset()Reset this workshop to its initial state from which computations can start.voidsetDisplay(PvDisplayIf display)Set the active display when this workshop was launched.voidsetDisplays(java.util.Vector dispList)Assign the list of displays.voidsetGeometry(PgGeometry geom)Assign a geometry on which this workshop operates, and create a backup clone of the geometry.voidsetModal(boolean modal)Set flag if workshop runs modal, that means only this workshop should be open.voidsetMode(int mode)Sets the mode in which this workshop runs.voidsetStandalone(boolean flag)Set flag if current workshop is running standalone (default), that is, the workshop is not embedded inside another parent workshop.voidsetViewer(PvViewerIf viewer)Set the viewer manager when this workshop was launched.booleanupdate(java.lang.Object event)Updates the geometry if this workshop has changed, i.e. if the event isthisornull.-
Methods inherited from class jv.object.PsObject
addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, clone, copy, getFather, getInfoPanel, getInspector, getName, getNumObjects, getSymbol, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, newInspector, newInspector, removeInspector, removeInspector, removeUpdateListener, setName, setParent, setSymbol, setTag, toString, updatePanels
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jv.object.PsUpdateIf
getFather, getName, setParent
-
-
-
-
Constructor Detail
-
PjWorkshop
public PjWorkshop(java.lang.String aName)
Constructor with unique name.
-
-
Method Detail
-
init
public void init()
Initialize and reset project, stops the running animation if any. Does not reset any registered display nor geometry. They must be reset individually in each subclass.
-
update
public boolean update(java.lang.Object event)
Updates the geometry if this workshop has changed, i.e. if the event isthisornull. Also propagates update() to superclass with the original argument event.Some subclasses may register themselves as update listener of the geometry of this workshop. In order to prevent an update loop, this method safely uses isUpdateSender() when updating the geometry.
- Specified by:
updatein interfacePsUpdateIf- Overrides:
updatein classPsObject- Parameters:
event- sender of this update.- Returns:
- true if update was correctly handled by superclass.
- See Also:
PsObject.setParent(PsUpdateIf),PsObject.getFather(),PsObject.addUpdateListener(PsUpdateIf)
-
getSavedGeometry
public PgGeometry getSavedGeometry()
Get clone of originally assigned geometry. Subclasses may sometimes want to reset the current geometry by themselves.
-
getGeometry
public PgGeometry getGeometry()
Get the assigned geometry on which this workshop operates.- Specified by:
getGeometryin interfacePjWorkshopIf
-
setGeometry
public void setGeometry(PgGeometry geom)
Assign a geometry on which this workshop operates, and create a backup clone of the geometry. The backup geometry is restored if the workshop is canceled.Subclasses frequently overwrite this method but are advised to call this method.
- Specified by:
setGeometryin interfacePjWorkshopIf- Parameters:
geom- the workshop modifies this geometry.
-
removeGeometry
public void removeGeometry()
Remove the assigned geometry and its backup clone. Subclasses frequently overwrite this method but are advised to call this method.
-
getViewer
public PvViewerIf getViewer()
Get the viewer manager when this workshop was launched.- Specified by:
getViewerin interfacePjWorkshopIf
-
setViewer
public void setViewer(PvViewerIf viewer)
Set the viewer manager when this workshop was launched.- Specified by:
setViewerin interfacePjWorkshopIf
-
getDisplay
public PvDisplayIf getDisplay()
Get the active display when this workshop was launched.- Specified by:
getDisplayin interfacePjWorkshopIf
-
setDisplay
public void setDisplay(PvDisplayIf display)
Set the active display when this workshop was launched.- Specified by:
setDisplayin interfacePjWorkshopIf
-
getDisplays
public java.util.Vector getDisplays()
Get the list of displays.- Specified by:
getDisplaysin interfacePjWorkshopIf
-
setDisplays
public void setDisplays(java.util.Vector dispList)
Assign the list of displays.- Specified by:
setDisplaysin interfacePjWorkshopIf
-
isStandalone
public boolean isStandalone()
Check if current workshop is running standalone (default), that is, the workshop is not embedded inside another parent workshop.If workshop is standalone then update of geometry is triggered by geom#update() and setUpdateSender() technique. If workshop is not standalone but embedded inside a parent workshop, then this#update must be caught by parent workshop, and only the parent workshop is allowed to call geom#update.
- See Also:
setStandalone(boolean)
-
setStandalone
public void setStandalone(boolean flag)
Set flag if current workshop is running standalone (default), that is, the workshop is not embedded inside another parent workshop.If workshop is standalone then update of geometry is triggered by geom#update() and setUpdateSender() technique. If workshop is not standalone but embedded inside a parent workshop, then this#update must be caught by parent workshop, and only the parent workshop is allowed to call geom#update.
- See Also:
isStandalone()
-
getMode
public int getMode()
Gets the mode in which this workshop runs. Allows to select a debugging type mode.Most workshops do no use this method.
- Returns:
- either MODE_STANDARD for standard mode, or another mode.
- Since:
- JavaView 3.97.005
- See Also:
PjWorkshopIf.MODE_STANDARD
-
setMode
public void setMode(int mode)
Sets the mode in which this workshop runs. Allows to select a debugging type mode.- Specified by:
setModein interfacePjWorkshopIf- Parameters:
mode- either MODE_STANDARD for standard mode, or MODE_BUG for debugging operations.- Since:
- JavaView 3.97.005
- See Also:
PjWorkshopIf.MODE_STANDARD
-
isModal
public boolean isModal()
Check if workshop runs modal, that means only this workshop should be open.- Specified by:
isModalin interfacePjWorkshopIf- See Also:
setModal(boolean)
-
setModal
public void setModal(boolean modal)
Set flag if workshop runs modal, that means only this workshop should be open. If a workshop runs modal then it does not listen to changes of the registered geometries or displays. By default a workshop runs modal.- Specified by:
setModalin interfacePjWorkshopIf- See Also:
isModal()
-
reset
public void reset()
Reset this workshop to its initial state from which computations can start. This method calls init() but may use information about the registered geometry to do some further initialization.A subclass may also want to reset a geometry to some initial state useful for this workshop, although, not always is the initial state of the geometry equivalent to the original state of the geometry, for example, if material properties of the geometry must be set specifically for this workshop. Therefore, this superclass does not restore the original duplicate of the geometry.
The reset method often is different from the init() method of a workshop since often the workshop needs information about the registered geometry to get into a working initial state.
-
ok
public void ok()
Accept current version of the geometry as new version. Close workshop. The copy of the original geometry is ignored.Implementation in this class calls
close().
-
close
public void close()
Close workshop and remove itself as listener from various classes. The workshop will no longer be working after this call.Subclasses may remove workshop from geometry as update listener, or remove any temporary geometries from display, if necessary.
Implementation in this class simply calls
removeGeometry().
-
cancel
public void cancel()
Cancel operation of this workshop by resetting the assigned geometry, and finally close this workshop.If necessary, the duplicate of the original geometry is restored into the geometry. The update method of the geometry is called.
-
-
"