Inheritance diagram for IDBSurfApp::
Public Methods | |
void | doArgs (String[] args) |
void | handleOpen () |
This function is called by _bmenu if the associated menu item is selected. More... | |
void | handleNewImage (int index) |
void | handleExit () |
This function is called by _bmenu if the associated menu item is selected. More... | |
void | handleDisplayModeBinary () |
void | handleDisplayModeStretch () |
void | handleDisplayModeDirect () |
void | handleViews (boolean showBlobs) |
void | handleRandom () |
void | handleSearch (String dbName) |
void | handleSearch0 () |
These functions are called by _bmenu if the associated menu item is selected. More... | |
void | handleSearch1 () |
void | handleSearch2 () |
void | handleSearch3 () |
void | handleSearch4 () |
void | handleSearch5 () |
void | handleSearch6 () |
void | handleSearch7 () |
void | handleSearch8 () |
void | handleSearch9 () |
void | handleResult (String type, String value) |
void | viewerEntered (ViewerEvent e) |
Implementation of ViewerInspectionListener. More... | |
void | viewerExited (ViewerEvent e) |
Implementation of ViewerInspectionListener. More... | |
void | viewerSelected (ViewerEvent e) |
Implementation of ViewerInspectionListener. 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... | |
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) |
|
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.
00041 { 00042 IDBSurfApp app = new IDBSurfApp(); 00043 app.doMain(args); 00044 00045 // doMain will call buildSample 00046 } |
|
00049 { 00050 int i, ndb = 0, names = 0; 00051 String[] dbFile = new String[10]; 00052 00053 for (i=0; i < 10; i++) 00054 _dbNames[i] = ""; 00055 00056 for (i=0; i < args.length; i++) { 00057 if (args[i].equals("-dir")) 00058 _dbDir = args[i+1]; 00059 else if (args[i].equals("-blobdir")) 00060 _blobDir = args[i+1]; 00061 else if (args[i].equals("-db")) { 00062 dbFile[ndb] = args[i+1]; 00063 ndb++; 00064 } 00065 else if (args[i].equals("-name")) { 00066 _dbNames[names] = args[i+1]; 00067 names++; 00068 } 00069 else if (args[i].equals("-rows")) 00070 _nrViewers = _nrColumns * Integer.valueOf(args[i+1]).intValue(); 00071 else if (args[i].equals("-highlight")) 00072 _highlightFactor = Double.valueOf(args[i+1]).doubleValue(); 00073 } 00074 00075 for (i=0; i < ndb; i++) { 00076 OutputStreamArea.println("Reading Database "+dbFile[i]); 00077 if (_dbNames[i].equals("")) 00078 _dbNames[i] = "Database"+i; 00079 _ops.HxIDBOpen(_dbNames[i], dbFile[i]); 00080 } 00081 } |
|
This function is called by _bmenu if the associated menu item is selected.
00087 { 00088 } |
|
00091 { 00092 String imname = _viewerNames[index]; 00093 00094 int strindex = imname.indexOf("#"); 00095 if (strindex>=0) 00096 imname = imname.substring(0, strindex); 00097 00098 _queryImage = _viewerImages[index]; 00099 _queryName = imname; 00100 if (!_blobDir.equals("")) 00101 _queryBlobImage = _blobImages[index]; 00102 _queryBlob = 0; 00103 00104 if (_queryImage == null) 00105 return; 00106 00107 // Clear viewer and add new image. 00108 CanvasObject cObj = new CanvasCorbaImage(_queryImage, _displayMode); 00109 _mainViewer.doClear(); 00110 _mainViewer.addObject(cObj); 00111 00112 OutputStreamArea.println("Search Image: " + _queryName); 00113 } |
|
This function is called by _bmenu if the associated menu item is selected.
00118 { 00119 System.exit(0); 00120 } |
|
00123 { _displayMode = "Binary"; } |
|
00126 { _displayMode = "Stretch"; } |
|
00129 { _displayMode = "Direct"; } |
|
00133 { 00134 if (_blobDir.equals("")) 00135 showBlobs = false; 00136 00137 for (int i=0 ; i<_viewerNames.length ; i++) { 00138 HxCorba.ImageRep showIm; 00139 String imname = _viewerNames[i]; 00140 int blobnr = 0; 00141 00142 int index = imname.indexOf("#"); 00143 if (index>=0) { 00144 blobnr = Integer.valueOf(imname.substring(index+1)).intValue(); 00145 imname = imname.substring(0, index); 00146 } 00147 00148 _viewerImages[i] = _fac.fromFile(_dbDir+"/"+imname); 00149 _blobImages[i] = _fac.fromFile(_blobDir+"/"+imname); 00150 showIm = _viewerImages[i]; 00151 00152 if (showBlobs) 00153 showIm = _ops.HxHighlightRegion(_viewerImages[i], _blobImages[i], 00154 blobnr, _highlightFactor); 00155 00156 CanvasObject cObj = new CanvasCorbaImage(showIm, _displayMode); 00157 _viewer[i].doClear(); 00158 _viewer[i].addObject(cObj); 00159 _caption[i].setText(imname); 00160 } 00161 } |
|
00164 { 00165 _viewerNames = _ops.HxIDBRandom(_dbNames[0], _nrViewers); 00166 handleViews(false); 00167 } |
|
00170 { 00171 String theQuery = _queryName; 00172 00173 if (dbName == "") { 00174 ErrorStreamArea.println("Database not loaded."); 00175 return; 00176 } 00177 if (_queryImage == null) { 00178 ErrorStreamArea.println("No query image."); 00179 return; 00180 } 00181 00182 if (!_blobDir.equals("") && (_queryBlob == 0)) { 00183 ErrorStreamArea.println("No blob specified (point with mouse)."); 00184 return; 00185 } 00186 00187 if (!_blobDir.equals("")) 00188 theQuery = _queryName+"#"+(_queryBlob-1); 00189 00190 _viewerNames = _ops.HxIDBSearch(theQuery, dbName, _nrViewers); 00191 handleViews(true); 00192 } |
|
These functions are called by _bmenu if the associated menu item is selected.
00198 { handleSearch(_dbNames[0]); } |
|
00199 { handleSearch(_dbNames[1]); } |
|
00200 { handleSearch(_dbNames[2]); } |
|
00201 { handleSearch(_dbNames[3]); } |
|
00202 { handleSearch(_dbNames[4]); } |
|
00203 { handleSearch(_dbNames[5]); } |
|
00204 { handleSearch(_dbNames[6]); } |
|
00205 { handleSearch(_dbNames[7]); } |
|
00206 { handleSearch(_dbNames[8]); } |
|
00207 { handleSearch(_dbNames[9]); } |
|
00211 { 00212 /*if(type.equals("interface ImageRep")) { 00213 HxCorba.ImageRep image = (HxCorba.ImageRep)CorbaMediator.getStub( 00214 HxCorba.ImageRepHelper.id(), value); 00215 00216 showImage(image, _rightViewer); 00217 } 00218 else*/ if(type.equals("void")) 00219 OutputStreamArea.println("void"); 00220 else if(type.equals("error")) 00221 ErrorStreamArea.println(value); 00222 else 00223 OutputStreamArea.println("Result: "+value+", type: "+type); 00224 } |
|
Implementation of ViewerInspectionListener.
Reimplemented from ViewerInspectionListener.
00230 { 00231 } |
|
Implementation of ViewerInspectionListener.
Reimplemented from ViewerInspectionListener.
00237 { 00238 } |
|
Implementation of ViewerInspectionListener.
Reimplemented from ViewerInspectionListener.
00244 { 00245 } |
|
Implementation of ViewerInspectionListener.
Reimplemented from ViewerInspectionListener.
00251 { 00252 } |
|
Implementation of ViewerInspectionListener.
Reimplemented from ViewerInspectionListener.
00258 { 00259 } |
|
Implementation of ViewerInspectionListener.
Reimplemented from ViewerInspectionListener.
00264 { 00265 CanvasViewer v = (CanvasViewer) e.getViewer(); 00266 int index = -1; 00267 for (int i=0 ; i<_nrViewers ; i++) { 00268 if (_viewer[i] == v) 00269 index = i; 00270 } 00271 if (index != -1) { 00272 OutputStreamArea.println("Image thumbnail selected: " + index); 00273 handleNewImage(index); 00274 } 00275 if ((_mainViewer == v) && !_blobDir.equals("")) { 00276 _queryBlob = _queryBlobImage.getAt(e.getXPosPcs(), 00277 e.getYPosPcs(),0).scalarInt()+1; 00278 OutputStreamArea.println("Image blob selected: " + (_queryBlob-1)); 00279 00280 HxCorba.ImageRep showIm; 00281 showIm = _ops.HxHighlightRegion(_queryImage, _queryBlobImage, 00282 _queryBlob-1, _highlightFactor); 00283 00284 CanvasObject cObj = new CanvasCorbaImage(showIm, _displayMode); 00285 _mainViewer.doClear(); 00286 _mainViewer.addObject(cObj); 00287 } 00288 } |
|
Reimplemented from SampleApp.
00298 { 00299 OutputStreamArea out = new OutputStreamArea(10, 80, false); 00300 ErrorStreamArea err = new ErrorStreamArea(parent, 3, 80); 00301 00302 OutputStreamArea.println("Initializing CorbaMediator..."); 00303 initCorbaMediator(args); 00304 setAdvancedLookupManager(parent); 00305 00306 _ops = ServiceRepository.instance().getGlobalOps(); 00307 if(_ops == null) return false; 00308 _fac = ServiceRepository.instance().getConstructor(); 00309 if(_fac == null) return false; 00310 _conf = ServiceRepository.instance().getConfigure(); 00311 if(_conf == null) return false; 00312 00313 _conf.getObjectUsage("IDL:HxCorba/ImageRep:1.0").setTotalLimit("Images",50); 00314 00315 doArgs(args); 00316 00317 OutputStreamArea.println("Building "+getSampleName()+" GUI..."); 00318 00319 // Create FileChooser, for loading images into viewer 00320 00321 _fc = new JFileChooser("\\images"); 00322 _horusFilter = new HorusImageFilter(); 00323 _fc.addChoosableFileFilter(_horusFilter); 00324 00325 // Main panel 00326 00327 JPanel gui = new JPanel(new GridBagLayout()); 00328 00329 // Setup splitpanes 00330 00331 JSplitPane lowerLeft = new JSplitPane(JSplitPane.VERTICAL_SPLIT, out, err); 00332 lowerLeft.setOneTouchExpandable(true); 00333 lowerLeft.setDividerLocation(170); 00334 00335 _mainViewer = ViewerFactory.makeBasicViewer(); 00336 _mainViewer.addViewerInspectionListener(this); 00337 JSplitPane left = new JSplitPane(JSplitPane.VERTICAL_SPLIT, 00338 _mainViewer, lowerLeft); 00339 left.setOneTouchExpandable(true); 00340 left.setDividerLocation(512); 00341 00342 JSplitPane viewSP = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, 00343 left, makeViewers()); 00344 viewSP.setOneTouchExpandable(true); 00345 viewSP.setDividerLocation(512); 00346 HX.addGridComp(gui, viewSP, 0, 0, 1, 1, 00347 GridBagConstraints.BOTH, 1.0, 1.0, 1, 1); 00348 00349 00350 // Create ExtMenuBar: 00351 00352 _bmenu = new ExtMenuBar(this); 00353 _bmenu.addMenu("File"); 00354 _bmenu.addMenuItem("File", "Open", "handleOpen"); 00355 _bmenu.addSeparator("File"); 00356 _bmenu.addMenuItem("File", "Exit", "handleExit"); 00357 00358 _bmenu.addMenu("Surf"); 00359 00360 for (int i=0; i<10; i++) { 00361 if (_dbNames[i].equals("")) { 00362 } 00363 else 00364 _bmenu.addMenuItem("Surf", _dbNames[i], "handleSearch"+i); 00365 } 00366 _bmenu.addSeparator("Surf"); 00367 _bmenu.addMenuItem("Surf", "Random", "handleRandom"); 00368 _bmenu.addSeparator("Surf"); 00369 _bmenu.addSubMenu("Surf", "Default Display Mode"); 00370 _bmenu.addMenuItem("Default Display Mode", "Stretch", 00371 "handleDisplayModeStretch"); 00372 _bmenu.addMenuItem("Default Display Mode", "Binary", 00373 "handleDisplayModeBinary"); 00374 _bmenu.addMenuItem("Default Display Mode", "Direct", 00375 "handleDisplayModeDirect"); 00376 00377 parent.setJMenuBar(_bmenu); 00378 parent.getContentPane().add(gui, BorderLayout.CENTER); 00379 parent.setSize(1100, 840); 00380 parent.setLocation(0, 0); 00381 00382 OutputStreamArea.println("Done."); 00383 out.capture(); 00384 00385 return true; 00386 } |