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

VideoBrowser Class Reference

A Video browser. More...

Inheritance diagram for VideoBrowser::

VideoSampleApp CorbaSampleApp SampleApp VideoBrowserDemos List of all members.

Public Methods

boolean handleOpenSequence (String videoDir, String videoName)
boolean handleOpenSequence ()
 This function is called by _bmenu if the associated menu item is selected. More...

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

void handlePlayMode (String mode)
void handlePlayMode (PlayMode mode)
void handleScaleDisplay (double scale)
void handleSingleWindow ()
void handleMultWindows ()
void handleWindowMode (String mode)
void handleWindowMode (PlayerWindowMode mode)
void handleCopyResults ()
void handlePasteResults ()

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)
 Initialization. More...

HxCorba.DatabaseSession openDBSession ()
void changeSession (HxCorba.DatabaseSession newSession)
void addQueryPanel (String title, JPanel queryPanel)
void removeQueryPanel (JPanel queryPanel)
QueryUser makeBrowserQueryUser ()

Detailed Description

A Video browser.


Member Function Documentation

void VideoBrowser::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.

Reimplemented in VideoBrowserDemos.

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

boolean VideoBrowser::handleOpenSequence String    videoDir,
String    videoName
[inline]
 

00042 {
00043     //File file = videoDir.equals("")? new File(videoName+".mpg") :
00044     //  new File(videoDir, videoName+".mpg");
00045     //file = file.getAbsoluteFile();
00046     /*if(!file.exists()) {
00047         ErrorStreamArea.println(file.getPath()+" doesn't exist");
00048         return false;
00049     }
00050     else*/
00051     //  return handleOpenSequence(file);
00052     return handleOpenSequence(videoDir+videoName+".mpg");
00053 }

boolean VideoBrowser::handleOpenSequence   [inline]
 

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

00058 {
00059     File file = askFilename(SEQ_FILTER, CorbaMediator.instance().hasLocalServer());
00060     if(file != null)
00061         return handleOpenSequence(file.getPath());
00062     else
00063         return false;
00064 }

boolean VideoBrowser::handleOpenSequence String    filename [inline]
 

00067 {
00068     _storyboard.clear();
00069     _director.stop();
00070     _butShowMoreShots.setEnabled(false);
00071     _butShowAllShots.setEnabled(false);
00072     _resultSetBox.setEnabled(false);
00073 
00074     try {
00075         if(_seq != null) _seq.destroy();
00076         _seq = null;
00077     }
00078     catch(Exception e) {
00079         ErrorStreamArea.println(" "+e);
00080         e.printStackTrace();
00081     }
00082 
00083     HxCorba.Constructor constructor =
00084         ServiceRepository.instance().getConstructor();
00085     if(constructor == null) return false;
00086 
00087     // Here is some dirty stuff to release unused objects from HxServer:
00088     //HxCorba.Configure cfg =   ServiceRepository.instance().getConfigure();
00089     //if(cfg != null) {
00090     //  try {
00091     //      HxCorba.ObjectUsage us = cfg.getDefaultObjectUsage();
00092     //      us.setTotalLimit("Objects", 10);
00093     //      us.close();
00094     //  }
00095     //  catch(Exception e) {}
00096     //}
00097 
00098     try {
00099         _seq = constructor.constructBufferedImageSeq(filename, BUFF_SIZE+1);
00100         if(_seq == null) {
00101             ErrorStreamArea.println(constructor.getLastError());
00102             return false;
00103         }
00104 
00105         _videoName = nameFromFile(new File(filename));
00106 
00107         _seqDisplayer.setSequence(_seq);
00108         _externalPlayer.setSequencePath(filename);
00109 
00110         _director = new PlayingDirector(_seq.nrFrames());
00111 
00112         FrameNavigatorDisplayer navDisp = new FrameNavigatorDisplayer(_frameNav);
00113         FrameNavigatorDisplayer storyDisp = new FrameNavigatorDisplayer(_storyboard);
00114 
00115         _director.addPlayingObserver(_seqDisplayer);
00116         _director.addPlayingObserver(makeFrameStatusDisplayer());
00117         _director.addPlayingObserver(navDisp.makeObserver(_director));
00118         _director.addPlayingObserver(_externalPlayer);
00119         //_director.addPlayingObserver(PlayingObserverFactory.makeDebugObserver());
00120 
00121         //Set Director to enable buttons
00122         setDirector(_director);
00123 
00124         HxCorba.VxSegmentation seg = _session.getSegmentation(_videoName, "blocks");
00125         if(seg != null) {
00126             _storyboard.updateSegs(_seq, seg, 5);
00127             _butShowMoreShots.setEnabled(true);
00128             _butShowAllShots.setEnabled(true);
00129             _resultSetBox.setEnabled(true);
00130             _director.addPlayingObserver(storyDisp.makeObserver(_director));
00131         }
00132         else ErrorStreamArea.println("There is no 'blocks' information for video.");
00133 
00134         handlePlayMode(_playMode);
00135         _director.setCurrentFrame(0);
00136 
00137         getParentFrame().setTitle(getSampleName()+" - "+_videoName);
00138 
00139         return true;
00140     }
00141     catch(Exception e) {
00142         ErrorStreamArea.println(" "+e);
00143         e.printStackTrace();
00144     }
00145     return false;
00146 }

void VideoBrowser::handleExit   [inline]
 

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

00151 {
00152     _externalPlayer.close();
00153 
00154     try {
00155         if(_session != null) _session.close();
00156     }
00157     catch(Exception e) {
00158         ErrorStreamArea.println(" "+e);
00159     }
00160     quitSample();
00161 }

void VideoBrowser::handlePlayMode String    mode [inline]
 

00164 {
00165     PlayMode playMode = PlayMode.getMode(mode);
00166     if(playMode == null)
00167         OutputStreamArea.println("Unknown PlayMode: "+mode);
00168     else
00169         handlePlayMode(playMode);
00170 }

void VideoBrowser::handlePlayMode PlayMode    mode [inline]
 

00173 {
00174     _playMode = mode;
00175     if(_seq == null) return;
00176 
00177     _externalPlayer.setMode(externalPlayerMode(mode));
00178     _director.setRealTime(isRealTimeMode(mode));
00179 
00180     _seqDisplayer.setThreadedMode(mode == PlayMode.THREADED);
00181     _seqDisplayer.setEnabled(mode != PlayMode.EXTERNAL);
00182 
00183     _director.showCurrentFrame();
00184 }

void VideoBrowser::handleScaleDisplay double    scale [inline]
 

00187 {
00188     if(scale <= 0.0) {
00189         ErrorStreamArea.println("Scale must be bigger than 0.0");
00190         return;
00191     }
00192 
00193     _seqDisplayer.setScale(scale);
00194 }

void VideoBrowser::handleSingleWindow   [inline]
 

00197 {
00198     handleWindowMode(PlayerWindowMode.SINGLE);
00199 }

void VideoBrowser::handleMultWindows   [inline]
 

00202 {
00203     handleWindowMode(PlayerWindowMode.MDI);
00204 }

void VideoBrowser::handleWindowMode String    mode [inline]
 

00207 {
00208     PlayerWindowMode windowMode = PlayerWindowMode.getMode(mode);
00209     if(windowMode == null)
00210         OutputStreamArea.println("Unknown WindowMode: "+mode);
00211     else
00212         handleWindowMode(windowMode);
00213 }

void VideoBrowser::handleWindowMode PlayerWindowMode    mode [inline]
 

00216 {
00217     _windowMode = mode;
00218 
00219     for(int i=0; i<_windows.size(); i++) {
00220         ((PlayerWindow)_windows.elementAt(i)).setMode(_windowMode);
00221     }
00222 
00223     JComponent component = (mode == PlayerWindowMode.MDI)?
00224         (JComponent)_desktop : (JComponent)_fixedPanel;
00225 
00226     JFrame parent = getParentFrame();
00227     changeContent(getParentFrame().getContentPane(), component);
00228 
00229     _bmenu.remove((mode == PlayerWindowMode.MDI)? _singleWindowMenu : _mdiWindowMenu);
00230     _bmenu.add((mode == PlayerWindowMode.MDI)? _mdiWindowMenu : _singleWindowMenu);
00231     _bmenu.revalidate();
00232     _bmenu.repaint();
00233 
00234 }

void VideoBrowser::handleCopyResults   [inline]
 

00238 {
00239     JInternalFrame frame = _desktop.getSelectedFrame();
00240     if(frame == null) {
00241         ErrorStreamArea.println("No results selected");
00242         return;
00243     }
00244 
00245     QueryResultTable table = (QueryResultTable)frame.getClientProperty("Hx.ResultTable");
00246     if(table == null) {
00247         ErrorStreamArea.println("No results selected");
00248         return;
00249     }
00250 
00251     int nRow = table.getRowCount();
00252     int nCol = table.getColumnCount();
00253     String text = "";
00254     for(int i=0; i<nRow; i++) {
00255         for(int j=0; j<nCol; j++) {
00256             text += table.getValueAt(i, j)+"\t";
00257         }
00258         text += "\n";
00259     }
00260     Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
00261     clip.setContents(new StringSelection(text), null);
00262 }

void VideoBrowser::handlePasteResults   [inline]
 

00265 {
00266     Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
00267     Transferable tr = clip.getContents(null);
00268     if(tr == null) {
00269         ErrorStreamArea.println("Empty clipboard");
00270         return;
00271     }
00272 
00273     java.util.Vector vec = new java.util.Vector();
00274     try {
00275         String text = (String)tr.getTransferData(DataFlavor.stringFlavor);
00276         java.util.StringTokenizer tok = new java.util.StringTokenizer(text);
00277         while(tok.hasMoreTokens()) {
00278             HxCorba.SegmentQueryResult row = new HxCorba.SegmentQueryResult();
00279             row.videoName = tok.nextToken();
00280             String start = tok.nextToken();
00281             String end = tok.nextToken();
00282             row.time = new HxCorba.VxTimeSpan(Integer.parseInt(start),
00283                 Integer.parseInt(end));
00284             vec.add(row);
00285         }
00286 
00287         HxCorba.SegmentQueryResult[] results =
00288             new HxCorba.SegmentQueryResult[vec.size()];
00289         vec.toArray(results);
00290         showQueryResults(results);
00291 
00292     }
00293     catch(java.io.IOException ex) {
00294         ErrorStreamArea.println("Can not paste results.");
00295     }
00296     catch(UnsupportedFlavorException ex) {
00297         ErrorStreamArea.println("Can not paste results: wrong clipboard content.");
00298     }
00299     catch(java.util.NoSuchElementException ex) {
00300         ErrorStreamArea.println("Can not paste results: wrong number of elements.");
00301     }
00302     catch(NumberFormatException ex) {
00303         int row = vec.size()+1;
00304         ErrorStreamArea.println("Can not paste results: wrong number found on row "+row);
00305     }
00306 }

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

Initialization.

Reimplemented from SampleApp.

Reimplemented in VideoBrowserDemos.

00317 {
00318     ErrorStreamArea err = new ErrorStreamArea(parent, 10, 80);
00319 
00320     OutputStreamArea.println("Initializing CorbaMediator...");
00321     initCorbaMediator(args);
00322     setAdvancedLookupManager(parent);
00323 
00324     _session = openDBSession();
00325     if(_session == null) return false;
00326 
00327     OutputStreamArea.println("Building "+getSampleName()+" GUI...");
00328 
00329     String playMode = getSampleProperty("PlayMode", PlayMode.NORMAL.toString());
00330     _playMode = PlayMode.getMode(playMode);
00331     if(_playMode == null) {
00332         OutputStreamArea.println("Unknown PlayMode: "+playMode);
00333         _playMode = PlayMode.NORMAL;
00334     }
00335 
00336     // Sequence viewer
00337 
00338     _seqDisplayer = new SequenceDisplayer(BUFF_SIZE);
00339     //_viewer = ViewerFactory.makeBasicViewer();
00340 
00341     Image logo = Toolkit.getDefaultToolkit().createImage(CorbaSamplesRes.get_mia());
00342     _seqDisplayer.setStillImage(new CanvasCorbaImage(new JavaImageData(logo)));
00343 
00344     JPanel seqFixedPanel = new JPanel(new BorderLayout());
00345     JInternalFrame seqFrame = new JInternalFrame("Sequence", true, false, true, true);
00346     _windows.add(new PlayerWindow(_seqDisplayer.getViewer(), seqFrame, seqFixedPanel));
00347 
00348     // FrameNavigator
00349 
00350     _frameNav = new SimpleFrameNavigator();
00351     JPanel ctrlPanel = getPlayingControlsPanel();
00352 
00353     JPanel navComponent = new JPanel(new BorderLayout());
00354     navComponent.add(_frameNav, BorderLayout.CENTER);
00355     navComponent.add(ctrlPanel, BorderLayout.SOUTH);
00356 
00357     JPanel navFixedPanel = new JPanel(new BorderLayout());
00358     JInternalFrame navFrame = new JInternalFrame("Frame Navigator", true, false, false, true);
00359     _windows.add(new PlayerWindow(navComponent, navFrame, navFixedPanel));
00360 
00361     // Storyboard
00362 
00363     String strFactor = getSampleProperty("KeyframeFactor", "0.3");
00364     try {
00365         double factor = Double.parseDouble(strFactor);
00366         _storyboard = new StoryboardPanel(factor);
00367     }
00368     catch(NumberFormatException ex) {
00369         ErrorStreamArea.println("Wrong KeyframeFactor value \""+
00370             strFactor+"\". Double value expected.");
00371         _storyboard = new StoryboardPanel();
00372     }
00373 
00374     JScrollPane storyScroll = new JScrollPane(_storyboard);
00375 
00376     _butShowMoreShots = new JButton(" Show 10 more ");
00377     _butShowMoreShots.setEnabled(false);
00378     _actions.addButton(_butShowMoreShots, "showMore");
00379 
00380     _butShowAllShots = new JButton(" Show All ");
00381     _butShowAllShots.setEnabled(false);
00382     _actions.addButton(_butShowAllShots, "showAll");
00383 
00384     _resultSetBox = new JComboBox();
00385     _resultSetBox.setEnabled(false);
00386     ResultSet empty = new ResultSet("none");
00387 
00388     JToolBar storyToolBar = new JToolBar();
00389     storyToolBar.addSeparator();
00390     storyToolBar.add(new JLabel("Result set: "));
00391     storyToolBar.add(_resultSetBox);
00392     storyToolBar.addSeparator();
00393     storyToolBar.add(_butShowMoreShots);
00394     storyToolBar.add(_butShowAllShots);
00395     storyToolBar.addSeparator();
00396     storyToolBar.setFloatable(false);
00397 
00398     JPanel storyPanel = new JPanel(new BorderLayout());
00399     storyPanel.add(storyScroll, BorderLayout.CENTER);
00400     storyPanel.add(storyToolBar, BorderLayout.NORTH);
00401 
00402     JPanel storyFixedPanel = new JPanel(new BorderLayout());
00403     final JInternalFrame storyFrame = new JInternalFrame("StoryBoard", true, false, false, true);
00404     //storyFrame.addComponentListener(new ShowPosition());
00405     _windows.add(new PlayerWindow(storyPanel, storyFrame, storyFixedPanel));
00406 
00407     // QueryPanel (Tree)
00408 
00409     BrowserQueryUser queryUser = new BrowserQueryUser();
00410 
00411     _queryPanel = new QueryTreePanel(_session);
00412     _queryPanel.setUser(queryUser);
00413     _queryPanel.allowMultipleVideos(true);
00414 
00415     JPanel queryFixedPanel = new JPanel(new BorderLayout());
00416     JInternalFrame queryFrame = new JInternalFrame("Tree Query", true, false, false, true);
00417     //queryFrame.addComponentListener(new ShowPosition());
00418     _windows.add(new PlayerWindow(_queryPanel, queryFrame, queryFixedPanel));
00419 
00420 
00421     // VideoList
00422 
00423     _videoList = new JList(_session.listVideos());
00424     _videoList.addMouseListener(new VideoListMouseListener());
00425     _videoList.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
00426     JScrollPane listScroll = new JScrollPane(_videoList);
00427 
00428     JPanel videoListPanel = new JPanel(new BorderLayout(10,10));
00429     videoListPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
00430     videoListPanel.add(listScroll, BorderLayout.CENTER);
00431 
00432     JPanel vListFixedPanel = new JPanel(new BorderLayout());
00433     JInternalFrame videoListFrame = new JInternalFrame("Videos", true, false, false, true);
00434     //videoListFrame.addComponentListener(new ShowPosition());
00435     _windows.add(new PlayerWindow(videoListPanel, videoListFrame, vListFixedPanel));
00436 
00437 
00438     // Create desktop
00439 
00440     _desktop = new JDesktopPane();
00441     _desktop.putClientProperty("JDesktopPane.dragMode", "outline");
00442 
00443     seqFrame.setLocation(0, 0);
00444     navFrame.setLocation(25,350);
00445     storyFrame.setLocation(465,65);
00446     queryFrame.setLocation(430, 35);
00447     videoListFrame.setLocation(25, 455);
00448 
00449     navFrame.setPreferredSize(new Dimension(380,100));
00450     storyFrame.setPreferredSize(new Dimension(525,600));
00451     videoListFrame.setPreferredSize(new Dimension(380, 175));
00452 
00453     // Last in list will appear on top
00454     JInternalFrame[] frames = {queryFrame, seqFrame, navFrame,
00455         storyFrame, videoListFrame};
00456     for(int i=0; i<frames.length; i++) {
00457         _desktop.add(frames[i]);
00458         frames[i].setVisible(true);
00459     }
00460 
00461     // Create fixed panel
00462 
00463     _fixedPanel = new JPanel(new BorderLayout());
00464 
00465     JPanel auxPanel = new JPanel(new BorderLayout());
00466     auxPanel.add(seqFixedPanel, BorderLayout.CENTER);
00467     auxPanel.add(navFixedPanel, BorderLayout.SOUTH);
00468 
00469     JPanel sqlFixedPanel = new JPanel(new BorderLayout());
00470     JPanel resFixedPanel = new JPanel(new BorderLayout());
00471 
00472     SQLQueryPanel sqlPanel = new SQLQueryPanel(_session);
00473     sqlPanel.setUser(queryUser);
00474 
00475     _sqlWindows = new ExtraPlayerWindow(sqlPanel, sqlFixedPanel);
00476     _windows.add(_sqlWindows);
00477 
00478     JTable resultTable = new QueryResultTable();
00479     JScrollPane tableScroll = new JScrollPane(resultTable);
00480     tableScroll.setVerticalScrollBarPolicy(tableScroll.VERTICAL_SCROLLBAR_ALWAYS);
00481     tableScroll.getViewport().setBackground(Color.white);
00482 
00483     _resWindows = new ExtraPlayerWindow(tableScroll, resFixedPanel);
00484     _windows.add(_resWindows);
00485 
00486     _tabbedPane = new JTabbedPane();
00487     _tabbedPane.addTab("Video List", null, vListFixedPanel);
00488     _tabbedPane.addTab("Tree Query", null, queryFixedPanel);
00489     _tabbedPane.addTab("SQL Query", null, sqlFixedPanel);
00490     _tabbedPane.addTab("Query results", null, resFixedPanel);
00491 
00492     JSplitPane splitH = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
00493                                        auxPanel, _tabbedPane);
00494     splitH.setOneTouchExpandable(false);
00495     splitH.setDividerLocation(450);
00496 
00497     JSplitPane splitV = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
00498                                        splitH, storyFixedPanel);
00499     splitV.setOneTouchExpandable(false);
00500     splitV.setDividerLocation(375);
00501 
00502     _fixedPanel.add(splitV, BorderLayout.CENTER);
00503 
00504 
00505     // Create ExtMenuBar:
00506 
00507     _bmenu = new ExtMenuBar(this);
00508     _bmenu.addMenu("File");
00509     if(isStandalone()) {
00510         _bmenu.addMenuItem("File", "Open Sequence", "handleOpenSequence");
00511         _bmenu.addSeparator("File");
00512     }
00513     _bmenu.addMenuItem("File", "Exit", "handleExit");
00514 
00515     if(isStandalone()) {
00516         _bmenu.addMenu("Edit");
00517         _bmenu.addMenuItem("Edit", "Copy Results", "handleCopyResults");
00518         _bmenu.addMenuItem("Edit", "Paste Results", "handlePasteResults");
00519     }
00520 
00521     _bmenu.addMenu("Preferences");
00522     _bmenu.addSubMenu("Preferences", "Play mode");
00523     _bmenu.addGroupMenu("Play mode", PlayMode.getNames(), "handlePlayMode",
00524         _playMode.toString());
00525     _bmenu.addMenuItem("Preferences", "Scale Display",
00526         new HxJava.Util.CallableMethod("handleScaleDisplay",
00527                                 "double", "scale", "double"));
00528 
00529     _mdiWindowMenu = _bmenu.addMenu("Windows Mdi");
00530     ButtonGroup windowGroup = new ButtonGroup();
00531     for(int i=0; i<frames.length; i++)
00532         _mdiWindowMenu.add(makeWindowMenuItem(frames[i], windowGroup));
00533     _bmenu.addSeparator("Windows Mdi");
00534     _bmenu.addMenuItem("Windows Mdi", "Single Window", "handleSingleWindow");
00535 
00536     _singleWindowMenu = _bmenu.addMenu("Windows Single");
00537     _bmenu.addMenuItem("Windows Single", "Multiple Windows", "handleMultWindows");
00538 
00539     _mdiWindowMenu.setText("Windows");
00540     _singleWindowMenu.setText("Windows");
00541     _bmenu.remove(_mdiWindowMenu);
00542 
00543     parent.setJMenuBar(_bmenu);
00544 
00545     handleWindowMode(PlayerWindowMode.MDI); // Show desktop in order to pack
00546     for(int i=0; i<frames.length; i++)
00547         frames[i].pack();
00548 
00549     String windowMode = getSampleProperty("WindowMode", PlayerWindowMode.MDI.toString());
00550     handleWindowMode(windowMode);
00551 
00552     handlePlayMode(_playMode);
00553 
00554     parent.setSize(1000, 730);
00555 
00556     OutputStreamArea.println("Done.");
00557     return true;
00558 }

HxCorba.DatabaseSession VideoBrowser::openDBSession   [inline, protected]
 

Reimplemented in VideoBrowserDemos.

00561 {
00562     HxCorba.Database db = ServiceRepository.instance().getDatabase();
00563     if(db == null) return null;
00564 
00565     PasswordPane passPane = new PasswordPane(getSampleProperty("Username"),
00566                          getSampleProperty("Password"));
00567     boolean ok = passPane.askIdentification(this);
00568     if(!ok) return null;
00569 
00570     try {
00571         return db.openSession(passPane.getName(), passPane.getPassword());
00572     }
00573     catch(HxCorba.DatabaseException ex) {
00574         ErrorStreamArea.println(ex.message);
00575         return null;
00576     }
00577 }

void VideoBrowser::changeSession HxCorba.DatabaseSession    newSession [inline, protected]
 

00580 {
00581     _session = newSession;
00582     _queryPanel.setSession(_session);
00583     _videoList.setListData(_session.listVideos());
00584 }

void VideoBrowser::addQueryPanel String    title,
JPanel    queryPanel
[inline, protected]
 

00587 {
00588     JPanel queryFixedPanel = new JPanel(new BorderLayout());
00589     JInternalFrame queryFrame = new JInternalFrame(title, true, false, false, true);
00590     PlayerWindow pw = new PlayerWindow(queryPanel, queryFrame, queryFixedPanel);
00591 
00592     pw.setMode(_windowMode);
00593     _windows.add(pw);
00594 
00595     queryFrame.setSize(queryPanel.getPreferredSize());
00596 
00597     _desktop.add(queryFrame);
00598     queryFrame.setVisible(true);
00599     try {
00600         queryFrame.setSelected(true);
00601     } catch (java.beans.PropertyVetoException e) {}
00602 
00603     _tabbedPane.addTab(title, null, queryFixedPanel);
00604     _tabbedPane.setSelectedComponent(queryFixedPanel);
00605 }

void VideoBrowser::removeQueryPanel JPanel    queryPanel [inline, protected]
 

00608 {
00609     for(int i=0; i<_windows.size(); i++) {
00610         PlayerWindow pw = (PlayerWindow)_windows.elementAt(i);
00611         if(pw.component == queryPanel) {
00612             String title = pw.frame.getTitle();
00613             int nTab = _tabbedPane.indexOfTab(title);
00614             _tabbedPane.removeTabAt(nTab);
00615             pw.frame.dispose();
00616 
00617             _windows.remove(i);
00618             return;
00619         }
00620     }
00621 
00622     System.out.println("No panel found");
00623 }

QueryUser VideoBrowser::makeBrowserQueryUser   [inline, protected]
 

00626 {
00627     return new BrowserQueryUser();
00628 }


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