[Squirrel-sql-commits] sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel SQLResult
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Gerd W. <ger...@us...> - 2005-07-03 12:15:31
|
Update of /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10307/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel Modified Files: SQLResultExecuterPanel.java Log Message: Implementation of sticky SQL resutl tabs. Index: SQLResultExecuterPanel.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SQLResultExecuterPanel.java 3 Jul 2005 10:19:33 -0000 1.7 --- SQLResultExecuterPanel.java 3 Jul 2005 12:15:16 -0000 1.8 *************** *** 46,49 **** --- 46,50 ---- import net.sourceforge.squirrel_sql.client.IApplication; + import net.sourceforge.squirrel_sql.client.action.ActionCollection; import net.sourceforge.squirrel_sql.client.gui.builders.UIFactory; import net.sourceforge.squirrel_sql.client.session.ISQLEntryPanel; *************** *** 52,55 **** --- 53,57 ---- import net.sourceforge.squirrel_sql.client.session.SQLExecuterTask; import net.sourceforge.squirrel_sql.client.session.SQLExecutionInfo; + import net.sourceforge.squirrel_sql.client.session.action.ToggleCurrentSQLResultTabStickyAction; import net.sourceforge.squirrel_sql.client.session.event.IResultTabListener; import net.sourceforge.squirrel_sql.client.session.event.ISQLExecutionListener; *************** *** 95,100 **** /** Factory for generating unique IDs for new <TT>ResultTab</TT> objects. */ private IntegerIdentifierFactory _idFactory = new IntegerIdentifierFactory(); ! /** * Ctor. * --- 97,103 ---- /** Factory for generating unique IDs for new <TT>ResultTab</TT> objects. */ private IntegerIdentifierFactory _idFactory = new IntegerIdentifierFactory(); + private ResultTab _stickyTab; ! /** * Ctor. * *************** *** 296,299 **** --- 299,369 ---- } + public synchronized void toggleCurrentSQLResultTabSticky() + { + if (null != _stickyTab) + { + if(_stickyTab.equals(_tabbedResultsPanel.getSelectedComponent())) + { + // Sticky is turned off. Just remove sticky and return. + _stickyTab = null; + _tabbedResultsPanel.setIconAt(_tabbedResultsPanel.getSelectedIndex(), null); + return; + + } + else + { + // remove old sticky tab + int indexOfStickyTab = getIndexOfStickyTab(); + if(-1 != indexOfStickyTab) + { + _tabbedResultsPanel.setIconAt(indexOfStickyTab, null); + } + _stickyTab = null; + } + } + + if(false == _tabbedResultsPanel.getSelectedComponent() instanceof ResultTab) + { + JOptionPane.showMessageDialog(_session.getApplication().getMainFrame(), "Cannot make a cancel panel sticky"); + return; + } + + _stickyTab = (ResultTab) _tabbedResultsPanel.getSelectedComponent(); + int selectedIndex = _tabbedResultsPanel.getSelectedIndex(); + + ImageIcon icon = getStickyIcon(); + + _tabbedResultsPanel.setIconAt(selectedIndex, icon); + } + + private ImageIcon getStickyIcon() + { + ActionCollection actionCollection = _session.getApplication().getActionCollection(); + + ImageIcon icon = + (ImageIcon) actionCollection.get(ToggleCurrentSQLResultTabStickyAction.class).getValue(Action.SMALL_ICON); + return icon; + } + + private int getIndexOfStickyTab() + { + if(null == _stickyTab) + { + return -1; + } + + for (int i = 0; i < _tabbedResultsPanel.getTabCount(); i++) + { + if (_stickyTab.equals(_tabbedResultsPanel.getComponentAt(i))) + { + return i; + } + } + _stickyTab = null; + return -1; + } + + + public synchronized void closeCurrentResultTab() { *************** *** 562,576 **** } - void setCancelPanel(final JPanel panel) - { - SwingUtilities.invokeLater(new Runnable() - { - public void run() - { - _tabbedResultsPanel.addTab("Executing SQL", null, panel, "Press Cancel to Stop"); - _tabbedResultsPanel.setSelectedComponent(panel); - } - }); - } void addResultsTab(SQLExecutionInfo exInfo, ResultSetDataSet rsds, --- 632,635 ---- *************** *** 618,636 **** } ! void removeCancelPanel(final JPanel cancelPanel) ! { ! SwingUtilities.invokeLater(new Runnable() ! { ! public void run() ! { ! _tabbedResultsPanel.remove(cancelPanel); ! } ! }); ! } private void addResultsTab(ResultTab tab) { ! _tabbedResultsPanel.addTab(tab.getTitle(), null, tab, tab ! .getViewableSqlString()); } --- 677,724 ---- } ! // private void removeCancelPanel(final JPanel cancelPanel) ! // { ! // SwingUtilities.invokeLater(new Runnable() ! // { ! // public void run() ! // { ! // _tabbedResultsPanel.remove(cancelPanel); ! // } ! // }); ! // } ! // private void setCancelPanel(final JPanel panel) ! // { ! // SwingUtilities.invokeLater(new Runnable() ! // { ! // public void run() ! // { ! // _tabbedResultsPanel.addTab("Executing SQL", null, panel, "Press Cancel to Stop"); ! // _tabbedResultsPanel.setSelectedComponent(panel); ! // } ! // }); ! // } private void addResultsTab(ResultTab tab) { ! if(null == _stickyTab) ! { ! _tabbedResultsPanel.addTab(tab.getTitle(), null, tab, tab.getViewableSqlString()); ! } ! else ! { ! int indexOfSticky = getIndexOfStickyTab(); ! ! if(-1 == indexOfSticky) ! { ! // sticky tab was closed ! _stickyTab = null; ! addResultsTab(tab); ! return; ! } ! ! _tabbedResultsPanel.remove(indexOfSticky); ! _tabbedResultsPanel.insertTab(tab.getTitle(), getStickyIcon(), tab, tab.getViewableSqlString(), indexOfSticky); ! _stickyTab = tab; ! } } *************** *** 717,720 **** --- 805,817 ---- popup.add(mnuCloseAll); + JMenuItem mnuToggleSticky = new JMenuItem("Toggle sticky"); + mnuToggleSticky.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + toggleCurrentSQLResultTabSticky(); + } + }); + popup.add(mnuToggleSticky); *************** *** 759,763 **** private CancelPanel _cancelPanel = new CancelPanel(); ! public SQLExecutionHandler() { super(); --- 856,860 ---- private CancelPanel _cancelPanel = new CancelPanel(); ! public SQLExecutionHandler() { super(); *************** *** 844,848 **** } ! private final class CancelPanel extends JPanel implements ActionListener { --- 941,968 ---- } ! ! private void removeCancelPanel(final JPanel cancelPanel) ! { ! SwingUtilities.invokeLater(new Runnable() ! { ! public void run() ! { ! _tabbedResultsPanel.remove(cancelPanel); ! } ! }); ! } ! private void setCancelPanel(final JPanel panel) ! { ! SwingUtilities.invokeLater(new Runnable() ! { ! public void run() ! { ! _tabbedResultsPanel.addTab("Executing SQL", null, panel, "Press Cancel to Stop"); ! _tabbedResultsPanel.setSelectedComponent(panel); ! } ! }); ! } ! ! private final class CancelPanel extends JPanel implements ActionListener { |