r1003 - in lutinjaxx/trunk/jaxx-core: . src/main/java/jaxx src/main/java/jaxx/compiler src/main/java/jaxx/tags src/main/java/jaxx/tags/swing
Author: tchemit Date: 2008-10-27 17:01:12 +0000 (Mon, 27 Oct 2008) New Revision: 1003 Modified: lutinjaxx/trunk/jaxx-core/changelog lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/ClassMap.java lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/CompiledObject.java lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/tags/DefaultComponentHandler.java lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/tags/swing/SwingInitializer.java Log: fix bug 1722 Modified: lutinjaxx/trunk/jaxx-core/changelog =================================================================== --- lutinjaxx/trunk/jaxx-core/changelog 2008-10-27 16:52:21 UTC (rev 1002) +++ lutinjaxx/trunk/jaxx-core/changelog 2008-10-27 17:01:12 UTC (rev 1003) @@ -1,4 +1,5 @@ ver-0-6 chemit 200811?? + * 20081027 [chemit] fix bug 1722 * 20081027 [chemit] add conversion support in validator * 20081025 [chemit] improve BeanValidator tag : - add a errorList attribute for set a ErrorListMouseListener on the errorList Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/ClassMap.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/ClassMap.java 2008-10-27 16:52:21 UTC (rev 1002) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/ClassMap.java 2008-10-27 17:01:12 UTC (rev 1003) @@ -6,12 +6,16 @@ import jaxx.reflect.ClassDescriptor; import jaxx.reflect.ClassDescriptorLoader; +import jaxx.tags.DefaultObjectHandler; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * A Map implementation which uses Classes as keys. <code>ClassMap</code> differs from typical maps * in that it takes subclasses into account; mapping a class to a value also maps all subclasses of @@ -21,6 +25,9 @@ * that, with its nearest ancestor for which there exists a mapping. */ public class ClassMap<T> extends HashMap<ClassDescriptor, T> { + /** log */ + protected static final Log log = LogFactory.getLog(ClassMap.class); + /** * Keeps track of automatically-added Classes so we can distinguish them from user-added * Classes. Unknown Classes are automatically added to the map during <code>get</code> @@ -45,8 +52,9 @@ ClassDescriptor c = (ClassDescriptor) key; while (c != null) { result = super.get(c); - if (result != null) + if (result != null) { break; + } c = c.getSuperclass(); } @@ -55,8 +63,8 @@ } if (c != key && result != null) { // no mapping for the class itself, but found one for a superclass - put(c, result); - autoKeys.add(c); + put((ClassDescriptor) key, result); + autoKeys.add((ClassDescriptor) key); } return result; } @@ -71,8 +79,9 @@ */ @Override public T put(ClassDescriptor key, T value) { - if (!(key instanceof ClassDescriptor)) - throw new IllegalArgumentException("expected ClassDescriptor, got " + key); + //if (!(key instanceof ClassDescriptor)) { + // throw new IllegalArgumentException("expected ClassDescriptor, got " + key); + //} if (autoKeys.size() > 0) { // remove all automatic keys which descend from the class being modified Iterator<ClassDescriptor> i = autoKeys.iterator(); while (i.hasNext()) { Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/CompiledObject.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/CompiledObject.java 2008-10-27 16:52:21 UTC (rev 1002) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/compiler/CompiledObject.java 2008-10-27 17:01:12 UTC (rev 1003) @@ -270,11 +270,12 @@ * @return the Java code for this object */ public String getJavaCode() { - //if (isOverride()) // handle cases where object is overridden to be a different class - // return "((" + JAXXCompiler.getCanonicalName(getObjectClass()) + ") " + javaCode + ")"; - //else - //TODO Check if this is safe - return javaCode; + String result = javaCode; + if (isOverride()) { + // handle cases where object is overridden to be a different class + result = "((" + JAXXCompiler.getCanonicalName(getObjectClass()) + ") " + javaCode + ")"; + } + return result; } Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/tags/DefaultComponentHandler.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/tags/DefaultComponentHandler.java 2008-10-27 16:52:21 UTC (rev 1002) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/tags/DefaultComponentHandler.java 2008-10-27 17:01:12 UTC (rev 1003) @@ -7,8 +7,8 @@ import jaxx.CompilerException; import jaxx.UnsupportedAttributeException; import jaxx.compiler.CompiledObject; -import jaxx.compiler.JAXXCompiler; import jaxx.compiler.I18nHelper; +import jaxx.compiler.JAXXCompiler; import jaxx.reflect.ClassDescriptor; import jaxx.reflect.ClassDescriptorLoader; import org.apache.commons.logging.Log; @@ -33,9 +33,6 @@ public DefaultComponentHandler(ClassDescriptor beanClass) { super(beanClass); ClassDescriptorLoader.checkSupportClass(getClass(), beanClass, Component.class); - /*if (!ClassDescriptorLoader.getClassDescriptor(Component.class).isAssignableFrom(beanClass)) { - throw new IllegalArgumentException(getClass().getName() + " does not support the class " + beanClass.getName()); - }*/ } @Override @@ -45,17 +42,7 @@ containerDelegate = (String) getJAXXBeanInfo().getJAXXBeanDescriptor().getValue("containerDelegate"); if (containerDelegate == null && ClassDescriptorLoader.getClassDescriptor(Container.class).isAssignableFrom(getBeanClass().getSuperclass())) { - DefaultObjectHandler tagHandler = TagManager.getTagHandler(getBeanClass().getSuperclass()); - if (tagHandler instanceof DefaultComponentHandler) { - containerDelegate = ((DefaultComponentHandler) tagHandler).getContainerDelegate(); - } else { - /*tagHandler = TagManager.getTagHandler(getBeanClass()); - if (tagHandler instanceof DefaultComponentHandler) { - containerDelegate = ((DefaultComponentHandler) tagHandler).getContainerDelegate(); - } else {*/ - log.warn("could not find componentHandler for " + getBeanClass().getSuperclass()); - //} - } + containerDelegate = ((DefaultComponentHandler) TagManager.getTagHandler(getBeanClass().getSuperclass())).getContainerDelegate(); } } } @@ -118,8 +105,9 @@ @Override public ClassDescriptor getPropertyType(CompiledObject object, String propertyName, JAXXCompiler compiler) throws CompilerException { if (propertyName.equals("x") || propertyName.equals("y") || propertyName.equals("width") || propertyName.equals("height") || - "font-size".equals(propertyName)) + "font-size".equals(propertyName)) { return ClassDescriptorLoader.getClassDescriptor(Integer.class); + } if (propertyName.equals("font-face") || propertyName.equals("font-style") || propertyName.equals("font-weight")) { return ClassDescriptorLoader.getClassDescriptor(String.class); } @@ -200,10 +188,10 @@ } } // ajout du support i18n - if (I18nHelper.isI18nableAttribute(name,compiler)) { + if (I18nHelper.isI18nableAttribute(name, compiler)) { valueCode = I18nHelper.addI18nInvocation(id, name, valueCode, compiler); } - + return super.getSetPropertyCode(id, name, valueCode, compiler); } Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/tags/swing/SwingInitializer.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/tags/swing/SwingInitializer.java 2008-10-27 16:52:21 UTC (rev 1002) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/tags/swing/SwingInitializer.java 2008-10-27 17:01:12 UTC (rev 1003) @@ -38,11 +38,6 @@ TagManager.registerTag("java.awt.*", "ButtonGroup", new DefaultObjectHandler(ClassDescriptorLoader.getClassDescriptor(JAXXButtonGroup.class))); - // Begin Try to fix bug when component handler is not found, but this is not this... - TagManager.registerBean(ClassDescriptorLoader.getClassDescriptor(JButton.class), DefaultComponentHandler.class); - TagManager.registerBean(ClassDescriptorLoader.getClassDescriptor(JTextField.class), JTextComponentHandler.class); - // End Try to fix bug when component handler is not found, but this is not this... - TagManager.registerBean(ClassDescriptorLoader.getClassDescriptor(Application.class), ApplicationHandler.class); TagManager.registerBean(ClassDescriptorLoader.getClassDescriptor(JCheckBox.class), JCheckBoxHandler.class); TagManager.registerBean(ClassDescriptorLoader.getClassDescriptor(JCheckBoxMenuItem.class), JCheckBoxHandler.class);
participants (1)
-
tchemit@users.labs.libre-entreprise.org