aliasListClone= new ArrayList<>(Main.getApplication().getAliasesAndDriversManager().getAliasList());
+
+ aliasListClone.sort((a1, a2) -> compareAliases(scriptsCache, a1, a2));
+
+ aliasListClone.forEach(a -> addItem(a));
+ }
+
+ private int compareAliases(AliasScriptCache scriptsCache, SQLAlias a1, SQLAlias a2)
+ {
+ if(false == StringUtils.isBlank(scriptsCache.get(a1).getSQL()) && StringUtils.isBlank(scriptsCache.get(a2).getSQL()))
{
- SQLAlias alias = it.next();
- addItem(alias);
+ return -1;
}
- }
+ else if(StringUtils.isBlank(scriptsCache.get(a1).getSQL()) && false == StringUtils.isBlank(scriptsCache.get(a2).getSQL()))
+ {
+ return 1;
+ }
+
+ return StringUtils.compareIgnoreCase(a1.getName(), a2.getName());
+
+ }
}
diff --git a/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/ScriptsSheet.java b/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/ScriptsSheet.java
index 1b82ad442a..002e6bf917 100644
--- a/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/ScriptsSheet.java
+++ b/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/ScriptsSheet.java
@@ -18,44 +18,34 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Dimension;
+import javax.swing.WindowConstants;
import net.sourceforge.squirrel_sql.client.IApplication;
+import net.sourceforge.squirrel_sql.client.Main;
import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DialogWidget;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
-import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
-import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
-
-import javax.swing.*;
-import java.awt.*;
class ScriptsSheet extends DialogWidget
{
- private static final StringManager s_stringMgr =
- StringManagerFactory.getStringManager(ScriptsSheet.class);
+ private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(ScriptsSheet.class);
-
- /** Logger for this class. */
- private static ILogger s_log =
- LoggerController.createLogger(ScriptsSheet.class);
-
/** Singleton instance of this class. */
private static ScriptsSheet s_instance;
- /** Plugin. */
private SessionScriptPlugin _plugin;
- /** Application API. */
- private IApplication _app;
/** Main panel. */
private ViewSessionScriptsPanel _mainPnl;
- private ScriptsSheet(SessionScriptPlugin plugin, IApplication app)
+ private ScriptsSheet(SessionScriptPlugin plugin)
{
// i18n[sessionscript.startupScripts=Startup Scripts]
- super(s_stringMgr.getString("sessionscript.startupScripts"), true, true, true, true);
+ super(s_stringMgr.getString("sessionscript.startupScripts"), true, true, true, true, Main.getApplication().getMainFrame());
_plugin = plugin;
- _app = app;
createUserInterface();
}
@@ -74,9 +64,10 @@ public static synchronized void showSheet(SessionScriptPlugin plugin,
{
if (s_instance == null)
{
- s_instance = new ScriptsSheet(plugin, app);
+ s_instance = new ScriptsSheet(plugin);
app.getMainFrame().addWidget(s_instance);
}
+ DialogWidget.centerWithinDesktop(s_instance);
s_instance.setVisible(true);
}
@@ -94,7 +85,7 @@ private void createUserInterface()
makeToolWindow(true);
- _mainPnl = new ViewSessionScriptsPanel(_plugin, _app);
+ _mainPnl = new ViewSessionScriptsPanel(_plugin);
Container content = getContentPane();
content.setLayout(new BorderLayout());
diff --git a/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/SessionScriptPlugin.java b/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/SessionScriptPlugin.java
index dac5fa698b..6ec7267ea1 100755
--- a/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/SessionScriptPlugin.java
+++ b/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/SessionScriptPlugin.java
@@ -18,8 +18,9 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-import java.io.IOException;
+import java.io.IOException;
+import javax.swing.SwingUtilities;
import net.sourceforge.squirrel_sql.client.IApplication;
import net.sourceforge.squirrel_sql.client.action.ActionCollection;
import net.sourceforge.squirrel_sql.client.plugin.DefaultSessionPlugin;
@@ -32,8 +33,7 @@
import net.sourceforge.squirrel_sql.fw.util.FileWrapper;
import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
-
-import javax.swing.*;
+import org.apache.commons.lang3.StringUtils;
/**
* The plugin class.
@@ -169,7 +169,8 @@ public synchronized void initialize() throws PluginException
try
{
_cache = new AliasScriptCache(this);
- } catch (IOException ex)
+ }
+ catch(IOException ex)
{
throw new PluginException(ex);
}
@@ -189,17 +190,22 @@ public void unload()
super.unload();
}
- public PluginSessionCallback sessionStarted(final ISession session)
+ @Override
+ public int getSessionStartedCallRank()
{
- boolean rc = false;
+ // Call this Plugin's sessionStarted method last.
+ return Integer.MAX_VALUE;
+ }
+ @Override
+ public PluginSessionCallback sessionStarted(final ISession session)
+ {
AliasScript script = _cache.get(session.getAlias());
if (script != null)
{
final String sql = script.getSQL();
- if (sql != null && sql.length() > 0)
+ if (false == StringUtils.isBlank(sql))
{
- rc = true;
final ISQLPanelAPI api = session.getSessionInternalFrame().getMainSQLPanelAPI();
SwingUtilities.invokeLater(new Runnable()
@@ -212,11 +218,6 @@ public void run()
});
}
}
-
- if (false == rc)
- {
- return null;
- }
return new PluginSessionCallbackAdaptor();
}
diff --git a/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/ViewSessionScriptsPanel.java b/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/ViewSessionScriptsPanel.java
index 7d7cacb525..2a3ff4950c 100644
--- a/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/ViewSessionScriptsPanel.java
+++ b/sql12/plugins/sessionscript/src/net/sourceforge/squirrel_sql/plugins/sessionscript/ViewSessionScriptsPanel.java
@@ -18,18 +18,22 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-import net.sourceforge.squirrel_sql.client.IApplication;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
import net.sourceforge.squirrel_sql.client.gui.db.SQLAlias;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
-import javax.swing.*;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
public class ViewSessionScriptsPanel extends JPanel
{
private static final StringManager s_stringMgr =
@@ -37,25 +41,18 @@ public class ViewSessionScriptsPanel extends JPanel
private SessionScriptPlugin _plugin;
- private IApplication _app;
private SQLALiasesCombo _aliasesCmb = new SQLALiasesCombo();
private JTextArea _sqlEntry = new JTextArea();
private JButton _saveBtn;
- ViewSessionScriptsPanel(SessionScriptPlugin plugin, IApplication app)
+ ViewSessionScriptsPanel(SessionScriptPlugin plugin)
{
- super();
if (plugin == null)
{
throw new IllegalArgumentException("SessionScriptPlugin == null");
}
- if (app == null)
- {
- throw new IllegalArgumentException("IApplication == null");
- }
_plugin = plugin;
- _app = app;
createUserInterface();
refreshScript();
@@ -86,7 +83,7 @@ private void createUserInterface()
{
setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
- _aliasesCmb.load(_app);
+ _aliasesCmb.load(_plugin.getScriptsCache());
_aliasesCmb.addActionListener(new AliasesComboListener(this));
_sqlEntry.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
diff --git a/sql12/plugins/sqlbookmark/doc/readme.html b/sql12/plugins/sqlbookmark/doc/readme.html
index 23625ab81d..cb0bce8174 100644
--- a/sql12/plugins/sqlbookmark/doc/readme.html
+++ b/sql12/plugins/sqlbookmark/doc/readme.html
@@ -9,7 +9,7 @@
-SQLBookmark 1.0 - Joe Mocker, Gerd Wagner
+SQLBookmark 2.0.1 - Joe Mocker, Gerd Wagner
SQLBookmark allows you to "bookmark" commonly used SQL
code for easy point and click reuse. Whatever you type in the SQL
editor can be easily bookmarked by opening SQuirreL's tools popup via
@@ -99,5 +99,16 @@
The Global Preferences window can be opened using the “Edit
Bookmarks” toolbar button of a Session window.
+
+
+
+Executing Bookmarks scriptlike:
+Bookmarks can be called from within the SQL editor using the following syntax:
+
+
+ @runbookmark <bookmarkNameInSingleQuotes>
+
+
+