Revision: 6556
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6556&view=rev
Author: gerdwagner
Date: 2012-01-07 18:34:30 +0000 (Sat, 07 Jan 2012)
Log Message:
-----------
Graph Plugin: Tables can be added to a Graph from within the SQL-Editor (accessible from right mouse menu and tools popup).
Modified Paths:
--------------
trunk/sql12/doc/src/main/resources/changes.txt
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddToGraphAction.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphController.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPlugin.java
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/graph.properties
Added Paths:
-----------
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableQualifier.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddTableAtQursorToGraph.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableToAddWrapper.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableToGraph.java
Modified: trunk/sql12/doc/src/main/resources/changes.txt
===================================================================
--- trunk/sql12/doc/src/main/resources/changes.txt 2012-01-05 19:36:06 UTC (rev 6555)
+++ trunk/sql12/doc/src/main/resources/changes.txt 2012-01-07 18:34:30 UTC (rev 6556)
@@ -7,6 +7,9 @@
Enhancements:
Graph Plugin:
+ Tables can be added to a Graph from within the SQL-Editor (accessible from right mouse menu and tools popup).
+
+Graph Plugin:
Graphs can be copied and pasted.
Graph Plugin:
Added: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableQualifier.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableQualifier.java (rev 0)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableQualifier.java 2012-01-07 18:34:30 UTC (rev 6556)
@@ -0,0 +1,49 @@
+package net.sourceforge.squirrel_sql.fw.sql;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class TableQualifier
+{
+ private String _catalog;
+ private String _schema;
+ private String _tableName;
+
+ public TableQualifier(String name)
+ {
+ String[] splits = name.split("\\.");
+
+ List<String> list = Arrays.asList(splits);
+
+ Collections.reverse(list);
+
+ _tableName = list.get(0);
+
+ if(1 < list.size())
+ {
+ _schema = list.get(1);
+ }
+
+ if(2 < list.size())
+ {
+ _catalog = list.get(2);
+ }
+
+ }
+
+ public String getCatalog()
+ {
+ return _catalog;
+ }
+
+ public String getSchema()
+ {
+ return _schema;
+ }
+
+ public String getTableName()
+ {
+ return _tableName;
+ }
+}
Added: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddTableAtQursorToGraph.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddTableAtQursorToGraph.java (rev 0)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddTableAtQursorToGraph.java 2012-01-07 18:34:30 UTC (rev 6556)
@@ -0,0 +1,62 @@
+package net.sourceforge.squirrel_sql.plugins.graph;
+
+import net.sourceforge.squirrel_sql.client.IApplication;
+import net.sourceforge.squirrel_sql.client.action.SquirrelAction;
+import net.sourceforge.squirrel_sql.client.plugin.PluginResources;
+import net.sourceforge.squirrel_sql.client.session.ISQLPanelAPI;
+import net.sourceforge.squirrel_sql.client.session.action.ISQLPanelAction;
+import net.sourceforge.squirrel_sql.fw.sql.ITableInfo;
+import net.sourceforge.squirrel_sql.fw.sql.TableQualifier;
+import net.sourceforge.squirrel_sql.fw.util.StringManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+
+import javax.swing.*;
+import java.awt.event.ActionEvent;
+
+public class AddTableAtQursorToGraph extends SquirrelAction implements ISQLPanelAction
+{
+ private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(AddTableAtQursorToGraph.class);
+
+
+ private ISQLPanelAPI _panel;
+ private GraphPlugin _plugin;
+
+ public AddTableAtQursorToGraph(IApplication app, PluginResources resources, GraphPlugin plugin)
+ {
+ super(app, resources);
+ _plugin = plugin;
+ }
+
+ public void setSQLPanel(ISQLPanelAPI panel)
+ {
+ _panel = panel;
+ setEnabled(null != _panel && _panel.isInMainSessionWindow());
+ }
+
+ /**
+ * View the Object at cursor in the Object Tree
+ *
+ * @param evt Event being executed.
+ */
+ public synchronized void actionPerformed(ActionEvent evt)
+ {
+ if (_panel == null)
+ {
+ return;
+ }
+
+ String stringAtCursor = _panel.getSQLEntryPanel().getWordAtCursor();
+
+ TableQualifier tq = new TableQualifier(stringAtCursor);
+
+ ITableInfo[] tableInfos = _panel.getSession().getSchemaInfo().getITableInfos(tq.getCatalog(), tq.getSchema(), tq.getTableName());
+
+ if(0 == tableInfos.length)
+ {
+ JOptionPane.showMessageDialog(_panel.getSQLEntryPanel().getTextComponent(), s_stringMgr.getString("graph.AddTableAtQursorToGraph.noTable", stringAtCursor));
+ }
+
+ TableToGraph.sendToGraph(_plugin, _panel.getSession(), new TableToAddWrapper(tableInfos[0]));
+ }
+
+}
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddToGraphAction.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddToGraphAction.java 2012-01-05 19:36:06 UTC (rev 6555)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddToGraphAction.java 2012-01-07 18:34:30 UTC (rev 6556)
@@ -6,7 +6,6 @@
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.ObjectTreeNode;
import net.sourceforge.squirrel_sql.client.IApplication;
import net.sourceforge.squirrel_sql.fw.util.Resources;
-import net.sourceforge.squirrel_sql.fw.sql.DatabaseObjectType;
import java.awt.event.ActionEvent;
@@ -35,45 +34,7 @@
if (_session != null)
{
ObjectTreeNode[] selectedNodes = _session.getSessionSheet().getObjectTreePanel().getSelectedNodes();
-
- Positioner positioner = new Positioner();
- GraphController toAddTo = null;
-
- for (int i = 0; i < selectedNodes.length; i++)
- {
- if (selectedNodes[i].getDatabaseObjectType() == DatabaseObjectType.TABLE) ;
- {
- if (null == toAddTo)
- {
- GraphController[] controllers = _plugin.getGraphControllers(_session);
- if (0 == controllers.length)
- {
- toAddTo = _plugin.createNewGraphControllerForSession(_session, false);
- }
- else
- {
- GraphSelectionDialogController dlg = new GraphSelectionDialogController(controllers, _session.getApplication().getMainFrame());
- dlg.doModal();
-
- if(false == dlg.isOK())
- {
- return;
- }
- if(null == dlg.getSelectedController())
- {
- toAddTo = _plugin.createNewGraphControllerForSession(_session, false);
- }
- else
- {
- toAddTo = dlg.getSelectedController();
- }
- }
- }
-
- toAddTo.addTable(selectedNodes[i], positioner);
- }
-
- }
+ TableToGraph.sendToGraph(_plugin, _session, TableToAddWrapper.wrap(selectedNodes));
}
}
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphController.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphController.java 2012-01-05 19:36:06 UTC (rev 6555)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphController.java 2012-01-07 18:34:30 UTC (rev 6556)
@@ -383,11 +383,11 @@
- public void addTable(ObjectTreeNode selectedNode, final Positioner positioner)
+ public void addTable(TableToAddWrapper toAddWrapper, final Positioner positioner)
{
- String catalog = selectedNode.getDatabaseObjectInfo().getCatalogName();
- String schema = selectedNode.getDatabaseObjectInfo().getSchemaName();
- String table = selectedNode.getDatabaseObjectInfo().getSimpleName();
+ String catalog = toAddWrapper.getCatalogName();
+ String schema = toAddWrapper.getSchemaName();
+ String table = toAddWrapper.getSimpleName();
addTableIntern(positioner, table, schema, catalog, null);
}
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPlugin.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPlugin.java 2012-01-05 19:36:06 UTC (rev 6555)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPlugin.java 2012-01-07 18:34:30 UTC (rev 6556)
@@ -22,12 +22,15 @@
import net.sourceforge.squirrel_sql.client.action.ActionCollection;
import net.sourceforge.squirrel_sql.client.plugin.*;
import net.sourceforge.squirrel_sql.client.session.IObjectTreeAPI;
+import net.sourceforge.squirrel_sql.client.session.ISQLPanelAPI;
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
import net.sourceforge.squirrel_sql.fw.sql.DatabaseObjectType;
import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
-import net.sourceforge.squirrel_sql.plugins.graph.link.*;
+import net.sourceforge.squirrel_sql.plugins.graph.link.CopyGraphAction;
+import net.sourceforge.squirrel_sql.plugins.graph.link.LinkGraphAction;
+import net.sourceforge.squirrel_sql.plugins.graph.link.PasteGraphAction;
import net.sourceforge.squirrel_sql.plugins.graph.xmlbeans.GraphXmlSerializer;
import java.util.ArrayList;
@@ -150,6 +153,7 @@
coll.add(new LinkGraphAction(app, _resources, this));
coll.add(new CopyGraphAction(app, _resources, this));
coll.add(new PasteGraphAction(app, _resources, this));
+ coll.add(new AddTableAtQursorToGraph(app, _resources, this));
}
/**
@@ -189,10 +193,10 @@
_grapControllersBySessionID.put(session.getIdentifier(), controllers);
- IObjectTreeAPI api = session.getSessionInternalFrame().getObjectTreeAPI();
+ IObjectTreeAPI objectTreeAPI = session.getSessionInternalFrame().getObjectTreeAPI();
ActionCollection coll = getApplication().getActionCollection();
- api.addToPopup(DatabaseObjectType.TABLE, coll.get(AddToGraphAction.class));
+ objectTreeAPI.addToPopup(DatabaseObjectType.TABLE, coll.get(AddToGraphAction.class));
session.addSeparatorToToolbar();
session.addToToolbar(coll.get(NewQueryBuilderWindowAction.class));
@@ -200,6 +204,9 @@
session.addToToolbar(coll.get(CopyGraphAction.class));
session.addToToolbar(coll.get(PasteGraphAction.class));
+ ISQLPanelAPI sqlPanelAPI = session.getSessionInternalFrame().getSQLPanelAPI();
+ sqlPanelAPI.addToToolsPopUp("addtograph", coll.get(AddTableAtQursorToGraph.class));
+ sqlPanelAPI.addToSQLEntryAreaMenu(coll.get(AddTableAtQursorToGraph.class));
return new PluginSessionCallbackAdaptor(this);
}
Added: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableToAddWrapper.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableToAddWrapper.java (rev 0)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableToAddWrapper.java 2012-01-07 18:34:30 UTC (rev 6556)
@@ -0,0 +1,84 @@
+package net.sourceforge.squirrel_sql.plugins.graph;
+
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.ObjectTreeNode;
+import net.sourceforge.squirrel_sql.fw.sql.DatabaseObjectType;
+import net.sourceforge.squirrel_sql.fw.sql.ITableInfo;
+
+class TableToAddWrapper
+{
+
+ private ObjectTreeNode _objectTreeNode;
+ private ITableInfo _tableInfo;
+
+ public TableToAddWrapper(ObjectTreeNode objectTreeNode)
+ {
+ _objectTreeNode = objectTreeNode;
+ }
+
+ public TableToAddWrapper(ITableInfo tableInfo)
+ {
+ _tableInfo = tableInfo;
+ }
+
+ public static TableToAddWrapper[] wrap(ObjectTreeNode[] objectTreeNodes)
+ {
+ TableToAddWrapper[] ret = new TableToAddWrapper[objectTreeNodes.length];
+
+ for (int i = 0; i < objectTreeNodes.length; i++)
+ {
+ ret[i] = new TableToAddWrapper(objectTreeNodes[i]);
+
+ }
+
+ return ret;
+ }
+
+ public boolean isTable()
+ {
+ if (null != _objectTreeNode)
+ {
+ return _objectTreeNode.getDatabaseObjectType() == DatabaseObjectType.TABLE;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ public String getCatalogName()
+ {
+ if (null != _objectTreeNode)
+ {
+ return _objectTreeNode.getDatabaseObjectInfo().getCatalogName();
+ }
+ else
+ {
+ return _tableInfo.getCatalogName();
+ }
+ }
+
+ public String getSchemaName()
+ {
+ if (null != _objectTreeNode)
+ {
+ return _objectTreeNode.getDatabaseObjectInfo().getSchemaName();
+ }
+ else
+ {
+ return _tableInfo.getSchemaName();
+ }
+ }
+
+ public String getSimpleName()
+ {
+ if (null != _objectTreeNode)
+ {
+ return _objectTreeNode.getDatabaseObjectInfo().getSimpleName();
+ }
+ else
+ {
+ return _tableInfo.getSimpleName();
+ }
+ }
+
+}
Added: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableToGraph.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableToGraph.java (rev 0)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableToGraph.java 2012-01-07 18:34:30 UTC (rev 6556)
@@ -0,0 +1,51 @@
+package net.sourceforge.squirrel_sql.plugins.graph;
+
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.ObjectTreeNode;
+
+public class TableToGraph
+{
+
+ public static void sendToGraph(GraphPlugin plugin, ISession session, TableToAddWrapper... toAdd)
+ {
+ Positioner positioner = new Positioner();
+ GraphController toAddTo = null;
+
+ for (int i = 0; i < toAdd.length; i++)
+ {
+ if (toAdd[i].isTable()) ;
+ {
+ if (null == toAddTo)
+ {
+ GraphController[] controllers = plugin.getGraphControllers(session);
+ if (0 == controllers.length)
+ {
+ toAddTo = plugin.createNewGraphControllerForSession(session, false);
+ }
+ else
+ {
+ GraphSelectionDialogController dlg = new GraphSelectionDialogController(controllers, session.getApplication().getMainFrame());
+ dlg.doModal();
+
+ if(false == dlg.isOK())
+ {
+ return;
+ }
+ if(null == dlg.getSelectedController())
+ {
+ toAddTo = plugin.createNewGraphControllerForSession(session, false);
+ }
+ else
+ {
+ toAddTo = dlg.getSelectedController();
+ }
+ }
+ }
+
+ toAddTo.addTable(toAdd[i], positioner);
+ }
+ }
+ }
+
+
+}
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-01-05 19:36:06 UTC (rev 6555)
+++ trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/I18NStrings.properties 2012-01-07 18:34:30 UTC (rev 6556)
@@ -234,4 +234,6 @@
graph.link.linkDetailsMsg=Link {0} points to Graph {1} in file:
graph.link.linkDetailsMsg2=The link itself is placed in:
-graph.copyGraph=Copy Graph
\ No newline at end of file
+graph.copyGraph=Copy Graph
+
+graph.AddTableAtQursorToGraph.noTable=Could not find a table named:{0}
\ No newline at end of file
Modified: trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/graph.properties
===================================================================
--- trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/graph.properties 2012-01-05 19:36:06 UTC (rev 6555)
+++ trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/graph.properties 2012-01-07 18:34:30 UTC (rev 6556)
@@ -32,7 +32,11 @@
action.net.sourceforge.squirrel_sql.plugins.graph.link.PasteGraphAction.tooltip=Paste Graph from an other or the same Session
action.net.sourceforge.squirrel_sql.plugins.graph.link.PasteGraphAction.image=pasteGraph.png
+action.net.sourceforge.squirrel_sql.plugins.graph.AddTableAtQursorToGraph.image=
+action.net.sourceforge.squirrel_sql.plugins.graph.AddTableAtQursorToGraph.name=Add to Graph
+action.net.sourceforge.squirrel_sql.plugins.graph.AddTableAtQursorToGraph.tooltip=Add table at cursor to Graph
+
#action.net.sourceforge.squirrel_sql.plugins.graph.link.CutGraphAction.name=Cut Graph
#action.net.sourceforge.squirrel_sql.plugins.graph.link.CutGraphAction.tooltip=Cut Graph to paste to another Session
#action.net.sourceforge.squirrel_sql.plugins.graph.link.CutGraphAction.image=cutGraph.png
@@ -66,6 +70,9 @@
menuitem.net.sourceforge.squirrel_sql.plugins.graph.link.PasteGraphAction.accelerator=
menuitem.net.sourceforge.squirrel_sql.plugins.graph.link.PasteGraphAction.mnemonic=
+menuitem.net.sourceforge.squirrel_sql.plugins.graph.AddTableAtQursorToGraph.accelerator=
+menuitem.net.sourceforge.squirrel_sql.plugins.graph.AddTableAtQursorToGraph.mnemonic=
+
#menuitem.net.sourceforge.squirrel_sql.plugins.graph.link.CutGraphAction.accelerator=
#menuitem.net.sourceforge.squirrel_sql.plugins.graph.link.CutGraphAction.mnemonic=
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|