jv.project

## Interface PvViewerIf

- All Superinterfaces:
    java.util.EventListener, java.awt.event.KeyListener, PsViewerIf
  All Known Implementing Classes:
    PvViewer

      public interface PvViewerIf
      extends PsViewerIf

  Interface for a viewer which manages the 3d-display, control window, and list of projects. PvViewer is a 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((String, String, String []))`, `addProject(String, String, String, String [])`, or `addProject(PjProject)`. Once a project has been registered this way, it may be selected by `selectProject(String)` to become the active project, i.e. its geometry is rendered in the display `getDisplay()`, and its panels may be made visible via the method `showPanel(int)`.

  The 3d-display is be obtained from PvViewerIf by `getDisplay()` and includable in a container, e.g. inside the applet or standalone frame.

  The control window may be slightly configured by `showPanel(int)`.

  See Also:
    `PvViewer`, `PsViewerIf`

- - ### Field Summary

    - ### Fields inherited from interface jv.object.PsViewerIf

      `ABOUT, ABOUT_APPLET, ADD_GEOMETRY, ADD_PROJECT, ANIMATION, AXIS, AXIS_X, AXIS_Y, AXIS_Z, BOUNDARY, CAMERA, CONFIG, CONSOLE, CONTROL, DISPLAY, EXPORT_BUG, EXPORT_BYU, EXPORT_DXF, EXPORT_EPS, EXPORT_FE, EXPORT_GIF, EXPORT_GIF_ANIM, EXPORT_HTML, EXPORT_JPG, EXPORT_JPG_ANIM, EXPORT_JVD, EXPORT_JVX, EXPORT_JVX_SMALL, EXPORT_JVZ, EXPORT_MA, EXPORT_MGS, EXPORT_MPL, EXPORT_MULTIPLE, EXPORT_OBJ, EXPORT_OFF, EXPORT_PDF, EXPORT_PLY, EXPORT_PNG, EXPORT_POV, EXPORT_PPM, EXPORT_PPM_ANIM, EXPORT_PS, EXPORT_STL, EXPORT_U3D, EXPORT_VAL, EXPORT_VALIDATE, EXPORT_VRML, EXPORT_WRL, EXPORT_XML, HELP, IMPORT_DISK, IMPORT_JVD, IMPORT_VGP, INFO, LABEL, LICENSE, LIGHT, MATERIAL, MENU_DISPLAY_ADD_ELEMENT, MENU_DISPLAY_ADD_VERTEX, MENU_DISPLAY_DELETE_GEOMETRY, MENU_DISPLAY_DISPLAY_PICK, MENU_DISPLAY_DRAWING, MENU_DISPLAY_INITIAL_PICK, MENU_DISPLAY_MARK_ELEMENT, MENU_DISPLAY_MARK_VERTEX, MENU_DISPLAY_ORBIT, MENU_DISPLAY_PICK_VERTEX, MENU_DISPLAY_SCALE, MENU_DISPLAY_SCALE_RECT, MENU_DISPLAY_TRANSLATE, MENU_DISPLAY_TRANSLATE_Z, MENU_DISPLAY_UNMARK_ELEMENT, MENU_DISPLAY_UNMARK_VERTEX, MENU_DISPLAY_VERTICAL, 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_JPG, MENU_FILE_EXPORT_JVD, MENU_FILE_EXPORT_JVX, MENU_FILE_EXPORT_JVX_SMALL, MENU_FILE_EXPORT_MA, MENU_FILE_EXPORT_MGS, MENU_FILE_EXPORT_MPL, MENU_FILE_EXPORT_OBJ, MENU_FILE_EXPORT_OFF, MENU_FILE_EXPORT_PDF, MENU_FILE_EXPORT_PLY, MENU_FILE_EXPORT_POV, MENU_FILE_EXPORT_PPM, MENU_FILE_EXPORT_STL, MENU_FILE_EXPORT_U3D, MENU_FILE_EXPORT_VRML, MENU_FILE_EXPORT_WRL, 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_BOUNDARY, 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_SEPARATOR, MENU_WINDOW, MENU_WINDOW_ANIMATION, MENU_WINDOW_CONSOLE, MENU_WINDOW_NETWORK, NEW_GEOMETRY, NEW_PROJECT, OBJECT, PRINT, PROJECT, RESOURCE, RSRC, TEXTURE, VECTOR`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addDisplay(java.lang.String name, PvDisplayIf disp)` Register a new display.
    `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.
    `void` | `destroy()` Called from an applet.destroy() method to perform clean-up when applet gets destroyed.
    `java.applet.Applet` | `getApplet()` Get current applet.
    `PsDialog` | `getDialog(int dialog)` Get dialog window.
    `PvDisplayIf` | `getDisplay()` Make default display available outside, e.g. for inclusion in applet window.
    `PvDisplayIf[]` | `getDisplays()` Get array of registered displays.
    `java.awt.Frame` | `getFrame()` Get current frame if running as application.
    `java.awt.Panel` | `getPanel(int panel)` 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.
    `java.lang.String` | `getRecentGeometryFile()` Deprecated. since JavaView 3.09.003, use PsJavaView.getFullFileName(int)
    `boolean` | `hasDisplay(PvDisplayIf disp)` Check for a registered display by display instance.
    `boolean` | `hasProject(java.lang.String name)` Check existence of a project instance with given name.
    `boolean` | `hideDialog(int dialog)` Hide visible dialog.
    `java.lang.String` | `newDisplay()` Create a new AWT display inside a new frame.
    `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.
    `boolean` | `removeDisplay(PvDisplayIf disp)` Remove a registered display from list of registered displays.
    `boolean` | `removeProject(java.lang.String aName)` Deprecated. since JavaView 2.92.000, use PvViewer#removeProject(PjProject)
    `boolean` | `selectDisplay(PvDisplayIf disp)` Select a registered display to become the active display.
    `boolean` | `selectProject(java.lang.String aName)` Selects a project to become the active project.
    `boolean` | `setEnabledPanel(int panel, boolean cond)` Enable or disable menu entry of panel.
    `void` | `setGeometry(PgGeometryIf geom)` Set current geometry whose inspector panels are display inside the control panel.
    `void` | `setRecentGeometryFile(java.lang.String model)` Deprecated. since JavaView 3.09.003, use PsJavaView.setFullFileName(int, String)
    `boolean` | `showDialog(int dialog)` Show dialogs as separate frames.
    `boolean` | `showPanel(int panel)` Make panels visible.
    `void` | `start()` Start viewer, call start method of current project, and show control panel if requested.
    `void` | `stop()` Stop viewer, call stop() method of current project, and close control panel if shown.

    - ### Methods inherited from interface jv.object.PsViewerIf

      `addProject, export, export`

    - ### Methods inherited from interface java.awt.event.KeyListener

      `keyPressed, keyReleased, keyTyped`

- - ### Method Detail

    - #### getApplet

          java.applet.Applet getApplet()

      Get current applet. If running as application method returns applet inside frame.

    - #### getFrame

          java.awt.Frame getFrame()

      Get current frame if running as application.

    - #### getParameter

          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() tries to read all parameters specified in m_applet.m_info from Html page. Reads parameters from the applet's HTML page. Format on Html page: ``
      Returns:
        value of string if string found, else null
      See Also:
        `Applet.getParameterInfo()`, `Applet.getParameter(String)`

    - #### getRecentGeometryFile

          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.
      Since:
        JavaView 2.43

    - #### setRecentGeometryFile

          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.
      Since:
        JavaView 2.30

    - #### addProject

          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.
      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:
        `PsViewerIf.addProject(String, String, String, String [])`, `hasProject(String)`, `selectProject(String)`

    - #### hasProject

          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.
      See Also:
        `hasProject(String)`, `removeProject(String)`, `selectProject(String)`

    - #### removeProject

          boolean removeProject(java.lang.String aName)

      Deprecated. since JavaView 2.92.000, use PvViewer#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.

      See Also:
        `hasProject(String)`, `selectProject(String)`

    - #### selectProject

          boolean selectProject(java.lang.String aName)

      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.
      See Also:
        `hasProject(String)`, `removeProject(String)`

    - #### getDisplay

          PvDisplayIf getDisplay()

      Make default display available outside, e.g. for inclusion in applet window. Just include the display inside the applet in a container.
      Returns:
        PvDisplayIf the default 3d-display
      See Also:
        `getDisplays()`

    - #### getDisplays

          PvDisplayIf[] getDisplays()

      Get array of registered displays.
      Returns:
        array of registered displays
      See Also:
        `getDisplays()`

    - #### newDisplay

          java.lang.String newDisplay()

      Create a new AWT display inside a new frame. 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. Note: Method is currently only used by PvDisplay, and method is included in this interface to separate PvDisplay from PvViewer.
      Returns:
        Automatically chosen name of new display
      See Also:
        `newDisplay(String, boolean)`, `newDisplay(String name, boolean bFrame, boolean bSelect)`

    - #### newDisplay

          PvDisplayIf newDisplay(java.lang.String name)

      Deprecated. Use method newDisplay(String, boolean)
      Add new AWT display in a new frame.
      Parameters:
        `name` - Name of new display. If name is null, then default name is chosen.
      Returns:
        New display
      See Also:
        `newDisplay(String, boolean)`

    - #### newDisplay

          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()`.

      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:
        New display
      See Also:
        `newDisplay()`, `newDisplay(String, boolean)`, `addDisplay(String, PvDisplayIf)`, `PvDisplayIf.getFrame()`

    - #### newDisplay

          PvDisplayIf newDisplay(java.lang.String name,
                               boolean bFrame)

      Create a new empty AWT display which is optionally placed inside a new frame. Display becomes the selected display in viewer.

      If a frame is allocated then the frame is not displayed and must be made visible in the application. The display is added to the center of the frame. The frame may be obtained from the display via `PvDisplayIf#getFrame()`.

      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:
        New display
      See Also:
        `newDisplay()`, `newDisplay(String name, boolean bFrame, boolean bSelect)`, `addDisplay(String, PvDisplayIf)`, `PvDisplayIf.getFrame()`

    - #### hasDisplay

          boolean hasDisplay(PvDisplayIf disp)

      Check for a registered display by display instance.
      Parameters:
        `disp` - display to be checked
      Returns:
        `false` if display is not registered.
      See Also:
        `addDisplay(String, PvDisplayIf)`

    - #### addDisplay

          boolean addDisplay(java.lang.String name,
                           PvDisplayIf disp)

      Register a new display.
      Parameters:
        `name` - name of display
        `disp` - display to be added
      Returns:
        `false` if same name already exists.
      See Also:
        `hasDisplay(PvDisplayIf)`, `selectDisplay(PvDisplayIf)`

    - #### removeDisplay

          boolean removeDisplay(PvDisplayIf disp)

      Remove a registered display from list of registered displays.
      Parameters:
        `disp` - display to be removed
      Returns:
        `false` if display is not registered.
      See Also:
        `addDisplay(String, PvDisplayIf)`, `hasDisplay(PvDisplayIf)`

    - #### selectDisplay

          boolean selectDisplay(PvDisplayIf disp)

      Select a registered display to become the active display.
      Parameters:
        `disp` - display to selected
      Returns:
        `false` if display is not registered.
      See Also:
        `addDisplay(String, PvDisplayIf)`, `hasDisplay(PvDisplayIf)`

    - #### showDialog

          boolean showDialog(int dialog)

      Show dialogs as separate frames. Possible arguments jv.object.PsViewerIf.ABOUT etc.
      Possible arguments for dialogs are PsViewerIf.ABOUT, PsViewerIf.EXPORT_JVX etc, see static variables in `PsViewerIf`.
      Parameters:
        `dialog` - Integer identifier of dialog to be shown
      Returns:
        true if success, false if dialog class not found.
      See Also:
        `getDialog(int)`, `hideDialog(int)`

    - #### getDialog

          PsDialog getDialog(int dialog)

      Get dialog window. Possible arguments jv.object.PsViewerIf.ABOUT,...
      Possible arguments for dialogs are currently `jv.object.PsViewerIf#ANIMATION`, `jv.object.PsViewerIf#CONSOLE`. See static variables in `PsViewerIf`.
      Parameters:
        `dialog` - Integer identifier of dialog to be received
      Returns:
        Requested dialog, or null.
      See Also:
        `hideDialog(int)`, `showDialog(int)`

    - #### hideDialog

          boolean hideDialog(int dialog)

      Hide visible dialog. For possible arguments see `jv.object.PsViewerIf#ABOUT`,... 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`.
      Parameters:
        `dialog` - Integer identifier of dialog to be hidden
      Returns:
        true if success, false if dialog not found.
      See Also:
        `getDialog(int)`, `showDialog(int)`

    - #### showPanel

          boolean showPanel(int panel)

      Make panels visible. They appear 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 panel has already been requested by a call to getPanel then a call to showPanel is void and returns false.
      Parameters:
        `panel` - Id of panel to be shown
      Returns:
        `true` if success, false if panel not found or used outside via method getPanel().
      See Also:
        `getPanel(int)`

    - #### setEnabledPanel

          boolean setEnabledPanel(int panel,
                                boolean cond)

      Enable or disable menu entry of panel.
      Parameters:
        `panel` - Id of panel to enable
        `cond` - If true, enables this panel's menu entry; if false, disables it.
      Returns:
        `true` if panel exists, otherwise `false`.
      See Also:
        `showPanel(int)`

    - #### getPanel

          java.awt.Panel getPanel(int panel)

      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 separate 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`. Menu entries will be disabled but still visible.

      Parameters:
        `panel` - Id of requested panel
      Returns:
        Requested panel if it exists, otherwise null.
      See Also:
        `showPanel(int)`

    - #### setGeometry

          void setGeometry(PgGeometryIf geom)

      Set current geometry whose inspector panels are display inside the control panel. Note: Method is currently only used by PvDisplay, and method is included in this interface to separate PvDisplay from PvViewer.

    - #### destroy

          void destroy()

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

    - #### start

          void start()

      Start viewer, call start method of current project, and show control panel if requested.
      See Also:
        `PjProject.start()`

    - #### stop

          void stop()

      Stop viewer, call stop() method of current project, and close control panel if shown.
      See Also:
        `PjProject.stop()`

"

The software JavaView? is copyright protected. All Rights Reserved.
"