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) {