You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/01/04 13:03:08 UTC

svn commit: r895608 - in /cayenne/main/trunk: docs/doc/src/main/resources/ framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/ framework/cayenne-modeler/src...

Author: aadamchik
Date: Mon Jan  4 12:03:08 2010
New Revision: 895608

URL: http://svn.apache.org/viewvc?rev=895608&view=rev
Log:
CAY-1350 Implement memorized sorting of modeler columns

    patch by Ksenia Khailenko. fixing remaining issues

Modified:
    cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/TableColumnPreferences.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TableHeaderSortingListener.java

Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=895608&r1=895607&r2=895608&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Mon Jan  4 12:03:08 2010
@@ -26,6 +26,7 @@
 CAY-1338 Move CayenneUserDir to the Modeler
 CAY-1340 Implement ConfigurationNode / ConfigurationNodeVisitor for the Cayenne project tree, including DataMap objects.
 CAY-1342 Remove wocompat package from Cayenne core
+CAY-1350 Implement memorized sorting of modeler columns
 CAY-1352 in "code generation" dialog add generation embeddables
 
 Bug Fixes Since 3.0:

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java?rev=895608&r1=895607&r2=895608&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java Mon Jan  4 12:03:08 2010
@@ -27,13 +27,13 @@
 import org.apache.cayenne.modeler.event.CallbackMethodEvent;
 import org.apache.cayenne.modeler.util.CayenneTableModel;
 
-
 /**
  * Table model for displaying methods list for a particular CallbackDescriptor
- *
+ * 
  * @version 1.0 Oct 23, 2007
  */
 public class CallbackDescriptorTableModel extends CayenneTableModel {
+
     private static final int COLUMN_COUNT = 2;
     public static final int METHOD_NUMBER = 0;
     public static final int METHOD_NAME = 1;
@@ -42,29 +42,27 @@
 
     /**
      * constructor
-     *
+     * 
      * @param mediator mediator instance
      * @param eventSource event source
      * @param objectList default objects list
      * @param callbackDescriptor callback descriptor instance
      */
-    public CallbackDescriptorTableModel(
-            ProjectController mediator,
-            Object eventSource,
-            List objectList,
-            CallbackDescriptor callbackDescriptor) {
+    public CallbackDescriptorTableModel(ProjectController mediator, Object eventSource,
+            List objectList, CallbackDescriptor callbackDescriptor) {
         super(mediator, eventSource, objectList);
         this.callbackDescriptor = callbackDescriptor;
     }
 
     /**
      * does nothing
+     * 
      * @param newVal newVal
      * @param row row
      * @param col col
      */
     public void setUpdatedValueAt(Object newVal, int row, int col) {
-        //do nothing
+        // do nothing
     }
 
     /**
@@ -83,10 +81,9 @@
     }
 
     /**
-     * Returns the number of columns in the model. A
-     * <code>JTable</code> uses this method to determine how many columns it
-     * should create and display by default.
-     *
+     * Returns the number of columns in the model. A <code>JTable</code> uses this method
+     * to determine how many columns it should create and display by default.
+     * 
      * @return the number of columns in the model
      * @see #getRowCount
      */
@@ -94,19 +91,18 @@
         return COLUMN_COUNT;
     }
 
-
     /**
      * Returns the value for the cell at <code>columnIndex</code> and
      * <code>rowIndex</code>.
-     *
-     * @param	rowIndex	the row whose value is to be queried
-     * @param	columnIndex 	the column whose value is to be queried
-     * @return	the value Object at the specified cell
+     * 
+     * @param rowIndex the row whose value is to be queried
+     * @param columnIndex the column whose value is to be queried
+     * @return the value Object at the specified cell
      */
     public Object getValueAt(int rowIndex, int columnIndex) {
         switch (columnIndex) {
             case METHOD_NUMBER:
-                return rowIndex+1;
+                return rowIndex + 1;
             case METHOD_NAME:
                 return getCallbackMethod(rowIndex);
         }
@@ -138,12 +134,18 @@
 
     /**
      * all cells are editable
-     *
+     * 
      * @param rowIndex row index
      * @param columnIndex column index
      * @return true
      */
     public boolean isCellEditable(int rowIndex, int columnIndex) {
+        switch (columnIndex) {
+            case METHOD_NAME:
+                return true;
+            case METHOD_NUMBER:
+                return false;
+        }
         return true;
     }
 
@@ -155,33 +157,32 @@
      * @param col column
      */
     public void setValueAt(Object newVal, int row, int col) {
-        if (col != METHOD_NUMBER) {
-            String method = (String) newVal;
-            if (method != null) {
-                method = method.trim();
-            }
-            String prevMethod = (String) getObjectList().get(row);
+        String method = (String) newVal;
+        if (method != null) {
+            method = method.trim();
+        }
+        String prevMethod = (String) getObjectList().get(row);
 
-            if (method != null && method.length() > 0) {
-                // check that method changed and name is not duplicate
-                if (!method.equals(prevMethod)
-                        && !getCallbackDescriptor().getCallbackMethods().contains(method)) {
-                    // update model
-                    getObjectList().set(row, method);
-
-                    // update entity
-                    getCallbackDescriptor().setCallbackMethodAt(row, method);
-
-                    fireTableRowsUpdated(row, row);
-
-                    mediator.fireCallbackMethodEvent(new CallbackMethodEvent(
-                            eventSource,
-                            prevMethod,
-                            method,
-                            MapEvent.CHANGE));
-                }
+        if (method != null && method.length() > 0) {
+            // check that method changed and name is not duplicate
+            if (!method.equals(prevMethod)
+                    && !getCallbackDescriptor().getCallbackMethods().contains(method)) {
+                // update model
+                getObjectList().set(row, method);
+
+                // update entity
+                getCallbackDescriptor().setCallbackMethodAt(row, method);
+
+                fireTableRowsUpdated(row, row);
+
+                mediator.fireCallbackMethodEvent(new CallbackMethodEvent(
+                        eventSource,
+                        prevMethod,
+                        method,
+                        MapEvent.CHANGE));
             }
         }
+
     }
 
     /**
@@ -200,4 +201,3 @@
     public void sortByColumn(int sortCol, boolean isAscent) {
     }
 }
-

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/TableColumnPreferences.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/TableColumnPreferences.java?rev=895608&r1=895607&r2=895608&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/TableColumnPreferences.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/TableColumnPreferences.java Mon Jan  4 12:03:08 2010
@@ -42,7 +42,9 @@
     private static final String ORDER_KEY = "order_";
     private JTable table;
     private int columnCount;
-    
+    private int defaultSortColumn;
+    private boolean defaultSortOrder;
+
     private TableColumnModelListener listener = new TableColumnModelListener() {
 
         public void columnAdded(TableColumnModelEvent e) {
@@ -62,6 +64,7 @@
                 column = table.getColumnModel().getColumn(i);
                 setOrderIndex(column.getModelIndex(), i);
             }
+            updateSort(defaultSortColumn, defaultSortOrder);
         }
 
         public void columnRemoved(TableColumnModelEvent e) {
@@ -103,6 +106,8 @@
             boolean defaultSortOrder) {
         bind(table, minSizes, maxSizes, defaultSizes);
         ((CayenneTable) table).setSortPreferenceSaver(this);
+        this.defaultSortColumn = defaultSortColumn;
+        this.defaultSortOrder = defaultSortOrder;
         updateSort(defaultSortColumn, defaultSortOrder);
     }
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TableHeaderSortingListener.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TableHeaderSortingListener.java?rev=895608&r1=895607&r2=895608&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TableHeaderSortingListener.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TableHeaderSortingListener.java Mon Jan  4 12:03:08 2010
@@ -40,8 +40,8 @@
 
     }
 
-    public void mousePressed(MouseEvent e) {
-
+    @Override
+    public void mouseClicked(MouseEvent e) {
         int col = header.columnAtPoint(e.getPoint());
         int sortCol = table.convertColumnIndexToModel(col);
         if (((CayenneTableModel) table.getModel()).isColumnSortable(sortCol)) {
@@ -56,6 +56,7 @@
             tableColumnPreferences.setSortOrder(isAscent);
             tableColumnPreferences.setSortColumn(sortCol);
         }
+
     }
 
     public void mouseReleased(MouseEvent e) {