Horus Doc || Java GUI Reference || Doxygen's quick Index  

MultiViewer Class Reference

A viewer with multiple viewports. More...

Inheritance diagram for MultiViewer::

ButtonBarListener ViewerModeListener ViewerDialogUser ZoomerUser List of all members.

Public Methods

 MultiViewer (int x, int y)
 Construct a viewer with x times y viewports. More...

int getMode ()
 Get the viewer mode (see class ViewerMode). More...

int getSubMode ()
 Get the viewer sub-mode (see class ViewerMode). More...

void setMode (int mode, int subMode)
 Set the viewer mode (see class ViewerMode) for all viewers. More...

boolean isEnabledMode (int mode)
 Check whether the given viewer mode (see class ViewerMode) is enabled. More...

void setEnableMode (int mode, boolean b)
 Set whether the given viewer mode (see class ViewerMode) is enabled. More...

Color getDefaultDrawColor ()
 Get the default drawing color of the active viewer. More...

Color getDefaultDrawColor (int viewID)
 Get the default drawing color of the given viewer. More...

void setDefaultDrawColor (Color c)
 Set the default drawing color of all viewers. More...

void setDefaultDrawColor (Color c, int viewID)
 Set the default drawing color of the given viewer. More...

Color getBackgroundColor ()
 Get the background color of the active viewer. More...

Color getBackgroundColor (int viewID)
 Get the background color of the given viewer. More...

void setBackgroundColor (Color c)
 Set the background color of all viewers. More...

void setBackgroundColor (Color c, int viewID)
 Set the background color of the given viewer. More...

int nrOfViewers ()
 Returns the number of viewers in the MultiViewer. More...

boolean validViewer (int viewID)
 Indicate whether the given ID belongs to one of the viewers. More...

int getActiveViewer ()
 Get the ID of the active viewer. More...

void setActiveViewer (int viewID)
 Set the active viewer. More...

void addViewerListener (ViewerListener l)
 Add a viewer listener. More...

void removeViewerListener (ViewerListener l)
 Remove a viewer listener. More...

void doClear ()
 Clear all viewers. More...

void doClear (int viewID)
 Clear the given viewer. More...

Image toImage (int viewID)
 Render the canvas of the viewer in an image. More...

int addObject (CanvasObject obj, int viewID)
 Add a CanvasObject to the viewer. More...

CanvasObject getObject (int objID, int viewID)
 Get the CanvasObject with the given index. More...

CanvasObject getObjectCopy (int objID, int viewID, boolean ics)
 Get a copy of the CanvasObject with the given index. More...

void removeObject (int objID, int viewID)
 Remove given object from the viewer. More...

void mousePressed (MouseEvent e)
 Implementation of MouseListener interface. More...

void mouseReleased (MouseEvent e)
 Implementation of MouseListener interface. More...

void mouseClicked (MouseEvent e)
void mouseEntered (MouseEvent e)
void mouseExited (MouseEvent e)
void viewerSelected (ViewerEvent e)
 Implementation of ViewerListener interface. More...

void objectSelected (ViewerEvent e)
 Implementation of ViewerListener interface. More...

void viewerEntered (ViewerEvent e)
 Implementation of ViewerListener interface. More...

void viewerExited (ViewerEvent e)
void objectEntered (ViewerEvent e)
void objectProbed (ViewerEvent e)
void objectCreated (ViewerEvent e)
void objectDeleted (ViewerEvent e)
void objectMoved (ViewerEvent e)
void objectResized (ViewerEvent e)
void objectReshaped (ViewerEvent e)
void objectChangedVisually (ViewerEvent e)
void buttonPressed (ButtonBarEvent e)
 Implementation of ButtonBarListener. More...

void viewerModeChanged (ViewerModeEvent e)
 Implementation of ViewerModeListener. More...

void copyObjectAcrossViewer (int objID, int source, int dest)
void handleViewerDialogClear (int viewID)
 Implementation of ViewerDialogUser. More...

void handleViewerDialogDone ()
 Implementation of ViewerDialogUser. More...

void handleViewerDialogPointed (int viewID, double x, double y)
 Implementation of ViewerDialogUser. More...

void handleViewerDialogSelected (int viewID)
 Implementation of ViewerDialogUser. More...

void handleViewerDialogZoomed (int viewID, double zoomVal)
 Implementation of ViewerDialogUser. More...

void handleViewerDialogBackColor (int viewID, Color c)
 Implementation of ViewerDialogUser. More...

void handleViewerDialogDrawColor (int viewID, Color c)
 Implementation of ViewerDialogUser. More...

void handleZoomed (double zoomVal)
 Implementation of ZoomerUser. More...


Detailed Description

A viewer with multiple viewports.

Basically, a MultiViewer consists of a set of SimpleViewers. The additional interface components (such as the Zoomer) apply to all viewers. However, the included ViewerDialog allows for manipulation of a single viewer at a time.


Constructor & Destructor Documentation

MultiViewer::MultiViewer (  int    x,
int    y
)  [inline]
 

Construct a viewer with x times y viewports.

00044     {
00045         doInit(x, y);
00046     }


Member Function Documentation

int MultiViewer::getMode (    )  [inline]
 

Get the viewer mode (see class ViewerMode).

00052     {
00053         return getViewer(activeViewer).getMode();
00054     }

int MultiViewer::getSubMode (    )  [inline]
 

Get the viewer sub-mode (see class ViewerMode).

00060     {
00061         return getViewerIndex(activeViewer).getSubMode();
00062     }

void MultiViewer::setMode (  int    mode,
int    subMode
)  [inline]
 

Set the viewer mode (see class ViewerMode) for all viewers.

00068     {
00069         for (int i=0; i<nrOfViewers(); i++)
00070             getViewerIndex(i).setMode(mode, subMode);
00071         vcb.setMode(mode, subMode);
00072     }

boolean MultiViewer::isEnabledMode (  int    mode )  [inline]
 

Check whether the given viewer mode (see class ViewerMode) is enabled.

00078     {
00079         return vcb.isEnabledMode(mode);
00080     }

void MultiViewer::setEnableMode (  int    mode,
boolean    b
)  [inline]
 

Set whether the given viewer mode (see class ViewerMode) is enabled.

00086     {
00087         vcb.setEnableMode(mode, b);
00088     }

Color MultiViewer::getDefaultDrawColor (    )  [inline]
 

Get the default drawing color of the active viewer.

00094     {
00095         return getViewerIndex(activeViewer).getDefaultDrawColor();
00096     }

Color MultiViewer::getDefaultDrawColor (  int    viewID )  [inline]
 

Get the default drawing color of the given viewer.

00102     {
00103         return getViewer(viewID).getDefaultDrawColor();
00104     }

void MultiViewer::setDefaultDrawColor (  Color    c )  [inline]
 

Set the default drawing color of all viewers.

00110     {
00111         for (int i=0; i<nrOfViewers(); i++)
00112             getViewerIndex(i).setDefaultDrawColor(c);
00113     }

void MultiViewer::setDefaultDrawColor (  Color    c,
int    viewID
)  [inline]
 

Set the default drawing color of the given viewer.

00119     {
00120         getViewer(viewID).setDefaultDrawColor(c);
00121     }

Color MultiViewer::getBackgroundColor (    )  [inline]
 

Get the background color of the active viewer.

00127     {
00128         return getViewerIndex(activeViewer).getBackgroundColor();
00129     }

Color MultiViewer::getBackgroundColor (  int    viewID )  [inline]
 

Get the background color of the given viewer.

00135     {
00136         return getViewer(viewID).getBackgroundColor();
00137     }

void MultiViewer::setBackgroundColor (  Color    c )  [inline]
 

Set the background color of all viewers.

00143     {
00144         for (int i=0; i<nrOfViewers(); i++)
00145             getViewerIndex(i).setBackgroundColor(c);
00146     }

void MultiViewer::setBackgroundColor (  Color    c,
int    viewID
)  [inline]
 

Set the background color of the given viewer.

00152     {
00153         getViewer(viewID).setBackgroundColor(c);
00154     }

int MultiViewer::nrOfViewers (    )  [inline]
 

Returns the number of viewers in the MultiViewer.

00160     {
00161         return sViewer.length;
00162     }

boolean MultiViewer::validViewer (  int    viewID )  [inline]
 

Indicate whether the given ID belongs to one of the viewers.

00168     {
00169         for (int i=0 ; i<viewerIDs.length ; i++)
00170             if (viewerIDs[i] == viewID)
00171                 return true;
00172         return false;
00173     }

int MultiViewer::getActiveViewer (    )  [inline]
 

Get the ID of the active viewer.

00187     {
00188         return activeViewer;
00189     }

void MultiViewer::setActiveViewer (  int    viewID )  [inline]
 

Set the active viewer.

00195     {
00196         activeViewer = viewID;
00197         for (int i=0; i<vLabel.length; i++) {
00198             if (viewerIDs[i] == viewID) {
00199                 vLabel[i].setBackground(SystemColor.activeCaption);
00200 //                vLabel[i].setForeground(SystemColor.activeCaptionText);
00201                 vLabel[i].setForeground(Color.red);
00202             } else {
00203                 vLabel[i].setBackground(SystemColor.inactiveCaption);
00204                 vLabel[i].setForeground(SystemColor.inactiveCaptionText);
00205             }
00206         }
00207     }

void MultiViewer::addViewerListener (  ViewerListener    l )  [inline]
 

Add a viewer listener.

00213     {
00214         listeners.addElement(l);
00215         for (int i=0; i<nrOfViewers(); i++)
00216             getViewerIndex(i).addViewerListener(l);
00217     }

void MultiViewer::removeViewerListener (  ViewerListener    l )  [inline]
 

Remove a viewer listener.

00223     {
00224         listeners.removeElement(l);
00225         for (int i=0; i<nrOfViewers(); i++)
00226             getViewerIndex(i).removeViewerListener(l);
00227     }

void MultiViewer::doClear (    )  [inline]
 

Clear all viewers.

00233     {
00234         for (int i=0; i<nrOfViewers(); i++)
00235             getViewerIndex(i).doClear();
00236     }

void MultiViewer::doClear (  int    viewID )  [inline]
 

Clear the given viewer.

00242     {
00243         getViewer(viewID).doClear();
00244         if (viewDialog.getViewerID() == viewID)
00245             updateViewerDialog(viewID);
00246     }

Image MultiViewer::toImage (  int    viewID )  [inline]
 

Render the canvas of the viewer in an image.

00252     {
00253         return getViewer(viewID).toImage();
00254     }

int MultiViewer::addObject (  CanvasObject    obj,
int    viewID
)  [inline]
 

Add a CanvasObject to the viewer.

Returns the index of the object. The index is the preferred way to access objects in a viewer as direct references to objects may become invalid due to internal activities of the viewer.

00263     {
00264         int id = getViewer(viewID).addObject(obj);
00265         if (viewDialog.getViewerID() == viewID)
00266             updateViewerDialog(viewID);
00267         return id;
00268     }

CanvasObject MultiViewer::getObject (  int    objID,
int    viewID
)  [inline]
 

Get the CanvasObject with the given index.

00274     {
00275         return getViewer(viewID).getObject(objID);
00276     }

CanvasObject MultiViewer::getObjectCopy (  int    objID,
int    viewID,
boolean    ics
)  [inline]
 

Get a copy of the CanvasObject with the given index.

00282     {
00283         return getViewer(viewID).getObjectCopy(objID, ics);
00284     }

void MultiViewer::removeObject (  int    objID,
int    viewID
)  [inline]
 

Remove given object from the viewer.

00290     {
00291         getViewer(viewID).removeObject(objID);
00292         if (viewDialog.getViewerID() == viewID)
00293             updateViewerDialog(viewID);
00294     }

void MultiViewer::mousePressed (  MouseEvent    e )  [inline]
 

Implementation of MouseListener interface.

00300     {
00301         for (int i=0; i<vLabel.length; i++) {
00302             if (e.getSource() == vLabel[i]) {
00303                 handleViewerDialogSelected(viewerIDs[i]);
00304                 break;
00305             }
00306         }
00307     }

void MultiViewer::mouseReleased (  MouseEvent    e )  [inline]
 

Implementation of MouseListener interface.

00312 { }

void MultiViewer::mouseClicked (  MouseEvent    e )  [inline]
 

00313 { }

void MultiViewer::mouseEntered (  MouseEvent    e )  [inline]
 

00314 { }

void MultiViewer::mouseExited (  MouseEvent    e )  [inline]
 

00315 { }

void MultiViewer::viewerSelected (  ViewerEvent    e )  [inline]
 

Implementation of ViewerListener interface.

00321     {
00322         int viewID = e.getViewerID();
00323         if (viewDialog.getViewerID() != viewID) {
00324             setActiveViewer(viewID);
00325             updateViewerDialog(viewID);
00326             viewDialog.setZoomValue(getViewer(viewID).getZoomFactor());
00327         }
00328     }

void MultiViewer::objectSelected (  ViewerEvent    e )  [inline]
 

Implementation of ViewerListener interface.

00334     {
00335         int ID = e.getViewerID();
00336         if (viewDialog.getViewerID() != ID) {
00337             setActiveViewer(ID);
00338             updateViewerDialog(ID);
00339             viewDialog.setZoomValue(getViewer(ID).getZoomFactor());
00340         }
00341     }

void MultiViewer::viewerEntered (  ViewerEvent    e )  [inline]
 

Implementation of ViewerListener interface.

00346 {  }

void MultiViewer::viewerExited (  ViewerEvent    e )  [inline]
 

00347 {  }

void MultiViewer::objectEntered (  ViewerEvent    e )  [inline]
 

00348 {  }

void MultiViewer::objectProbed (  ViewerEvent    e )  [inline]
 

00349 {  }

void MultiViewer::objectCreated (  ViewerEvent    e )  [inline]
 

00350 {  }

void MultiViewer::objectDeleted (  ViewerEvent    e )  [inline]
 

00351 {  }

void MultiViewer::objectMoved (  ViewerEvent    e )  [inline]
 

00352 {  }

void MultiViewer::objectResized (  ViewerEvent    e )  [inline]
 

00353 {  }

void MultiViewer::objectReshaped (  ViewerEvent    e )  [inline]
 

00354 {  }

void MultiViewer::objectChangedVisually (  ViewerEvent    e )  [inline]
 

00355 {  }

void MultiViewer::buttonPressed (  ButtonBarEvent    e )  [inline]
 

Implementation of ButtonBarListener.

Reimplemented from ButtonBarListener.

00361     {
00362         String label = e.getLabel();
00363 
00364         if (label.equals("clear")) {
00365             int n = JOptionPane.showConfirmDialog(
00366                 this, "Are you sure you want to clear ALL viewers?",
00367                 "Clear viewers",
00368                 JOptionPane.YES_NO_OPTION);
00369             if (n == JOptionPane.YES_OPTION) {
00370                 doClear();
00371                 zoomer.updateStatus(IcsCanvas.STD_ZOOM);
00372                 updateViewerDialog(viewDialog.getViewerID());
00373                 viewDialog.setZoomValue(IcsCanvas.STD_ZOOM);
00374             }
00375         } else if (label.equals("Vmanip")) {
00376             viewDialog.pop();
00377             updateViewerDialog(activeViewer);
00378         } else if (label.equals("trans")) {
00379             new JavaFuncDialog(this,
00380                     new CallableMethod("copyObjectAcrossViewer",
00381                         "int", "object ID", "int",
00382                         "int", "source Viewer ID", "int",
00383                         "int", "destination Viewer ID", "int"));
00384         }
00385     }

void MultiViewer::viewerModeChanged (  ViewerModeEvent    e )  [inline]
 

Implementation of ViewerModeListener.

Reimplemented from ViewerModeListener.

00391     {
00392         for (int i=0; i<nrOfViewers(); i++)
00393             getViewerIndex(i).setMode(e.getMode(), e.getSubMode());
00394     }

void MultiViewer::copyObjectAcrossViewer (  int    objID,
int    source,
int    dest
)  [inline]
 

00398     {
00399         if (source != dest && validViewer(source) && validViewer(dest)) {
00400             CanvasObject c = getObjectCopy(objID, source, true);
00401             if (c != null) {
00402                 addObject(c, dest);
00403                 return;
00404             }
00405         }
00406     }

void MultiViewer::handleViewerDialogClear (  int    viewID )  [inline]
 

Implementation of ViewerDialogUser.

Reimplemented from ViewerDialogUser.

00412     {
00413         getViewer(viewID).doClear();
00414         viewDialog.setZoomValue(getViewer(viewID).getZoomFactor());
00415         updateViewerDialog(viewID);
00416     }

void MultiViewer::handleViewerDialogDone (    )  [inline]
 

Implementation of ViewerDialogUser.

Reimplemented from ViewerDialogUser.

00422     {
00423         // do nothing
00424     }

void MultiViewer::handleViewerDialogPointed (  int    viewID,
double    x,
double    y
)  [inline]
 

Implementation of ViewerDialogUser.

Reimplemented from ViewerDialogUser.

00430     {
00431         SimpleViewer sv = getViewer(viewID);
00432         sv.doPan(x, y);
00433     }

void MultiViewer::handleViewerDialogSelected (  int    viewID )  [inline]
 

Implementation of ViewerDialogUser.

Reimplemented from ViewerDialogUser.

00439     {
00440         setActiveViewer(viewID);
00441         updateViewerDialog(viewID);
00442         SimpleViewer sv = getViewer(viewID);
00443         viewDialog.setZoomValue(sv.getZoomFactor());
00444 
00445         Vector list;
00446         ViewerEvent ve = new ViewerEvent(this, sv, null, -1, -1, -1);
00447         synchronized (this) {
00448             list = (Vector)listeners.clone();
00449         }
00450         for(int i=0; i<list.size(); i++) {
00451             ((ViewerListener)list.elementAt(i)).viewerSelected(ve);
00452         }
00453     }

void MultiViewer::handleViewerDialogZoomed (  int    viewID,
double    zoomVal
)  [inline]
 

Implementation of ViewerDialogUser.

Reimplemented from ViewerDialogUser.

00459     {
00460         SimpleViewer sv = getViewer(viewID);
00461 //        sv.setMode(ViewerMode.SELECT, 0);
00462 //        vcb.setMode(ViewerMode.SELECT, 0);
00463         sv.doZoom(zoomVal);
00464     }

void MultiViewer::handleViewerDialogBackColor (  int    viewID,
Color    c
)  [inline]
 

Implementation of ViewerDialogUser.

Reimplemented from ViewerDialogUser.

00470     {
00471         getViewer(viewID).setBackgroundColor(c);
00472         updateViewerDialog(viewID);
00473     }

void MultiViewer::handleViewerDialogDrawColor (  int    viewID,
Color    c
)  [inline]
 

Implementation of ViewerDialogUser.

Reimplemented from ViewerDialogUser.

00479     {
00480         getViewer(viewID).setDefaultDrawColor(c);
00481     }

void MultiViewer::handleZoomed (  double    zoomVal )  [inline]
 

Implementation of ZoomerUser.

Reimplemented from ZoomerUser.

00487     {
00488         for (int i=0 ; i<nrOfViewers() ; i++) {
00489             SimpleViewer sv = getViewerIndex(i);
00490 //            sv.setMode(ViewerMode.SELECT, 0);
00491 //            vcb.setMode(ViewerMode.SELECT, 0);
00492             sv.doZoom(zoomVal);
00493             viewDialog.setZoomValue(zoomVal);
00494         }
00495     }


The documentation for this class was generated from the following file:
Generated on Mon Jan 27 15:11:23 2003 for JavaReference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001