You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by an...@apache.org on 2009/06/17 16:52:50 UTC

svn commit: r785636 - /cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java

Author: andrey
Date: Wed Jun 17 14:52:50 2009
New Revision: 785636

URL: http://svn.apache.org/viewvc?rev=785636&view=rev
Log:
CAY-1235 Implement qualifiers for DBEntities. Modeler changes

Modified:
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java?rev=785636&r1=785635&r2=785636&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java Wed Jun 17 14:52:50 2009
@@ -32,6 +32,7 @@
 import javax.swing.JTextField;
 import javax.swing.JToolBar;
 
+import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.event.EntityEvent;
@@ -44,6 +45,7 @@
 import org.apache.cayenne.modeler.editor.ExistingSelectionProcessor;
 import org.apache.cayenne.modeler.event.DbEntityDisplayListener;
 import org.apache.cayenne.modeler.event.EntityDisplayEvent;
+import org.apache.cayenne.modeler.util.ExpressionConvertor;
 import org.apache.cayenne.modeler.util.TextAdapter;
 import org.apache.cayenne.util.Util;
 import org.apache.cayenne.validation.ValidationException;
@@ -208,7 +210,7 @@
 
         name.setText(entity.getName());
         schema.setText(entity.getSchema());
-        qualifier.setText(entity.getQualifier());
+        qualifier.setText(new ExpressionConvertor().valueAsString(entity.getQualifier()));
 
         String type = PK_DEFAULT_GENERATOR;
 
@@ -286,8 +288,20 @@
         DbEntity ent = mediator.getCurrentDbEntity();
 
         if (ent != null && !Util.nullSafeEquals(ent.getQualifier(), qualifier)) {
-            ent.setQualifier(qualifier);
-            mediator.fireDbEntityEvent(new EntityEvent(this, ent));
+            ExpressionConvertor convertor = new ExpressionConvertor();
+            try {
+                String oldQualifier = convertor.valueAsString(ent.getQualifier());
+                if (!Util.nullSafeEquals(oldQualifier, qualifier)) {
+                    Expression exp = (Expression) convertor.stringAsValue(qualifier);
+                    ent.setQualifier(exp);
+                    mediator.fireDbEntityEvent(new EntityEvent(this, ent));
+                }
+            }
+            catch (IllegalArgumentException ex) {
+                // unparsable qualifier
+                throw new ValidationException(ex.getMessage());
+            }
+            
         }
     }
 }