JavaView© v3.95.000

jv.viewer
Class PvViewer

java.lang.Object
  extended byjv.object.PsObject
      extended byjv.viewer.PvViewer
All Implemented Interfaces:
java.awt.event.ActionListener, java.lang.Cloneable, java.util.EventListener, java.awt.event.KeyListener, PsUpdateIf, PsViewerIf, PvViewerIf, java.io.Serializable, java.awt.event.WindowListener

public final class PvViewer
extends PsObject
implements PvViewerIf, java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.event.WindowListener, java.io.Serializable

Manages the 3d-display, control window, and list of projects. Central class in JavaView and usually created at the beginning of an applet or application.

Add one, or more, projects PjProject via method calls addProject. Once a project has been registered this way, it may be selected by selectProject(PjProject) to become the active project, i.e. its geometry is rendered in the display getDisplay() and its panels are accessible via the control window which can be shown via showPanel(int).

The default 3d-display is be obtained from PvViewer by getDisplay() for inclusion in a container, e.g. inside an applet or standalone frame.

The control window may be slightly configured by showPanel(int). It is created whenever a panel is requested, i.e. initially there are no inspector panels allocated.

See Also:
PsViewerIf, PjProject, addProject(PjProject), selectProject(PjProject), Serialized Form

Field Summary
 
Fields inherited from class jv.object.PsObject
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.object.PsViewerIf
ABOUT, ABOUT_APPLET, ADD_GEOMETRY, ADD_PROJECT, ANIMATION, AXIS, AXIS_X, AXIS_Y, AXIS_Z, CAMERA, CONFIG, CONSOLE, CONTROL, DISPLAY, EXPORT_BYU, EXPORT_EPS, EXPORT_FE, EXPORT_GIF, EXPORT_GIF_ANIM, EXPORT_HTML, EXPORT_JVD, EXPORT_JVX, EXPORT_JVX_SMALL, EXPORT_MGS, EXPORT_MPL, EXPORT_OBJ, EXPORT_OFF, EXPORT_PPM, EXPORT_PPM_ANIM, EXPORT_PS, EXPORT_STL, EXPORT_VRML, EXPORT_XML, HELP, IMPORT_DISK, IMPORT_JVD, IMPORT_VGP, INFO, LABEL, LICENSE, LIGHT, MATERIAL, MENU_FILE, MENU_FILE_CLOSE, MENU_FILE_EXIT, MENU_FILE_EXPORT, MENU_FILE_EXPORT_BYU, MENU_FILE_EXPORT_FE, MENU_FILE_EXPORT_GIF, MENU_FILE_EXPORT_JVD, MENU_FILE_EXPORT_JVX, MENU_FILE_EXPORT_JVX_SMALL, MENU_FILE_EXPORT_MGS, MENU_FILE_EXPORT_MPL, MENU_FILE_EXPORT_OBJ, MENU_FILE_EXPORT_OFF, MENU_FILE_EXPORT_PPM, MENU_FILE_EXPORT_STL, MENU_FILE_EXPORT_VRML, MENU_FILE_IMPORT, MENU_FILE_IMPORT_DISK, MENU_FILE_IMPORT_JVD, MENU_FILE_IMPORT_SER, MENU_FILE_IMPORT_VGP, MENU_FILE_NEW, MENU_FILE_NEW_DISPLAY, MENU_FILE_NEW_GEOMETRY, MENU_FILE_NEW_PROJECT, MENU_FILE_PRINT, MENU_FILE_PRINT_EPS, MENU_FILE_PRINT_PS, MENU_FILE_SUBMIT, MENU_HELP, MENU_HELP_ABOUT, MENU_HELP_APPLET, MENU_HELP_FONTS, MENU_HELP_LICENSE, MENU_HELP_RESOURCE, MENU_HELP_SYSTEM, MENU_HELP_VIEWER, MENU_INSPECTOR, MENU_INSPECTOR_AXIS, MENU_INSPECTOR_AXIS_X, MENU_INSPECTOR_AXIS_Y, MENU_INSPECTOR_AXIS_Z, MENU_INSPECTOR_CAMERA, MENU_INSPECTOR_DISPLAY, MENU_INSPECTOR_GEOMETRY, MENU_INSPECTOR_GEOMETRY_CONFIG, MENU_INSPECTOR_GEOMETRY_INFO, MENU_INSPECTOR_GEOMETRY_LABEL, MENU_INSPECTOR_GEOMETRY_MATERIAL, MENU_INSPECTOR_GEOMETRY_TEXTURE, MENU_INSPECTOR_GEOMETRY_VECTOR, MENU_INSPECTOR_LIGHT, MENU_INSPECTOR_OBJECT, MENU_INSPECTOR_OBJECT_CONFIG, MENU_INSPECTOR_OBJECT_INFO, MENU_INSPECTOR_OBJECT_MATERIAL, MENU_INSPECTOR_OBJECT_TEXTURE, MENU_INSPECTOR_PROJECT, MENU_METHOD, MENU_WINDOW, MENU_WINDOW_ANIMATION, MENU_WINDOW_CONSOLE, MENU_WINDOW_NETWORK, NEW_GEOMETRY, NEW_PROJECT, OBJECT, PRINT, PROJECT, RESOURCE, RSRC, TEXTURE, VECTOR
 
Constructor Summary
PvViewer()
          Constructor for JavaView's display and project manager if JavaView runs inside another program.
PvViewer(java.applet.Applet applet, java.awt.Frame frame)
          Constructor for JavaView's display and project manager JavaView runs in an applet or as standalone application.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          Internal method to catch action events from internal dialogs.
 boolean addDisplay(java.lang.String name, PvDisplayIf disp)
          Register a new display under a name.
 boolean addGeometry(java.lang.String category, java.lang.String name, java.lang.String className)
          Registers the name and class of a geometry class in the viewer in given category.
 boolean addProject(PjProject prj)
          Registers name and instance of a project in the viewer.
 boolean addProject(java.lang.String name, java.lang.String className, java.lang.String[] parmList)
          Registers the name and class of a project in the viewer in default category.
 boolean addProject(java.lang.String category, java.lang.String name, java.lang.String className, java.lang.String[] parmList)
          Registers the name and class of a project in the viewer in given category.
 void addProjects()
          Parses and adds all projects mentioned in the applet's parmInfo or Html page.
 void destroy()
          Called from an applet.destroy() method to perform clean-up when applet is destroyed.
 boolean export(int aDialog, java.lang.String fileName)
          Export geometries of active display or display setting without opening a dialog.
 boolean export(int aDialog, java.lang.String fileName, int width, int height)
          Export image file of currently active display with specified image size.
 java.applet.Applet getApplet()
          Get current applet.
 PjProject getCurrentProject()
          Get currently selected project.
 PsDialog getDialog(int dialog)
          Get dialog window.
 PvDisplayIf getDisplay()
          Get currently selected 3d-display, for example, for inclusion in an applet.
 PvDisplayIf[] getDisplays()
          Get array of registered displays.
 java.awt.Frame getFrame()
          Get current frame if running as application.
 PgGeometryIf getGeometry()
          Get current geometry whose inspector panels are displayed inside the control panel.
 PgGeometryIf getGeometry(java.lang.String name)
          Get geometry with given name.
 int getNumFrames()
          Get number of registered frame.
 java.awt.Panel getPanel(int aPanel)
          Make panels available outside our environment, i.e. outside control panel and outside our direct influence.
 java.lang.String getParameter(java.lang.String parmLabel)
          Get value of applet parameter.
 PjProject getProject(java.lang.String name)
          Get project instance with given name.
 java.util.Hashtable getProjectClasses()
          Get hashtable with name and class of projects registered in PvViewer.
 java.util.Hashtable getProjectInstances()
          Get hashtable with name and instance of projects allocated in PvViewer.
 java.lang.String getRecentGeometryFile()
          Deprecated. since JavaView 3.09.003, use PsJavaView#getFullFileName(int)
 PvDisplayIf getSelectedDisplay()
          Get currently selected display.
 boolean hasDisplay(PvDisplayIf disp)
          Determine whether a display is registered in the viewer.
 boolean hasProject(java.lang.String name)
          Check existence of a project instance with given name.
 boolean hideDialog(int dialog)
          Hides visible dialogs.
 void init()
          Creates an empty hashtable for all added projects, creates a display, and a nearly empty control window.
 boolean isEmbedded()
          Check if JavaView is embedded into another system.
 boolean isEnabledPanel(int aPanel)
          Check if menu entry of panel is enable or disable.
 void keyPressed(java.awt.event.KeyEvent event)
          Receives function key and strg-key events to show and hide panels.
 void keyReleased(java.awt.event.KeyEvent event)
          Event currently not handled.
 void keyTyped(java.awt.event.KeyEvent event)
          Event currently not handled.
 java.lang.String newDisplay()
          Create a new AWT display inside a new frame with menu bar.
 PvDisplayIf newDisplay(java.lang.String name)
          Deprecated. Use method newDisplay(String, boolean).
 PvDisplayIf newDisplay(java.lang.String name, boolean bFrame)
          Create a new empty AWT display which is optionally placed inside a new frame.
 PvDisplayIf newDisplay(java.lang.String name, boolean bFrame, boolean bSelect)
          Create a new empty AWT display which is optionally placed inside a new frame.
 PvControlMenu newMenuBar(java.awt.Frame frame)
          Create a new menubar and call setEnabled(boolean) depending on the current scene.
 void printParameter()
          Print all parameters and values to console.
 boolean removeDisplay(PvDisplayIf disp)
          Remove a registered display from list of registered displays.
 boolean removeProject(PjProject proj)
          Removes a registered project, project may be added again later.
 boolean removeProject(java.lang.String aName)
          Deprecated. since JavaView 2.92.000, use removeProject(PjProject)
 boolean selectDisplay(PvDisplayIf disp)
          Select a registered display to become the active display.
 boolean selectProject(PjProject prj)
          Selects a project to become the active project.
 boolean selectProject(java.lang.String aName)
          Deprecated. since JavaView 2.87, use selectProject(PjProject).
 void setEmbedded(boolean flag)
          Check if JavaView is embedded into another system.
 boolean setEnabledPanel(int aPanel, boolean cond)
          Enable or disable menu entry of panel.
 void setGeometry(PgGeometryIf geom)
          Set current geometry whose inspector panels are displayed inside the control panel.
 void setRecentGeometryFile(java.lang.String model)
          Deprecated. since JavaView 3.09.003, use PsJavaView#setFullFileName(int, String)
 boolean showDialog(int aDialog)
          Show dialogs as separate frames.
 boolean showPanel(int aPanel)
          Make a panel visible if the control window has been created already.
 void start()
          Depending on applet parameter show control panel and call start method of current project.
 void stop()
          Dispose open dialogs and invoke stop method of projects.
 boolean update(java.lang.Object object)
          Just a dummy routine to catch update() calls of stand-alone projects.
 void windowActivated(java.awt.event.WindowEvent event)
          Select display if window is instance of class Frame containing a display.
 void windowClosed(java.awt.event.WindowEvent event)
          No method body, just declared to fulfill interface WindowListener.
 void windowClosing(java.awt.event.WindowEvent event)
          Exit the application, or, if run as applet, close window.
 void windowDeactivated(java.awt.event.WindowEvent event)
          No method body, just declared to fulfill interface WindowListener.
 void windowDeiconified(java.awt.event.WindowEvent event)
          No method body, just declared to fulfill interface WindowListener.
 void windowIconified(java.awt.event.WindowEvent event)
          No method body, just declared to fulfill interface WindowListener.
 void windowOpened(java.awt.event.WindowEvent event)
          No method body, just declared to fulfill interface WindowListener.
 
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
 

Constructor Detail

PvViewer

public PvViewer()
Constructor for JavaView's display and project manager if JavaView runs inside another program. Use PvViewer(Applet, Frame) when writing JavaView based applets or applications.

See Also:
PvViewer(Applet, Frame)

PvViewer

public PvViewer(java.applet.Applet applet,
                java.awt.Frame frame)
Constructor for JavaView's display and project manager JavaView runs in an applet or as standalone application. If JavaView runs as applet then the applet is queried for system properties to be stored in PsConfig at a central place.

This constructor should be used if JavaView runs inside an applet or as standalone application.

Applications and applet should invoke the start() method which shows the control panel if requested and invokess the start method of the current project. On exit, applications should call the stop() method to stop any running animations.

The constructor checks license if running as application.

Parameters:
applet - Parent applet
frame - Parent frame
See Also:
PsConfig.init(Applet, PsViewerIf, Frame)
Method Detail

init

public void init()
Creates an empty hashtable for all added projects, creates a display, and a nearly empty control window. Registers display in control window.

Overrides:
init in class PsObject

getApplet

public java.applet.Applet getApplet()
Get current applet. If running as application method returns applet inside frame.

Specified by:
getApplet in interface PvViewerIf

getFrame

public java.awt.Frame getFrame()
Get current frame if running as application.

Specified by:
getFrame in interface PvViewerIf

getParameter

public java.lang.String getParameter(java.lang.String parmLabel)
Get value of applet parameter. Calling this method avoids multiple getParameter(String) calls.
The first call to getParameter(String) tries to read all parameters specified in m_applet.m_info from Html page.

Reads parameters from the applet's HTML page, and from command line of applications. Format on Html page: .
Format on command line: javaview label=some_value.

If the parameter is not found then an empty String "" is return. This behavior was introduced to avoid null pointer checks in application programs.

Specified by:
getParameter in interface PvViewerIf
Returns:
value of string if string found, else an empty String "".
See Also:
Applet.getParameterInfo(), Applet.getParameter(String), PsMainFrame.PsMainFrame(Component, String, String []), PsMainFrame.PsMainFrame(Component, String []), PsMainFrame.PsMainFrame(String, String [])

printParameter

public void printParameter()
Print all parameters and values to console.

See Also:
Applet.getParameter(String)

addGeometry

public boolean addGeometry(java.lang.String category,
                           java.lang.String name,
                           java.lang.String className)
Registers the name and class of a geometry class in the viewer in given category. Later the geometry must be selected by name to be instantiated and to become the active geometry in the viewer.

Parameters:
category - Unique name of category used to group geometrys
name - Unique name of geometry, used for identification and selection
className - Class name of geometry, used for creation
See Also:
getGeometry(String)

getGeometry

public PgGeometryIf getGeometry(java.lang.String name)
Get geometry with given name. If geometry is not found in geometry list but there exists a class registered under the same name, then try to create a geometry instance from this geometry class.

See Also:
addGeometry(String, String, String)

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Internal method to catch action events from internal dialogs.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Since:
JavaView 2.45

addProjects

public void addProjects()
Parses and adds all projects mentioned in the applet's parmInfo or Html page. Their names are added to the list of projects accessible via menu FILE->LOAD

See Also:
addProject(PjProject)

addProject

public boolean addProject(java.lang.String category,
                          java.lang.String name,
                          java.lang.String className,
                          java.lang.String[] parmList)
Registers the name and class of a project in the viewer in given category. Later the project must be selected by name to be instantiated and to become the active project in the environment. This method allows to pass a list of parameter strings to the project which may be parsed by the project, e.g. used to receive initial values from an Html page.

Specified by:
addProject in interface PsViewerIf
Parameters:
category - Unique name of category used to group projects
name - Unique name of project, used for identification and selection
className - Class name of project, used for creation
parmList - List of parameters, may be null.
See Also:
addProject(String, String, String []), addProject(PjProject), selectProject(PjProject)

addProject

public boolean addProject(java.lang.String name,
                          java.lang.String className,
                          java.lang.String[] parmList)
Registers the name and class of a project in the viewer in default category. Later the project must be selected by name to be instantiated and to become the active project in the environment. This method allows to pass a list of parameter strings to the project which may be parsed by the project, e.g. used to receive initial values from an Html page.

Specified by:
addProject in interface PvViewerIf
Parameters:
name - Unique name of project, used for identification and selection
className - Class name of project, used for creation
parmList - List of parameters, may be null.
See Also:
addProject(String, String, String, String []), addProject(PjProject), selectProject(PjProject)

addProject

public boolean addProject(PjProject prj)
Registers name and instance of a project in the viewer. Later the project must be selected by name to become the active project in the environment. This method has no slot to pass a parameter list to the project since it is assumed the project instance has been set up by the user somewhere else.

Returns:
false if argument is missing, has no name, or is already registered.
See Also:
addProject(String, String, String []), selectProject(PjProject)

hasProject

public boolean hasProject(java.lang.String name)
Check existence of a project instance with given name. If project is not found in project list, return false. Note, this method queries for instances of projects and not for project class names.

Specified by:
hasProject in interface PvViewerIf
See Also:
getProject(String)

getCurrentProject

public PjProject getCurrentProject()
Get currently selected project.

See Also:
getProject(String)

getProject

public PjProject getProject(java.lang.String name)
Get project instance with given name. If project is not found in project list but there exists a class registered under the same name, then try to create a project instance from this project class.

See Also:
addProject(PjProject), addProject(String, String, String [])

getProjectClasses

public java.util.Hashtable getProjectClasses()
Get hashtable with name and class of projects registered in PvViewer. The key is the project's unique long name, and the value is the project's class.

See Also:
getProjectInstances()

getProjectInstances

public java.util.Hashtable getProjectInstances()
Get hashtable with name and instance of projects allocated in PvViewer. The key is the project's unique long name, and the value is an instance of the project. If the project has not yet been selected, then the instance does not exist.

See Also:
getProjectClasses()

removeProject

public boolean removeProject(java.lang.String aName)
Deprecated. since JavaView 2.92.000, use removeProject(PjProject)

Removes a registered project, project must be added again for further use.

Project must be explicitly disposed using PjProject#dispose after calling the present method. Explicit disposal allows the individual project to clean-up its allocated resources.

Specified by:
removeProject in interface PvViewerIf
See Also:
PvViewerIf.hasProject(String), PvViewerIf.selectProject(String)

removeProject

public boolean removeProject(PjProject proj)
Removes a registered project, project may be added again later.

Project must be explicitly disposed using PjProject#dispose after calling the present method. Explicit disposal allows the individual project to clean-up its allocated resources.


selectProject

public boolean selectProject(PjProject prj)
Selects a project to become the active project. Selection may be done via a direct call or interactively by choosing from the menu FILE->LOAD. Each project must be added to the viewer before it becomes selectable. If project was added by name then project is instantiated.

Current display of PvViewer is added and selected in project. The method start() of the project is invoked to start, e.g. animations. The project is made the current project in the control panel, if control frame exists already.

Parameters:
prj - will become the new active project.
Returns:
true if project was successfully selected
See Also:
addProject(PjProject)

selectProject

public boolean selectProject(java.lang.String aName)
Deprecated. since JavaView 2.87, use selectProject(PjProject).

Selects a project to become the active project. Selection may be done via a direct call or interactively by choosing from the menu FILE->LOAD. Each project must be added to the viewer before it becomes selectable. If project was added by name then project is instantiated.

Current display of PvViewer is added and selected in project. The method start() of the project is invoked to start, e.g. animations. The project is made the current project in the control panel, if control frame exists already.

Specified by:
selectProject in interface PvViewerIf
See Also:
addProject(PjProject)

getGeometry

public PgGeometryIf getGeometry()
Get current geometry whose inspector panels are displayed inside the control panel.

Since:
JavaView v.3.04.001

setGeometry

public void setGeometry(PgGeometryIf geom)
Set current geometry whose inspector panels are displayed inside the control panel.

Specified by:
setGeometry in interface PvViewerIf

update

public boolean update(java.lang.Object object)
Just a dummy routine to catch update() calls of stand-alone projects. Instead of letting a project ask itself whether it has a parent other than this PvViewer we just let it update its parent even if we do not react if the parent is this PvViewer.

Specified by:
update in interface PsUpdateIf
Overrides:
update in class PsObject
See Also:
PjProject

showDialog

public boolean showDialog(int aDialog)
Show dialogs as separate frames. Possible arguments jv.object.PsViewerIf.ABOUT etc.
Possible arguments for dialogs are PsViewerIf.ABOUT, PsViewerIf.EXPORT_PS etc, see static variables in PsViewerIf.

Specified by:
showDialog in interface PvViewerIf
Parameters:
aDialog - Dialog to be shown, see jv.object.PsViewerIf.
Returns:
Dialog true if success, false if dialog class not found.
See Also:
PsViewerIf, hideDialog(int)

export

public boolean export(int aDialog,
                      java.lang.String fileName,
                      int width,
                      int height)
Export image file of currently active display with specified image size. Possible arguments for dialogs are PsViewerIf.EXPORT_PPM, PsViewerIf.EXPORT_PS etc, see static variables EXPORT_[type] in PsViewerIf.

Specified by:
export in interface PsViewerIf
Parameters:
aDialog - Id of a dialog determining the file format
fileName - Full file name
width - width of image
height - height of image, or -1 to keep aspect ratio.
Returns:
boolean true if success, false if string data could not be generated.

getRecentGeometryFile

public java.lang.String getRecentGeometryFile()
Deprecated. since JavaView 3.09.003, use PsJavaView#getFullFileName(int)

Get the name including full path of the recently used geometry file. This information will be used as the default offer in some dialogs, for example, when exporting a geometry.

Specified by:
getRecentGeometryFile in interface PvViewerIf
Since:
JavaView 2.43

setRecentGeometryFile

public void setRecentGeometryFile(java.lang.String model)
Deprecated. since JavaView 3.09.003, use PsJavaView#setFullFileName(int, String)

Set the name including full path of the recently used geometry file. This information will be used as the default offer in some dialogs, for example, when exporting a geometry.

Specified by:
setRecentGeometryFile in interface PvViewerIf
Since:
JavaView 2.30

getDialog

public PsDialog getDialog(int dialog)
Get dialog window. Possible arguments for dialogs are currently jv.object.PsViewerIf#ANIMATION, jv.object.PsViewerIf#CONSOLE. See static variables in PsViewerIf.

Specified by:
getDialog in interface PvViewerIf
Parameters:
dialog - Identifier of a dialog, see jv.object.PsViewerIf
Returns:
requested dislog, or null if not available.
See Also:
PsViewerIf, hideDialog(int), showDialog(int)

hideDialog

public boolean hideDialog(int dialog)
Hides visible dialogs. Possible arguments for dialogs are currently jv.object.PsViewerIf#ANIMATION, jv.object.PsViewerIf#CONSOLE, jv.object.PsViewerIf#CONTROL, jv.object.PsViewerIf#HELP. See static variables in PsViewerIf.

Specified by:
hideDialog in interface PvViewerIf
Parameters:
dialog - Identifier of a dialog
Returns:
true if success, false if dialog not found
See Also:
PsViewerIf, showDialog(int)

newDisplay

public java.lang.String newDisplay()
Create a new AWT display inside a new frame with menu bar. Method is invoked from menus, name of display is automatically chosen. All geometries of currently selected display are added to new display. Display becomes the selected display in viewer.

Projection mode is used as in current display.

Note: Method is currently only used by PvDisplay, and method is included in the interface jv.project.PvViewerIf to separate PvDisplay from PvViewer.

Specified by:
newDisplay in interface PvViewerIf
Returns:
Automatically chosen name of new display
See Also:
newDisplay(String, boolean), addDisplay(String, PvDisplayIf)

newDisplay

public PvDisplayIf newDisplay(java.lang.String name)
Deprecated. Use method newDisplay(String, boolean).

Create a new empty AWT display inside a new frame. The frame is shown at a default position and with default size. The display becomes the selected display in this viewer.

This method rescales and positions displays on the screen depending on the current number of displays.

Specified by:
newDisplay in interface PvViewerIf
Parameters:
name - Name of new display. If name is null, then default name is chosen.
Returns:
Newly created display
See Also:
PvViewerIf.newDisplay(String, boolean)

newDisplay

public PvDisplayIf newDisplay(java.lang.String name,
                              boolean bFrame,
                              boolean bSelect)
Create a new empty AWT display which is optionally placed inside a new frame. Optionally, this display becomes the selected display in this viewer.

If a frame is allocated then the frame is not displayed and must be made visible in the application. The idea behind "not showing the frame" is as follows: if the frame is shown immediately then PvViewer must use a default window size and position. If the user would like to adjust this size, then he can do so only after the frame is already visible. Therefore, I do not show the frame in order to avoid instantaneous resizing.

The display is added to the center of the frame. The frame may be obtained from the display via PvDisplayIf#getFrame().

Specified by:
newDisplay in interface PvViewerIf
Parameters:
name - Name of new display. If name is null, then default name is chosen.
bFrame - If true then allocate a frame and add display to center.
bSelect - If true then select this display as current display.
Returns:
Newly created display
See Also:
newDisplay(String, boolean), addDisplay(String, PvDisplayIf), PvDisplayIf.getFrame()

newDisplay

public PvDisplayIf newDisplay(java.lang.String name,
                              boolean bFrame)
Create a new empty AWT display which is optionally placed inside a new frame. The display becomes the selected display in this viewer.

Method simply invokes: return newDisplay(name, bFrame, true);

Specified by:
newDisplay in interface PvViewerIf
Parameters:
name - Name of new display. If name is null, then default name is chosen.
bFrame - If true then allocate a frame and add display to center.
Returns:
Newly created display
See Also:
newDisplay(String, boolean, boolean), addDisplay(String, PvDisplayIf), PvDisplayIf.getFrame()

getDisplay

public PvDisplayIf getDisplay()
Get currently selected 3d-display, for example, for inclusion in an applet. If no display exists, then an instance of PvDisplay is allocated and returned. This method is a convenient shortcut to create an instance of PvDisplay and register and select it in the viewer.

Specified by:
getDisplay in interface PvViewerIf
Returns:
PvDisplayIf the currently selected 3d-display
See Also:
getDisplays(), newDisplay(String, boolean, boolean), addDisplay(String, PvDisplayIf)

getDisplays

public PvDisplayIf[] getDisplays()
Get array of registered displays.

Specified by:
getDisplays in interface PvViewerIf
Returns:
array of registered displays
See Also:
getDisplay()

hasDisplay

public boolean hasDisplay(PvDisplayIf disp)
Determine whether a display is registered in the viewer.

Specified by:
hasDisplay in interface PvViewerIf
Parameters:
disp - display to be checked
Returns:
false if display is not registered.
See Also:
addDisplay(String, PvDisplayIf)

addDisplay

public boolean addDisplay(java.lang.String name,
                          PvDisplayIf disp)
Register a new display under a name. Name must be unique among displays. Name will become the name of the display which can be obtained with display#getName().

This viewer is registered as parent and key listener of the display.

Specified by:
addDisplay in interface PvViewerIf
Parameters:
name - name of display
disp - display to be added
Returns:
false if same name already exists.
See Also:
hasDisplay(PvDisplayIf), selectDisplay(PvDisplayIf)

removeDisplay

public boolean removeDisplay(PvDisplayIf disp)
Remove a registered display from list of registered displays.

This viewer is removed as key listener of the display.

Specified by:
removeDisplay in interface PvViewerIf
Parameters:
disp - display to be removed
Returns:
false if display is not registered.
See Also:
addDisplay(String, PvDisplayIf), hasDisplay(PvDisplayIf)

selectDisplay

public boolean selectDisplay(PvDisplayIf disp)
Select a registered display to become the active display.

The first selected display becomes the main display to which 'New Projects' are loaded.

Specified by:
selectDisplay in interface PvViewerIf
Parameters:
disp - display to selected
Returns:
false if display is not registered.
See Also:
addDisplay(String, PvDisplayIf), hasDisplay(PvDisplayIf)

getSelectedDisplay

public PvDisplayIf getSelectedDisplay()
Get currently selected display.


getNumFrames

public int getNumFrames()
Get number of registered frame. Number is used for automatic numbering when creating new frames from menu.

Returns:
number of registered frames

windowOpened

public void windowOpened(java.awt.event.WindowEvent event)
No method body, just declared to fulfill interface WindowListener.

Specified by:
windowOpened in interface java.awt.event.WindowListener

windowClosed

public void windowClosed(java.awt.event.WindowEvent event)
No method body, just declared to fulfill interface WindowListener.

Specified by:
windowClosed in interface java.awt.event.WindowListener

windowDeiconified

public void windowDeiconified(java.awt.event.WindowEvent event)
No method body, just declared to fulfill interface WindowListener.

Specified by:
windowDeiconified in interface java.awt.event.WindowListener

windowIconified

public void windowIconified(java.awt.event.WindowEvent event)
No method body, just declared to fulfill interface WindowListener.

Specified by:
windowIconified in interface java.awt.event.WindowListener

windowDeactivated

public void windowDeactivated(java.awt.event.WindowEvent event)
No method body, just declared to fulfill interface WindowListener.

Specified by:
windowDeactivated in interface java.awt.event.WindowListener

windowActivated

public void windowActivated(java.awt.event.WindowEvent event)
Select display if window is instance of class Frame containing a display.

Specified by:
windowActivated in interface java.awt.event.WindowListener

windowClosing

public void windowClosing(java.awt.event.WindowEvent event)
Exit the application, or, if run as applet, close window.

Specified by:
windowClosing in interface java.awt.event.WindowListener

showPanel

public boolean showPanel(int aPanel)
Make a panel visible if the control window has been created already. The panel appears either inside the control window or as separate frames, e.g. the control window appears as frame, and project, display, camera, and object panels as panels inside control frame.

If the control window has not been created yet then the requested panel id is stored and shown when the control window becomes visible.

If panel has already been requested by a call to getPanel(int) then a call to showPanel is void and returns false.

Specified by:
showPanel in interface PvViewerIf
Parameters:
aPanel - Id of panel to be shown, see PsViewerIf for possible values
Returns:
Panel true if success, false if panel not found or used outside via method getPanel(int).
See Also:
getPanel(int)

setEnabledPanel

public boolean setEnabledPanel(int aPanel,
                               boolean cond)
Enable or disable menu entry of panel.

Specified by:
setEnabledPanel in interface PvViewerIf
Parameters:
aPanel - Id of panel to be enabled, see PsViewerIf for possible values
cond - true enables this panel's menu entry; if false, disables it.
Returns:
true if panel exists, otherwise false.
See Also:
isEnabledPanel(int), showPanel(int)

isEnabledPanel

public boolean isEnabledPanel(int aPanel)
Check if menu entry of panel is enable or disable.

Parameters:
aPanel - Id of panel to be enabled, see PsViewerIf for possible values
Returns:
true if menu entry of panel is enabled.
See Also:
setEnabledPanel(int, boolean)

getPanel

public java.awt.Panel getPanel(int aPanel)
Make panels available outside our environment, i.e. outside control panel and outside our direct influence. E.g. an applet may include a panel or it may create a seperate frame for the panel.
If a panel is requested via this method, then it will no longer be selectable via its menu entry in the control window neither by a call to method showPanel(int). Menu entries will be disabled but still visible.

Specified by:
getPanel in interface PvViewerIf
Parameters:
aPanel - Id of requested panel, see PsViewerIf for possible values
Returns:
Requested panel if it exists, otherwise null.
See Also:
showPanel(int)

isEmbedded

public boolean isEmbedded()
Check if JavaView is embedded into another system. Setting the embeddedness flag allows other software to switch off the System.exit() call when JavaView is exited, and to take over control then without being exited itself. The default return value is false.

Returns:
true if the user has set embeddedness
See Also:
setEmbedded(boolean)

setEmbedded

public void setEmbedded(boolean flag)
Check if JavaView is embedded into another system. Setting the embeddedness flag allows other software to switch off the System.exit() call when JavaView is exited, and to take over control then without being exited itself. The default return value is false.

See Also:
setEmbedded(boolean)

keyTyped

public void keyTyped(java.awt.event.KeyEvent event)
Event currently not handled.

Specified by:
keyTyped in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent event)
Event currently not handled.

Specified by:
keyReleased in interface java.awt.event.KeyListener

keyPressed

public void keyPressed(java.awt.event.KeyEvent event)
Receives function key and strg-key events to show and hide panels. The original F1 key is received by the display and has forward it. The F2 key is received by the control window when pressed right after the F1 key since input focus passes over to control window once it opens. If display receives focus again then F2 arrives here.

Disable the following request since this would bring the display to front and hide the just opened panel behind the display. Simulatenously we disable the requestFocus() in PvDisplay when the mouse focus moves over the display.

Specified by:
keyPressed in interface java.awt.event.KeyListener

destroy

public void destroy()
Called from an applet.destroy() method to perform clean-up when applet is destroyed. Here we just close and dispose all control windows.

Method is synchronized with start(), stop() and destroy() to avoid synchronization problems when applets are opened and closed very fast.

Specified by:
destroy in interface PvViewerIf

start

public void start()
Depending on applet parameter show control panel and call start method of current project. Method should be called sometimes after the viewer has been created and projects have been registered in order to invoke the start method of the current project. Usually, this method is invoked when the start method of an applet is called.

Method is synchronized with start(), stop() and destroy() to avoid synchronization problems when applets are opened and closed very fast.

Specified by:
start in interface PvViewerIf
See Also:
PjProject.start()

stop

public void stop()
Dispose open dialogs and invoke stop method of projects. E.g. close control window if shown, and stop running animations.

Method is synchronized with start(), stop() and destroy() to avoid synchronization problems when applets are opened and closed very fast.

Specified by:
stop in interface PvViewerIf
See Also:
PjProject.stop()

export

public boolean export(int aDialog,
                      java.lang.String fileName)
Export geometries of active display or display setting without opening a dialog. If a file format allows a single geometry only then the currently active geometry is exported, otherwise all visible geometries are exported. Possible arguments for file formats are PsViewerIf.EXPORT_JVX etc, see static variables EXPORT_[type] in PsViewerIf.

Specified by:
export in interface PsViewerIf
Parameters:
aDialog - ID of dialog determining the file format
fileName - full file name
Returns:
boolean true if success, false if string data could not be generated.

newMenuBar

public PvControlMenu newMenuBar(java.awt.Frame frame)
Create a new menubar and call setEnabled(boolean) depending on the current scene. The menubar is added to the list of menubars handled by PvViewer. The returned menubar must be added to the argument frame by the calling program.

HACK: should handle the closing of the frame using a listener interface. Currently the menu will not have a CLOSE entry if argument frame==null.

Parameters:
frame - parent frame of the menubar which will be closed on CLOSE.
Returns:
menubar which must be included in a frame somewhere else.

JavaView© v3.95.000

The software JavaView© is copyright protected. All Rights Reserved.