Bug 237579 - "Configure Parameters" doesn't support sort
Summary: "Configure Parameters" doesn't support sort
Status: RESOLVED FIXED
Alias: None
Product: Data Tools
Classification: Tools
Component: SQLDevTools (show other bugs)
Version: 1.6   Edit
Hardware: PC Windows XP
: P3 minor (vote)
Target Milestone: 1.6.2   Edit
Assignee: Hui Cao CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-18 01:54 EDT by Joe Wu CLA
Modified: 2008-12-12 00:18 EST (History)
3 users (show)

See Also:


Attachments
patch (3.15 KB, text/plain)
2008-07-22 03:53 EDT, Joe Wu CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joe Wu CLA 2008-06-18 01:54:22 EDT
When starting a SP for debugging workspace opens up a dialog where you can
enter values for the SP's parameters. It would be good if this list 
would be sortable. 

But in org.eclipse.datatools.sqltools.editor.core\src\org\eclipse\datatools\sqltools\core\dbitem\ParametersData.java. The return value of getRows() of ParametersData is always a new instance but not the _rows defined by its super class. The flaw causes the value used in AccessibleTableViewer for sorting will be wrong.
Comment 1 Hung Hsi CLA 2008-07-21 13:35:39 EDT
Please look into this and see if we can enhance it for 1.6.1. Thanks.
Comment 2 lihuang CLA 2008-07-22 01:24:33 EDT
Jue, please attach the patch to this bug now that it was fixed in our interanl dtp.
Comment 3 Joe Wu CLA 2008-07-22 03:53:44 EDT
Created attachment 108033 [details]
patch
Comment 4 Joe Wu CLA 2008-07-22 04:12:54 EDT
Comment on attachment 108033 [details]
patch

### Eclipse Workspace Patch 1.0
#P org.eclipse.datatools.sqltools.editor.core
Index: src/org/eclipse/datatools/sqltools/core/dbitem/ParametersData.java
===================================================================
RCS file: /cvsroot/datatools/org.eclipse.datatools.sqltools/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/dbitem/ParametersData.java,v
retrieving revision 1.1
diff -u -r1.1 ParametersData.java
--- src/org/eclipse/datatools/sqltools/core/dbitem/ParametersData.java	14 Sep 2006 06:24:29 -0000	1.1
+++ src/org/eclipse/datatools/sqltools/core/dbitem/ParametersData.java	22 Jul 2008 08:11:24 -0000
@@ -36,6 +36,36 @@
     {
         super();
         _wrappers = wrappers;
+        //for CR499556-1
+        buildRows();
+    }
+    
+    private void buildRows() {
+    	for (int i = 0; i < _wrappers.length; i++)
+        {
+            Object[] rowData = new Object[getColumnCount()];
+            ParameterDescriptor pd = _wrappers[i].getParameterDescriptor();
+            rowData[ParametersData.NAME_COLUMN] = pd != null ? pd.getName() : "";
+            String typeName = "";
+            if (pd != null)
+            {
+                if (pd.getSqlTypeNameFromParser() != null)
+                {
+                    typeName = pd.getSqlTypeNameFromParser();
+                }
+                else
+                {
+                    typeName = pd.getTypeName();
+                }
+            }
+            rowData[ParametersData.TYPE_COLUMN] = typeName;
+            rowData[ParametersData.NULL_COLUMN] = _wrappers[i].isNull() ? "true" : "false";
+            rowData[ParametersData.VALUE_COLUMN] = _wrappers[i].getValue();
+            rowData[ParametersData.INOUT_COLUMN] = pd != null ? pd.getParamTypeAsString() : "";
+            _wrappers[i].setData(rowData);
+            _wrappers[i].setTableData(this);
+            _rows.add(_wrappers[i]);
+        }
     }
 
     public boolean isReadonly()
@@ -69,33 +99,7 @@
 
     public Vector getRows()
     {
-        Vector rows = new Vector();
-        for (int i = 0; i < _wrappers.length; i++)
-        {
-            Object[] rowData = new Object[getColumnCount()];
-            ParameterDescriptor pd = _wrappers[i].getParameterDescriptor();
-            rowData[ParametersData.NAME_COLUMN] = pd != null ? pd.getName() : "";
-            String typeName = "";
-            if (pd != null)
-            {
-                if (pd.getSqlTypeNameFromParser() != null)
-                {
-                    typeName = pd.getSqlTypeNameFromParser();
-                }
-                else
-                {
-                    typeName = pd.getTypeName();
-                }
-            }
-            rowData[ParametersData.TYPE_COLUMN] = typeName;
-            rowData[ParametersData.NULL_COLUMN] = _wrappers[i].isNull() ? "true" : "false";
-            rowData[ParametersData.VALUE_COLUMN] = _wrappers[i].getValue();
-            rowData[ParametersData.INOUT_COLUMN] = pd != null ? pd.getParamTypeAsString() : "";
-            _wrappers[i].setData(rowData);
-            _wrappers[i].setTableData(this);
-            rows.add(_wrappers[i]);
-        }
-        return rows;
+    	return _rows;
     }
 
     public boolean save() throws Exception
Comment 5 Joe Wu CLA 2008-07-22 06:14:14 EDT
Comment on attachment 108033 [details]
patch

### Eclipse Workspace Patch 1.0
#P org.eclipse.datatools.sqltools.editor.core
Index: src/org/eclipse/datatools/sqltools/core/dbitem/ParametersData.java
===================================================================
RCS file: /cvsroot/datatools/org.eclipse.datatools.sqltools/plugins/org.eclipse.datatools.sqltools.editor.core/src/org/eclipse/datatools/sqltools/core/dbitem/ParametersData.java,v
retrieving revision 1.1
diff -u -r1.1 ParametersData.java
--- src/org/eclipse/datatools/sqltools/core/dbitem/ParametersData.java	14 Sep 2006 06:24:29 -0000	1.1
+++ src/org/eclipse/datatools/sqltools/core/dbitem/ParametersData.java	22 Jul 2008 08:11:24 -0000
@@ -36,6 +36,36 @@
     {
         super();
         _wrappers = wrappers;
+        //for CR499556-1
+        buildRows();
+    }
+    
+    private void buildRows() {
+    	for (int i = 0; i < _wrappers.length; i++)
+        {
+            Object[] rowData = new Object[getColumnCount()];
+            ParameterDescriptor pd = _wrappers[i].getParameterDescriptor();
+            rowData[ParametersData.NAME_COLUMN] = pd != null ? pd.getName() : "";
+            String typeName = "";
+            if (pd != null)
+            {
+                if (pd.getSqlTypeNameFromParser() != null)
+                {
+                    typeName = pd.getSqlTypeNameFromParser();
+                }
+                else
+                {
+                    typeName = pd.getTypeName();
+                }
+            }
+            rowData[ParametersData.TYPE_COLUMN] = typeName;
+            rowData[ParametersData.NULL_COLUMN] = _wrappers[i].isNull() ? "true" : "false";
+            rowData[ParametersData.VALUE_COLUMN] = _wrappers[i].getValue();
+            rowData[ParametersData.INOUT_COLUMN] = pd != null ? pd.getParamTypeAsString() : "";
+            _wrappers[i].setData(rowData);
+            _wrappers[i].setTableData(this);
+            _rows.add(_wrappers[i]);
+        }
     }
 
     public boolean isReadonly()
@@ -69,33 +99,7 @@
 
     public Vector getRows()
     {
-        Vector rows = new Vector();
-        for (int i = 0; i < _wrappers.length; i++)
-        {
-            Object[] rowData = new Object[getColumnCount()];
-            ParameterDescriptor pd = _wrappers[i].getParameterDescriptor();
-            rowData[ParametersData.NAME_COLUMN] = pd != null ? pd.getName() : "";
-            String typeName = "";
-            if (pd != null)
-            {
-                if (pd.getSqlTypeNameFromParser() != null)
-                {
-                    typeName = pd.getSqlTypeNameFromParser();
-                }
-                else
-                {
-                    typeName = pd.getTypeName();
-                }
-            }
-            rowData[ParametersData.TYPE_COLUMN] = typeName;
-            rowData[ParametersData.NULL_COLUMN] = _wrappers[i].isNull() ? "true" : "false";
-            rowData[ParametersData.VALUE_COLUMN] = _wrappers[i].getValue();
-            rowData[ParametersData.INOUT_COLUMN] = pd != null ? pd.getParamTypeAsString() : "";
-            _wrappers[i].setData(rowData);
-            _wrappers[i].setTableData(this);
-            rows.add(_wrappers[i]);
-        }
-        return rows;
+    	return _rows;
     }
 
     public boolean save() throws Exception
Comment 6 Hung Hsi CLA 2008-08-11 12:21:56 EDT
Moved to 1.6.2
Comment 7 Hui Cao CLA 2008-12-12 00:18:33 EST
Patch already applied. Closing.