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

OracleSurfApp Class Reference

An image surfer application (through OracleDatabase). More...

Inheritance diagram for OracleSurfApp::

CorbaSampleApp ViewerInspectionListener SampleApp List of all members.

Public Methods

void handleNewImage (HxCorba.ImageRep img, String name)
void handleExit ()
 This function is called by _bmenu if the associated menu item is selected. More...

void handleViews ()
void handleRandom ()
void handleSearch ()
void viewerEntered (ViewerEvent e)
 Method invoked when the mouse enters the viewer. More...

void viewerExited (ViewerEvent e)
 Method invoked when the mouse leaves the viewer. More...

void viewerSelected (ViewerEvent e)
 Method invoked when a viewer has been selected. More...

void objectEntered (ViewerEvent e)
 Method invoked when the mouse passes over a CanvasObject for the first time. More...

void objectProbed (ViewerEvent e)
 Method invoked when the mouse passes over a CanvasObject it had already entered. More...

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


Static Public Methods

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


Protected Methods

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

Detailed Description

An image surfer application (through OracleDatabase).


Member Function Documentation

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

main is called when this is used as an application.

This function has to be overloaded in the "leaf node" application itself.

Reimplemented from SampleApp.

00035 {
00036     OracleSurfApp app = new OracleSurfApp();
00037     app.doMain(args);
00038 
00039     // doMain will call buildSample
00040 }

void OracleSurfApp::handleNewImage HxCorba.ImageRep    img,
String    name
[inline]
 

00044 {
00045     if (img == null)
00046         return;
00047 
00048     // Clear viewer and add new image.
00049     CanvasObject cObj = new CanvasCorbaImage(img);
00050     _mainViewer.doClear();
00051     _mainViewer.addObject(cObj);
00052 
00053     _queryImage = img;
00054     _queryName = name;
00055 
00056     OutputStreamArea.println("Search Image: " + name);
00057 }

void OracleSurfApp::handleExit   [inline]
 

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

00062 {
00063     quitSample();
00064 }

void OracleSurfApp::handleViews   [inline]
 

00067 {
00068     for (int i=0 ; i<_viewerNames.length ; i++) {
00069         _viewerImages[i] = _ctor.fromFile(_imageDir+"/"+_viewerNames[i]);
00070         if(_viewerImages[i] == null) {
00071             ErrorStreamArea.println(_ctor.getLastError());
00072             return;
00073         }
00074         CanvasObject cObj = new CanvasCorbaImage(_viewerImages[i]);
00075         _viewer[i].doClear();
00076         _viewer[i].addObject(cObj);
00077         _caption[i].setText(_viewerNames[i]);
00078     }
00079     _viewersPanel.invalidate();
00080 }

void OracleSurfApp::handleRandom   [inline]
 

00083 {
00084     try {
00085         _viewerNames = _ses.random(_setName, _nrViewers);
00086         handleViews();
00087     }
00088     catch(HxCorba.DatabaseException ex) {
00089         ErrorStreamArea.println(ex.message);
00090     }
00091 }

void OracleSurfApp::handleSearch   [inline]
 

00094 {
00095     if (_queryImage == null) {
00096         ErrorStreamArea.println("No query image.");
00097         return;
00098     }
00099 
00100     try {
00101         _viewerNames = _ses.nearest(_queryName, _setName, _nrViewers);
00102         handleViews();
00103     }
00104     catch(HxCorba.DatabaseException ex) {
00105         ErrorStreamArea.println(ex.message);
00106     }
00107 }

void OracleSurfApp::viewerEntered ViewerEvent    e [inline]
 

Method invoked when the mouse enters the viewer.

Reimplemented from ViewerInspectionListener.

00111 {}

void OracleSurfApp::viewerExited ViewerEvent    e [inline]
 

Method invoked when the mouse leaves the viewer.

Reimplemented from ViewerInspectionListener.

00112 {}

void OracleSurfApp::viewerSelected ViewerEvent    e [inline]
 

Method invoked when a viewer has been selected.

Reimplemented from ViewerInspectionListener.

00113 {}

void OracleSurfApp::objectEntered ViewerEvent    e [inline]
 

Method invoked when the mouse passes over a CanvasObject for the first time.

Reimplemented from ViewerInspectionListener.

00114 {}

void OracleSurfApp::objectProbed ViewerEvent    e [inline]
 

Method invoked when the mouse passes over a CanvasObject it had already entered.

Reimplemented from ViewerInspectionListener.

00115 {}

void OracleSurfApp::objectSelected ViewerEvent    e [inline]
 

Implementation of ViewerInspectionListener.

Reimplemented from ViewerInspectionListener.

00120 {
00121     CanvasViewer v = (CanvasViewer) e.getViewer();
00122     int index = -1;
00123     for (int i=0 ; i<_nrViewers ; i++) {
00124         if (_viewer[i] == v)
00125             index = i;
00126     }
00127     if (index != -1) {
00128         OutputStreamArea.println("Image thumbnail selected: " + index);
00129         handleNewImage(_viewerImages[index], _viewerNames[index]);
00130     }
00131 }

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

Reimplemented from SampleApp.

00141 {
00142     OutputStreamArea out = new OutputStreamArea(10, 80, false);
00143     ErrorStreamArea err = new ErrorStreamArea(parent, 3, 80);
00144 
00145     OutputStreamArea.println("Initializing CorbaMediator...");
00146     initCorbaMediator(args);
00147     setAdvancedLookupManager(parent);
00148 
00149     _imageDir = getSampleProperty("ImageDir");
00150     if(_imageDir.equals("")) {
00151         ErrorStreamArea.println("\"ImageDir\" property not defined!");
00152         return false;
00153     }
00154     _setName = getSampleProperty("SetName");
00155     if(_setName.equals("")) {
00156         ErrorStreamArea.println("\"SetName\" property not defined!");
00157         return false;
00158     }
00159 
00160     _ses = openDBSession();
00161     if(_ses == null) return false;
00162     _ctor = ServiceRepository.instance().getConstructor();
00163     if(_ctor == null) return false;
00164 
00165     OutputStreamArea.println("Building "+getSampleName()+" GUI...");
00166 
00167     // Main panel
00168 
00169     JPanel gui = new JPanel(new GridBagLayout());
00170 
00171     // Setup splitpanes
00172 
00173     JSplitPane lowerLeft = new JSplitPane(JSplitPane.VERTICAL_SPLIT, out, err);
00174     lowerLeft.setOneTouchExpandable(true);
00175     lowerLeft.setDividerLocation(170);
00176 
00177     _mainViewer = ViewerFactory.makeBasicViewer();
00178     _mainViewer.addViewerInspectionListener(this);
00179     JSplitPane left = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
00180                                      _mainViewer, lowerLeft);
00181     left.setOneTouchExpandable(true);
00182     left.setDividerLocation(512);
00183 
00184     JSplitPane viewSP = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
00185                                        left, makeViewers());
00186     viewSP.setOneTouchExpandable(true);
00187     viewSP.setDividerLocation(512);
00188     HX.addGridComp(gui, viewSP, 0, 0, 1, 1,
00189                    GridBagConstraints.BOTH, 1.0, 1.0, 1, 1);
00190 
00191 
00192     // Create ExtMenuBar:
00193 
00194     _bmenu = new ExtMenuBar(this);
00195     _bmenu.addMenu("File");
00196     _bmenu.addMenuItem("File", "Exit", "handleExit");
00197 
00198     _bmenu.addMenu("Surf");
00199     _bmenu.addMenuItem("Surf", "Random", "handleRandom");
00200     _bmenu.addMenuItem("Surf", "Search", "handleSearch");
00201 
00202     parent.setJMenuBar(_bmenu);
00203     parent.getContentPane().add(gui, BorderLayout.CENTER);
00204     parent.setSize(1100, 840);
00205     parent.setLocation(0, 0);
00206 
00207     OutputStreamArea.println("Done.");
00208     out.capture();
00209 
00210     return true;
00211 }


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