Author: [EMAIL PROTECTED]
Date: Fri Oct 10 07:54:10 2008
New Revision: 2767
Added:
trunk/src/ca/sqlpower/architect/swingui/query/QueryDropListener.java
Modified:
trunk/src/ca/sqlpower/architect/swingui/query/QueryDialog.java
trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryUIComponents.java
Log:
Removed any remaining architect dependencies from the SQLQueryUIComponent
so that we can move it to the sqlpower library. The static method
in "SQLQueryUIComponent" no longer takes in a dbTree and thus there will be
no drag and drop action from the table to the textArea. This will be
implemented differently Later. QueryDropListener has also been moved to its
own class in the architect since it works with the dbTree.
The queryDialog was also updated to accept those changes.
Modified: trunk/src/ca/sqlpower/architect/swingui/query/QueryDialog.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/query/QueryDialog.java
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/query/QueryDialog.java Fri Oct
10 07:54:10 2008
@@ -50,15 +50,19 @@
*/
public QueryDialog(ArchitectSwingSession session) {
- try {
- dbTree = new DBTree(session);
- } catch (ArchitectException e) {
- throw new RuntimeException(e);
- }
- TreeModel model = session.getSourceDatabases().getModel();
- dbTree.setModel(model);
+ /*
+ * TODO the createQueryPanel does not accept a DBTree anymore, this will
be fixed later.
+ */
+ try {
+ dbTree = new DBTree(session);
+ } catch (ArchitectException e) {
+ throw new RuntimeException(e);
+ }
+
+ TreeModel model = session.getSourceDatabases().getModel();
+ dbTree.setModel(model);
- queryPanel = SQLQueryUIComponents.createQueryPanel(session,
session.getContext().getPlDotIni(), dbTree);
+ queryPanel = SQLQueryUIComponents.createQueryPanel(session,
session.getContext().getPlDotIni());
buildUI(session);
}
@@ -73,5 +77,5 @@
setLayout(new BorderLayout());
add(treePane, BorderLayout.CENTER);
}
-
+
}
Added: trunk/src/ca/sqlpower/architect/swingui/query/QueryDropListener.java
==============================================================================
--- (empty file)
+++ trunk/src/ca/sqlpower/architect/swingui/query/QueryDropListener.java
Fri Oct 10 07:54:10 2008
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2008, SQL Power Group Inc.
+ *
+ * This file is part of Power*Architect.
+ *
+ * Power*Architect is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Power*Architect is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package ca.sqlpower.architect.swingui.query;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.awt.dnd.DropTargetDragEvent;
+import java.awt.dnd.DropTargetDropEvent;
+import java.awt.dnd.DropTargetEvent;
+import java.awt.dnd.DropTargetListener;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import javax.swing.JTextArea;
+
+import org.apache.log4j.Logger;
+
+import ca.sqlpower.architect.ArchitectException;
+import ca.sqlpower.architect.SQLObject;
+import ca.sqlpower.architect.SQLTable;
+import ca.sqlpower.architect.swingui.DBTree;
+import ca.sqlpower.architect.swingui.DnDTreePathTransferable;
+
+/**
+ * This QueryDropListener Listens to the SQLObjects being dragged onto the
+ * QueryTextArea from a DBTree. When an object is dragged onto the text
area
+ * the object's name will be entered at the caret position.
+ */
+public class QueryDropListener implements DropTargetListener {
+
+ private static Logger logger =
Logger.getLogger(SQLQueryUIComponents.class);
+ private DBTree dbTree;
+ private final JTextArea queryArea;
+
+ public QueryDropListener(DBTree dbtree, JTextArea textArea) {
+ this.queryArea = textArea;
+ this.dbTree = dbtree;
+ }
+
+ public void dragEnter(DropTargetDragEvent dtde) {
+ logger.debug("we are in dragEnter");
+
+ }
+
+ public void dragExit(DropTargetEvent dte) {
+ logger.debug("we are in dragExit");
+
+ }
+
+ public void dragOver(DropTargetDragEvent dtde) {
+ logger.debug("we are in dragOver");
+
+ }
+
+ public void drop(DropTargetDropEvent dtde) {
+ DataFlavor[] flavours =
dtde.getTransferable().getTransferDataFlavors();
+ DataFlavor bestFlavour = null;
+ for (int i = 0; i < flavours.length; i++) {
+ if (flavours[i] != null) {
+ bestFlavour = flavours[i];
+ break;
+ }
+ }
+ try {
+ ArrayList paths = (ArrayList)
dtde.getTransferable().getTransferData(bestFlavour);
+ Iterator it = paths.iterator();
+ while(it.hasNext()) {
+ Object oo =
DnDTreePathTransferable.getNodeForDnDPath((SQLObject)
dbTree.getModel().getRoot(), (int[])it.next());
+ if (oo instanceof SQLTable) {
+ SQLTable table = ((SQLTable) oo);
+ StringBuffer buffer = new StringBuffer();
+ if (!table.getCatalogName().equals("")) {
+ buffer.append(table.getCatalogName());
+ buffer.append(".");
+ }
+ if(!table.getSchemaName().equals("")) {
+ buffer.append(table.getSchemaName());
+ buffer.append(".");
+ }
+ buffer.append(table.getPhysicalName());
+ queryArea.insert(buffer.toString(),
queryArea.getCaretPosition());
+ } else if (oo instanceof SQLObject) {
+ queryArea.insert(((SQLObject) oo).getPhysicalName(),
queryArea.getCaretPosition());
+ } else {
+ logger.error("Unknown object dropped in PlayPen: "+oo);
+ }
+ }
+ dtde.dropComplete(true);
+ } catch (UnsupportedFlavorException e) {
+ logger.error(e);
+ dtde.rejectDrop();
+ } catch (IOException e) {
+ logger.error(e);
+ dtde.rejectDrop();
+ } catch (ArchitectException e) {
+ logger.error(e);
+ dtde.rejectDrop();
+ }
+ }
+
+ public void dropActionChanged(DropTargetDragEvent dtde) {
+ logger.debug("we are in dropActionChange");
+
+ }
+
+}
Modified:
trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryUIComponents.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryUIComponents.java
(original)
+++ trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryUIComponents.java
Fri Oct 10 07:54:10 2008
@@ -21,19 +21,11 @@
import java.awt.Toolkit;
import java.awt.Window;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.UnsupportedFlavorException;
-import java.awt.dnd.DropTarget;
-import java.awt.dnd.DropTargetDragEvent;
-import java.awt.dnd.DropTargetDropEvent;
-import java.awt.dnd.DropTargetEvent;
-import java.awt.dnd.DropTargetListener;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
-import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -41,7 +33,6 @@
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -72,11 +63,6 @@
import org.apache.log4j.Logger;
-import ca.sqlpower.architect.ArchitectException;
-import ca.sqlpower.architect.SQLObject;
-import ca.sqlpower.architect.SQLTable;
-import ca.sqlpower.architect.swingui.DBTree;
-import ca.sqlpower.architect.swingui.DnDTreePathTransferable;
import ca.sqlpower.sql.CachedRowSet;
import ca.sqlpower.sql.DataSourceCollection;
import ca.sqlpower.sql.DatabaseListChangeEvent;
@@ -118,86 +104,6 @@
*/
private static final Object REDO_SQL_EDIT = "Redo SQL Edit";
- /**
- * This QueryDropListener Listens to the SQLObjects being dragged onto
the
- * QueryTextArea from a DBTree. When an object is dragged onto the
text area
- * the object's name will be entered at the caret position.
- */
- private class QueryDropListener implements DropTargetListener {
-
- private DBTree dbTree;
-
- public QueryDropListener(DBTree dbtree) {
- this.dbTree = dbtree;
- }
-
- public void dragEnter(DropTargetDragEvent dtde) {
- logger.debug("we are in dragEnter");
-
- }
-
- public void dragExit(DropTargetEvent dte) {
- logger.debug("we are in dragExit");
-
- }
-
- public void dragOver(DropTargetDragEvent dtde) {
- logger.debug("we are in dragOver");
-
- }
-
- public void drop(DropTargetDropEvent dtde) {
- DataFlavor[] flavours =
dtde.getTransferable().getTransferDataFlavors();
- DataFlavor bestFlavour = null;
- for (int i = 0; i < flavours.length; i++) {
- if (flavours[i] != null) {
- bestFlavour = flavours[i];
- break;
- }
- }
- try {
- ArrayList paths = (ArrayList)
dtde.getTransferable().getTransferData(bestFlavour);
- Iterator it = paths.iterator();
- while(it.hasNext()) {
- Object oo =
DnDTreePathTransferable.getNodeForDnDPath((SQLObject)
dbTree.getModel().getRoot(), (int[])it.next());
- if (oo instanceof SQLTable) {
- SQLTable table = ((SQLTable) oo);
- StringBuffer buffer = new StringBuffer();
- if (!table.getCatalogName().equals("")) {
- buffer.append(table.getCatalogName());
- buffer.append(".");
- }
- if(!table.getSchemaName().equals("")) {
- buffer.append(table.getSchemaName());
- buffer.append(".");
- }
- buffer.append(table.getPhysicalName());
- queryArea.insert(buffer.toString(),
queryArea.getCaretPosition());
- } else if (oo instanceof SQLObject) {
- queryArea.insert(((SQLObject)
oo).getPhysicalName(), queryArea.getCaretPosition());
- } else {
- logger.error("Unknown object dropped in
PlayPen: "+oo);
- }
- }
- dtde.dropComplete(true);
- } catch (UnsupportedFlavorException e) {
- logger.error(e);
- dtde.rejectDrop();
- } catch (IOException e) {
- logger.error(e);
- dtde.rejectDrop();
- } catch (ArchitectException e) {
- logger.error(e);
- dtde.rejectDrop();
- }
- }
-
- public void dropActionChanged(DropTargetDragEvent dtde) {
- logger.debug("we are in dropActionChange");
-
- }
-
- }
/**
* A listener for item selection on a combo box containing [EMAIL PROTECTED]
SPDataSource}s.
@@ -368,11 +274,8 @@
*/
private final JComboBox databaseComboBox;
- private DropTarget dt;
-
-
/**
- * A JTextField for the user to enter the row limit of a query.
+ * A JSpinner for the user to enter the row limit of a query.
*/
private final JSpinner rowLimitSpinner;
@@ -519,12 +422,7 @@
* Creates a DataBaseConnectionManager so we can edit delete and add
connections on the button
*/
DatabaseConnectionManager dbConnectionManager;
-
- public SQLQueryUIComponents(SwingWorkerRegistry s,
DataSourceCollection ds, DBTree dbTree, JPanel panel) {
- this(s, ds, panel);
- dt = new DropTarget(queryArea, new QueryDropListener(dbTree));
- }
-
+
public SQLQueryUIComponents(SwingWorkerRegistry s,
DataSourceCollection ds, JPanel panel) {
super();
queryPanel = panel;
@@ -681,10 +579,10 @@
/**
* Builds the UI of the [EMAIL PROTECTED] SQLQueryUIComponents}.
*/
- public static JComponent createQueryPanel(SwingWorkerRegistry
swRegistry,DataSourceCollection ds, DBTree dbTree) {
+ public static JComponent createQueryPanel(SwingWorkerRegistry
swRegistry,DataSourceCollection ds) {
JPanel defaultQueryPanel = new JPanel();
- SQLQueryUIComponents queryParts = new
SQLQueryUIComponents(swRegistry, ds, dbTree, defaultQueryPanel);
+ SQLQueryUIComponents queryParts = new
SQLQueryUIComponents(swRegistry, ds, defaultQueryPanel);
JToolBar toolbar = new JToolBar();
toolbar.add(queryParts.getExecuteButton());
toolbar.add(queryParts.getStopButton());