Revision: 6187
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6187&view=rev
Author: gerdwagner
Date: 2011-03-13 19:44:38 +0000 (Sun, 13 Mar 2011)
Log Message:
-----------
Query Builder: First step
Modified Paths:
--------------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/session/MainPanel.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/ExtendedColumnInfo.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/BaseMainPanelTab.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/IMainPanelTab.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreePanel.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/expanders/IndexParentInfo.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/expanders/TriggerParentInfo.java
trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/I18NStrings.properties
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/DataTypeInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/DatabaseObjectInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/ForeignKeyInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/IndexInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/PrimaryKeyInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/ProcedureInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableColumnInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/UDTInfo.java
trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/dbobj/BestRowIdentifier.java
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/ColumnInfo.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnTextArea.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConfigureNonDbConstraintDlg.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintData.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintView.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/DndColumn.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/DndHandler.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/GraphControllerAccessor.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDesktopController.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDesktopListener.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDesktopPane.java
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/GraphPlugin.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/GraphTextAreaFactory.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableFrame.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableFrameController.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ZoomPrintController.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ZoomableColumnTextArea.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/Zoomer.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ZoomerListener.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/xmlbeans/ColumnInfoXmlBean.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/xmlbeans/ConstraintDataXmlBean.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/xmlbeans/GraphControllerXmlBean.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
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HQLEntryPanelManager.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/SQLPanelManager.java
trunk/sql12/plugins/mysql/src/main/java/net/sourceforge/squirrel_sql/plugins/mysql/gui/AlterTableDialog.java
trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/expander/ConstraintParentInfo.java
trunk/sql12/plugins/postgres/src/main/java/net/sourceforge/squirrel_sql/plugins/postgres/util/RelatedObjectInfo.java
trunk/sql12/plugins/syntax/src/main/java/net/sourceforge/squirrel_sql/plugins/syntax/prefspanel/StylesList.java
Added Paths:
-----------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/EntryPanelManager.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreeDndTransfer.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AggregateFunctions.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModel.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModelEventDispatcher.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModelListener.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintHit.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintHitData.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintIconHandler.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintQueryData.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintViewsModel.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintViewsModelListener.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/DefaultGraphDisplay.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDockHandle.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDockHandleFactory.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphDockHandleListener.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphPanelController.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphQueryResultPanel.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphQuerySQLPanel.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/GraphQuerySQLPanelCtrl.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/IColumnTextArea.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/IGraphDisplay.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/Mode.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ModeManager.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ModeManagerListener.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ModeMenuItem.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/OrderType.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/Positioner.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryBuilder.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryBuilderController.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryColumnPanel.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryColumnTextField.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryData.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryFilterController.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryFilterDlg.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryFilterListener.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryFilterOperators.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryJoinType.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/QueryTextArea.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableFramesModel.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableFramesModelChangeType.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/TableFramesModelListener.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/sqlgen/
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/sqlgen/FromClauseGenerator.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/sqlgen/FromClauseRes.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/sqlgen/QueryBuilderSQLGenerator.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/sqlgen/SelectClauseGenerator.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/sqlgen/SelectClauseRes.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/sqlgen/WhereClauseGenerator.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/xmlbeans/ConstraintQueryDataXmlBean.java
trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/xmlbeans/QueryDataXmlBean.java
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/aggcount.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/aggfct.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/aggfct_checked.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/aggmax.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/aggmin.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/aggsum.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/equal.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/equalCrossed.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/equalLeft.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/equalRight.png
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/filter.gif
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/filter_checked.gif
trunk/sql12/plugins/graph/src/main/resources/net/sourceforge/squirrel_sql/plugins/graph/images/toWindow.gif
Removed Paths:
-------------
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/EntryPanelManagerBase.java
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/session/MainPanel.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/session/MainPanel.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/session/MainPanel.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -186,9 +186,11 @@
throw new IllegalArgumentException("Null IMainPanelTab passed");
}
tab.setSession(_session);
- final String title = tab.getTitle();
- int idx = _tabPnl.indexOfTab(title);
- if (idx != -1)
+
+ int idx = getTabIndex(tab);
+
+
+ if (idx != -1)
{
_tabPnl.removeTabAt(idx);
_tabs.set(idx, tab);
@@ -198,8 +200,14 @@
idx = _tabPnl.getTabCount();
_tabs.add(tab);
}
- _tabPnl.insertTab(title, null, tab.getComponent(), tab.getHint(), idx);
+ _tabPnl.insertTab(tab.getTitle(), null, tab.getComponent(), tab.getHint(), idx);
+ if(null != tab.getTabComponent())
+ {
+ _tabPnl.setTabComponentAt(idx, tab.getTabComponent());
+ }
+
+
int prefIx = Preferences.userRoot().getInt(PREFS_KEY_SELECTED_TAB_IX, ITabIndexes.OBJECT_TREE_TAB);
if(idx == prefIx)
{
@@ -237,31 +245,51 @@
}
tab.setSession(_session);
- final String title = tab.getTitle();
- int checkIdx = _tabPnl.indexOfTab(title);
- if (checkIdx != -1)
+
+ int checkIdx = getTabIndex(tab);
+
+
+ if (checkIdx != -1)
{
throw new IllegalArgumentException("A tab with the same title already exists at index " + checkIdx);
}
_tabs.add(idx, tab);
- _tabPnl.insertTab(title, null, tab.getComponent(), tab.getHint(), idx);
+ _tabPnl.insertTab(tab.getTitle(), null, tab.getComponent(), tab.getHint(), idx);
+ if(null != tab.getTabComponent())
+ {
+ _tabPnl.setTabComponentAt(idx, tab.getTabComponent());
+ }
+
if(selectInsertedTab)
{
_tabPnl.setSelectedIndex(idx);
}
}
- public int removeMainPanelTab(IMainPanelTab tab)
+ private int getTabIndex(IMainPanelTab tab)
+ {
+ int checkIdx;
+ if(null == tab.getTabComponent())
+ {
+ checkIdx = _tabPnl.indexOfTab(tab.getTitle());
+ }
+ else
+ {
+ checkIdx = _tabPnl.indexOfTabComponent(tab.getTabComponent());
+ }
+ return checkIdx;
+ }
+
+ public int removeMainPanelTab(IMainPanelTab tab)
{
if (tab == null)
{
throw new IllegalArgumentException("Null IMainPanelTab passed");
}
- final String title = tab.getTitle();
- int idx = _tabPnl.indexOfTab(title);
+ int idx = getTabIndex(tab);
if (idx == -1)
{
return idx;
Copied: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/EntryPanelManager.java (from rev 6133, trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/EntryPanelManagerBase.java)
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/EntryPanelManager.java (rev 0)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/EntryPanelManager.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -0,0 +1,82 @@
+package net.sourceforge.squirrel_sql.client.session;
+
+import net.sourceforge.squirrel_sql.client.gui.session.ToolsPopupAccessor;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.UndoHandlerImpl;
+import net.sourceforge.squirrel_sql.client.session.parser.IParserEventsProcessorFactory;
+
+import javax.swing.*;
+import java.util.HashMap;
+
+public class EntryPanelManager
+{
+ private ISession _session;
+ private ISQLEntryPanel _entry;
+ private JComponent _component;
+
+ public EntryPanelManager(ISession session)
+ {
+ _session = session;
+ }
+
+ public void init(ISyntaxHighlightTokenMatcherFactory syntaxHighlightTokenMatcherFactory, ToolsPopupAccessor tpa)
+ {
+ HashMap props = new HashMap();
+ props.put(IParserEventsProcessorFactory.class.getName(), null);
+
+ if(null != syntaxHighlightTokenMatcherFactory)
+ {
+ props.put(ISyntaxHighlightTokenMatcherFactory.class.getName(), syntaxHighlightTokenMatcherFactory);
+ }
+
+ if(null != tpa)
+ {
+ props.put(ToolsPopupAccessor.class.getName(), tpa);
+ }
+
+
+ _entry = _session.getApplication().getSQLEntryPanelFactory().createSQLEntryPanel(_session, props);
+
+
+ _component = _entry.getTextComponent();
+ if (false == _entry.getDoesTextComponentHaveScroller())
+ {
+ _component = new JScrollPane(_entry.getTextComponent());
+ _component.setBorder(BorderFactory.createEmptyBorder());
+ }
+
+ new UndoHandlerImpl(_session.getApplication(), _entry);
+ }
+
+ public JComponent getComponent()
+ {
+ checkInit();
+ return _component;
+ }
+
+ private void checkInit()
+ {
+ if(null == _component)
+ {
+ throw new IllegalStateException("Call init() before using this object");
+ }
+ }
+
+ public ISQLEntryPanel getEntryPanel()
+ {
+ checkInit();
+ return _entry;
+ }
+
+ public void requestFocus()
+ {
+ checkInit();
+ _entry.requestFocus();
+ }
+
+ protected ISession getSession()
+ {
+ return _session;
+ }
+
+
+}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/ExtendedColumnInfo.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/ExtendedColumnInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/ExtendedColumnInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -21,6 +21,7 @@
import net.sourceforge.squirrel_sql.fw.sql.TableColumnInfo;
import java.io.Serializable;
+import java.sql.Types;
public class ExtendedColumnInfo implements Serializable
{
@@ -35,11 +36,13 @@
private String _simpleTableName;
private String _qualifiedName;
private String _remarks;
+ private int _columnTypeID;
public ExtendedColumnInfo(TableColumnInfo info, String simpleTableName)
{
_columnName = info.getColumnName();
_columnType = info.getTypeName();
+ _columnTypeID = info.getDataType();
_columnSize = info.getColumnSize();
_decimalDigits = info.getDecimalDigits();
_remarks = info.getRemarks();
@@ -103,6 +106,20 @@
return _simpleTableName;
}
+ public int getColumnTypeID()
+ {
+ return _columnTypeID;
+ }
+
+ public boolean isCharacterType()
+ {
+ return Types.VARCHAR == _columnTypeID
+ || Types.LONGVARCHAR == _columnTypeID
+ || Types.CHAR == _columnTypeID
+ || Types.NVARCHAR == _columnTypeID;
+ }
+
+
/**
* @see java.lang.Object#hashCode()
*/
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/BaseMainPanelTab.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/BaseMainPanelTab.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/BaseMainPanelTab.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -21,6 +21,9 @@
import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
import net.sourceforge.squirrel_sql.client.session.ISession;
+
+import java.awt.*;
+
/**
* Base class for tabs to the added to the main tabbed panel.
*
@@ -89,7 +92,13 @@
}
}
- /**
+ @Override
+ public Component getTabComponent()
+ {
+ return null;
+ }
+
+ /**
* Refresh the component.
*/
protected abstract void refreshComponent();
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/IMainPanelTab.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/IMainPanelTab.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/IMainPanelTab.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -34,6 +34,13 @@
*/
String getTitle();
+ /**
+ *
+ * @return if != null the return component is displayed instead of the title
+ */
+ Component getTabComponent();
+
+
/**
* Return the hint for the tab.
*
Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreeDndTransfer.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreeDndTransfer.java (rev 0)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreeDndTransfer.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -0,0 +1,24 @@
+package net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree;
+
+import net.sourceforge.squirrel_sql.fw.sql.ITableInfo;
+
+import java.util.List;
+
+
+/**
+ * This class mainly exits to enable IDEs to find where dragged ObjectTree objects are received via usage search.
+ */
+public class ObjectTreeDndTransfer
+{
+ private List<ITableInfo> _selectedTables;
+
+ public ObjectTreeDndTransfer(List<ITableInfo> selectedTables)
+ {
+ _selectedTables = selectedTables;
+ }
+
+ public List<ITableInfo> getSelectedTables()
+ {
+ return _selectedTables;
+ }
+}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreePanel.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreePanel.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreePanel.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -19,59 +19,15 @@
* 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.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import javax.swing.Action;
-import javax.swing.BorderFactory;
-import javax.swing.JMenu;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JSplitPane;
-import javax.swing.JTabbedPane;
-import javax.swing.SwingUtilities;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import javax.swing.event.TreeModelListener;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.TreePath;
-
import net.sourceforge.squirrel_sql.client.session.IObjectTreeAPI;
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseDataSetTab;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.DatabaseObjectInfoTab;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.IObjectTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.CatalogsTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.ConnectionStatusTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.DataTypesTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.KeywordsTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.MetaDataTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.NumericFunctionsTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.SchemasTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.StringFunctionsTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.SystemFunctionsTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.TableTypesTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.TimeDateFunctionsTab;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.database.*;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.procedure.ProcedureColumnsTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ColumnPriviligesTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ColumnsTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ContentsTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ExportedKeysTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.ImportedKeysTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.IndexesTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.PrimaryKeyTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.RowCountTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.RowIDTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.TablePriviligesTab;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.VersionColumnsTab;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.table.*;
import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties;
import net.sourceforge.squirrel_sql.client.session.schemainfo.FilterMatcher;
import net.sourceforge.squirrel_sql.client.util.IdentifierFactory;
@@ -86,6 +42,21 @@
import net.sourceforge.squirrel_sql.fw.util.Utilities;
import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
+
+import javax.activation.DataHandler;
+import javax.swing.*;
+import javax.swing.event.*;
+import javax.swing.tree.TreePath;
+import java.awt.*;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
/**
* This is the panel for the Object Tree tab.
*
@@ -93,9 +64,6 @@
*/
public class ObjectTreePanel extends JPanel implements IObjectTreeAPI
{
-
- private static final long serialVersionUID = -2257109602127706539L;
-
/** Logger for this class. */
private static final ILogger s_log =
LoggerController.createLogger(ObjectTreePanel.class);
@@ -110,8 +78,7 @@
private ObjectTree _tree;
/** Split pane between the object tree and the data panel. */
- private final JSplitPane _splitPane =
- new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
+ private final JSplitPane _splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
/**
* Empty data panel. Used if the object selected in the object
@@ -151,7 +118,6 @@
*/
public ObjectTreePanel(ISession session)
{
- super();
if (session == null)
{
throw new IllegalArgumentException("ISession == null");
@@ -164,17 +130,33 @@
createGUI();
-// session.getApplication().getThreadPool().addTask(new Runnable()
-// {
-// public void run()
-// {
- doBackgroundInitializations();
-// }
-// });
+ init();
+
+ initDnD();
+
}
- private void doBackgroundInitializations()
+ private void initDnD()
{
+ _tree.setTransferHandler(new TransferHandler("DragedTreeNode")
+ {
+ @Override
+ protected Transferable createTransferable(JComponent c)
+ {
+ return new DataHandler(new ObjectTreeDndTransfer(getSelectedTables()), DataFlavor.javaJVMLocalObjectMimeType);
+ }
+
+ public int getSourceActions(JComponent c)
+ {
+ return COPY;
+ }
+
+ });
+ _tree.setDragEnabled(true);
+ }
+
+ private void init()
+ {
try
{
// Register tabs to display in the details panel for database nodes.
@@ -925,19 +907,11 @@
_splitPane.setOneTouchExpandable(true);
_splitPane.setContinuousLayout(true);
-// final JScrollPane sp = new JScrollPane();
-// sp.setBorder(BorderFactory.createEmptyBorder());
-// sp.setViewportView(_tree);
-// sp.setPreferredSize(new Dimension(200, 200));
_splitPane.add(new LeftPanel(), JSplitPane.LEFT);
add(_splitPane, BorderLayout.CENTER);
_splitPane.setDividerLocation(200);
-// _tree.addTreeSelectionListener(new ObjectTreeSelectionListener());
-// _objTreeSelLis = new ObjectTreeSelectionListener();
-// _tree.addTreeSelectionListener(_objTreeSelLis);
-
_tree.setSelectionRow(0);
}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/expanders/IndexParentInfo.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/expanders/IndexParentInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/expanders/IndexParentInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -32,8 +32,6 @@
*/
public class IndexParentInfo extends DatabaseObjectInfo
{
- private static final long serialVersionUID = 1L;
-
public interface IPropertyNames {
String SIMPLE_NAME = "simpleName";
String TABLE_INFO = "tableInfo";
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/expanders/TriggerParentInfo.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/expanders/TriggerParentInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/expanders/TriggerParentInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -32,8 +32,6 @@
*/
public class TriggerParentInfo extends DatabaseObjectInfo
{
- private static final long serialVersionUID = 1L;
-
public interface IPropertyNames {
String SIMPLE_NAME = "simpleName";
String TABLE_INFO = "tableInfo";
Modified: trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/I18NStrings.properties
===================================================================
--- trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/I18NStrings.properties 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/I18NStrings.properties 2011-03-13 19:44:38 UTC (rev 6187)
@@ -1,2 +1,4 @@
FindInObjectTreePanel.find=Find in Object tree (placeholders % or _ may be used)
-FindInObjectTreePanel.applyAsFilter=Toggle apply search string as Object tree filter
\ No newline at end of file
+FindInObjectTreePanel.applyAsFilter=Toggle apply search string as Object tree filter
+RightDisplayController.treeDetails=Tree details
+RightDisplayController.RightSideDisplays=Right side displays
\ No newline at end of file
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/DataTypeInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/DataTypeInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/DataTypeInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -20,9 +20,7 @@
// TODO: Put in all the property accessors
public class DataTypeInfo extends DatabaseObjectInfo
{
- static final long serialVersionUID = -3501323961506084527L;
-
- private final int _dataType;
+ private final int _dataType;
private final int _precision;
private final String _literalPrefix;
private final String _literalSuffix;
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/DatabaseObjectInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/DatabaseObjectInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/DatabaseObjectInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -41,7 +41,6 @@
String QUALIFIED_NAME = "qualifiedName";
}
- static final long serialVersionUID = -7138016566181091160L;
/** Catalog name. Can be <CODE>null</CODE> */
private final String _catalog;
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/ForeignKeyInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/ForeignKeyInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/ForeignKeyInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -24,8 +24,6 @@
*/
public class ForeignKeyInfo extends DatabaseObjectInfo
{
- static final long serialVersionUID = -4223544514849570902L;
-
/**
* JavaBean property names for this class.
*/
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/IndexInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/IndexInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/IndexInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -25,8 +25,6 @@
*/
public class IndexInfo extends DatabaseObjectInfo {
- private static final long serialVersionUID = 4146807206360206252L;
-
public static enum IndexType {
STATISTIC,
CLUSTERED,
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/PrimaryKeyInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/PrimaryKeyInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/PrimaryKeyInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -26,9 +26,7 @@
*/
public class PrimaryKeyInfo extends DatabaseObjectInfo
{
- static final long serialVersionUID = 4785889679696720264L;
-
- /**
+ /**
* the name of the column which belongs to a list of columns that form a
* unique key for a table
*/
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/ProcedureInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/ProcedureInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/ProcedureInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -24,8 +24,6 @@
public class ProcedureInfo extends DatabaseObjectInfo implements IProcedureInfo
{
- static final long serialVersionUID = -4111528608716386156L;
-
/** Internationalized strings for this class. */
private static final StringManager s_stringMgr =
StringManagerFactory.getStringManager(ProcedureInfo.class);
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableColumnInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableColumnInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableColumnInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -19,9 +19,8 @@
*/
public class TableColumnInfo extends DatabaseObjectInfo
{
- static final long serialVersionUID = 3529392685978921375L;
-
- private final String _tableName;
+
+ private final String _tableName;
private final String _columnName;
private final int _dataType;
private final String _typeName;
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/TableInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -22,8 +22,6 @@
public class TableInfo extends DatabaseObjectInfo implements ITableInfo
{
- static final long serialVersionUID = -3184857504910012169L;
-
/** Table Type. */
private final String _tableType;
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/UDTInfo.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/UDTInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/UDTInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -20,8 +20,6 @@
public class UDTInfo extends DatabaseObjectInfo implements IUDTInfo
{
- static final long serialVersionUID = 8215062701260471438L;
-
/** Java class name. */
private final String _javaClassName;
Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/dbobj/BestRowIdentifier.java
===================================================================
--- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/dbobj/BestRowIdentifier.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/sql/dbobj/BestRowIdentifier.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -28,9 +28,7 @@
*/
public class BestRowIdentifier extends DatabaseObjectInfo
{
- static final long serialVersionUID = 7587093034289367642L;
-
- final private int _scope;
+ final private int _scope;
final private String _colName;
final private short _sqlDataType;
final private String _typeName;
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 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AddToGraphAction.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -38,7 +38,7 @@
{
ObjectTreeNode[] selectedNodes = _session.getSessionSheet().getObjectTreePanel().getSelectedNodes();
- Point[] refCascadeIndent = new Point[1];
+ Positioner positioner = new Positioner();
GraphController toAddTo = null;
for (int i = 0; i < selectedNodes.length; i++)
@@ -72,7 +72,7 @@
}
}
- toAddTo.addTable(selectedNodes[i], refCascadeIndent);
+ toAddTo.addTable(selectedNodes[i], positioner);
}
}
Added: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AggregateFunctions.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AggregateFunctions.java (rev 0)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/AggregateFunctions.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -0,0 +1,81 @@
+package net.sourceforge.squirrel_sql.plugins.graph;
+
+import net.sourceforge.squirrel_sql.fw.util.StringManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+
+import static net.sourceforge.squirrel_sql.plugins.graph.GraphPluginResources.IKeys.*;
+
+public enum AggregateFunctions
+{
+ NONE(0, "<NONE>",AGG_FCT, AggFct18n.s_stringMgr.getString("AggregateFunctions.undefined"), AggFct18n.s_stringMgr.getString("AggregateFunctions.undefinedTT")),
+ SUM(1, "SUM", AGG_SUM, AggFct18n.s_stringMgr.getString("AggregateFunctions.sum"), AggFct18n.s_stringMgr.getString("AggregateFunctions.sumTT")),
+ MAX(2, "MAX", AGG_MAX, AggFct18n.s_stringMgr.getString("AggregateFunctions.max"), AggFct18n.s_stringMgr.getString("AggregateFunctions.maxTT")),
+ MIN(3, "MIN", AGG_MIN, AggFct18n.s_stringMgr.getString("AggregateFunctions.min"), AggFct18n.s_stringMgr.getString("AggregateFunctions.minTT")),
+ COUNT(4, "COUNT", AGG_COUNT, AggFct18n.s_stringMgr.getString("AggregateFunctions.count"), AggFct18n.s_stringMgr.getString("AggregateFunctions.countTT"));
+
+ public static final Object CLIENT_PROP_NAME = AggregateFunctions.class.getName();
+
+ private int _index;
+ private String _image;
+ private String _name;
+ private String _toolTip;
+ private String _sql;
+
+
+ AggregateFunctions(int index, String sql, String image, String name, String toolTip)
+ {
+ _index = index;
+ _sql = sql;
+ _image = image;
+ _name = name;
+ _toolTip = toolTip;
+ }
+
+
+ public String getImage()
+ {
+ return _image;
+ }
+
+ @Override
+ public String toString()
+ {
+ return _name;
+ }
+
+
+ public String getToolTip()
+ {
+ return _toolTip;
+ }
+
+ public int getIndex()
+ {
+ return _index;
+ }
+
+ public static AggregateFunctions getForIndex(int aggregateFunctionIndex)
+ {
+ for (AggregateFunctions aggregateFunction : values())
+ {
+ if(aggregateFunction._index == aggregateFunctionIndex)
+ {
+ return aggregateFunction;
+ }
+ }
+
+ throw new IllegalArgumentException("Unknown aggregateFunctionIndex " + aggregateFunctionIndex);
+
+ }
+
+ public String getSQL()
+ {
+ return _sql;
+ }
+}
+
+class AggFct18n
+{
+ static final StringManager s_stringMgr = StringManagerFactory.getStringManager(AggFct18n.class);
+
+}
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfo.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfo.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfo.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -1,6 +1,7 @@
package net.sourceforge.squirrel_sql.plugins.graph;
import net.sourceforge.squirrel_sql.plugins.graph.xmlbeans.ColumnInfoXmlBean;
+import net.sourceforge.squirrel_sql.plugins.graph.xmlbeans.QueryDataXmlBean;
public class ColumnInfo extends Object
@@ -20,6 +21,8 @@
private String _toString;
+ private QueryData _queryData = new QueryData();
+ private ColumnInfoModelEventDispatcher _columnInfoModelEventDispatcher;
public ColumnInfo(String columnName, String columnType, int columnSize, int decimalDigits, boolean nullable)
{
@@ -37,6 +40,7 @@
public ColumnInfo(ColumnInfoXmlBean xmlBean)
{
this(xmlBean.getColumnName(), xmlBean.getColumnType(), xmlBean.getColumnSize(), xmlBean.getDecimalDigits(), xmlBean.isNullable());
+ _queryData = new QueryData(xmlBean.getQueryDataXmlBean());
_index = xmlBean.getIndex();
if(xmlBean.isPrimaryKey())
{
@@ -65,6 +69,15 @@
ret.setConstraintName(_constraintName);
ret.setNonDbConstraint(_nonDbConstraint);
+ QueryDataXmlBean queryDataXmlBean = new QueryDataXmlBean();
+ queryDataXmlBean.setOperatorIndex(_queryData.getOperator().getIndex());
+ queryDataXmlBean.setAggregateFunctionIndex(_queryData.getAggregateFunction().getIndex());
+ queryDataXmlBean.setFilterValue(_queryData.getFilterValue());
+ queryDataXmlBean.setInSelectClause(_queryData.isInSelectClause());
+
+ ret.setQueryDataXmlBean(queryDataXmlBean);
+
+
return ret;
}
@@ -155,4 +168,30 @@
{
return _nonDbConstraint;
}
+
+
+ public QueryData getQueryData()
+ {
+ return _queryData;
+ }
+
+ public String getColumnName()
+ {
+ return _columnName;
+ }
+
+ public void setQueryData(QueryData queryData)
+ {
+ _queryData = queryData;
+ }
+
+ public void setColumnInfoModelEventDispatcher(ColumnInfoModelEventDispatcher columnInfoModelEventDispatcher)
+ {
+ _columnInfoModelEventDispatcher = columnInfoModelEventDispatcher;
+ }
+
+ public ColumnInfoModelEventDispatcher getColumnInfoModelEventDispatcher()
+ {
+ return _columnInfoModelEventDispatcher;
+ }
}
Added: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModel.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModel.java (rev 0)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModel.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -0,0 +1,135 @@
+package net.sourceforge.squirrel_sql.plugins.graph;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class ColumnInfoModel
+{
+ private ColumnInfo[] _colInfos = new ColumnInfo[0];
+ private ColumnInfo[] _orderedColumnInfos = new ColumnInfo[0];
+ private ArrayList<ColumnInfoModelListener> _listeners = new ArrayList<ColumnInfoModelListener>();
+ private ColumnInfoModelEventDispatcher _columnInfoModelEventDispatcher;
+
+
+ public ColumnInfoModel()
+ {
+ _columnInfoModelEventDispatcher = new ColumnInfoModelEventDispatcher()
+ {
+ @Override
+ public void fireChanged(TableFramesModelChangeType changeType)
+ {
+ ColumnInfoModel.this.fireChanged(changeType);
+ }
+ };
+ }
+
+ public int getColCount()
+ {
+ return _colInfos.length;
+ }
+
+ public ColumnInfo getColAt(int ix)
+ {
+ return _colInfos[ix];
+ }
+
+ public ColumnInfo[] getAll()
+ {
+ return _colInfos;
+ }
+
+ public void orderBy(OrderType orderType)
+ {
+ if(OrderType.ORDER_DB == orderType)
+ {
+ _orderedColumnInfos = _colInfos;
+ }
+ else
+ {
+ _orderedColumnInfos = new ColumnInfo[_colInfos.length];
+ System.arraycopy(_colInfos, 0, _orderedColumnInfos, 0, _colInfos.length);
+ Arrays.sort(_orderedColumnInfos, orderType.getComparator());
+ }
+
+ for (int i = 0; i < _orderedColumnInfos.length; i++)
+ {
+ _orderedColumnInfos[i].setIndex(i);
+ }
+
+ fireChanged(TableFramesModelChangeType.COLUMN_SORTING);
+ }
+
+ public ColumnInfo findColumnInfo(String colName)
+ {
+ for (int i = 0; i < _colInfos.length; i++)
+ {
+ if(_colInfos[i].getName().equals(colName))
+ {
+ return _colInfos[i];
+ }
+ }
+
+ throw new IllegalArgumentException("Column " + colName + " not found");
+ }
+
+ public ColumnInfo getOrderedColAt(int ix)
+ {
+ return _orderedColumnInfos[ix];
+ }
+
+ public void addColumnInfoModelListener(ColumnInfoModelListener listener)
+ {
+ _listeners.add(listener);
+ }
+
+ public void querySelectAll(boolean b)
+ {
+ for (ColumnInfo colInfo : _colInfos)
+ {
+ colInfo.getQueryData().setInSelectClause(b);
+ }
+
+ fireChanged(TableFramesModelChangeType.COLUMN_SELECT);
+ }
+
+
+ public void clearAllFilters()
+ {
+ for (ColumnInfo colInfo : _colInfos)
+ {
+ colInfo.getQueryData().clearFilter();
+ }
+
+ fireChanged(TableFramesModelChangeType.COLUMN_WHERE);
+ }
+
+ private void fireChanged(TableFramesModelChangeType changeType)
+ {
+ ColumnInfoModelListener[] listeners = _listeners.toArray(new ColumnInfoModelListener[_listeners.size()]);
+
+ for (ColumnInfoModelListener listener : listeners)
+ {
+ listener.columnInfosChanged(changeType);
+ }
+ }
+
+ public void initCols(ColumnInfo[] refreshedCols, OrderType columnOrderType)
+ {
+ for (ColumnInfo colInfoNew : refreshedCols)
+ {
+ for (ColumnInfo colInfoOld : _colInfos)
+ {
+ if(colInfoNew.getColumnName().equalsIgnoreCase(colInfoOld.getColumnName()))
+ {
+ colInfoNew.setQueryData(colInfoOld.getQueryData());
+ }
+ }
+
+ colInfoNew.setColumnInfoModelEventDispatcher(_columnInfoModelEventDispatcher);
+ }
+
+ _colInfos = refreshedCols;
+
+ orderBy(columnOrderType);
+ }
+}
Added: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModelEventDispatcher.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModelEventDispatcher.java (rev 0)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModelEventDispatcher.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -0,0 +1,6 @@
+package net.sourceforge.squirrel_sql.plugins.graph;
+
+public interface ColumnInfoModelEventDispatcher
+{
+ void fireChanged(TableFramesModelChangeType changeType);
+}
Added: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModelListener.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModelListener.java (rev 0)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnInfoModelListener.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -0,0 +1,6 @@
+package net.sourceforge.squirrel_sql.plugins.graph;
+
+public interface ColumnInfoModelListener
+{
+ void columnInfosChanged(TableFramesModelChangeType changeType);
+}
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnTextArea.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnTextArea.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ColumnTextArea.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -3,14 +3,15 @@
import net.sourceforge.squirrel_sql.client.session.ISession;
import javax.swing.*;
+import java.awt.*;
import java.awt.event.MouseEvent;
-import java.awt.event.MouseAdapter;
-public class ColumnTextArea extends JTextArea implements DndColumn
+public class ColumnTextArea extends JTextArea implements DndColumn, IColumnTextArea
{
private TableToolTipProvider _toolTipProvider;
private DndHandler _dndHandler;
+ private ColumnInfoModel _columnInfoModel;
public ColumnTextArea(TableToolTipProvider toolTipProvider, DndCallback dndCallback, ISession session)
{
@@ -26,15 +27,34 @@
/**
* Not named setColumns() because it would be an overload.
- * @param columnInfos
+ * @param columnInfoModel
*/
- public void setGraphColumns(ColumnInfo[] columnInfos)
+ public void setColumnInfoModel(ColumnInfoModel columnInfoModel)
{
+ _columnInfoModel = columnInfoModel;
+
+ _columnInfoModel.addColumnInfoModelListener(new ColumnInfoModelListener()
+ {
+ @Override
+ public void columnInfosChanged(TableFramesModelChangeType changeType)
+ {
+ if (TableFramesModelChangeType.COLUMN_SORTING == changeType)
+ {
+ initColumnInfos();
+ }
+ }
+ });
+
+ initColumnInfos();
+ }
+
+ private void initColumnInfos()
+ {
StringBuffer sb = new StringBuffer();
- for (int i = 0; i < columnInfos.length; i++)
+ for (int i = 0; i < _columnInfoModel.getColCount(); i++)
{
- columnInfos[i].setIndex(i);
- sb.append(columnInfos[i]).append('\n');
+ //_columnInfoModel.getOrderedColAt(i).setIndex(i);
+ sb.append(_columnInfoModel.getOrderedColAt(i)).append('\n');
}
setText(sb.toString());
}
@@ -48,4 +68,35 @@
{
_dndHandler.setDndEvent(dndEvent);
}
+
+ @Override
+ public Point getLocationInColumnTextArea()
+ {
+ return new Point(0,0);
+ }
+
+ @Override
+ public int getColumnHeight()
+ {
+ FontMetrics fm = getGraphics().getFontMetrics(getFont());
+ return fm.getHeight();
+ }
+
+ @Override
+ public int getMaxWidth()
+ {
+ int maxSize = 0;
+ FontMetrics fm = getFontMetrics(getFont());
+
+ for (int i = 0; i < _columnInfoModel.getColCount(); i++)
+ {
+ int buf = fm.stringWidth(_columnInfoModel.getColAt(i).toString());
+ if(maxSize < buf)
+ {
+ maxSize = buf;
+ }
+ }
+
+ return maxSize;
+ }
}
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConfigureNonDbConstraintDlg.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConfigureNonDbConstraintDlg.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConfigureNonDbConstraintDlg.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -8,6 +8,7 @@
import net.sourceforge.squirrel_sql.client.gui.mainframe.MainFrame;
import javax.swing.*;
+import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
@@ -34,32 +35,37 @@
GridBagConstraints gbc;
- gbc = new GridBagConstraints(0,0,1,1,1,1, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5,5,5,5), 0,0);
+ gbc = new GridBagConstraints(0,1,1,1,1,1, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5,5,5,5), 0,0);
_table = new DataSetViewerTablePanel();
_table.init(null);
- getContentPane().add(new JScrollPane(_table.getComponent()), gbc);
+ JPanel pnlBordered = new JPanel(new GridLayout(1,1));
+ pnlBordered.add(new JScrollPane(_table.getComponent()));
+ TitledBorder titledBorder = BorderFactory.createTitledBorder(s_stringMgr.getString("graph.ConfigureNonDbConstraintDlg.tblTitle"));
+ titledBorder.setTitleFont(titledBorder.getTitleFont().deriveFont(Font.BOLD));
+ pnlBordered.setBorder(titledBorder);
+ getContentPane().add(pnlBordered, gbc);
- gbc = new GridBagConstraints(0,1,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0,5,10,5), 0,0);
+ gbc = new GridBagConstraints(0,2,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0,5,10,5), 0,0);
_btnRemove = new JButton(s_stringMgr.getString("graph.ConfigureNonDbConstraintDlg.remove"));
getContentPane().add(_btnRemove, gbc);
- gbc = new GridBagConstraints(0,2,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5,5,5,5), 0,0);
+ gbc = new GridBagConstraints(0,3,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5,5,5,5), 0,0);
getContentPane().add(createControlsPanel(fkTableName, pkTableName), gbc);
- gbc = new GridBagConstraints(0,3,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5), 0,0);
+ gbc = new GridBagConstraints(0,4,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5), 0,0);
getContentPane().add(createNamePanel(), gbc);
- gbc = new GridBagConstraints(0,4,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5), 0,0);
+ gbc = new GridBagConstraints(0,5,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5), 0,0);
MultipleLineLabel lblHint = new MultipleLineLabel(s_stringMgr.getString("graph.ConfigureNonDbConstraintDlg.NonDbConstraintHint"));
lblHint.setForeground(Color.red);
getContentPane().add(lblHint, gbc);
- gbc = new GridBagConstraints(0,5,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5), 0,0);
+ gbc = new GridBagConstraints(0,6,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5), 0,0);
getContentPane().add(createButtonsPanel(), gbc);
- setSize(800, 500);
+ setSize(800, 530);
GUIUtils.centerWithinScreen(this);
@@ -146,6 +152,9 @@
ret.add(createAddButtonsPanel(), gbc);
+ TitledBorder titledBorder = BorderFactory.createTitledBorder(s_stringMgr.getString("graph.ConfigureNonDbConstraintDlg.AddColsTitle"));
+ titledBorder.setTitleFont(titledBorder.getTitleFont().deriveFont(Font.BOLD));
+ ret.setBorder(titledBorder);
return ret;
}
Modified: trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintData.java
===================================================================
--- trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintData.java 2011-03-13 17:40:55 UTC (rev 6186)
+++ trunk/sql12/plugins/graph/src/main/java/net/sourceforge/squirrel_sql/plugins/graph/ConstraintData.java 2011-03-13 19:44:38 UTC (rev 6187)
@@ -16,6 +16,7 @@
private ColumnInfo[] _columnInfos = new ColumnInfo[0];
private boolean _showThisConstraintName;
+ private ConstraintQueryData _constraintQueryData = new ConstraintQueryData();
public ConstraintData(String pkTableName, String fkTableName, String constraintName)
@@ -29,8 +30,14 @@
_fkTableName = constraintDataXmlBean.getFkTableName();
_constraintName = constraintDataXmlBean.getConstraintName();
_nonDbConstraint = constraintDataXmlBean.isNonDbConstraint();
- _showThisConstraintName = constraintDataXmlBean.isShowThisConstraintName();
+ _showThisConstraintName = constraintDataXmlBean.isShowThisConstraintName();
+ if(null != constraintDataXmlBean.getConstraintQueryDataXmlBean())
+ {
+ _constraintQueryData = new ConstraintQueryData(constraintDataXmlBean.getConstraintQueryDataXmlBean());
+ }
+
+
_columnInfos = new ColumnInfo[constraintDataXmlBean.getColumnInfoXmlBeans().length];
for ...
[truncated message content] |