Author: [EMAIL PROTECTED]
Date: Mon Sep 29 13:14:25 2008
New Revision: 2726

Modified:
   trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryEntryPanel.java

Log:
Added a max row limit to the SQL statement.

Modified: trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryEntryPanel.java
==============================================================================
--- trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryEntryPanel.java (original) +++ trunk/src/ca/sqlpower/architect/swingui/query/SQLQueryEntryPanel.java Mon Sep 29 13:14:25 2008
@@ -44,9 +44,11 @@
 import javax.swing.JComponent;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
+import javax.swing.JSpinner;
 import javax.swing.JTextArea;
 import javax.swing.JToolBar;
 import javax.swing.KeyStroke;
+import javax.swing.SpinnerNumberModel;
 import javax.swing.event.AncestorEvent;
 import javax.swing.event.AncestorListener;

@@ -178,9 +180,14 @@
             try {
                 con = ds.createConnection();
                 stmt = con.createStatement();
+ int rowLimit = ((Integer) rowLimitSpinner.getValue()).intValue();
+                logger.debug("Row limit is " + rowLimit);
+
+                stmt.setMaxRows(rowLimit);
                 rs = stmt.executeQuery(queryArea.getText());
                 CachedRowSet rowSet = new CachedRowSet();
                 rowSet.populate(rs);
+                logger.debug("Result set row count is " + rowSet.size());

                 for (ExecuteActionListener listener : executeListeners) {
                     listener.sqlQueryExecuted(rowSet);
@@ -227,6 +234,12 @@

     private DropTarget dt;

+
+    /**
+     * A JTextField for the user to enter the row limit of a query.
+     */
+    private final JSpinner rowLimitSpinner;
+
     /**
* Listeners that will have it's sqlQueryExecuted method called when a successful
      * query is run.
@@ -269,6 +282,7 @@

     public SQLQueryEntryPanel(ArchitectSwingSession s) {
         super();
+ rowLimitSpinner = new JSpinner(new SpinnerNumberModel(1000, 0, Integer.MAX_VALUE, 1));
         this.session = s;
         executeListeners = new ArrayList<ExecuteActionListener>();
         queryArea = new JTextArea();
@@ -308,18 +322,20 @@
                 queryArea.setText("");
             }});
         FormLayout textAreaLayout = new FormLayout(
-                "max(250dlu;pref):grow, 10dlu, pref"
+                "pref:grow, 10dlu, pref, 10dlu, pref, 10dlu, pref"
                 , "pref, pref, fill:max(100dlu;pref):grow");
DefaultFormBuilder textAreaBuilder = new DefaultFormBuilder(textAreaLayout, this);
         textAreaBuilder.setDefaultDialogBorder();
-        textAreaBuilder.append(toolbar);
+        textAreaBuilder.append(toolbar, 7);
         textAreaBuilder.nextLine();
         textAreaBuilder.append(databases);
JButton dbcsManagerButton = new JButton(new DatabaseConnectionManagerAction(session));
         dbcsManagerButton.setText("Manage Connections...");
         textAreaBuilder.append(dbcsManagerButton);
+        textAreaBuilder.append("Row Limit");
+        textAreaBuilder.append(rowLimitSpinner);
         textAreaBuilder.nextLine();
-        textAreaBuilder.append(new JScrollPane(queryArea), 3);
+        textAreaBuilder.append(new JScrollPane(queryArea), 7);


     }

Reply via email to