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

MdiApp Class Reference

Multiple document interface application. More...

Inheritance diagram for MdiApp::

CorbaSampleApp ViewerInspectionListener ViewerEditListener ViewerModeListener NavigatorUser SampleApp List of all members.

Public Methods

void handleOpenImageJava ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleOpenServerImage ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleOpenServerSeq ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleExit ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handlePaste ()
void handleLF (String lfName)
void handleResult (String type, String value)
void handleNewViewer ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleViewerOp (Object target, CallableMethod method, Object[] argVals)
 This function is called by _bmenu if the associated menu item is selected. More...

void handleDrawingColor (Color c)
void handleBackgroundColor (Color c)
void handleDisplayMode (String mode)
void handleNormalView ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleFitViewportToCanvas ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleViewAllImages ()
void viewImageRep (String imName, boolean newViewer)
 This function is called by _bmenu if the associated menu item is selected. More...

void viewHistogram (String histName, boolean newViewer)
 This function is called by _bmenu if the associated menu item is selected. More...

void viewBlob2d (String blobName, boolean newViewer)
 This function is called by _bmenu if the associated menu item is selected. More...

void viewPolyline2d (String polyName, boolean newViewer)
 This function is called by _bmenu if the associated menu item is selected. More...

void viewBSplineCurve (String bsplName, boolean newViewer)
 This function is called by _bmenu if the associated menu item is selected. More...

void viewSampledBSplineCurve (String bsplName, boolean newViewer)
 This function is called by _bmenu if the associated menu item is selected. More...

void handleMakeImage ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleRegistryViewer ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleIDLScript ()
void handlePixelEditor ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleStubBrowser ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleImageBrowser ()
void handleAppBrowser ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleOperationsBrowser ()
void handleRegisterApp ()
void handleNewJavaImage (int width, int height, Color c)
 This function is called by _bmenu if the associated menu item is selected. More...

void handleJavaImageToHxImageRep (int javaImID)
 This function is called by _bmenu if the associated menu item is selected. More...

void handleJavaPolylineToHxPolyline2d (int javaPolyID)
 This function is called by _bmenu if the associated menu item is selected. More...

void handleLabelCermet (String cermName)
 This function is called by _bmenu if the associated menu item is selected. More...

void handleTestSomething ()
 This function is called by _bmenu if the associated menu item is selected. More...

void objectEntered (ViewerEvent e)
 Implementation of ViewerInspectionListener. More...

void objectProbed (ViewerEvent e)
 Implementation of ViewerInspectionListener. More...

void objectSelected (ViewerEvent e)
 Implementation of ViewerInspectionListener. More...

void viewerExited (ViewerEvent e)
 Implementation of ViewerInspectionListener. More...

void viewerSelected (ViewerEvent e)
 Implementation of ViewerInspectionListener. More...

void objectCreated (ViewerEvent e)
 Implementation of ViewerEditListener. More...

void objectDeleted (ViewerEvent e)
 Method invoked when a CanvasObject has been deleted. More...

void objectMoved (ViewerEvent e)
 Method invoked when a CanvasObject has been moved. More...

void objectResized (ViewerEvent e)
 Method invoked when a CanvasObject has been resized. More...

void objectReshaped (ViewerEvent e)
 Method invoked when a CanvasObject has been reshaped, i.e. More...

void viewerEntered (ViewerEvent e)
 Implementation of Viewer(*)Listener (ignored). More...

void objectChangedVisually (ViewerEvent e)
 Method invoked when one of the visual properties of a CanvasObject has been changed. More...

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

int[] handleNavigatorViewerIDs ()
 Implementation of NavigatorUser. More...

void handleNavigatorPan (int viewerID, double x, double y)
 Implementation of NavigatorUser. More...

void handleNavigatorZoomed (int viewerID, double zoomVal)
 Implementation of NavigatorUser. More...

void handleNavigatorSelected (int viewerID)
 Implementation of NavigatorUser. More...

void internalFrameClosed (InternalFrameEvent e)
 Implementation of InternalFrameListener. More...

void internalFrameActivated (InternalFrameEvent e)
 Implementation of InternalFrameListener. More...

void internalFrameClosing (InternalFrameEvent e)
 Implementation of InternalFrameListener (ignored). More...

void internalFrameOpened (InternalFrameEvent e)
void internalFrameIconified (InternalFrameEvent e)
void internalFrameDeiconified (InternalFrameEvent e)
void internalFrameDeactivated (InternalFrameEvent e)
void itemStateChanged (ItemEvent e)
 Implementation of ItemListener. More...


Static Public Methods

void main (String[] args)
 This function is called when this is used as an application. More...


Protected Methods

boolean buildSample (JFrame parent, JApplet applet, String[] args)
 Initialization. More...


Detailed Description

Multiple document interface application.


Member Function Documentation

void MdiApp::main String    args[] [inline, static]
 

This function is called when this is used as an application.

Reimplemented from SampleApp.

00049 {
00050     MdiApp app = new MdiApp();
00051     app.doMain(args);
00052 
00053     // doMain will call "our" buildSample to construct the application
00054 }

void MdiApp::handleOpenImageJava   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00060 {
00061     File file = askFilename(JAVA_FILTER, true);
00062     if(file == null) return;
00063 
00064     Image im = Toolkit.getDefaultToolkit().getImage(file.getPath());
00065     //String name = StubManager.getName(file); // not the full path...
00066     boolean success = _objManager.addJavaImage(im);
00067 
00068     if(!success)
00069         ErrorStreamArea.println("Can not open image "+file.getName());
00070 }

void MdiApp::handleOpenServerImage   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00075 {
00076     HxCorba.Constructor cons =
00077         ServiceRepository.instance().getConstructor();
00078     if(cons == null) return;
00079 
00080     File file = askFilename(HORUS_FILTER, CorbaMediator.instance().hasLocalServer());
00081     if(file == null) return;
00082 
00083     HxCorba.ImageRep img = cons.fromFile(file.getPath());
00084     if(img == null) {
00085         ErrorStreamArea.println(cons.getLastError());
00086         return;
00087     }
00088 
00089     String name = nameFromFile(file); // not the full path...
00090     StubRepository.instance().addStub(HxCorba.ImageRepHelper.id(), name, img);
00091     viewObject(new CanvasCorbaImage(img), name);
00092 }

void MdiApp::handleOpenServerSeq   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00098 {
00099     HxCorba.Constructor cons =
00100         ServiceRepository.instance().getConstructor();
00101     if(cons == null) return;
00102 
00103     File file = askFilename(SEQ_FILTER, CorbaMediator.instance().hasLocalServer());
00104     if(file == null) return;
00105 
00106     HxCorba.ImageSeq seq = cons.constructImageSeq(file.getPath());
00107     if(seq == null) {
00108         ErrorStreamArea.println(cons.getLastError());
00109         return;
00110     }
00111 
00112     String name = nameFromFile(file); // not the full path...
00113     StubRepository.instance().addStub(HxCorba.ImageSeqHelper.id(), name, seq);
00114 
00115     OutputStreamArea.println("Result " + name + ", showing first frame.");
00116     viewObject(new CanvasCorbaImage(seq.getFrame(0)), name);
00117 }

void MdiApp::handleExit   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00122 {
00123     unregisterApp();
00124     System.exit(0);
00125 }

void MdiApp::handlePaste   [inline]
 

00128 {
00129     _objManager.doPaste();
00130 }

void MdiApp::handleLF String    lfName [inline]
 

00133 {
00134     String lfClass = null;
00135     if(lfName.equals("Cross Platform"))
00136         lfClass = UIManager.getCrossPlatformLookAndFeelClassName();
00137     else if(lfName.equals("System"))
00138         lfClass = UIManager.getSystemLookAndFeelClassName();
00139     else if(lfName.equals("Motif"))
00140         lfClass = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
00141 
00142     if(lfClass == null) return;
00143 
00144     try {
00145         UIManager.setLookAndFeel(lfClass);
00146     } catch (Exception e) { ErrorStreamArea.println("Unable to set L&F"); }
00147     SwingUtilities.updateComponentTreeUI(getParentFrame());
00148     getParentFrame().show();
00149 }

void MdiApp::handleResult String    type,
String    value
[inline]
 

00152 {
00153     if((type.startsWith("interface ")) && (value == null))
00154         OutputStreamArea.println("Result: null, type: "+type);
00155 
00156     else if(type.equals("interface ImageRep"))
00157         viewImageRep(value, true);
00158     else if(type.equals("interface Histogram"))
00159         viewHistogram(value, true);
00160     else if(type.equals("interface Polyline2d"))
00161         viewPolyline2d(value, true);
00162     else if(type.equals("interface BSplineCurve"))
00163         viewBSplineCurve(value, true);
00164     else if(type.equals("interface SampledBSplineCurve"))
00165         viewSampledBSplineCurve(value, true);
00166 
00167     else if(type.equals("void"))
00168         OutputStreamArea.println("void");
00169     else if(type.equals("error"))
00170         ErrorStreamArea.println(value);
00171     else
00172         OutputStreamArea.println("Result: "+value+", type: "+type);
00173 }

void MdiApp::handleNewViewer   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00179 {
00180     newViewer();
00181 }

void MdiApp::handleViewerOp Object    target,
CallableMethod    method,
Object    argVals[]
[inline]
 

This function is called by _bmenu if the associated menu item is selected.

00187 {
00188     if (_activeViewer != null)
00189         method.invoke(_activeViewer, argVals);
00190     else
00191         ErrorStreamArea.println("No viewer selected");
00192 }

void MdiApp::handleDrawingColor Color    c [inline]
 

00196 {
00197     if (_activeViewer != null)
00198         _activeViewer.setDefaultDrawColor(c);
00199     else
00200         ErrorStreamArea.println("No viewer selected");
00201 }

void MdiApp::handleBackgroundColor Color    c [inline]
 

00204 {
00205     if (_activeViewer != null)
00206         _activeViewer.setBackgroundColor(c);
00207     else
00208         ErrorStreamArea.println("No viewer selected");
00209 }

void MdiApp::handleDisplayMode String    mode [inline]
 

00212 {
00213     _displayMode = mode;
00214 }

void MdiApp::handleNormalView   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

Seems to work for all look&feels except Java's :-(

00220 {
00221     if (_activeViewer != null) {
00222         _activeViewer.doZoom(1.0);
00223         _activeFrame.pack();
00224     }
00225     else
00226         ErrorStreamArea.println("No viewer selected");
00227 }

void MdiApp::handleFitViewportToCanvas   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

Seems to work for all look&feels except Java's :-(

00234 {
00235     if (_activeViewer != null)
00236         _activeFrame.pack();
00237     else
00238         ErrorStreamArea.println("No viewer selected");
00239 }

void MdiApp::handleViewAllImages   [inline]
 

00242 {
00243     CorbaImageSpace3dViewer space = new CorbaImageSpace3dViewer();
00244 
00245     HxCorba.ImageRepHelper helper = new HxCorba.ImageRepHelper();
00246     java.util.Enumeration e = StubRepository.instance().listStubs(helper.id());
00247     while(e.hasMoreElements()) {
00248         String name = e.nextElement().toString();
00249         Object obj = StubRepository.instance().getStub(helper.id(), name);
00250         HxCorba.ImageRep image = helper.narrow((org.omg.CORBA.Object)obj);
00251         space.addImage(image, name);
00252     }
00253 
00254     JDialog dlg = new JDialog(getParentFrame(), "Image space", false);
00255     dlg.getContentPane().add(space, BorderLayout.CENTER);
00256     dlg.pack();
00257     dlg.show();
00258 }

void MdiApp::viewImageRep String    imName,
boolean    newViewer
[inline]
 

This function is called by _bmenu if the associated menu item is selected.

00263 {
00264     HxCorba.ImageRepHelper helper = new HxCorba.ImageRepHelper();
00265 
00266     Object obj = StubRepository.instance().getStub(helper.id(), imName);
00267     if(obj == null) {
00268         ErrorStreamArea.println("Image doesn't exists");
00269         return;
00270     }
00271 
00272     HxCorba.ImageRep image = helper.narrow((org.omg.CORBA.Object)obj);
00273     CanvasCorbaImage cObj = new CanvasCorbaImage(image);
00274     cObj.setDisplayMode(_displayMode);
00275     viewObject(cObj, newViewer, imName);
00276 }

void MdiApp::viewHistogram String    histName,
boolean    newViewer
[inline]
 

This function is called by _bmenu if the associated menu item is selected.

00281 {
00282     HxCorba.HistogramHelper helper = new HxCorba.HistogramHelper();
00283 
00284     Object obj = StubRepository.instance().getStub(helper.id(), histName);
00285     if(obj == null) {
00286         ErrorStreamArea.println("Histogram doesn't exists");
00287         return;
00288     }
00289 
00290     HxCorba.Histogram hist = helper.narrow((org.omg.CORBA.Object)obj);
00291 
00292     if(hist.dimensionality() == 1) {
00293         CanvasObject cObj = new CanvasCorbaHistogram(hist);
00294         viewObject(cObj, newViewer, histName);
00295     }
00296     else {
00297         CorbaHistogram3dViewer h = new CorbaHistogram3dViewer(hist);
00298         JDialog dlg = new JDialog(getParentFrame(), "Histogram3d", false);
00299         dlg.getContentPane().add(h, BorderLayout.CENTER);
00300         dlg.pack();
00301         dlg.show();
00302     }
00303 }

void MdiApp::viewBlob2d String    blobName,
boolean    newViewer
[inline]
 

This function is called by _bmenu if the associated menu item is selected.

00309 {
00310     HxCorba.Blob2dHelper helper = new HxCorba.Blob2dHelper();
00311 
00312     Object obj = StubRepository.instance().getStub(helper.id(), blobName);
00313     if(obj == null) {
00314         ErrorStreamArea.println("Blob doesn't exists");
00315         return;
00316     }
00317 
00318     HxCorba.Blob2d blob = helper.narrow((org.omg.CORBA.Object)obj);
00319     CanvasObject cObj = new CanvasCorbaBlob2d(blob);
00320     viewObject(cObj, newViewer, blobName);
00321 }

void MdiApp::viewPolyline2d String    polyName,
boolean    newViewer
[inline]
 

This function is called by _bmenu if the associated menu item is selected.

00327 {
00328     HxCorba.Polyline2dHelper helper = new HxCorba.Polyline2dHelper();
00329 
00330     Object obj = StubRepository.instance().getStub(helper.id(), polyName);
00331     if(obj == null) {
00332         ErrorStreamArea.println("Polyline2d doesn't exists");
00333         return;
00334     }
00335 
00336     HxCorba.Polyline2d poly = helper.narrow((org.omg.CORBA.Object)obj);
00337     CanvasObject cObj = new CanvasCorbaPolyline2d(poly);
00338     viewObject(cObj, newViewer, polyName);
00339 }

void MdiApp::viewBSplineCurve String    bsplName,
boolean    newViewer
[inline]
 

This function is called by _bmenu if the associated menu item is selected.

00345 {
00346     HxCorba.BSplineCurveHelper helper = new HxCorba.BSplineCurveHelper();
00347 
00348     Object obj = StubRepository.instance().getStub(helper.id(), bsplName);
00349     if(obj == null) {
00350         ErrorStreamArea.println("BSplineCurve doesn't exists");
00351         return;
00352     }
00353 
00354     HxCorba.BSplineCurve bspl = helper.narrow((org.omg.CORBA.Object)obj);
00355     CanvasObject cObj = new CanvasCorbaBSplineCurve(bspl, 50);
00356     viewObject(cObj, newViewer, bsplName);
00357 }

void MdiApp::viewSampledBSplineCurve String    bsplName,
boolean    newViewer
[inline]
 

This function is called by _bmenu if the associated menu item is selected.

00362 {
00363     HxCorba.SampledBSplineCurveHelper helper
00364         = new HxCorba.SampledBSplineCurveHelper();
00365 
00366     Object obj = StubRepository.instance().getStub(helper.id(), bsplName);
00367     if(obj == null) {
00368         ErrorStreamArea.println("SampledBSplineCurve doesn't exists");
00369         return;
00370     }
00371 
00372     HxCorba.SampledBSplineCurve bspl = helper.narrow((org.omg.CORBA.Object)obj);
00373     CanvasObject cObj = new CanvasCorbaSampledBSplineCurve(bspl);
00374     viewObject(cObj, newViewer, bsplName);
00375 }

void MdiApp::handleMakeImage   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00380 {
00381     if (_activeViewer == null) {
00382         ErrorStreamArea.println("No viewer selected");
00383         return;
00384     }
00385 
00386     BufferedImage im = _activeViewer.toImage();
00387     _objManager.addJavaImage(im);
00388 }

void MdiApp::handleRegistryViewer   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00417 {
00418     if(!showTool("Registry Viewer")) {
00419         CorbaRegistryViewer rv = new CorbaRegistryViewer("/");
00420         showTool(rv, "Registry Viewer", true);
00421     }
00422 }

void MdiApp::handleIDLScript   [inline]
 

00425 {
00426     if(!showTool("IDL Script")) {
00427         IDLScriptShell idl = new IDLScriptShell();
00428         idl.setGuard(_objManager.stubRepositoryGuard());
00429         idl.setGUI("mdiApp", this);
00430         StubRepository.instance().addStubListener(idl);
00431         showTool(idl, "IDL Script", true);
00432     }
00433 
00434 }

void MdiApp::handlePixelEditor   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00439 {
00440     if (_pixelEditor != null) return;
00441 
00442     _pixelEditor = new PixelEditor();
00443     showTool(_pixelEditor, "PixelEditor", false);
00444 }

void MdiApp::handleStubBrowser   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00449 {
00450     if(!showTool("Stub Browser")) {
00451         StubBrowser st = new StubBrowser();
00452         st.setPopupUser(this);
00453         st.setGuard(_objManager.stubRepositoryGuard());
00454         st.setFrame(getParentFrame());
00455         showTool(st, "Stub Browser", true);
00456     }
00457 }

void MdiApp::handleImageBrowser   [inline]
 

00460 {
00461     if(!showTool("Image Browser")) {
00462         WorldApp world = new WorldApp(getParentFrame());
00463 
00464         HxCorba.ImageRepHelper helper = new HxCorba.ImageRepHelper();
00465         java.util.Enumeration e = StubRepository.instance().listStubs(helper.id());
00466         while(e.hasMoreElements()) {
00467             String name = e.nextElement().toString();
00468             Object obj = StubRepository.instance().getStub(helper.id(), name);
00469             HxCorba.ImageRep image = helper.narrow((org.omg.CORBA.Object)obj);
00470             world.addImage(image, name);
00471         }
00472 
00473         showTool(world, "Image Browser", true);
00474     }
00475 }

void MdiApp::handleAppBrowser   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00480 {
00481     if(!showTool("App Browser")) {
00482         AppBrowser app = new CorbaMdiAppBrowser();
00483         showTool(app, "App Browser", true);
00484     }
00485 }

void MdiApp::handleOperationsBrowser   [inline]
 

00488 {
00489     if(!showTool("Operations")) {
00490         OperationsBrowser ops = new OperationsBrowser(getParentFrame(), this);
00491         JInternalFrame frame = showTool(ops, "Operations", true);
00492         frame.setLocation(0,0);
00493         frame.setSize(frame.getSize().width, _desktop.getSize().height);
00494     }
00495 }

void MdiApp::handleRegisterApp   [inline]
 

00499 {
00500     registerApp(_objManager);
00501 }

void MdiApp::handleNewJavaImage int    width,
int    height,
Color    c
[inline]
 

This function is called by _bmenu if the associated menu item is selected.

00506 {
00507     BufferedImage bufIm =
00508         new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
00509 
00510     for (int y=0 ; y<height ; y++)
00511         for (int x=0 ; x<width ; x++)
00512             bufIm.setRGB(x, y, c.getRGB());
00513 
00514     _objManager.addJavaImage(bufIm);
00515 }

void MdiApp::handleJavaImageToHxImageRep int    javaImID [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00521 {
00522 /*    if (_activeViewer == null) {
00523         ErrorStreamArea.println("No viewer selected");
00524         return;
00525     }
00526     Object obj = _activeViewer.getObject(javaImID);
00527     if (! (obj instanceof CanvasJavaImage)) {
00528         ErrorStreamArea.println("Object is not a java image");
00529         return;
00530     }
00531 
00532     CanvasJavaImage im = (CanvasJavaImage) obj;
00533 
00534     int width = (int) im.getWidth();
00535     int height = (int) im.getHeight();
00536     int[] pixels = im.getPixels(0, 0, width, height);
00537     String resImName = _mediator.makeHxImage(2, 3, 0, 8, width, height,
00538                                              1, pixels);
00539     CanvasHxImage cIm = new CanvasHxImage(resImName, "Direct");
00540     viewObject(cIm, true);*/
00541 }

void MdiApp::handleJavaPolylineToHxPolyline2d int    javaPolyID [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00547 {
00548 }

void MdiApp::handleLabelCermet String    cermName [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00554 {
00555     Object obj = StubRepository.instance().getStub(HxCorba.ImageRepHelper.id(), cermName);
00556     HxCorba.ImageRep image = HxCorba.ImageRepHelper.narrow((org.omg.CORBA.Object)obj);
00557 
00558     if(image == null) {
00559         ErrorStreamArea.println("Image doesn't exists");
00560         return;
00561     }
00562 
00563     HxCorba.GlobalOps ops =
00564         ServiceRepository.instance().getGlobalOps();
00565     if(ops == null) return;
00566 
00567     try {
00568         // first negate cermet
00569         HxCorba.ImageRep resImg = ops.HxNegate(image);
00570 
00571         // now add 255 to resImg
00572         HxCorba.PixValue val = new HxCorba.PixValue();
00573         val.scalarInt(255);
00574         resImg = ops.HxAddVal(resImg, val);
00575 
00576         // now make resImg really binary by tresholding
00577         val.scalarInt(128);
00578         resImg = ops.HxThreshold(resImg, val);
00579 
00580         // display resIm
00581         viewObject(new CanvasCorbaImage(resImg, "Binary"), "Binary");
00582         StubRepository.instance().addStub(HxCorba.ImageRepHelper.id(),
00583             cermName+"binary", resImg);
00584 
00585         // now call "LabelBlobs"
00586         HxCorba.Blob2d[] blobList = ops.HxLabelBlobs(image, resImg, 0);
00587         StubRepository.instance().addStub(HxCorba.Blob2dSetHelper.id(),
00588             cermName+"_blobs", blobList);
00589 
00590         // display the blobs
00591         for(int i=0; i<blobList.length; i++) {
00592             CanvasFigure cBlob = new CanvasCorbaBlob2d(blobList[i]);
00593             cBlob.setColor(Color.yellow);
00594             _activeViewer.addObject(cBlob);
00595         }
00596     }catch(HxCorba.ImageException e){
00597         ErrorStreamArea.println(e.message);
00598     }
00599 }

void MdiApp::handleTestSomething   [inline]
 

This function is called by _bmenu if the associated menu item is selected.

00605 {
00606     HxCorba.ImageFactory fac;
00607     HxCorba.GlobalOps ops;
00608 
00609     fac = ServiceRepository.instance().getConstructor();
00610     if(fac == null) return;
00611     ops = ServiceRepository.instance().getGlobalOps();
00612     if(ops == null) return;
00613 
00614     try {
00615 
00616         //int[] vals = {-1, 0, 1};
00617         //HxCorba.ImageRep im = fac.fromIntData(1, 2, new HxCorba.Sizes(3,1,1), vals);
00618         HxCorba.ImageRep im = fac.fromFile("d:/images/flamingo.jpg");
00619 
00620         //String name = new String("testing");
00621         //StubRepository.instance().addStub(HxCorba.ImageRepHelper.id(), name, im);
00622 
00623 /*
00624         double[][] data = ops.HxNJetInvar(im, "E", 1.0, 128);
00625 
00626         OutputStreamArea.println("n1 : " + data.length);
00627         for (int i=0 ; i<data.length ; i++) {
00628             for (int j=0 ; j<data[i].length ; j++) {
00629                 OutputStreamArea.println("at " + i + j + " : " + data[i][j]);
00630             }
00631         }
00632         HxCorba.AapFeatures features = ops.JmCalcAapFeatures(im, im);
00633         OutputStreamArea.println("outdoor : " + features.outdoor);
00634         OutputStreamArea.println("col x: " + features.col.x);
00635         OutputStreamArea.println("col y: " + features.col.y);
00636         OutputStreamArea.println("col z: " + features.col.z);
00637         OutputStreamArea.println("percentage : " + features.percentage);
00638         OutputStreamArea.println("label : " + features.label);
00639 */
00640 
00641     } catch(Exception e){
00642         ErrorStreamArea.println("test "+e);
00643         e.printStackTrace();
00644     }
00645 }

void MdiApp::objectEntered ViewerEvent    e [inline]
 

Implementation of ViewerInspectionListener.

Reimplemented from ViewerInspectionListener.

00676 {
00677     updateStatusBar(e);
00678 }

void MdiApp::objectProbed ViewerEvent    e [inline]
 

Implementation of ViewerInspectionListener.

Reimplemented from ViewerInspectionListener.

00684 {
00685     updateStatusBar(e);
00686 }

void MdiApp::objectSelected ViewerEvent    e [inline]
 

Implementation of ViewerInspectionListener.

Reimplemented from ViewerInspectionListener.

00692 {
00693     updateStatusBar(e);
00694 //((CanvasObject) e.getCanvasObject()).dump();
00695 
00696     if (_pixelEditor != null) {
00697         CanvasViewer viewer = (CanvasViewer) e.getViewer();
00698         Object obj = e.getCanvasObject();
00699         if (obj instanceof CanvasImage)
00700             _pixelEditor.updatePixels(viewer, (CanvasObject) obj,
00701                                       e.getXPosPcs(), e.getYPosPcs());
00702         else
00703             _pixelEditor.doClear();
00704     }
00705 }

void MdiApp::viewerExited ViewerEvent    e [inline]
 

Implementation of ViewerInspectionListener.

Reimplemented from ViewerInspectionListener.

00711 {
00712     clearStatusBar(e);
00713 }

void MdiApp::viewerSelected ViewerEvent    e [inline]
 

Implementation of ViewerInspectionListener.

Reimplemented from ViewerInspectionListener.

00719 {
00720     clearStatusBar(e);
00721 }

void MdiApp::objectCreated ViewerEvent    e [inline]
 

Implementation of ViewerEditListener.

Reimplemented from ViewerEditListener.

00727 {
00728     updateStatusBar(e);
00729 
00730     CanvasObject obj = e.getCanvasObject();
00731     if(obj instanceof ScribbleFigure)
00732         _objManager.addScribbleFigure((ScribbleFigure)obj, e.getObjectID());
00733 }

void MdiApp::objectDeleted ViewerEvent    e [inline]
 

Method invoked when a CanvasObject has been deleted.

Reimplemented from ViewerEditListener.

00737 {
00738     CanvasObject obj = e.getCanvasObject();
00739     if(obj instanceof ScribbleFigure)
00740         _objManager.deleteScribbleFigure((ScribbleFigure)obj, e.getObjectID());
00741 }

void MdiApp::objectMoved ViewerEvent    e [inline]
 

Method invoked when a CanvasObject has been moved.

Reimplemented from ViewerEditListener.

00744 {
00745     CanvasObject obj = e.getCanvasObject();
00746     if(obj instanceof ScribbleFigure)
00747         _objManager.addScribbleFigure((ScribbleFigure)obj, e.getObjectID());
00748 }

void MdiApp::objectResized ViewerEvent    e [inline]
 

Method invoked when a CanvasObject has been resized.

Reimplemented from ViewerEditListener.

00751 {
00752     CanvasObject obj = e.getCanvasObject();
00753     if(obj instanceof ScribbleFigure)
00754         _objManager.addScribbleFigure((ScribbleFigure)obj, e.getObjectID());
00755 }

void MdiApp::objectReshaped ViewerEvent    e [inline]
 

Method invoked when a CanvasObject has been reshaped, i.e.

one of its points has been deleted or moved

Reimplemented from ViewerEditListener.

00758 {
00759     CanvasObject obj = e.getCanvasObject();
00760     if(obj instanceof ScribbleFigure)
00761         _objManager.addScribbleFigure((ScribbleFigure)obj, e.getObjectID());
00762 }

void MdiApp::viewerEntered ViewerEvent    e [inline]
 

Implementation of Viewer(*)Listener (ignored).

Reimplemented from ViewerInspectionListener.

00766 {}

void MdiApp::objectChangedVisually ViewerEvent    e [inline]
 

Method invoked when one of the visual properties of a CanvasObject has been changed.

Reimplemented from ViewerEditListener.

00767 {}

void MdiApp::viewerModeChanged ViewerModeEvent    e [inline]
 

Implementation of ViewerModeListener.

Reimplemented from ViewerModeListener.

00773 {
00774     for (int i=0; i<_viewerList.size(); i++) {
00775         JInternalFrame f = (JInternalFrame) _viewerList.get(i);
00776         CanvasViewer v = (CanvasViewer)f.getClientProperty("Hx.Viewer");
00777         v.setMode(e.getMode(), e.getSubMode());
00778     }
00779 }

int [] MdiApp::handleNavigatorViewerIDs   [inline]
 

Implementation of NavigatorUser.

Reimplemented from NavigatorUser.

00785 {
00786     int[] ids = new int[_viewerList.size()];
00787     for (int i=0; i<_viewerList.size(); i++) {
00788         JInternalFrame f = (JInternalFrame) _viewerList.get(i);
00789         Integer viewerID = (Integer)f.getClientProperty("Hx.ViewerID");
00790         ids[i] = viewerID.intValue();
00791     }
00792     return ids;
00793 }

void MdiApp::handleNavigatorPan int    viewerID,
double    x,
double    y
[inline]
 

Implementation of NavigatorUser.

Reimplemented from NavigatorUser.

00799 {
00800     CanvasViewer viewer = getCanvasViewer(viewerID);
00801     if (viewer != null)
00802         viewer.doPan(x, y);
00803 }

void MdiApp::handleNavigatorZoomed int    viewerID,
double    zoomVal
[inline]
 

Implementation of NavigatorUser.

Reimplemented from NavigatorUser.

00809 {
00810     CanvasViewer viewer = getCanvasViewer(viewerID);
00811     if (viewer != null)
00812         viewer.doZoom(zoomVal);
00813 }

void MdiApp::handleNavigatorSelected int    viewerID [inline]
 

Implementation of NavigatorUser.

Reimplemented from NavigatorUser.

00819 {
00820     CanvasViewer viewer = getCanvasViewer(viewerID);
00821     if (viewer != null)
00822         _navigator.updateStatus(viewer);
00823 }

void MdiApp::internalFrameClosed InternalFrameEvent    e [inline]
 

Implementation of InternalFrameListener.

00829 {
00830     JInternalFrame frame = (JInternalFrame) e.getSource();
00831     if (frame == _activeFrame)
00832         _activeFrame = null;
00833     CanvasViewer viewer = (CanvasViewer)frame.getClientProperty("Hx.Viewer");
00834     if (viewer != null) {
00835         removeCanvasViewer(viewer.getViewerID());
00836         _activeViewer = null;
00837         _navigator.updateStatus(getFirstCanvasViewer());
00838     } else {
00839         for (int i=0; i<_toolFrames.size(); i++) {
00840             JInternalFrame f = (JInternalFrame) _toolFrames.get(i);
00841             if (f == frame) {
00842                 _toolFrames.remove(f);
00843             }
00844         }
00845     }
00846     updateWindowMenu();
00847 }

void MdiApp::internalFrameActivated InternalFrameEvent    e [inline]
 

Implementation of InternalFrameListener.

00853 {
00854     _activeFrame = (JInternalFrame) e.getSource();
00855     updateWindowMenu();
00856     _activeViewer = (CanvasViewer)_activeFrame.getClientProperty("Hx.Viewer");
00857     if (_activeViewer != null)
00858         _navigator.updateStatus(_activeViewer);
00859 }

void MdiApp::internalFrameClosing InternalFrameEvent    e [inline]
 

Implementation of InternalFrameListener (ignored).

00864 {}

void MdiApp::internalFrameOpened InternalFrameEvent    e [inline]
 

00865 {}

void MdiApp::internalFrameIconified InternalFrameEvent    e [inline]
 

00866 {}

void MdiApp::internalFrameDeiconified InternalFrameEvent    e [inline]
 

00867 {}

void MdiApp::internalFrameDeactivated InternalFrameEvent    e [inline]
 

00868 {}

void MdiApp::itemStateChanged ItemEvent    e [inline]
 

Implementation of ItemListener.

00874 {
00875     if (e.getStateChange() == ItemEvent.DESELECTED)
00876         return;
00877 
00878     JMenuItem source = (JMenuItem)(e.getSource());
00879     String s = source.getText();
00880     JInternalFrame[] frames = _desktop.getAllFrames();
00881     for (int i=0 ; i<frames.length ; i++)
00882         if (frames[i].getTitle().compareTo(s) == 0) {
00883             if (frames[i].isIcon()) {
00884                 try {
00885                     frames[i].setIcon(false);
00886                 } catch (java.beans.PropertyVetoException ex1) {}
00887             }
00888             try {
00889                 frames[i].setSelected(true);
00890                 frames[i].setVisible(true);
00891             } catch (java.beans.PropertyVetoException ex2) {}
00892         }
00893 }

boolean MdiApp::buildSample JFrame    parent,
JApplet    applet,
String    args[]
[inline, protected, virtual]
 

Initialization.

Reimplemented from SampleApp.

00904 {
00905     OutputStreamArea out = new OutputStreamArea(10, 60, false);
00906     ErrorStreamArea errorText = new ErrorStreamArea(parent, 4, 60);
00907 
00908     OutputStreamArea.println("Initializing CorbaMediator...");
00909     initCorbaMediator(args);
00910     addInitialService(HxCorba.ConstructorHelper.id(), "Constructor", "CTOR");
00911     addInitialService(HxCorba.GlobalOpsHelper.id(), "GlobalOps", "OPS");
00912 
00913     _objManager = new CorbaMdiObjectManager();
00914 
00915     AdvancedLookupManager lMgr = setAdvancedLookupManager(parent);
00916     lMgr.allowChangeServer(false);
00917 
00918     OutputStreamArea.println("Building "+getSampleName()+" GUI...");
00919     parent.setTitle(getSampleName()+" (unregistered)");
00920 
00921     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
00922     parent.setBounds(0, 0, screenSize.width - 50, screenSize.height - 50);
00923 
00924     // Create desktop
00925 
00926     _desktop = new JDesktopPane();
00927     //_desktop.putClientProperty("JDesktopPane.dragMode", "outline");
00928     _windowMenu = new JMenu("Windows");
00929 
00930     int x, y;
00931 
00932     // Create frame for text output
00933 
00934     JInternalFrame outFrame = new JInternalFrame("Output",
00935                                                  true, false, true, true);
00936     outFrame.getContentPane().add(out);
00937     outFrame.addInternalFrameListener(this);
00938     outFrame.pack();
00939     // Should be based on desktop, but that is not packed yet.
00940     x = parent.getSize().width - outFrame.getSize().width;
00941     y = parent.getSize().height - outFrame.getSize().height;
00942     y = y - 65; // allow space for status bar
00943     outFrame.setLocation(x, y);
00944     _desktop.add(outFrame);
00945     outFrame.setVisible(true);
00946     _fixedFrames.add(outFrame);
00947 
00948     // Create frame for errors
00949 
00950     JInternalFrame errFrame = new JInternalFrame("Errors",
00951                                                  true, false, true, true);
00952     errFrame.getContentPane().add(errorText);
00953     errFrame.addInternalFrameListener(this);
00954     errFrame.pack();
00955     errFrame.setLocation(x, y - errFrame.getSize().height);
00956     _desktop.add(errFrame);
00957     errFrame.setVisible(true);
00958     _fixedFrames.add(errFrame);
00959 // This makes it invisible :-(
00960 //    _desktop.getDesktopManager().iconifyFrame(errFrame);
00961 // This also makes it invisible :-(
00962 //    try {
00963 //        errFrame.setIcon(true);
00964 //    } catch (java.beans.PropertyVetoException e) {}
00965 
00966 
00967     // Add StatusBars to parent frame below desktop
00968 
00969     JPanel statusP = new JPanel();
00970     statusP.setLayout(new GridBagLayout());
00971     _stBar1 = new JTextField("StatusBar1");
00972     _stBar1.setEditable(false);
00973     HX.addGridComp(statusP, _stBar1, 0, 0, 1, 1,
00974                    GridBagConstraints.HORIZONTAL, 1.0, 0.0, 0, 0);
00975     _stBar2 = new JTextField("StatusBar2");
00976     _stBar2.setEditable(false);
00977     HX.addGridComp(statusP, _stBar2, 1, 0, 1, 1,
00978                    GridBagConstraints.HORIZONTAL, 1.0, 0.0, 0, 0);
00979     parent.getContentPane().add("South", statusP);
00980 
00981 
00982     // Add ViewerControlBar to desktop
00983 
00984     _vcb = new ViewerControlBar();
00985     _vcb.addViewerModeListener(this);
00986     JInternalFrame vcbFrame = new JInternalFrame("ViewerControlBar",
00987                                                  false, false, false, true);
00988     vcbFrame.getContentPane().add(_vcb);
00989     vcbFrame.addInternalFrameListener(this);
00990     vcbFrame.pack();
00991     _desktop.add(vcbFrame);
00992     vcbFrame.setVisible(true);
00993     // Should be based on desktop, but that is not packed yet.
00994     x = parent.getSize().width - vcbFrame.getSize().width;
00995     y = 0;
00996     vcbFrame.setLocation(x, y);
00997     _fixedFrames.add(vcbFrame);
00998 
00999     // Add Navigator to desktop
01000 
01001     double[] values = {0.1, 0.2, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 10.0, 20.0};
01002     _navigator = new Navigator(this, 1.0, 0.1, 20.0, values, 2);
01003     JInternalFrame zoomFrame = new JInternalFrame("Navigator",
01004                                                   false, false, false, true);
01005     zoomFrame.getContentPane().add(_navigator);
01006     zoomFrame.addInternalFrameListener(this);
01007     zoomFrame.pack();
01008     x = parent.getSize().width - zoomFrame.getSize().width;
01009     y = vcbFrame.getSize().height;
01010     zoomFrame.setLocation(x, y);
01011     _desktop.add(zoomFrame);
01012     zoomFrame.setVisible(true);
01013     _fixedFrames.add(zoomFrame);
01014 
01015     // Create CorbaExtMenuBar:
01016 
01017     //OutputStreamArea.println("Querying InterfaceRepository...");
01018     //org.omg.CORBA.Repository ir = ServiceRepository.instance().getRepository();
01019     _bmenu = new CorbaExtMenuBar(parent, this);
01020     _bmenu.addMenu("File");
01021     _bmenu.addMenuItem("File", "Open Image Java", "handleOpenImageJava");
01022     _bmenu.addMenuItem("File", "Open Server Image", "handleOpenServerImage");
01023     _bmenu.addMenuItem("File", "Open Server Sequence", "handleOpenServerSeq");
01024     _bmenu.addSeparator("File");
01025     _bmenu.addMenuItem("File", "Exit", "handleExit");
01026 
01027     _bmenu.addMenu("Edit");
01028     _bmenu.addMenuItem("Edit", "Cut", (String)null);
01029     _bmenu.addMenuItem("Edit", "Copy", (String)null);
01030     _bmenu.addMenuItem("Edit", "Paste", "handlePaste");
01031 
01032     _bmenu.addMenu("Preferences");
01033     _bmenu.addSubMenu("Preferences", "Look&Feel");
01034     String[] lf = { "Cross Platform", "System", "Motif" };
01035     _bmenu.addGroupMenu("Look&Feel", lf, "handleLF", lf[0]);
01036 
01037     _bmenu.addMenu("Viewer");
01038     _bmenu.addMenuItem("Viewer", "New viewer", "handleNewViewer");
01039     _bmenu.addMenuItem("Viewer", "Refresh", null,
01040         new CallableMethod("doRefresh"),
01041         this, "handleViewerOp");
01042     _bmenu.addMenuItem("Viewer", "Clear", null,
01043         new CallableMethod("doClear"),
01044         this, "handleViewerOp");
01045     _bmenu.addMenuItem("Viewer", "Normal view", "handleNormalView");
01046     _bmenu.addMenuItem("Viewer", "Fit viewport to canvas", "handleFitViewportToCanvas");
01047     _bmenu.addSeparator("Viewer");
01048     _bmenu.addSubMenu("Viewer", "Set Default Drawing Color");
01049     _bmenu.addColorsMenu("Set Default Drawing Color", "handleDrawingColor");
01050     _bmenu.addSubMenu("Viewer", "Set Background Color");
01051     _bmenu.addColorsMenu("Set Background Color", "handleBackgroundColor");
01052     _bmenu.addSeparator("Viewer");
01053     _bmenu.addSubMenu("Viewer", "Default Display Mode");
01054     _bmenu.addGroupMenu("Default Display Mode", getRGBModes(), "handleDisplayMode", _displayMode);
01055     _bmenu.addSeparator("Viewer");
01056     _bmenu.addSubMenu("Viewer", "View Object");
01057     _bmenu.addMenuItem("View Object", "ImageRep",
01058         new CallableMethod("viewImageRep",
01059                                 "String", "image name", HxCorba.ImageRepHelper.id(),
01060                                 "boolean", "pop new viewer", "boolean"));
01061     _bmenu.addMenuItem("View Object", "Blob2d",
01062         new CallableMethod("viewBlob2d",
01063                                 "String", "blob name", HxCorba.Blob2dHelper.id(),
01064                                 "boolean", "pop new viewer", "boolean"));
01065     _bmenu.addMenuItem("View Object", "Polyline2d",
01066         new CallableMethod("viewPolyline2d",
01067                                 "String", "polyline name", HxCorba.Polyline2dHelper.id(),
01068                                 "boolean", "pop new viewer", "boolean"));
01069     _bmenu.addMenuItem("View Object", "BSplineCurve",
01070         new CallableMethod("viewBSplineCurve",
01071                                 "String", "b-spline name", HxCorba.BSplineCurveHelper.id(),
01072                                 "boolean", "pop new viewer", "boolean"));
01073     _bmenu.addMenuItem("View Object", "SampledBSplineCurve",
01074         new CallableMethod("viewSampledBSplineCurve",
01075                                 "String", "b-spline name", HxCorba.SampledBSplineCurveHelper.id(),
01076                                 "boolean", "pop new viewer", "boolean"));
01077     _bmenu.addMenuItem("Viewer", "View All Images", "handleViewAllImages");
01078     _bmenu.addSeparator("Viewer");
01079     _bmenu.addMenuItem("Viewer", "make Image", "handleMakeImage");
01080     //_bmenu.addMenuItem("Viewer", "to HxImageRep", "handleToHxImageRep");
01081 
01082     _bmenu.addMenu("Tools");
01083     _bmenu.addMenuItem("Tools", "Registry Viewer", "handleRegistryViewer");
01084     //_bmenu.addMenuItem("Tools", "Sa Repository Viewer", "handleSaRepositoryViewer");
01085     _bmenu.addMenuItem("Tools", "Pixel Editor", "handlePixelEditor");
01086     _bmenu.addSeparator("Tools");
01087     _bmenu.addMenuItem("Tools", "Stub Browser", "handleStubBrowser");
01088     _bmenu.addMenuItem("Tools", "Image Browser", "handleImageBrowser");
01089     _bmenu.addMenuItem("Tools", "App Browser", "handleAppBrowser");
01090     _bmenu.addMenuItem("Tools", "Operations", "handleOperationsBrowser");
01091     _bmenu.addMenuItem("Tools", "IDL Script", "handleIDLScript");
01092     _bmenu.addSeparator("Tools");
01093     _bmenu.addMenuItem("Tools", "Register App", "handleRegisterApp");
01094 
01095     _bmenu.addMenu("Object");
01096     _bmenu.addMenuItem("Object", "New java image",
01097         new CallableMethod("handleNewJavaImage",
01098                                 "int", "width", "int",
01099                                 "int", "height", "int",
01100                                 "Color", "background color", "Color"));
01101     _bmenu.addCorbaOperationMenu("Object", "Java image to HxImageRep",
01102         "Constructor", "importImage");
01103     _bmenu.addCorbaOperationMenu("Object", "Java polyline to HxPolyline2d",
01104         "Constructor", "importPolyline");
01105     _bmenu.addSeparator("Object");
01106     _bmenu.addMenuItem("Object", "Label cermet",
01107         new CallableMethod("handleLabelCermet",
01108                                 "String", "cermet name", HxCorba.ImageRepHelper.id()));
01109     _bmenu.addMenuItem("Object", "Example BSpline",
01110         (CallableMethod)null);
01111         /*new CallableMethod("handleExampleBSpline",
01112                                 "int", "Polyong ID", "int",
01113                                 "int", "Degree", "int",
01114                                 "boolean", "Interpolate", "boolean"));*/
01115     _bmenu.addSeparator("Object");
01116     _bmenu.addMenuItem("Object", "TestSomething", "handleTestSomething");
01117 
01118     _bmenu.addCorbaObjectsMenu();
01119     _bmenu.addCorbaObjectMenu("Constructor");
01120     _bmenu.addCorbaObjectMenu("ImageRep");
01121     _bmenu.addCorbaObjectMenu("GlobalOps");
01122     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images");
01123     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Arithmetic");
01124     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Conversions");
01125     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Color");
01126     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Detector");
01127     /*
01128     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Export");
01129     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Filter");
01130     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Generation");
01131     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Geometric");
01132     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Mask");
01133     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Morphology");
01134     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Morphology2");
01135     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Motion");
01136     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Noise");
01137     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Pixel");
01138     _bmenu.addCorbaObjectMenu("GlobalOps/Menu/Images/Segmentation");
01139     */
01140 
01141     parent.getContentPane().add(_desktop);
01142     parent.setJMenuBar(_bmenu);
01143 
01144     _bmenu.add(_windowMenu);
01145     updateWindowMenu();
01146 
01147     parent.show();
01148 
01149     _desktop.setDropTarget(new DropTarget(_desktop, _objManager));
01150 
01151 //    handleSystemLF();
01152 
01153     OutputStreamArea.println("Done.");
01154     out.capture();
01155 
01156     return true;
01157 }


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