Revision: 6677
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6677&view=rev
Author: gerdwagner
Date: 2012-10-06 21:01:09 +0000 (Sat, 06 Oct 2012)
Log Message:
-----------
In development work on "Detach Session window" at the moment switched off by MultipleWindowsHandler.DETACH_SESSION_WINDOW.
Had to be committed because of source file overlaps with the new chart functionality.
Modified Paths:
--------------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/IApplication.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/WindowManager.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/ButtonTabComponent.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DesktopTabbedPane.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DockTabDesktopPane.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/TabHandle.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/mainframe/MainFrame.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/session/SQLInternalFrame.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/SessionManager.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/action/NextSessionAction.java
trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/I18NStrings.properties
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphMainPanelTab.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPluginResources.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/NewQueryBuilderWindowAction.java
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/GraphPluginResources.properties
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/I18NStrings.properties
Added Paths:
-----------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/MultipleWindowsHandler.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DockTabDesktopPaneHolder.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/TabWindowController.java
trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/resources/images/jc/smallcreatewindow.gif
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/tab-detach-small.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/tab-detach.png
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -75,7 +75,6 @@
import net.sourceforge.squirrel_sql.fw.datasetviewer.CellImportExportInfoSaver;
import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DTProperties;
import net.sourceforge.squirrel_sql.fw.gui.ErrorDialog;
-import net.sourceforge.squirrel_sql.fw.gui.action.wikiTable.IWikiTableConfiguration;
import net.sourceforge.squirrel_sql.fw.gui.action.wikiTable.IWikiTableConfigurationFactory;
import net.sourceforge.squirrel_sql.fw.gui.action.wikiTable.WikiTableConfigurationFactory;
import net.sourceforge.squirrel_sql.fw.gui.action.wikiTable.WikiTableConfigurationStorage;
@@ -87,7 +86,6 @@
import net.sourceforge.squirrel_sql.fw.util.ProxyHandler;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
-import net.sourceforge.squirrel_sql.fw.util.StringUtilities;
import net.sourceforge.squirrel_sql.fw.util.TaskThreadPool;
import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
@@ -176,8 +174,10 @@
private PreLaunchHelperFactory preLaunchHelperFactory = new PreLaunchHelperFactoryImpl();
private IShutdownTimer _shutdownTimer = new ShutdownTimer();
-
- /**
+
+ private MultipleWindowsHandler _multipleWindowsHandler = new MultipleWindowsHandler();
+
+ /**
* Default ctor.
*/
Application()
@@ -1328,7 +1328,15 @@
return wikiTableConfigFactory;
}
- public void setWikiTableConfigFactory(IWikiTableConfigurationFactory wikiTableConfigFactory) {
+
+ public void setWikiTableConfigFactory(IWikiTableConfigurationFactory wikiTableConfigFactory) {
this.wikiTableConfigFactory = wikiTableConfigFactory;
- }
+ }
+
+ @Override
+ public MultipleWindowsHandler getMultipleWindowsHandler()
+ {
+ return _multipleWindowsHandler;
+ }
+
}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/IApplication.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/IApplication.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/IApplication.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -45,7 +45,7 @@
*/
public interface IApplication
{
- public interface IMenuIDs extends MainFrame.IMenuIDs
+ public interface IMenuIDs extends MainFrame.IMenuIDs
{
// Empty body.
}
@@ -246,4 +246,5 @@
*/
IWikiTableConfigurationFactory getWikiTableConfigFactory();
+ MultipleWindowsHandler getMultipleWindowsHandler();
}
Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/MultipleWindowsHandler.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/MultipleWindowsHandler.java (rev 0)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/MultipleWindowsHandler.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -0,0 +1,74 @@
+package net.sourceforge.squirrel_sql.client;
+
+import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop.DockTabDesktopPane;
+import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop.DockTabDesktopPaneHolder;
+
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowFocusListener;
+import java.util.HashSet;
+
+public class MultipleWindowsHandler
+{
+ public static final boolean DETACH_SESSION_WINDOW = false;
+
+ private HashSet<DockTabDesktopPaneHolder> _dockTabDesktopPaneHolders = new HashSet<DockTabDesktopPaneHolder>();
+ private DockTabDesktopPaneHolder _curSelectedDockTabDesktopPaneHolder;
+
+
+ public void registerDesktop(DockTabDesktopPaneHolder dockTabDesktopPaneHolder)
+ {
+ _dockTabDesktopPaneHolders.add(dockTabDesktopPaneHolder);
+ }
+
+ public void selectDesktop(DockTabDesktopPaneHolder dockTabDesktopPaneHolder)
+ {
+ if(false == DETACH_SESSION_WINDOW)
+ {
+ return;
+ }
+
+ if(dockTabDesktopPaneHolder == _curSelectedDockTabDesktopPaneHolder)
+ {
+ return;
+ }
+
+ _curSelectedDockTabDesktopPaneHolder.getDockTabDesktopPane().setSelected(false);
+
+ _curSelectedDockTabDesktopPaneHolder = dockTabDesktopPaneHolder;
+
+ _curSelectedDockTabDesktopPaneHolder.getDockTabDesktopPane().setSelected(true);
+ }
+
+ public void registerMainFrame(IApplication app, final DockTabDesktopPane mainDesktop)
+ {
+
+ final DockTabDesktopPaneHolder dockTabDesktopPaneHolder = new DockTabDesktopPaneHolder()
+ {
+ @Override
+ public DockTabDesktopPane getDockTabDesktopPane()
+ {
+ return mainDesktop;
+ }
+ };
+
+ _dockTabDesktopPaneHolders.add(dockTabDesktopPaneHolder);
+
+ _curSelectedDockTabDesktopPaneHolder = dockTabDesktopPaneHolder;
+
+
+ app.getMainFrame().addWindowFocusListener(new WindowFocusListener()
+ {
+ @Override
+ public void windowGainedFocus(WindowEvent e)
+ {
+ selectDesktop(dockTabDesktopPaneHolder);
+ }
+
+ @Override
+ public void windowLostFocus(WindowEvent e)
+ {
+ }
+ });
+ }
+
+}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/WindowManager.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/WindowManager.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/WindowManager.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -1046,7 +1046,12 @@
return _sessionWindows.getFramesOfSession(sessionIdentifier);
}
+ public void disableSessionMenu()
+ {
+ getMainFrame().getSessionMenu().setEnabled(false);
+ }
+
private final class SessionWindowListener implements WidgetListener
{
public void widgetOpened(WidgetEvent evt)
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/ButtonTabComponent.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/ButtonTabComponent.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/ButtonTabComponent.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -1,5 +1,8 @@
package net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop;
+import net.sourceforge.squirrel_sql.client.IApplication;
+import net.sourceforge.squirrel_sql.client.MultipleWindowsHandler;
+import net.sourceforge.squirrel_sql.client.resources.SquirrelResources;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
@@ -13,18 +16,16 @@
StringManagerFactory.getStringManager(ButtonTabComponent.class);
- private final JTabbedPane _tabbedPane;
private JLabel _label = new JLabel();
private CloseTabButton _closeButton = new CloseTabButton();
private JPanel _pnlSmallTabButtons;
+ private final SmallTabButton _toWindow;
- public ButtonTabComponent(final JTabbedPane tabbedPane, String title, Icon icon)
+ public ButtonTabComponent(IApplication app, String title, Icon icon)
{
setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
- _tabbedPane = tabbedPane;
setOpaque(false);
- //tab button
add(_closeButton);
_label.setText(title);
@@ -40,6 +41,14 @@
add(_pnlSmallTabButtons);
setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0));
+
+
+ _toWindow = new SmallTabButton(s_stringMgr.getString("docktabdesktop.ButtonTabComponent.detachButtonTooltip"), app.getResources().getIcon(SquirrelResources.IImageNames.TAB_DETACH_SMALL));
+
+ if (MultipleWindowsHandler.DETACH_SESSION_WINDOW)
+ {
+ addSmallTabButton(_toWindow);
+ }
}
public JButton getClosebutton()
@@ -47,6 +56,11 @@
return _closeButton;
}
+ public JButton getToWindowButton()
+ {
+ return _toWindow;
+ }
+
public void setIcon(Icon icon)
{
_label.setIcon(icon);
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DesktopTabbedPane.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DesktopTabbedPane.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DesktopTabbedPane.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -1,5 +1,6 @@
package net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop;
+import net.sourceforge.squirrel_sql.client.IApplication;
import net.sourceforge.squirrel_sql.client.gui.builders.DnDTabbedPane;
import javax.swing.*;
@@ -8,8 +9,11 @@
public class DesktopTabbedPane extends DnDTabbedPane
{
- public DesktopTabbedPane()
+ private IApplication _app;
+
+ public DesktopTabbedPane(IApplication app)
{
+ _app = app;
setPaintScrollArea(false);
setPaintGhost(true);
}
@@ -45,7 +49,7 @@
{
super.addTab("", null, component, tip);
int index = indexOfComponent(component);
- setTabComponentAt(index, new ButtonTabComponent(this, title, icon));
+ setTabComponentAt(index, new ButtonTabComponent(_app, title, icon));
}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DockTabDesktopPane.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DockTabDesktopPane.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DockTabDesktopPane.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -1,30 +1,11 @@
package net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop;
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Container;
-import java.awt.Dimension;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ComponentAdapter;
-import java.awt.event.ComponentEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
+import java.awt.*;
+import java.awt.event.*;
import java.util.ArrayList;
import java.util.HashSet;
-import javax.swing.Action;
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.Icon;
-import javax.swing.JComponent;
-import javax.swing.JMenuItem;
-import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
-import javax.swing.JSplitPane;
-import javax.swing.JToggleButton;
-import javax.swing.KeyStroke;
-import javax.swing.WindowConstants;
+import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@@ -60,7 +41,7 @@
private DockPanel _pnlDock = new DockPanel();
- private DesktopTabbedPane _tabbedPane = new DesktopTabbedPane();
+ private DesktopTabbedPane _tabbedPane;
private JSplitPane _split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
private boolean _inOnToggleOpenDock;
@@ -81,6 +62,8 @@
{
_app = app;
+ _tabbedPane = new DesktopTabbedPane(_app);
+
setLayout(new BorderLayout());
_pnlButtons = new JPanel();
@@ -176,7 +159,7 @@
{
}
- public void addWidget(TabWidget widget)
+ public void addWidget(final TabWidget widget)
{
final TabHandle tabHandle = new TabHandle(widget, this);
((TabDelegate) widget.getDelegate()).setTabHandle(tabHandle);
@@ -197,12 +180,39 @@
}
});
+ btc.getToWindowButton().addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ onToWindow(tabHandle);
+ }
+ });
+
+
_tabHandles.add(tabHandle);
tabHandle.fireAdded();
_tabbedPane.setSelectedIndex(tabIx);
_scrollableTabHandler.tabAdded();
}
+ private void onToWindow(TabHandle tabHandle)
+ {
+ Point locationOnScreen = tabHandle.getWidget().getContentPane().getLocationOnScreen();
+ Dimension size = tabHandle.getWidget().getContentPane().getSize();
+
+ int tabIndex = getTabIndex(tabHandle);
+ if (-1 != tabIndex)
+ {
+ removeTabFromTabbedPane(tabIndex);
+ }
+ _tabHandles.remove(tabHandle);
+ tabHandle.removeTabHandleListener(_dockTabDesktopManager);
+
+
+ TabWindowController tabWindowController = new TabWindowController(tabHandle, locationOnScreen, size, _app);
+ _app.getMultipleWindowsHandler().registerDesktop(tabWindowController);
+ }
+
private void onDockPanelResized()
{
if (0 == _pnlDock.getComponentCount())
@@ -589,4 +599,17 @@
{
}
+ public void setSelected(boolean b)
+ {
+ TabHandle selectedHandle = getSelectedHandle();
+ if (null != selectedHandle)
+ {
+ selectedHandle._setSelected(b, true);
+ }
+ else
+ {
+ _app.getWindowManager().disableSessionMenu();
+
+ }
+ }
}
Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DockTabDesktopPaneHolder.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DockTabDesktopPaneHolder.java (rev 0)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/DockTabDesktopPaneHolder.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -0,0 +1,6 @@
+package net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop;
+
+public interface DockTabDesktopPaneHolder
+{
+ DockTabDesktopPane getDockTabDesktopPane();
+}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/TabHandle.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/TabHandle.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/TabHandle.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -101,7 +101,12 @@
public void setSelected(boolean b)
{
- if(_isSelected == b)
+ _setSelected(b, false);
+ }
+
+ public void _setSelected(boolean b, boolean force)
+ {
+ if(_isSelected == b && false == force)
{
return;
}
Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/TabWindowController.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/TabWindowController.java (rev 0)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/TabWindowController.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -0,0 +1,104 @@
+package net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop;
+
+import net.sourceforge.squirrel_sql.client.IApplication;
+import net.sourceforge.squirrel_sql.client.gui.mainframe.SquirrelDesktopManager;
+import net.sourceforge.squirrel_sql.client.resources.SquirrelResources;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowFocusListener;
+
+public class TabWindowController implements DockTabDesktopPaneHolder
+{
+
+ private final DockTabDesktopPane _dockTabDesktopPane;
+
+ public TabWindowController(final TabHandle tabHandle, Point locationOnScreen, Dimension size, final IApplication app)
+ {
+ JFrame f = new JFrame();
+
+ f.setLocation(locationOnScreen);
+ f.setSize(size);
+
+ _dockTabDesktopPane = new DockTabDesktopPane(app);
+ _dockTabDesktopPane.setDesktopManager(new SquirrelDesktopManager(app));
+
+ f.getContentPane().add(_dockTabDesktopPane);
+
+ JMenuBar mnuBar = new JMenuBar();
+ mnuBar.add(cloneMenu(app.getMainFrame().getSessionMenu()));
+
+ f.setJMenuBar(mnuBar);
+
+ WindowFocusListener l = new WindowFocusListener()
+ {
+ @Override
+ public void windowGainedFocus(WindowEvent e)
+ {
+ onWindowFocusGained(app, tabHandle);
+ }
+
+ @Override
+ public void windowLostFocus(WindowEvent e)
+ {
+ }
+ };
+ f.addWindowFocusListener(l);
+
+
+ final ImageIcon icon = app.getResources().getIcon(SquirrelResources.IImageNames.APPLICATION_ICON);
+ if (icon != null)
+ {
+ f.setIconImage(icon.getImage());
+ }
+
+
+
+ f.setVisible(true);
+ _dockTabDesktopPane.addWidget(tabHandle.getWidget());
+ }
+
+
+ @Override
+ public DockTabDesktopPane getDockTabDesktopPane()
+ {
+ return _dockTabDesktopPane;
+ }
+
+ private void onWindowFocusGained(IApplication app, TabHandle tabHandle)
+ {
+ app.getMultipleWindowsHandler().selectDesktop(this);
+ }
+
+ private JMenu cloneMenu(JMenu menu)
+ {
+ JMenu ret = new JMenu(menu.getText());
+
+ for (int i = 0; i < menu.getItemCount(); i++)
+ {
+ JMenuItem toClone = menu.getItem(i);
+
+ if (toClone instanceof JMenu)
+ {
+ ret.add(cloneMenu((JMenu) toClone));
+ }
+ else if(toClone instanceof JMenuItem)
+ {
+ JMenuItem clone = new JMenuItem(toClone.getText(), toClone.getIcon());
+ clone.setMnemonic(toClone.getMnemonic());
+ clone.setAction(toClone.getAction());
+ clone.setAccelerator(toClone.getAccelerator());
+ clone.setToolTipText(toClone.getToolTipText());
+
+ ret.add(clone);
+ }
+ else
+ {
+ ret.addSeparator();
+ }
+ }
+
+ return ret;
+ }
+}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/mainframe/MainFrame.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/mainframe/MainFrame.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/mainframe/MainFrame.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -25,6 +25,7 @@
import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DialogWidget;
import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DockWidget;
import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.*;
+import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop.DockTabDesktopPane;
import net.sourceforge.squirrel_sql.client.preferences.SquirrelPreferences;
import net.sourceforge.squirrel_sql.client.resources.SquirrelResources;
import net.sourceforge.squirrel_sql.client.session.MessagePanel;
@@ -126,6 +127,11 @@
IDesktopContainer comp = getDesktopContainer();
comp.setPreferredSize(comp.getRequiredSize());
comp.revalidate();
+
+ if(_app.getDesktopStyle().isDockTabStyle())
+ {
+ _app.getMultipleWindowsHandler().registerMainFrame(_app, (DockTabDesktopPane)_desktop);
+ }
}
});
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/session/SQLInternalFrame.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/session/SQLInternalFrame.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/session/SQLInternalFrame.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -189,11 +189,6 @@
add(actions.get(PreviousSqlAction.class));
add(actions.get(NextSqlAction.class));
add(actions.get(SelectSqlAction.class));
- addSeparator();
- add(actions.get(FormatSQLAction.class));
- addSeparator();
- add(actions.get(SQLFilterAction.class));
- actions.get(SQLFilterAction.class).setEnabled(true);
}
}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/SessionManager.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/SessionManager.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/SessionManager.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -26,6 +26,7 @@
import javax.swing.event.EventListenerList;
import net.sourceforge.squirrel_sql.client.IApplication;
+import net.sourceforge.squirrel_sql.client.MultipleWindowsHandler;
import net.sourceforge.squirrel_sql.client.gui.db.SQLAlias;
import net.sourceforge.squirrel_sql.client.gui.db.ISQLAliasExt;
import net.sourceforge.squirrel_sql.client.session.event.ISessionListener;
@@ -146,6 +147,10 @@
if (session != _activeSession || force)
{
_activeSession = session;
+ if (null != _activeSession && MultipleWindowsHandler.DETACH_SESSION_WINDOW)
+ {
+ System.out.println("NextSessionAction.setSession " + (null != session.getActiveSessionWindow()?session.getActiveSessionWindow().getTitle() : " OPENING"));
+ }
fireSessionActivated(session);
}
}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/action/NextSessionAction.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/action/NextSessionAction.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/action/NextSessionAction.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -20,6 +20,7 @@
import java.awt.event.ActionEvent;
import net.sourceforge.squirrel_sql.client.IApplication;
+import net.sourceforge.squirrel_sql.client.MultipleWindowsHandler;
import net.sourceforge.squirrel_sql.client.action.SquirrelAction;
import net.sourceforge.squirrel_sql.client.session.ISession;
/**
@@ -40,7 +41,12 @@
public void setSession(ISession session)
{
- _session = session;
+ if (null != _session && MultipleWindowsHandler.DETACH_SESSION_WINDOW)
+ {
+ System.out.println("NextSessionAction.setSession " + (null != _session.getActiveSessionWindow()?_session.getActiveSessionWindow().getTitle() : " OPENING"));
+ }
+
+ _session = session;
}
public void actionPerformed(ActionEvent evt)
Modified: trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/I18NStrings.properties
===================================================================
--- trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/I18NStrings.properties 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/gui/desktopcontainer/docktabdesktop/I18NStrings.properties 2012-10-06 21:01:09 UTC (rev 6677)
@@ -1,3 +1,4 @@
DockFrame.autoHideToolTip=Auto hide
DockFrame.minimizeToolTip=Hide
-docktabdesktop.ButtonTabComponent.toolTip=Close this tab
\ No newline at end of file
+docktabdesktop.ButtonTabComponent.toolTip=Close this tab
+docktabdesktop.ButtonTabComponent.detachButtonTooltip=Move tab to new window
\ No newline at end of file
Added: trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/resources/images/jc/smallcreatewindow.gif
===================================================================
(Binary files differ)
Property changes on: trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/resources/images/jc/smallcreatewindow.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphMainPanelTab.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphMainPanelTab.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphMainPanelTab.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -1,11 +1,15 @@
package net.sourceforge.squirrel_sql.plugins.graph;
+import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.docktabdesktop.SmallTabButton;
import net.sourceforge.squirrel_sql.client.session.mainpanel.BaseMainPanelTab;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
import javax.swing.*;
import java.awt.*;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
public class GraphMainPanelTab extends BaseMainPanelTab
@@ -38,11 +42,9 @@
_tabComponent.add(_lblTitle, BorderLayout.CENTER);
- ImageIcon icon = new GraphPluginResources(plugin).getIcon(GraphPluginResources.IKeys.TO_WINDOW);
+ ImageIcon icon = new GraphPluginResources(plugin).getIcon(GraphPluginResources.IKeys.TO_WINDOW_SMALL);
- _btnToWindow = new JButton(icon);
- _btnToWindow.setBorder(BorderFactory.createEmptyBorder());
- _btnToWindow.setOpaque(false);
+ _btnToWindow = new SmallTabButton(s_stringMgr.getString("GraphMainPanelTab.showInNewWIndow"), icon);
_tabComponent.add(_btnToWindow, BorderLayout.EAST);
}
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPluginResources.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPluginResources.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPluginResources.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -36,6 +36,7 @@
String JOIN_NONE = "EqualCrossed";
+ String TO_WINDOW_SMALL = "ToWindowSmall";
String TO_WINDOW = "ToWindow";
String SHOW_MENU = "Showmenu";
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/NewQueryBuilderWindowAction.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/NewQueryBuilderWindowAction.java 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/NewQueryBuilderWindowAction.java 2012-10-06 21:01:09 UTC (rev 6677)
@@ -30,5 +30,8 @@
public void setSession(ISession session)
{
_session = session;
+
+ setEnabled(null != _session);
+
}
}
Modified: trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/GraphPluginResources.properties
===================================================================
--- trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/GraphPluginResources.properties 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/GraphPluginResources.properties 2012-10-06 21:01:09 UTC (rev 6677)
@@ -24,7 +24,8 @@
EqualRight.image=equalRight.png
EqualCrossed.image=equalCrossed.png
-ToWindow.image=toWindow.gif
+ToWindowSmall.image=tab-detach-small.png
+ToWindow.image=tab-detach.png
Showmenu.image=showmenu.gif
Modified: trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/I18NStrings.properties
===================================================================
--- trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/I18NStrings.properties 2012-10-06 20:55:15 UTC (rev 6676)
+++ trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/I18NStrings.properties 2012-10-06 21:01:09 UTC (rev 6677)
@@ -236,4 +236,6 @@
graph.copyGraph=Copy Graph
-graph.AddTableAtQursorToGraph.noTable=Could not find a table named:{0}
\ No newline at end of file
+graph.AddTableAtQursorToGraph.noTable=Could not find a table named:{0}
+
+GraphMainPanelTab.showInNewWIndow=Show Graph in new window
\ No newline at end of file
Added: trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/tab-detach-small.png
===================================================================
(Binary files differ)
Property changes on: trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/tab-detach-small.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/tab-detach.png
===================================================================
(Binary files differ)
Property changes on: trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/tab-detach.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|