Jaxx-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
February 2011
- 2 participants
- 50 discussions
r2197 - trunk/jaxx-compiler/src/main/java/jaxx/compiler/script
by tchemit@users.nuiton.org 02 Feb '11
by tchemit@users.nuiton.org 02 Feb '11
02 Feb '11
Author: tchemit
Date: 2011-02-02 13:16:34 +0100 (Wed, 02 Feb 2011)
New Revision: 2197
Url: http://nuiton.org/repositories/revision/jaxx/2197
Log:
remove JAXXUtil.assignment code on scripts it does nothing good...+ clean code
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/script/ScriptManager.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/script/ScriptManager.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/script/ScriptManager.java 2011-02-02 12:15:37 UTC (rev 2196)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/script/ScriptManager.java 2011-02-02 12:16:34 UTC (rev 2197)
@@ -27,7 +27,6 @@
import jaxx.compiler.CompilerException;
import jaxx.compiler.JAXXCompiler;
-import jaxx.compiler.finalizers.AbstractFinalizer;
import jaxx.compiler.java.parser.JavaParser;
import jaxx.compiler.java.parser.JavaParserTreeConstants;
import jaxx.compiler.java.parser.SimpleNode;
@@ -37,7 +36,6 @@
import jaxx.runtime.JAXXUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.GeneratorUtil;
import java.io.StringReader;
import java.lang.reflect.Modifier;
@@ -136,28 +134,31 @@
id == JavaParserTreeConstants.JJTCLASSORINTERFACETYPE) {
scanCompoundSymbol(node.getText());
}
- if (!staticContext) {
- String lhs = null;
- if (id == JavaParserTreeConstants.JJTASSIGNMENTEXPRESSION ||
- id == JavaParserTreeConstants.JJTPOSTFIXEXPRESSION && node.jjtGetNumChildren() == 2) {
- lhs = ((SimpleNode) node.jjtGetChild(0)).getText().trim();
- } else if (id == JavaParserTreeConstants.JJTPREINCREMENTEXPRESSION ||
- id == JavaParserTreeConstants.JJTPREDECREMENTEXPRESSION) {
- lhs = ((SimpleNode) node.jjtGetChild(0)).getText().trim();
- }
- if (lhs != null) {
- FieldDescriptor[] fields = compiler.getScriptFields();
- for (FieldDescriptor field : fields) {
- if (field.getName().equals(lhs)) {
- //lhs.substring(lhs.lastIndexOf(".") + 1);
- compiler.addImport(JAXXUtil.class);
- node.firstToken.image = "JAXXUtil.assignment(" + node.firstToken.image;
- String outputClassName = compiler.getOutputClassName();
- node.lastToken.image = node.lastToken.image + ", \"" + lhs + "\", " + outputClassName + ".this)";
- }
- }
- }
- }
+ //tchemit 2011-02-02 I never understand this code
+ //Doing at each assignment a ifre with a called "dummy value" is a none sense
+ // Since JAXX can handle pretty well with javaBeans I remove this code
+// if (!staticContext) {
+// String lhs = null;
+// if (id == JavaParserTreeConstants.JJTASSIGNMENTEXPRESSION ||
+// id == JavaParserTreeConstants.JJTPOSTFIXEXPRESSION && node.jjtGetNumChildren() == 2) {
+// lhs = ((SimpleNode) node.jjtGetChild(0)).getText().trim();
+// } else if (id == JavaParserTreeConstants.JJTPREINCREMENTEXPRESSION ||
+// id == JavaParserTreeConstants.JJTPREDECREMENTEXPRESSION) {
+// lhs = ((SimpleNode) node.jjtGetChild(0)).getText().trim();
+// }
+// if (lhs != null) {
+// FieldDescriptor[] fields = compiler.getScriptFields();
+// for (FieldDescriptor field : fields) {
+// if (field.getName().equals(lhs)) {
+// //lhs.substring(lhs.lastIndexOf(".") + 1);
+// String prefix = compiler.getImportManager().getType(JAXXUtil.class);
+// node.firstToken.image = prefix + ".assignment(" + node.firstToken.image;
+// String outputClassName = compiler.getImportManager().getType(compiler.getOutputClassName());
+// node.lastToken.image = node.lastToken.image + ", \"" + lhs + "\", " + outputClassName + ".this)";
+// }
+// }
+// }
+// }
}
/**
@@ -347,13 +348,11 @@
"Could not find type of " + className +
" for expression " + text);
}
-// className = className.trim();
-// if (!AbstractFinalizer.TYPE_STRING.equals(className) &&
-// !GeneratorUtil.isPrimitiveType(className)) {
-// log.info("[" + compiler.getJavaFile().getName() + "] : Import " + type + " from a script...");
-// compiler.getJavaFile().addImport(type);
-// }
- compiler.addScriptField(new FieldDescriptor(name, Modifier.PUBLIC, type, compiler.getClassLoader()));
+ compiler.addScriptField(new FieldDescriptor(name,
+ Modifier.PUBLIC,
+ type,
+ compiler.getClassLoader())
+ );
// TODO: determine the actual modifiers
if (equals != -1 && !isFinal && !isStatic) {
@@ -368,7 +367,8 @@
@Override
public void run() {
- compiler.registerCompiledObject(new ScriptInitializer(finalInitializer, compiler));
+ compiler.registerCompiledObject(new ScriptInitializer(
+ finalInitializer, compiler));
}
});
} else {
1
0
02 Feb '11
Author: tchemit
Date: 2011-02-02 13:15:37 +0100 (Wed, 02 Feb 2011)
New Revision: 2196
Url: http://nuiton.org/repositories/revision/jaxx/2196
Log:
reformat
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java 2011-02-02 12:15:10 UTC (rev 2195)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java 2011-02-02 12:15:37 UTC (rev 2196)
@@ -82,7 +82,8 @@
public static final String Y_ATTRIBUTE = "y";
/** Logger */
- protected static final Log log = LogFactory.getLog(DefaultComponentHandler.class);
+ protected static final Log log =
+ LogFactory.getLog(DefaultComponentHandler.class);
public static final String BORDER_FACTORY_PREFIX = BorderFactory.class.getSimpleName() + ".";
1
0
02 Feb '11
Author: tchemit
Date: 2011-02-02 13:15:10 +0100 (Wed, 02 Feb 2011)
New Revision: 2195
Url: http://nuiton.org/repositories/revision/jaxx/2195
Log:
improve code + do not add a ; on event scripts if a it ends by a }
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java 2011-02-02 12:14:24 UTC (rev 2194)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java 2011-02-02 12:15:10 UTC (rev 2195)
@@ -642,8 +642,9 @@
}
continue;
}
+ CompiledObject rootObject = compiler.getRootObject();
if (name.equals(IMPLEMENTS_ATTRIBUTE)) {
- if (object != compiler.getRootObject()) {
+ if (object != rootObject) {
// can ony be apply to root object
compiler.reportError("'" + IMPLEMENTS_ATTRIBUTE + "' attribute can only be found on root tag but was found on tag " + tag);
return;
@@ -656,7 +657,7 @@
}
if (name.equals(ABSTRACT_ATTRIBUTE)) {
- if (object != compiler.getRootObject()) {
+ if (object != rootObject) {
// can ony be apply to root object
compiler.reportError("'" + ABSTRACT_ATTRIBUTE + "' attribute can only be found on root tag but was found on tag " + tag);
return;
@@ -667,7 +668,7 @@
if (name.equals(GENERICTYPE_ATTRIBUTE)) {
//TC-20090313 check after all atributes been processed
- if (object == compiler.getRootObject()) {
+ if (object == rootObject) {
compiler.setGenericType(value);
} else {
object.setGenericTypes(value.split(","));
@@ -676,7 +677,7 @@
}
if (name.equals(SUPER_GENERIC_TYPE_ATTRIBUTE)) {
- if (object != compiler.getRootObject()) {
+ if (object != rootObject) {
// can ony be apply to root object
compiler.reportError("'" + SUPER_GENERIC_TYPE_ATTRIBUTE + "' attribute can only be found on root tag but was found on tag " + tag);
return;
@@ -696,7 +697,7 @@
if (isEventHandlerName(name)) {
// event handler
- if (!value.endsWith(";")) {
+ if (!value.endsWith(";") && !value.endsWith("}")) {
value += ";";
}
addEventHandler(object,
1
0
r2194 - trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator
by tchemit@users.nuiton.org 02 Feb '11
by tchemit@users.nuiton.org 02 Feb '11
02 Feb '11
Author: tchemit
Date: 2011-02-02 13:14:24 +0100 (Wed, 02 Feb 2011)
New Revision: 2194
Url: http://nuiton.org/repositories/revision/jaxx/2194
Log:
clean code + use simple type from importManager
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java 2011-02-02 12:13:48 UTC (rev 2193)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java 2011-02-02 12:14:24 UTC (rev 2194)
@@ -752,8 +752,9 @@
}
String beanClassName = beanInfo.getJAXXBeanDescriptor().getClassDescriptor().getName();
+ String type = compiler.getImportManager().getType(beanClassName);
// contextName must be in constructor to able to init validator with his correct contextName
- String constructorParams = beanClassName + ".class, " +
+ String constructorParams = type + ".class, " +
TypeManager.getJavaCode(contextName);
// setConstructorParams(constructorParams);
String prefix = compiler.getImportManager().getType(SwingValidatorUtil.class);
@@ -762,7 +763,7 @@
);
// add generic type to validator
- setGenericTypes(new String[]{beanClassName});
+ setGenericTypes(beanClassName);
if (getAutoField()) {
registerAutoFieldBean(tag, compiler, beanInfo);
1
0
r2193 - trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators
by tchemit@users.nuiton.org 02 Feb '11
by tchemit@users.nuiton.org 02 Feb '11
02 Feb '11
Author: tchemit
Date: 2011-02-02 13:13:48 +0100 (Wed, 02 Feb 2011)
New Revision: 2193
Url: http://nuiton.org/repositories/revision/jaxx/2193
Log:
use computed simple type for override
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java 2011-02-02 12:12:34 UTC (rev 2192)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java 2011-02-02 12:13:48 UTC (rev 2193)
@@ -95,7 +95,8 @@
String methodName = object.getGetterName();
- String body = "return (" + fqn + ") super." + methodName + "();";
+ String type = object.getSimpleType();
+ String body = "return (" + type + ") super." + methodName + "();";
if (log.isDebugEnabled()) {
log.debug("Add specialized getter " + methodName + " : " + body);
1
0
r2192 - trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators
by tchemit@users.nuiton.org 02 Feb '11
by tchemit@users.nuiton.org 02 Feb '11
02 Feb '11
Author: tchemit
Date: 2011-02-02 13:12:34 +0100 (Wed, 02 Feb 2011)
New Revision: 2192
Url: http://nuiton.org/repositories/revision/jaxx/2192
Log:
fix generated import
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java 2011-02-02 12:10:40 UTC (rev 2191)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java 2011-02-02 12:12:34 UTC (rev 2192)
@@ -162,7 +162,8 @@
// }
if (buffer.length() > 0) {
- StringBuilder extraCode = new StringBuilder(helpBrokerFQN);
+ String type = compiler.getImportManager().getType(helpBrokerFQN);
+ StringBuilder extraCode = new StringBuilder(type);
extraCode.append(" _broker = getBroker();");
buffer.append(eol).append("_broker.prepareUI(this);");
1
0
r2191 - in trunk: jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld jaxx-tutorial-validation/src/main/java/jaxx/demo/validation/ui
by tchemit@users.nuiton.org 02 Feb '11
by tchemit@users.nuiton.org 02 Feb '11
02 Feb '11
Author: tchemit
Date: 2011-02-02 13:10:40 +0100 (Wed, 02 Feb 2011)
New Revision: 2191
Url: http://nuiton.org/repositories/revision/jaxx/2191
Log:
fix tutorials
Modified:
trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx
trunk/jaxx-tutorial-validation/src/main/java/jaxx/demo/validation/ui/ValidationTableDemo.jaxx
Modified: trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx
===================================================================
--- trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx 2011-02-02 09:15:10 UTC (rev 2190)
+++ trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx 2011-02-02 12:10:40 UTC (rev 2191)
@@ -25,7 +25,7 @@
<Application title='Hello World'>
<JLabel text='Hello World'
- foreground='red'
+ foreground='{java.awt.Color.RED}'
font-size='24'
constraints='BorderLayout.NORTH'/>
Modified: trunk/jaxx-tutorial-validation/src/main/java/jaxx/demo/validation/ui/ValidationTableDemo.jaxx
===================================================================
--- trunk/jaxx-tutorial-validation/src/main/java/jaxx/demo/validation/ui/ValidationTableDemo.jaxx 2011-02-02 09:15:10 UTC (rev 2190)
+++ trunk/jaxx-tutorial-validation/src/main/java/jaxx/demo/validation/ui/ValidationTableDemo.jaxx 2011-02-02 12:10:40 UTC (rev 2191)
@@ -24,15 +24,20 @@
-->
<JPanel>
+ <import>
+
+ jaxx.runtime.validator.swing.SwingValidatorUtil
+ jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer
+ jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
+ jaxx.demo.validation.model.Movie
+ javax.swing.JOptionPane
+ static org.nuiton.i18n.I18n.n_
+ </import>
<!--<style source="Validation.css"/>-->
<script><![CDATA[
-import static org.nuiton.i18n.I18n.n_;
-import jaxx.runtime.validator.swing.SwingValidatorUtil;
-import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer;
-import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel;
-import jaxx.demo.validation.model.Movie;
+
void $afterCompleteSetup() {
SwingValidatorUtil.installUI(errorTable, new SwingValidatorMessageTableRenderer());
}
@@ -70,7 +75,8 @@
<cell weightx='1' weighty='1' insets='6, 3, 0, 0' columns="2">
<JPanel border='{BorderFactory.createTitledBorder("Configuration")}'
layout='{new GridLayout()}'>
- <JAXXComboBox id='contexts' editable='false' onActionPerformed='changeContext(String.valueOf(contexts.getSelectedItem()))'>
+ <JAXXComboBox id='contexts' editable='false'
+ onActionPerformed='changeContext(String.valueOf(contexts.getSelectedItem()))'>
<item value='create' selected='true'/>
<item value='update'/>
</JAXXComboBox>
1
0
r2190 - in trunk/jaxx-compiler/src/main/java/jaxx/compiler: . decorators finalizers
by tchemit@users.nuiton.org 02 Feb '11
by tchemit@users.nuiton.org 02 Feb '11
02 Feb '11
Author: tchemit
Date: 2011-02-02 10:15:10 +0100 (Wed, 02 Feb 2011)
New Revision: 2190
Url: http://nuiton.org/repositories/revision/jaxx/2190
Log:
yet optimize generated code...
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObjectDecorator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObjectDecorator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObjectDecorator.java 2011-02-01 17:43:44 UTC (rev 2189)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObjectDecorator.java 2011-02-02 09:15:10 UTC (rev 2190)
@@ -91,7 +91,7 @@
JavaFile javaFile,
String packageName,
String className,
- String fullClassName);
+ String fullClassName) throws ClassNotFoundException;
/**
* Obtain the creation code of the given {@code object} from the {@code compiler} to inject in generate method
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java 2011-02-01 17:43:44 UTC (rev 2189)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/BoxedCompiledObjectDecorator.java 2011-02-02 09:15:10 UTC (rev 2190)
@@ -53,7 +53,7 @@
JavaFile javaFile,
String packageName,
String className,
- String fullClassName) {
+ String fullClassName) throws ClassNotFoundException {
CompiledObject parent = object.getParent();
if (parent == null) {
parent = root;
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java 2011-02-01 17:43:44 UTC (rev 2189)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java 2011-02-02 09:15:10 UTC (rev 2190)
@@ -69,7 +69,7 @@
JavaFile javaFile,
String packageName,
String className,
- String fullClassName) {
+ String fullClassName) throws ClassNotFoundException {
if (object instanceof ScriptInitializer) {
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java 2011-02-01 17:43:44 UTC (rev 2189)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java 2011-02-02 09:15:10 UTC (rev 2190)
@@ -26,11 +26,13 @@
package jaxx.compiler.decorators;
import jaxx.compiler.CompiledObject;
+import jaxx.compiler.CompiledObjectDecorator;
import jaxx.compiler.CompilerConfiguration;
import jaxx.compiler.JAXXCompiler;
import jaxx.compiler.finalizers.JAXXCompilerFinalizer;
import jaxx.compiler.java.JavaElementFactory;
import jaxx.compiler.java.JavaFile;
+import jaxx.compiler.reflect.ClassDescriptor;
import jaxx.runtime.swing.help.JAXXHelpUI;
import java.awt.Component;
@@ -78,7 +80,7 @@
JavaFile javaFile,
String packageName,
String className,
- String fullClassName) {
+ String fullClassName) throws ClassNotFoundException {
super.finalizeCompiler(compiler,
root,
object,
@@ -94,9 +96,25 @@
// add JAXXHelpUI interface
Class<?> validatorInterface = JAXXHelpUI.class;
String helpBrokerFQN = getBrokerFQN(compiler);
- javaFile.addInterface(validatorInterface.getName() +
- "<" + helpBrokerFQN + ">");
+ boolean needInterface = isNeedInterface(compiler,
+ validatorInterface);
+
+ if (needInterface) {
+
+ // only add the contract if needed
+
+ if (log.isDebugEnabled()) {
+ log.debug("Add " + validatorInterface + " on " +
+ javaFile.getName() + " : parent " +
+ JAXXCompiler.getCanonicalName(
+ compiler.getRootObject()));
+ }
+
+ javaFile.addInterface(validatorInterface.getName() +
+ "<" + helpBrokerFQN + ">");
+ }
+
javaFile.addMethod(JavaElementFactory.newMethod(
Modifier.PUBLIC,
JAXXCompilerFinalizer.TYPE_VOID,
@@ -158,6 +176,49 @@
}
}
+ /**
+ * Detects if the given {@code compiler} need the validatorInterface.
+ * <p/>
+ * We need to test it deeply since the interface is added by the decorator
+ * and is not present on the symbol table of compiled objects.
+ *
+ * @param compiler the compiler to test
+ * @param validatorInterface the validator interface to seek for
+ * @return {@code true} if we need to add the interface, {@code false} otherwise
+ * @throws ClassNotFoundException if could not find a class
+ * @since 2.4
+ */
+ protected boolean isNeedInterface(JAXXCompiler compiler,
+ Class<?> validatorInterface) throws ClassNotFoundException {
+ if (compiler.isSuperClassAware(validatorInterface)) {
+
+ // parent has already the interface
+ return false;
+ }
+ CompiledObject root = compiler.getRootObject();
+ ClassDescriptor rootObjectClass = root.getObjectClass();
+ String superClassName = JAXXCompiler.getCanonicalName(rootObjectClass);
+ JAXXCompiler parentCompiler = compiler.getEngine().getJAXXCompiler(superClassName);
+ if (parentCompiler == null) {
+
+ // parent was not compiled
+ return true;
+ }
+
+ CompiledObjectDecorator decorator = parentCompiler.getRootObject().getDecorator();
+
+ if (decorator != null && decorator instanceof HelpRootCompiledObjectDecorator) {
+
+ // parent is already with help, no need of the interface
+ return false;
+ }
+
+ boolean superClassResult = isNeedInterface(parentCompiler, validatorInterface);
+
+ // ok must add the interface
+ return superClassResult;
+ }
+
public static Set<String> getHelpIds() {
return new HashSet<String>(helpIds);
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java 2011-02-01 17:43:44 UTC (rev 2189)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java 2011-02-02 09:15:10 UTC (rev 2190)
@@ -61,16 +61,14 @@
/** Logger. */
static Log log = LogFactory.getLog(ValidatorFinalizer.class);
- protected static final String VALIDATOR_UTIL_PREFIX =
- SwingValidatorUtil.class.getSimpleName() + ".";
-
protected static final JavaField VALIDATOR_IDS_FIELD =
JavaElementFactory.newField(
Modifier.PROTECTED,
List.class.getName() + "<String>",
"validatorIds",
true,
- "new java.util.ArrayList<String>()"
+ "new %s<String>()",
+ ArrayList.class.getName()
);
@Override
@@ -104,7 +102,7 @@
);
if (found) {
-
+ compiler.setNeedSwingUtil(true);
// box the child component in a JxLayer
child.setChildJavaCode(
SwingUtil.class.getSimpleName() +
@@ -117,16 +115,18 @@
// register validators
List<CompiledBeanValidator> validators =
BeanValidatorHandler.getValidators(compiler);
- javaFile.addImport(Validator.class);
- javaFile.addImport(ValidatorField.class);
+// javaFile.addImport(Validator.class);
+// javaFile.addImport(ValidatorField.class);
javaFile.addImport(SwingValidatorUtil.class);
- javaFile.addImport(ArrayList.class);
-
+ String validatorUtilPrefix =
+ compiler.getImportManager().getType(SwingValidatorUtil.class) +
+ ".";
+
compiler.getJavaFile().addMethod(JavaElementFactory.newMethod(
Modifier.PUBLIC,
TYPE_VOID,
"registerValidatorFields",
- VALIDATOR_UTIL_PREFIX + "installFields(this);",
+ validatorUtilPrefix + "installFields(this);",
true)
);
builder.append("// register ");
@@ -135,10 +135,10 @@
builder.append(eol);
builder.append("validatorIds = ");
- builder.append(VALIDATOR_UTIL_PREFIX).append("initUI(this);");
+ builder.append(validatorUtilPrefix).append("initUI(this);");
builder.append(eol);
- builder.append(VALIDATOR_UTIL_PREFIX).append("installUI(this);");
+ builder.append(validatorUtilPrefix).append("installUI(this);");
builder.append(eol);
compiler.appendLateInitializer(builder.toString());
@@ -173,18 +173,20 @@
// implements JAXXValidator
addField(javaFile, VALIDATOR_IDS_FIELD);
- String initializer = "return (" + validatorClass.getSimpleName() +
+ String type = compiler.getImportManager().getType(validatorClass);
+
+ String initializer = "return (" + type +
"<?>) (validatorIds.contains(validatorId) ? " +
"getObjectById(validatorId) : null);";
+
javaFile.addMethod(JavaElementFactory.newMethod(
Modifier.PUBLIC,
- validatorClass.getName() + "<?>",
+ type + "<?>",
"getValidator",
initializer,
true,
- JavaElementFactory.newArgument(
- TYPE_STRING, "validatorId"))
+ JavaElementFactory.newArgument(TYPE_STRING, "validatorId"))
);
}
@@ -196,7 +198,10 @@
String validatorId = TypeManager.getJavaCode(validator.getId());
- String validatorAnnotation = Validator.class.getSimpleName() +
+ String type = compiler.getImportManager().getType(Validator.class);
+ String fieldType = compiler.getImportManager().getType(ValidatorField.class);
+
+ String validatorAnnotation = type +
"( validatorId = " + validatorId + ")";
validatorField.addAnnotation(validatorAnnotation);
Map<String, String> fields = validator.getFields();
@@ -249,7 +254,7 @@
);
}
- String annotation = ValidatorField.class.getSimpleName() +
+ String annotation = fieldType +
"( validatorId = " + validatorId + "," +
" propertyName = " + keyCode + "," +
" editorName = " + editorCode + "" + ")";
1
0
Author: tchemit
Date: 2011-02-01 18:43:44 +0100 (Tue, 01 Feb 2011)
New Revision: 2189
Url: http://nuiton.org/repositories/revision/jaxx/2189
Log:
optimize widgets code and demo too\!
Modified:
trunk/jaxx-demo/src/main/java/jaxx/demo/DemoPanel.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/DemoTab.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.css
trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonMenuItemDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSpinnerDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/entities/AbstractDemoBean.java
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BaseBeanDataBinding.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/AbstractContentUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorsContentUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MoviesContentUI.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorUI.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/MemoryStatusWidget.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/StatusMessagePanel.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCallBackUI.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.jaxx
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoPanel.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoPanel.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoPanel.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -25,11 +25,15 @@
<JPanel id='top' abstract='true'>
+ <import>
+ org.nuiton.util.StringUtil
+ </import>
+
<script><![CDATA[
protected String[] getSources() {
- if (getClass() == DemoPanel.class) {
- return new String[0];
+ if (DemoPanel.class.equals(getClass())) {
+ return StringUtil.EMPTY_STRING_ARRAY;
}
return new String[]{ getDefaultSource() };
}
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -26,15 +26,16 @@
<JPanel layout='{new BorderLayout()}'>
<import>
- org.fife.ui.rsyntaxtextarea.RSyntaxTextArea
+ jaxx.runtime.SwingUtil
jaxx.runtime.swing.FontSizor
+
+ java.awt.RenderingHints
javax.swing.DefaultComboBoxModel
- java.awt.RenderingHints
+
+ org.fife.ui.rsyntaxtextarea.RSyntaxTextArea
</import>
<script><![CDATA[
-import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
-import jaxx.runtime.swing.FontSizor;
public void init() {
//fontSizor.setDefaultFontSize(getConfig().getFontSize());
@@ -65,7 +66,7 @@
<DemoSourcesHandler id='handler'/>
- <Class id='incomingClass' javaBean='null'/>
+ <Class id='incomingClass' javaBean='null' genericType='?'/>
<String id='currentSource' javaBean='null'/>
@@ -91,7 +92,7 @@
constraints='BorderLayout.CENTER'>
<RSyntaxTextArea id='editor'
font-size='{getConfig().getFontSize()}'
- minimumSize="{jaxx.runtime.SwingUtil.newMinDimension()}"
+ minimumSize="{SwingUtil.newMinDimension()}"
textAntiAliasHint='{RenderingHints.KEY_ANTIALIASING.toString()}'
editable="false"
wrapStyleWord="false"
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoTab.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoTab.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoTab.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -26,6 +26,7 @@
<JTabbedPane id='top'>
<import>
+ java.util.Arrays
javax.swing.SwingUtilities
</import>
@@ -53,7 +54,7 @@
<tab id='tabDemoSources' title='Sources'>
<DemoSources id='sourceTabs'
- sources='{java.util.Arrays.asList(demoPanel.getSources())}'
+ sources='{Arrays.asList(demoPanel.getSources())}'
incomingClass='{demoPanel.getClass()}'
constructorParams='demoPanel'/>
</tab>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.css
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.css 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.css 2011-02-01 17:43:44 UTC (rev 2189)
@@ -37,7 +37,7 @@
#mainFrame {
title:"JAXX Demo";
- iconImage:{jaxx.runtime.SwingUtil.createIcon(getConfig().getOption("application.icon.path")).getImage()};
+ iconImage:{SwingUtil.createIcon(getConfig().getOption("application.icon.path")).getImage()};
undecorated:{getConfig().isFullScreen()};
}
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -29,12 +29,14 @@
onWindowClosing='getHandler().close(mainFrame)'>
<import>
- java.awt.Dimension
jaxx.demo.tree.DemoTreeHelper
jaxx.demo.tree.DemoCellRenderer
+
+ jaxx.runtime.SwingUtil
jaxx.runtime.swing.CardLayout2
jaxx.runtime.swing.StatusMessagePanel
-
+
+ java.awt.Dimension
java.util.Locale
</import>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -27,13 +27,16 @@
<jaxx.demo.DemoPanel layout='{new BorderLayout()}'>
<import>
+ jaxx.runtime.SwingUtil
jaxx.runtime.swing.BlockingLayerUI
jaxx.runtime.swing.BlockingLayerUI2
- javax.swing.JComponent
- javax.swing.DefaultListModel
+
java.awt.Color
+ java.awt.event.ActionEvent
+
javax.swing.AbstractAction
- java.awt.event.ActionEvent
+ javax.swing.DefaultListModel
+ javax.swing.JComponent
</import>
<BlockingLayerUI id='layerUI'
acceptAction='{new AbstractAction() {
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -25,6 +25,12 @@
<jaxx.demo.DemoPanel>
+
+ <import>
+ org.nuiton.i18n.LanguageEnum
+ org.nuiton.i18n.CountryEnum
+ </import>
+
<Table fill='both'>
<row>
<cell>
@@ -40,8 +46,8 @@
<JLabel text='EnumEditor (language) :' labelFor='{languageEditor}'/>
</cell>
<cell>
- <EnumEditor id='languageEditor'
- constructorParams='org.nuiton.i18n.LanguageEnum.class'/>
+ <EnumEditor id='languageEditor' genericType='LanguageEnum'
+ constructorParams='LanguageEnum.class'/>
</cell>
</row>
<row>
@@ -49,8 +55,8 @@
<JLabel text='EnumEditor (country) :' labelFor='{countryEditor}'/>
</cell>
<cell>
- <EnumEditor id='countryEditor'
- constructorParams='org.nuiton.i18n.CountryEnum.class'/>
+ <EnumEditor id='countryEditor' genericType='CountryEnum'
+ constructorParams='CountryEnum.class'/>
</cell>
</row>
<row>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonMenuItemDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonMenuItemDemo.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonMenuItemDemo.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -38,15 +38,15 @@
</script>
<JMenuBar id='menuBar'>
<JMenu text='Font size'>
- <JRadioButtonMenuItem text='10' value='{new Integer(10)}'
+ <JRadioButtonMenuItem text='10' value='{10}'
buttonGroup='fontSize'/>
- <JRadioButtonMenuItem text='12' value='{new Integer(12)}'
+ <JRadioButtonMenuItem text='12' value='{12}'
buttonGroup='fontSize' selected='true'/>
- <JRadioButtonMenuItem text='14' value='{new Integer(14)}'
+ <JRadioButtonMenuItem text='14' value='{14}'
buttonGroup='fontSize'/>
- <JRadioButtonMenuItem text='18' value='{new Integer(18)}'
+ <JRadioButtonMenuItem text='18' value='{18}'
buttonGroup='fontSize'/>
- <JRadioButtonMenuItem text='24' value='{new Integer(24)}'
+ <JRadioButtonMenuItem text='24' value='{24}'
buttonGroup='fontSize'/>
</JMenu>
</JMenuBar>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSpinnerDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSpinnerDemo.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSpinnerDemo.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -24,15 +24,12 @@
-->
<jaxx.demo.DemoPanel>
- <import>
- javax.swing.SpinnerNumberModel
- </import>
-
+
<JLabel text='Spacing:' displayedMnemonic='S' labelFor='{spinner}'/>
<JSpinner minimum='0' maximum='50' id='spinner'/>
- <VBox spacing='{((Integer) spinner.getValue()).intValue()}'>
+ <VBox spacing='{(Integer) spinner.getValue()}'>
<JLabel text='Use the spinner to'/>
<JLabel text='adjust the spacing'/>
<JLabel text='between these lines'/>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/entities/AbstractDemoBean.java
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/entities/AbstractDemoBean.java 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/entities/AbstractDemoBean.java 2011-02-01 17:43:44 UTC (rev 2189)
@@ -47,6 +47,8 @@
public static final String PROPERTY_IMAGE = "image";
+ private static final long serialVersionUID = 1L;
+
protected String id;
protected String image;
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BaseBeanDataBinding.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BaseBeanDataBinding.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BaseBeanDataBinding.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -34,14 +34,18 @@
<String id='contentMessage' javaBean='"message..."'/>
<script>
- void $afterCompleteSetup(){}
- public Boolean isEditing2() { return editing2; }
+ void $afterCompleteSetup(){
+ }
- public void setEditing2(Boolean newValue) {
- Boolean oldValue = this.editing2;
- this.editing2 = newValue;
- firePropertyChange("editing2", oldValue, newValue) ;
+ public Boolean isEditing2() {
+ return editing2;
}
+
+ public void setEditing2(Boolean editing2) {
+ Boolean oldValue = this.editing2;
+ this.editing2 = editing2;
+ firePropertyChange("editing2", oldValue, editing2);
+ }
</script>
</jaxx.demo.DemoPanel>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -25,17 +25,10 @@
<jaxx.demo.DemoPanel layout='{new BorderLayout()}'>
<import>
- jaxx.demo.feature.nav.content.*
- jaxx.demo.feature.nav.tree.*
- jaxx.demo.feature.nav.treetable.*
- jaxx.demo.entities.*
- jaxx.runtime.decorator.DecoratorProvider
- jaxx.runtime.swing.nav.NavNode
- jaxx.runtime.swing.editor.bean.BeanListHeader
+ jaxx.demo.feature.nav.tree.NavDemoTreeHelper
+ jaxx.demo.feature.nav.treetable.NavDemoTreeTableHelper
org.jdesktop.swingx.JXTreeTable
- javax.swing.tree.TreePath
- java.lang.reflect.Constructor
</import>
<CardLayout2 id='contentLayout'/>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/AbstractContentUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/AbstractContentUI.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/AbstractContentUI.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -24,7 +24,7 @@
<JPanel abstract='true'
layout='{new BorderLayout()}'
- genericType='B extends Object'>
+ genericType='B'>
<import>
jaxx.demo.feature.nav.NavDemoHandler
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorsContentUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorsContentUI.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/ActorsContentUI.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -22,9 +22,10 @@
#L%
-->
-<AbstractContentUI superGenericType='java.util.List<People>'>
+<AbstractContentUI superGenericType='List<People>'>
<import>
+ java.util.List
jaxx.demo.entities.People
jaxx.runtime.swing.editor.bean.BeanListHeader
jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MoviesContentUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MoviesContentUI.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/content/MoviesContentUI.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -22,9 +22,10 @@
#L%
-->
-<AbstractContentUI superGenericType='java.util.List<Movie>'>
+<AbstractContentUI superGenericType='List<Movie>'>
<import>
+ java.util.List
jaxx.demo.entities.Movie
jaxx.runtime.swing.editor.bean.BeanListHeader
jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -51,133 +51,28 @@
<Color id='backgroundColor' javaBean='null'/>
<script><![CDATA[
-
-/*final Action closeAction = new AbstractAction("close") {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void actionPerformed(ActionEvent e) {
- JDialog container = getParentContainer(JDialog.class);
- if (container != null) {
- container.dispose();
- } else {
- setVisible(false);
- }
- }
-};*/
-
public void setLicenseFile(String filename) {
handler.setLicenseFile(filename);
- //String load = load(filename);
- //setLicenseText(load);
}
public void setThirdpartyFile(String filename) {
handler.setThirdpartyFile(filename);
- //String load = load(filename);
- //setThirdpartyText(load);
}
public void buildTopPanel() {
handler.buildTopPanel();
- // image
- //JLabel labelIcon;
- //if (iconPath != null) {
- // Icon logoIcon = Resource.getIcon(iconPath);
- // labelIcon = new JLabel(logoIcon);
- //} else {
- // labelIcon = new JLabel();
- //}
- //topPanel.add(labelIcon);
}
public void init() {
handler.init();
- /*if (getAboutText() == null) {
- tabs.remove(aboutContent);
- }
- if (getLicenseText() == null) {
- tabs.remove(licenseContent);
- } else {
- SwingUtilities.invokeLater(new Runnable() {
-
- @Override
- public void run() {
- licenseTextArea.setCaretPosition(0);
- }
- });
-
- }
- if (getThirdpartyText() == null) {
- tabs.remove(thirdpartyContent);
- } else {
- SwingUtilities.invokeLater(new Runnable() {
-
- @Override
- public void run() {
- thirdpartyTextArea.setCaretPosition(0);
- }
- });
- }*/
}
public void showInDialog(Frame ui, boolean undecorated) {
handler.showInDialog(ui, undecorated);
- /*JDialog f = new JDialog(ui, true);
- f.add(this);
- if (iconPath != null) {
- f.setIconImage(SwingUtil.createIcon(iconPath).getImage());
- }
- f.setResizable(false);
- f.setSize(550, 450);
- f.setUndecorated(undecorated);
- JRootPane rootPane = f.getRootPane();
- rootPane.setDefaultButton(close);
- rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
- rootPane.getActionMap().put("close", closeAction);
- f.addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosed(WindowEvent e) {
- Component ui = (Component) e.getSource();
- if (log.isInfoEnabled()) {
- log.info("destroy ui "+ ui);
- }
- JAXXUtil.destroy(ui);
- JAXXUtil.destroy(AboutPanel.this);
- }
- });
- SwingUtil.center(ui, f);
- f.setVisible(true);*/
}
-/*protected String load(String filename) {
- InputStream licenseStream = getClass().getResourceAsStream("/" + filename);
- String result = null;
- try {
- if (licenseStream != null) {
- result = IOUtils.toString(licenseStream);
- }
- } catch (IOException ex) {
- // ignore it
- } finally {
- if (licenseStream != null) {
- try {
- licenseStream.close();
- } catch (IOException ex) {
- log.error("could not close file " + filename);
- }
- }
- }
- if (result == null) {
- result = "resource " + filename + " not found";
- }
- return result;
-}*/
-
void $afterCompleteSetup() {
handler.$afterCompleteSetup();
- //buildTopPanel();
- //close.setText(_("aboutframe.ok"));
}
]]>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -36,31 +36,13 @@
public static void init(Frame frame) {
ErrorDialogUIHandler.init(frame);
- /*disposeUI();
- instance = new ErrorDialogUI(frame);
- instance.setModalityType(ModalityType.TOOLKIT_MODAL);*/
}
public static void showError(Exception e) {
ErrorDialogUIHandler.showError(e);
- /*if (instance == null) {
- instance = new ErrorDialogUI();
- }
- instance.getErrorMessage().setText(e.getMessage());
- StringWriter w = new StringWriter();
- e.printStackTrace(new PrintWriter(w));
- instance.getErrorStack().setText(w.toString());
- instance.getErrorStack().setCaretPosition(0);
- instance.pack();
- jaxx.runtime.SwingUtil.center(instance.getContextValue(JFrame.class,"parent"), instance);
- instance.setVisible(true);*/
}
public static void disposeUI() {
ErrorDialogUIHandler.disposeUI();
- /*if (instance != null) {
- JAXXUtil.destroy(instance);
- }
- instance=null;*/
}
public ErrorDialogUI(Frame frame) {
@@ -69,17 +51,11 @@
setContextValue(frame);
setContextValue(frame,"parent");
}
-
}
void $afterCompleteSetup() {
handler.$afterCompleteSetup();
}
-
-/*JRootPane rootPane = getRootPane();
-rootPane.setDefaultButton(close);
-rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
-rootPane.getActionMap().put("close", close.getAction());*/
]]></script>
<Table>
<row fill='both'>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -22,14 +22,8 @@
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
-
-
<JPanel layout='{new BorderLayout()}'>
- <!--import>
- java.awt.BorderLayout
- </import-->
-
<FontSizorHandler id='handler' constructorParams='this'/>
<!-- default size of font -->
@@ -43,50 +37,20 @@
<Boolean id='showFontSize' javaBean='false'/>
<script><![CDATA[
-/*
-public static final String BINDING_FONT_SIZE_CALL_BACK = "fontSize.callBack";
-public static final String BINDING_DEFAULT_FONT_SIZE_CALL_BACK = "defaultFontSize.callBack";
-*/
-
public void init() {
handler.init();
- /*if (fontSize == null) {
- setFontSize(defaultFontSize);
- }*/
}
boolean updateDefaultSizeEnabled(Float fontSize, Float defaultFontSize, boolean enabled) {
return handler.updateDefaultSizeEnabled( fontSize,defaultFontSize, enabled);
- /*if (fontSize==null || defaultFontSize==null) {
- return false;
- }
- return !fontSize.equals(defaultFontSize) && enabled;*/
}
-public void setCallBack(final Runnable action) {
+public void setCallBack(Runnable action) {
handler.setCallBack(action);
- /*removeDataBinding(BINDING_FONT_SIZE_CALL_BACK);
- registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_FONT_SIZE_CALL_BACK, true ,"fontSize") {
-
- @Override
- public void processDataBinding() {
- action.run();
- }
- });
- applyDataBinding(BINDING_FONT_SIZE_CALL_BACK);*/
}
void $afterCompleteSetup() {
- handler.$afterCompleteSetup();
- /*registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_DEFAULT_FONT_SIZE_CALL_BACK, true ,"defaultFontSize") {
-
- @Override
- public void processDataBinding() {
- setFontSize(defaultFontSize);
- }
- });
- //applyDataBinding(BINDING_DEFAULT_FONT_SIZE_CALL_BACK);
- */
+ handler.$afterCompleteSetup();
}
]]>
</script>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -59,20 +59,6 @@
myHandler.$afterCompleteSetup();
}
-/*addPropertyChangeListener("targetVisible", new PropertyChangeListener() {
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (log.isDebugEnabled()) {
- log.debug("target visible changed <" + evt.getOldValue() + ":" + evt.getNewValue() + ">");
- }
- boolean newValue = (Boolean) evt.getNewValue();
- if (target != null) {
- target.setVisible(newValue);
- }
- }
-});*/
-
public void setTarget(JComponent target) {
JComponent oldValue = this.target;
this.target = target;
@@ -86,21 +72,6 @@
public void setHideIcon(Icon icon) {
putClientProperty("hideIcon", icon);
}
-
-/*protected String updateToolTipText(boolean c) {
- String i = c ? hideTip : showTip;
- return i;
-}
-
-protected String updateText(boolean c) {
- String i = c ? hideText : showText;
- return i;
-}
-
-protected Icon updateIcon(boolean c) {
- String key = c ? "hideIcon" : "showIcon";
- return (Icon) getClientProperty(key);
-}*/
]]>
</script>
</JToggleButton>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorUI.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorUI.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -46,7 +46,7 @@
<script><![CDATA[
-public void setHandler(ListSelectorHandler handler) {
+public void setHandler(ListSelectorHandler<B> handler) {
this.handler = handler;
}
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/MemoryStatusWidget.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/MemoryStatusWidget.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/MemoryStatusWidget.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -31,9 +31,6 @@
<import>
java.awt.Color
java.awt.Graphics
- java.awt.font.FontRenderContext
- java.awt.font.LineMetrics
- java.awt.geom.Rectangle2D
java.awt.event.ActionEvent
javax.swing.Timer
</import>
@@ -47,18 +44,7 @@
<script><![CDATA[
- /*
-import java.awt.font.FontRenderContext;
-import java.awt.font.LineMetrics;
-import java.awt.geom.Rectangle2D;
-private final static String memoryTestStr = "99999/99999Mb";
-
-private FontRenderContext frc = new FontRenderContext(null, false, false);
-
-private LineMetrics lm = new JLabel().getFont().getLineMetrics(memoryTestStr, frc);
-*/
-
@Override
public void actionPerformed(ActionEvent evt) {
repaint();
@@ -84,48 +70,11 @@
@Override
public void paintComponent(Graphics g) {
handler.paintComponent(g);
- /*Insets insets = new Insets(0, 0, 0, 0);
- Runtime runtime = Runtime.getRuntime();
- int freeMemory = (int) (runtime.freeMemory() / 1024L);
- int totalMemory = (int) (runtime.totalMemory() / 1024L);
- int usedMemory = totalMemory - freeMemory;
- int width = getWidth() - insets.left - insets.right;
- int height = getHeight() - insets.top - insets.bottom - 1;
- float fraction = (float) usedMemory / (float) totalMemory;
- g.setColor(progressBackground);
- g.fillRect(insets.left, insets.top, (int) ((float) width * fraction), height);
- // No i18n string was :
- // String str = usedMemory / 1024 + "/" + totalMemory / 1024 + "Mb";
- String str = _("memorywidget.memory", usedMemory / 1024, totalMemory / 1024);
- //FontRenderContext frc = new FontRenderContext(null, false, false);
- Rectangle2D bounds = g.getFont().getStringBounds(str, frc);
- Graphics g2 = g.create();
- g2.setClip(insets.left, insets.top,
- (int) ((float) width * fraction), height);
- g2.setColor(progressForeground);
- g2.drawString(str, insets.left
- + (int) ((double) width - bounds.getWidth()) / 2,
- (int) ((float) insets.top + lm.getAscent()));
- g2.dispose();
- g2 = g.create();
- g2.setClip(insets.left + (int) ((float) width * fraction),
- insets.top, getWidth() - insets.left
- - (int) ((float) width * fraction), height);
- g2.setColor(getForeground());
- g2.drawString(str, insets.left
- + (int) ((double) width - bounds.getWidth()) / 2,
- (int) ((float) insets.top + lm.getAscent()));
- g2.dispose();*/
}
void $afterCompleteSetup() {
handler.$afterCompleteSetup();
- /*setFont(new JLabel().getFont());
- Rectangle2D bounds = getFont().getStringBounds(memoryTestStr, frc);
- Dimension dim = new Dimension((int) bounds.getWidth(), (int) bounds .getHeight());
- setPreferredSize(dim);
- setMaximumSize(dim);*/
}
]]>
</script>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/StatusMessagePanel.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/StatusMessagePanel.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/StatusMessagePanel.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -42,16 +42,13 @@
public void clearStatus() {
handler.clearStatus();
- /*handler.stopStatusFader(this);
- getStatusLabel().setText(EMPTY_STATUS);
- //getStatusLabel().setString(EMPTY_STATUS);*/
}
public void startProgress() {
startProgress(null);
}
-public void startProgress(final String status) {
+public void startProgress(String status) {
setBusy(true);
setStatus(status);
}
@@ -67,15 +64,6 @@
public void setStatus(String status) {
handler.setStatus(status);
- /*if (status != null) {
- handler.stopStatusFader(this);
- getStatusLabel().setText(status);
- //getStatusLabel().setString(status);
- }
-
- if (!isBusy()) {
- handler.startStatusFader(this);
- }*/
}
@Override
@@ -102,19 +90,10 @@
public void init() {
handler.init();
- /*if (isShowBusy()) {
- Dimension dim = new Dimension(30, 15);
- //Dimension dim = new Dimension(30, (int) statusLabel.getPreferredSize().getHeight());
- //log.info("dimension of busy = "+ dim);
- //busyWidget.setPreferredSize(dim);
- busyWidget.setMaximumSize(dim);
- busyWidget.setMinimumSize(dim);
- }*/
}
void $afterCompleteSetup() {
-handler.$afterCompleteSetup();
- //init();
+ handler.$afterCompleteSetup();
}
]]>
</script>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -31,6 +31,9 @@
onFocusLost='setPopupVisible(false)'>
<import>
+
+ jaxx.runtime.SwingUtil
+
java.awt.BorderLayout
java.awt.event.ItemEvent
java.awt.event.ActionEvent
@@ -92,12 +95,6 @@
onStateChanged='log.info(indexes.getSelectedValue())'/>
<script><![CDATA[
-import java.util.Locale;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import jaxx.runtime.swing.renderer.LocaleListCellRenderer;
-import static org.nuiton.i18n.I18n.n_;
-
public static final String DEFAULT_SELECTED_TOOLTIP = n_("i18neditor.selected");
public static final String DEFAULT_NOT_SELECTED_TOOLTIP = n_("i18neditor.unselected");
@@ -114,181 +111,37 @@
void $afterCompleteSetup() {
handler.$afterCompleteSetup();
- //buildTopPanel();
- //close.setText(_("aboutframe.ok"));
}
@Override
public void propertyChange(PropertyChangeEvent evt) {
handler.propertyChange(evt);
- /*String name = evt.getPropertyName();
- if (log.isDebugEnabled()) {
- log.debug(name+" <old:"+evt.getOldValue()+" - new:"+evt.getNewValue()+">");
- }
- log.info(name + " <old:"+evt.getOldValue()+" - new:"+evt.getNewValue()+">");
- if (LOCALES_PROPERTY.equals(name)) {
- java.util.Collection<?> newLocales = (java.util.Collection<?>) evt.getNewValue();
- // mise a jour de la popup
- boolean oldShowText = renderer.isShowText();
- try {
- renderer.setShowText(true);
- popup.removeAll();
- for (Object o : newLocales) {
- Locale l = (Locale) o;
- boolean selected = l.equals(selectedLocale);
- String text = isShowPopupText() ? renderer.getText(l) : null;
- Icon icon = isShowPopupIcon() ? renderer.getIcon(l) : null;
- JRadioButtonMenuItem b = new JRadioButtonMenuItem(text, icon, selected);
- popup.add(b);
- b.addActionListener(this);
- b.putClientProperty("locale", l);
- b.setToolTipText(getTip(l));
- b.putClientProperty(JAXXButtonGroup.BUTTON8GROUP_CLIENT_PROPERTY, getIndexes());
- b.putClientProperty(JAXXButtonGroup.VALUE_CLIENT_PROPERTY, l);
- }
- } finally {
- renderer.setShowText(oldShowText);
- popup.invalidate();
- }
- return;
- }
- if (SHOW_ICON_PROPERTY.equals(name)) {
- renderer.setShowIcon((Boolean) evt.getNewValue());
- processDataBinding("button.icon");
- return;
- }
- if (SHOW_TEXT_PROPERTY.equals(name)) {
- renderer.setShowText((Boolean) evt.getNewValue());
- processDataBinding("button.text");
- return;
- }
- if (SHOW_POPUP_ICON_PROPERTY.equals(name)) {
- rebuildPopup();
- return;
- }
- if (SHOW_POPUP_TEXT_PROPERTY.equals(name)) {
- rebuildPopup();
- return;
- }
- if (POPUP_BORDER_PROPERTY.equals(name)) {
- popup.setBorder((Border)evt.getNewValue());
- return;
- }
- if (POPUP_VISIBLE_PROPERTY.equals(name)) {
- Boolean newValue = (Boolean) evt.getNewValue();
- if (newValue == null || !newValue) {
- if (getPopup() != null && getPopup().isVisible()) {
- getPopup().setVisible(false);
- }
- return;
- }
- if (!getPopup().isVisible()) {
- SwingUtilities.invokeLater(showPopupRunnable);
- }
- return;
- }
- if (SELECTED_LOCALE_PROPERTY.equals(name)) {
- Locale newLocale = (Locale) evt.getNewValue();
- // mise a jour de la popup
- try {
- for (Component c : popup.getComponents()) {
- if (c instanceof JRadioButtonMenuItem) {
- JRadioButtonMenuItem b = (JRadioButtonMenuItem) c;
- Locale l = (Locale) b.getClientProperty("locale");
- b.setSelected(newLocale.equals(l));
- }
- }
- } finally {
- popup.invalidate();
- }
- return;
- }*/
}
@Override
public void actionPerformed(ActionEvent event) {
handler.actionPerformed(event);
- /*Locale value = (Locale)
- ((JComponent)event.getSource()).getClientProperty("locale");
- if (log.isDebugEnabled()) {
- log.debug("new locale : " + value);
- }
- setSelectedLocale(value);*/
}
public void loadI18nBundles() {
handler.loadI18nBundles();
- /*Locale[] locales = org.nuiton.i18n.I18n.getStore().getLocales();
- setLocales(java.util.Arrays.asList(locales));*/
}
protected void rebuildPopup() {
handler.rebuildPopup();
- /*log.debug("start rebuild");
- try {
- for (Component c : popup.getComponents()) {
- if (c instanceof JRadioButtonMenuItem) {
- JRadioButtonMenuItem b = (JRadioButtonMenuItem) c;
- Locale l = (Locale) b.getClientProperty("locale");
- String text = isShowPopupText() ? renderer.getSafeText(l) : null;
- Icon icon = isShowPopupIcon() ? renderer.getSafeIcon(l) : null;
- b.setIcon(icon);
- b.setText(text);
- log.debug("text=" + text);
- log.debug("icon=" + icon);
- }
- }
- } finally {
- popup.invalidate();
- }*/
}
protected String getTip(Locale l) {
return handler.getTip(l);
- /*boolean selected = l.equals(selectedLocale);
- String tip = selected ? getSelectedTip(l):getNotSelectedTip(l);
- return tip;*/
}
protected String getSelectedTip(Locale l) {
return handler.getSelectedTip(l);
- /*String selectedTip = getSelectedToolTipText();
- if (selectedTip == null) {
- // use default selected tip text
- selectedTip = DEFAULT_SELECTED_TOOLTIP;
- }
- String tip = renderer.getToolTipText(l);
- tip = _(selectedTip, tip);
- return tip;*/
}
protected String getNotSelectedTip(Locale l) {
return handler.getNotSelectedTip(l);
- /*String selectedTip = getNotSelectedToolTipText();
- if (selectedTip == null) {
- // use default not selected tip text
- selectedTip = DEFAULT_NOT_SELECTED_TOOLTIP;
- }
- String tip = renderer.getToolTipText(l);
- tip = _(selectedTip, tip);
- return tip;*/
}
-
-/*protected Runnable showPopupRunnable = new Runnable() {
- @Override
- public void run() {
- getPopup().pack();
- JToggleButton invoker = getButton();
- Dimension dim = getPopup().getPreferredSize();
- Dimension invokerDim = invoker.getSize();
- getPopup().show(invoker, (int) (invokerDim.getWidth() - dim.getWidth()), invoker.getHeight());
-// getPopup().setVisible(true);
- }
-};*/
-
-/*
-addPropertyChangeListener(this);*/
-
]]>
</script>
</JPanel>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -50,7 +50,7 @@
<Number id="model" javaBean='null'/>
<!-- editor model type (specify it when you want to use a special type other than Integer or Float)-->
- <Class id="modelType" javaBean='null'/>
+ <Class id="modelType" genericType='?' javaBean='null'/>
<!-- useFloat property -->
<Boolean id='useFloat' javaBean='false'/>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -28,7 +28,6 @@
onFocusLost='hidePopup()'>
<import>
- static org.nuiton.i18n.I18n.n_
jaxx.runtime.decorator.JXPathDecorator
javax.swing.border.TitledBorder
</import>
@@ -103,7 +102,7 @@
</JPopupMenu>
<script><![CDATA[
-public void init(JXPathDecorator<O> decorator, java.util.List<O> data) {
+public void init(JXPathDecorator<O> decorator, List<O> data) {
handler.init(decorator, data);
}
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -26,7 +26,6 @@
<JPanel id='top' layout='{new BorderLayout()}' genericType='O'>
<import>
- static org.nuiton.i18n.I18n.n_
jaxx.runtime.decorator.JXPathDecorator
javax.swing.border.TitledBorder
</import>
@@ -100,7 +99,7 @@
<script><![CDATA[
-public void init(JXPathDecorator<O> decorator, java.util.List<O> data) {
+public void init(JXPathDecorator<O> decorator, List<O> data) {
handler.init(decorator, data);
}
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCallBackUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCallBackUI.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCallBackUI.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -25,12 +25,10 @@
<JPanel layout='{new BorderLayout()}'>
<!--import>
- java.awt.BorderLayout
+ jaxx.runtime.swing.editor.config.model.*
</import-->
<script><![CDATA[
- import jaxx.runtime.swing.editor.config.model.*;
-
/**
* Init the ui.
*/
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.jaxx 2011-02-01 17:43:17 UTC (rev 2188)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.jaxx 2011-02-01 17:43:44 UTC (rev 2189)
@@ -29,6 +29,9 @@
java.awt.Font
javax.swing.DefaultListSelectionModel
javax.swing.ScrollPaneConstants
+ jaxx.runtime.swing.editor.config.model.CategoryModel
+ jaxx.runtime.swing.editor.config.model.ConfigTableModel
+ jaxx.runtime.swing.editor.config.model.ConfigUIModel
jaxx.runtime.swing.editor.config.model.OptionModel
static org.nuiton.i18n.I18n.n_
</import>
@@ -36,8 +39,6 @@
<!--<style source='ConfigCategoryUI.css'/>-->
<script><![CDATA[
-import jaxx.runtime.swing.editor.config.model.*;
-import static org.nuiton.i18n.I18n.n_;
void $afterCompleteSetup() {
// prepare table
@@ -57,9 +58,6 @@
int width = SwingUtil.computeTableColumnWidth(table, f, 0, "___*");
SwingUtil.fixTableColumnWidth(table, 0, width);
SwingUtil.setTableColumnEditor(table, 1, new ConfigTableEditor((ConfigTableModel) table.getModel()));
- //TODO to be continued...
- //columnSelector.setMyTable(table);
- //tablePane.setCorner(ScrollPaneConstants.UPPER_RIGHT_CORNER, columnSelector);
}
protected void updateDescriptionText() {
1
0
r2188 - in trunk/jaxx-compiler/src/main/java/jaxx/compiler: . binding binding/writers css decorators finalizers java tags tags/swing tags/validator tasks tools/jaxxcapture/handlers
by tchemit@users.nuiton.org 01 Feb '11
by tchemit@users.nuiton.org 01 Feb '11
01 Feb '11
Author: tchemit
Date: 2011-02-01 18:43:17 +0100 (Tue, 01 Feb 2011)
New Revision: 2188
Url: http://nuiton.org/repositories/revision/jaxx/2188
Log:
Optimize all the generation code at last...
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObject.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/DataSource.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/DefaultJAXXBindingWriter.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/SimpleJAXXObjectBindingWriter.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/AbstractFinalizer.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/DefaultFinalizer.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/JAXXCompilerFinalizer.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElementFactory.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaField.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFile.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JSpinnerHandler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTabbedPaneHandler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTextComponentHandler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tasks/GenerateTask.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tools/jaxxcapture/handlers/ObjectHandler.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObject.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObject.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompiledObject.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -35,7 +35,6 @@
import org.apache.commons.lang.StringUtils;
import java.awt.Container;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -474,10 +473,10 @@
protected String getInitializationCode(EventHandler handler, JAXXCompiler compiler) {
MethodDescriptor addMethod = handler.getAddMethod();
ClassDescriptor listenerClass = addMethod.getParameterTypes()[0];
- compiler.addImport(listenerClass.getName());
+ String type = compiler.getImportManager().getType(listenerClass.getName());
//TC-20091026 use 'this' instead of root object javaCode
//TC-20091105 JAXXUtil.getEventListener is generic, no more need cast and use simple name
- return getJavaCode() + '.' + addMethod.getName() + "(JAXXUtil.getEventListener(" + listenerClass.getSimpleName() + ".class, " +
+ return getJavaCode() + '.' + addMethod.getName() + "(JAXXUtil.getEventListener(" + type + ".class, " +
TypeManager.getJavaCode(handler.getListenerMethod().getName()) + ", this, " +
TypeManager.getJavaCode(compiler.getEventHandlerMethodName(handler)) + "));" + JAXXCompiler.getLineSeparator();
}
@@ -565,25 +564,6 @@
return properties;
}
- // TODO: remove this temporary method and complete switchover to MethodDescriptors
-
- public void addEventHandler(String eventId,
- Method addMethod,
- Method listenerMethod,
- String code,
- JAXXCompiler compiler) {
- try {
- ClassDescriptor descriptor = ClassDescriptorHelper.getClassDescriptor(getObjectClass().getName());
- String listenerClassName = addMethod.getParameterTypes()[0].getName();
- ClassDescriptor listenerDescriptor = ClassDescriptorHelper.getClassDescriptor(listenerClassName);
- MethodDescriptor addMethodDescriptor = descriptor.getMethodDescriptor(addMethod.getName(), listenerDescriptor);
- MethodDescriptor listenerMethodDescriptor = listenerDescriptor.getMethodDescriptor(listenerMethod.getName(), ClassDescriptorHelper.getClassDescriptor(listenerMethod.getParameterTypes()[0].getName()));
- addEventHandler(eventId, addMethodDescriptor, listenerMethodDescriptor, code, compiler);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
/**
* Adds an event listener to this object. The generated code will appear
* in the initialization block.
@@ -694,7 +674,7 @@
return "< " + result.substring(2) + " >";
}
- public void setGenericTypes(String[] genericTypes) {
+ public void setGenericTypes(String... genericTypes) {
if (genericTypes == null) {
this.genericTypes = null;
return;
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -46,7 +46,6 @@
import jaxx.runtime.JAXXObjectDescriptor;
import jaxx.runtime.css.Rule;
import jaxx.runtime.css.Stylesheet;
-import org.apache.commons.collections.BeanMap;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -290,6 +289,13 @@
*/
protected boolean identCssFound;
+ /**
+ * A flag to know if SwingUtil msut be imported.
+ *
+ * @since 2.4
+ */
+ protected boolean needSwingUtil;
+
public static final String[] EMPTY_STRING_ARRAY = new String[0];
public JAXXCompiler() {
@@ -472,7 +478,7 @@
methodDescriptor = new MethodDescriptor(
"set" + capitalizeName,
Modifier.PUBLIC,
- "void",
+ JAXXCompilerFinalizer.TYPE_VOID,
new String[]{fullClassName},
classLoader
);
@@ -1567,6 +1573,30 @@
String simpleClassName = getOutputClassName().substring(dotPos + 1);
CompiledObject compiledObject = getRootObject();
+ String genericType = getGenericType();
+ if (StringUtils.isNotEmpty(genericType)) {
+
+ // add the generic type to the root object
+
+ // generictype can be on form E extends XXX
+ //keep only the first thing...
+ StringBuilder sb = new StringBuilder();
+ String[] allTypes = JavaGeneratorUtil.splitFqnList(genericType, ',');
+ for (String type : allTypes) {
+ int anExtends = type.indexOf("extends");
+ if (anExtends > -1) {
+ type = type.substring(0, anExtends - 1).trim();
+ }
+ sb.append(", ").append(type);
+ }
+ String finalType;
+ if (allTypes.length > 0) {
+ finalType = sb.substring(2);
+ } else {
+ finalType = sb.toString();
+ }
+ compiledObject.setGenericTypes(finalType);
+ }
// finalize all objects via their decorator
for (CompiledObject object : getObjects().values()) {
@@ -1882,4 +1912,12 @@
public ImportsManager getImportManager() {
return getJavaFile().getImportManager();
}
+
+ public boolean isNeedSwingUtil() {
+ return needSwingUtil;
+ }
+
+ public void setNeedSwingUtil(boolean needSwingUtil) {
+ this.needSwingUtil = needSwingUtil;
+ }
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/DataSource.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/DataSource.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/DataSource.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -29,8 +29,9 @@
import jaxx.compiler.CompilerException;
import jaxx.compiler.JAXXCompiler;
import jaxx.compiler.UnsupportedAttributeException;
-import jaxx.compiler.finalizers.AbstractFinalizer;
+import jaxx.compiler.finalizers.JAXXCompilerFinalizer;
import jaxx.compiler.java.JavaElementFactory;
+import jaxx.compiler.java.JavaFileGenerator;
import jaxx.compiler.java.JavaMethod;
import jaxx.compiler.java.parser.JavaParser;
import jaxx.compiler.java.parser.JavaParserConstants;
@@ -672,11 +673,13 @@
ClassDescriptor eventClass = DefaultObjectHandler.getEventClass(eventInfo.getListenerClass());
String type = compiler.getImportManager().getType(JAXXCompiler.getCanonicalName(eventClass));
if (!methodExists) {
+ String code = JavaFileGenerator.addDebugLoggerInvocation(compiler, "event");
+ code += "propertyChange(null);";
JavaMethod method = JavaElementFactory.newMethod(
Modifier.PUBLIC,
- AbstractFinalizer.TYPE_VOID,
+ JAXXCompilerFinalizer.TYPE_VOID,
methodName,
- "propertyChange(null);",
+ code,
false,
JavaElementFactory.newArgument(type, "event"));
methods.add(method);
@@ -685,12 +688,13 @@
result.append("$bindingSources.put(\"").append(code).append("\", ").append(code).append(");").append(JAXXCompiler.getLineSeparator());
//TC-20091105 JAXXUtil.getEventListener is generic, no more need cast and use simple listener name
ClassDescriptor listenerClass = eventInfo.getListenerClass();
- compiler.addImport(listenerClass.getName());
+ String listenerType = compiler.getImportManager().getType(listenerClass.getName());
+ String jaxxUtilPrefix = compiler.getImportManager().getType(JAXXUtil.class);
result.append(code);
result.append('.');
result.append(eventInfo.getAddMethod());
- result.append("( JAXXUtil.getEventListener(");
- result.append(listenerClass.getSimpleName());
+ result.append("( ").append(jaxxUtilPrefix).append(".getEventListener(");
+ result.append(listenerType);
result.append(".class, ");
result.append("this");
result.append(", ");
@@ -702,7 +706,7 @@
handler,
objectCode,
"get" + StringUtils.capitalize(eventInfo.getModelName()),
- JAXXUtil.class.getSimpleName() + ".getDataBindingUpdateListener(" + compiler.getOutputClassName() + ".this" + ", " + constantId + ")",
+ jaxxUtilPrefix + ".getDataBindingUpdateListener(" + compiler.getOutputClassName() + ".this" + ", " + constantId + ")",
compiler
);
result.append(addCode);
@@ -767,14 +771,16 @@
boolean methodExists = hasMethod(methodName);
if (!methodExists) {
ClassDescriptor eventClass = DefaultObjectHandler.getEventClass(eventInfo.getListenerClass());
- compiler.addImport(eventClass.getName());
+ String type = compiler.getImportManager().getType(JAXXCompiler.getCanonicalName(eventClass));
+ String code = JavaFileGenerator.addDebugLoggerInvocation(compiler, "event");
+ code += "propertyChange(null);";
JavaMethod method = JavaElementFactory.newMethod(
Modifier.PUBLIC,
- "void",
+ JAXXCompilerFinalizer.TYPE_VOID,
methodName,
- "propertyChange(null);",
+ code,
false,
- JavaElementFactory.newArgument(JAXXCompiler.getCanonicalName(eventClass), "event"));
+ JavaElementFactory.newArgument(type, "event"));
methods.add(method);
}
try {
@@ -783,6 +789,7 @@
String modelType = compiler.getImportManager().getType(modelClassName);
String code = objectCode + (eventInfo.getModelName() != null ? "." + modelMemberName + "()" : "");
String eol = JAXXCompiler.getLineSeparator();
+ String jaxxUtilPrefix = compiler.getImportManager().getType(JAXXUtil.class);
result.append(modelType).append(" $target = (").append(modelType).append(") $bindingSources.remove(\"").append(code).append("\");").append(eol);
//TC-20091105 test if $target is not null
result.append("if ($target != null) {").append(eol);
@@ -791,7 +798,7 @@
String listenerType = compiler.getImportManager().getType(listenerClass.getName());
result.append(" $target.");
result.append(eventInfo.getRemoveMethod());
- result.append("( JAXXUtil.getEventListener(");
+ result.append("( ").append(jaxxUtilPrefix).append(".getEventListener(");
result.append(listenerType);
result.append(".class, ");
result.append("this");
@@ -802,7 +809,7 @@
result.append("}").append(eol);
if (eventInfo.getModelName() != null) {
result.append(getRemoveMemberListenerCode(handler, objectCode, "get" + StringUtils.capitalize(eventInfo.getModelName()),
- JAXXUtil.class.getSimpleName() + ".getDataBindingUpdateListener(" + compiler.getOutputClassName() + ".this, " + constantId + ")",
+ jaxxUtilPrefix + ".getDataBindingUpdateListener(" + compiler.getOutputClassName() + ".this, " + constantId + ")",
compiler));
}
return result.toString();
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/DefaultJAXXBindingWriter.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/DefaultJAXXBindingWriter.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/DefaultJAXXBindingWriter.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -27,8 +27,8 @@
import jaxx.compiler.JAXXCompiler;
import jaxx.compiler.binding.DataBinding;
import jaxx.compiler.binding.DataListener;
-import jaxx.compiler.finalizers.AbstractFinalizer;
import jaxx.compiler.finalizers.DefaultFinalizer;
+import jaxx.compiler.finalizers.JAXXCompilerFinalizer;
import jaxx.compiler.java.JavaElementFactory;
import jaxx.compiler.java.JavaFileGenerator;
import jaxx.compiler.java.JavaMethod;
@@ -97,21 +97,21 @@
List<JavaMethod> bMethods = binding.getMethods();
bMethods.add(0, JavaElementFactory.newMethod(
PUBLIC,
- AbstractFinalizer.TYPE_VOID,
+ JAXXCompilerFinalizer.TYPE_VOID,
DefaultFinalizer.METHOD_NAME_REMOVE_DATA_BINDING,
removeBuffer.toString(),
true)
);
bMethods.add(0, JavaElementFactory.newMethod(
PUBLIC,
- AbstractFinalizer.TYPE_VOID,
+ JAXXCompilerFinalizer.TYPE_VOID,
DefaultFinalizer.METHOD_NAME_PROCESS_DATA_BINDING,
binding.getProcessDataBinding(),
true)
);
bMethods.add(0, JavaElementFactory.newMethod(
PUBLIC,
- AbstractFinalizer.TYPE_VOID,
+ JAXXCompilerFinalizer.TYPE_VOID,
DefaultFinalizer.METHOD_NAME_APPLY_DATA_BINDING,
addBuffer.toString(),
true)
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/SimpleJAXXObjectBindingWriter.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/SimpleJAXXObjectBindingWriter.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/writers/SimpleJAXXObjectBindingWriter.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -27,8 +27,8 @@
import jaxx.compiler.binding.DataBinding;
import jaxx.compiler.binding.DataListener;
import jaxx.compiler.binding.JavaParserUtil;
-import jaxx.compiler.finalizers.AbstractFinalizer;
import jaxx.compiler.finalizers.DefaultFinalizer;
+import jaxx.compiler.finalizers.JAXXCompilerFinalizer;
import jaxx.compiler.java.JavaElementFactory;
import jaxx.compiler.java.JavaFileGenerator;
import jaxx.compiler.java.JavaMethod;
@@ -98,7 +98,7 @@
JavaMethod method = JavaElementFactory.newMethod(
Modifier.PUBLIC,
- AbstractFinalizer.TYPE_VOID,
+ JAXXCompilerFinalizer.TYPE_VOID,
DefaultFinalizer.METHOD_NAME_PROCESS_DATA_BINDING,
binding.getProcessDataBinding(),
true
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -47,6 +47,7 @@
import jaxx.runtime.css.Stylesheet;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.java.extension.ImportsManager;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
@@ -358,13 +359,18 @@
String eol = JAXXCompiler.getLineSeparator();
DataBindingHelper bindingHelper = compiler.getBindingHelper();
+ String pseudoClassesPrefix = null;
+ String dataBindingPrefix = null;
+ ImportsManager importManager = compiler.getImportManager();
+
if (!properties.isEmpty()) {
- compiler.getImportManager().addImport(Pseudoclasses.class);
- compiler.getImportManager().addImport(jaxx.runtime.css.DataBinding.class);
+ pseudoClassesPrefix = importManager.getType(Pseudoclasses.class);
+ dataBindingPrefix = importManager.getType(jaxx.runtime.css.DataBinding.class);
}
- String outputClassName = compiler.getImportManager().getType(compiler.getOutputClassName());
-
+ String outputClassName =
+ importManager.getType(compiler.getOutputClassName());
+
for (Map.Entry<String, String> e : properties.entrySet()) {
String property = e.getKey();
ClassDescriptor type = handler.getPropertyType(object,
@@ -378,9 +384,11 @@
String dataBindingCode =
DataBindingHelper.processDataBindings(e.getValue());
String valueCode;
+ String simpleType = importManager.getType(JAXXCompiler.getCanonicalName(type));
+
if (dataBindingCode != null) {
String code = object.getId() + "." + property + "." + priority;
- valueCode = "new " + jaxx.runtime.css.DataBinding.class.getSimpleName() + "(" +
+ valueCode = "new " + dataBindingPrefix + "(" +
TypeManager.getJavaCode(code) + ")";
DataBinding binding = new DataBinding(
code,
@@ -388,7 +396,8 @@
handler.getSetPropertyCode(
object.getJavaCode(),
property,
- "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode,
+ "(" + simpleType + ") " + dataBindingCode,
+// "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode,
compiler
),
false
@@ -417,7 +426,7 @@
}
buffer.append("value = ");
- buffer.append(Pseudoclasses.class.getSimpleName());
+ buffer.append(pseudoClassesPrefix);
buffer.append(".applyProperty(");
buffer.append(outputClassName);
buffer.append(".this, ");
@@ -427,7 +436,7 @@
buffer.append(", ");
buffer.append(valueCode);
buffer.append(", ");
- buffer.append(Pseudoclasses.class.getSimpleName());
+ buffer.append(pseudoClassesPrefix);
buffer.append(".wrap(");
buffer.append(handler.getGetPropertyCode(object.getJavaCode(), property, compiler));
buffer.append("), ");
@@ -436,11 +445,10 @@
buffer.append(eol);
buffer.append("if (!(value instanceof ");
- buffer.append(jaxx.runtime.css.DataBinding.class.getSimpleName());
+ buffer.append(dataBindingPrefix);
buffer.append(")) {");
buffer.append(eol);
- String simpleType = compiler.getImportManager().getType(JAXXCompiler.getCanonicalName(type));
String unwrappedValue = unwrap(type, "value");
buffer.append(" ");
buffer.append(handler.getSetPropertyCode(object.getJavaCode(), property, "(" + simpleType + ") " + unwrappedValue, compiler));
@@ -463,6 +471,7 @@
for (Map.Entry<String, String> e : properties.entrySet()) {
String property = e.getKey();
ClassDescriptor type = handler.getPropertyType(object, property, compiler);
+ String simpleType = importManager.getType(JAXXCompiler.getCanonicalName(type));
if (log.isDebugEnabled()) {
log.debug("will test if databinding : [" + e.getValue() + "] type=" + type);
}
@@ -470,14 +479,14 @@
String valueCode;
if (dataBindingCode != null) {
String code = object.getId() + "." + property + "." + priority;
- valueCode = "new " + jaxx.runtime.css.DataBinding.class.getSimpleName() + "(" + TypeManager.getJavaCode(code) + ")";
+ valueCode = "new " + dataBindingPrefix + "(" + TypeManager.getJavaCode(code) + ")";
DataBinding binding = new DataBinding(
code,
dataBindingCode,
handler.getSetPropertyCode(
object.getJavaCode(),
property,
- "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode,
+ "(" + simpleType + ") " + dataBindingCode,
compiler
),
false
@@ -485,7 +494,10 @@
bindingHelper.registerDataBinding(binding);
} else {
try {
- Class<?> typeClass = type != null ? ClassDescriptorHelper.getClass(type.getName(), type.getClassLoader()) : null;
+ Class<?> typeClass =
+ type != null ?
+ ClassDescriptorHelper.getClass(type.getName(), type.getClassLoader()) :
+ null;
valueCode = TypeManager.getJavaCode(TypeManager.convertFromString(e.getValue(), typeClass));
} catch (ClassNotFoundException ex) {
compiler.reportError("could not find class " + type.getName());
@@ -496,7 +508,7 @@
buffer.append("Object ");
valueDeclared = true;
}
- buffer.append("value = ").append(Pseudoclasses.class.getSimpleName()).append(".removeProperty(");
+ buffer.append("value = ").append(pseudoClassesPrefix).append(".removeProperty(");
buffer.append(outputClassName);
buffer.append(".this, ");
@@ -505,7 +517,7 @@
buffer.append(TypeManager.getJavaCode(property));
buffer.append(", ");
buffer.append(valueCode);
- buffer.append(", ").append(Pseudoclasses.class.getSimpleName()).append(".wrap(");
+ buffer.append(", ").append(pseudoClassesPrefix).append(".wrap(");
buffer.append(handler.getGetPropertyCode(object.getJavaCode(),
property,
compiler)
@@ -516,11 +528,11 @@
buffer.append(eol);
buffer.append("if (!(value instanceof ");
- buffer.append(jaxx.runtime.css.DataBinding.class.getSimpleName());
+ buffer.append(dataBindingPrefix);
buffer.append(")) {");
buffer.append(eol);
- String simpleType = compiler.getImportManager().getType(JAXXCompiler.getCanonicalName(type));
+// String simpleType = importManager.getType(JAXXCompiler.getCanonicalName(type));
String unwrappedValue = unwrap(type, "value");
buffer.append(" ");
buffer.append(handler.getSetPropertyCode(
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/DefaultCompiledObjectDecorator.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -29,12 +29,14 @@
import jaxx.compiler.CompiledObjectDecorator;
import jaxx.compiler.CompilerException;
import jaxx.compiler.JAXXCompiler;
+import jaxx.compiler.finalizers.JAXXCompilerFinalizer;
import jaxx.compiler.java.JavaElementFactory;
import jaxx.compiler.java.JavaField;
import jaxx.compiler.java.JavaFile;
import jaxx.compiler.java.JavaMethod;
import jaxx.compiler.script.ScriptInitializer;
import jaxx.compiler.types.TypeManager;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -112,12 +114,17 @@
int access = id.startsWith("$") ? Modifier.PRIVATE :
Modifier.PROTECTED;
if (root.equals(object)) {
+
+ // add the generic type if required
+ String type = className + root.getGenericTypes();
+
JavaField field = JavaElementFactory.newField(access,
- className,
+ type,
id,
false,
"this"
);
+
javaFile.addSimpleField(field);
} else {
@@ -144,7 +151,7 @@
JavaMethod javaMethod = JavaElementFactory.newMethod(
Modifier.PROTECTED,
- "void",
+ JAXXCompilerFinalizer.TYPE_VOID,
object.getCreationMethodName(),
code,
override
@@ -193,8 +200,10 @@
// on special init, use constructor
String canonicalName = JAXXCompiler.getCanonicalName(object);
- init.append("new ").append(canonicalName).append("(");
+ String impl = compiler.getImportManager().getType(canonicalName);
+ init.append("new ").append(impl).append("(");
+
if (constructorParams != null) {
init.append(constructorParams);
}
@@ -223,7 +232,7 @@
}
String initCode = object.getInitializationCode(compiler);
- if (initCode != null && initCode.length() > 0) {
+ if (StringUtils.isNotEmpty(initCode)) {
result.append(eol).append(initCode);
}
@@ -274,7 +283,7 @@
" return;" + eol + "}" + eol + additionCode;
javaFile.addMethod(JavaElementFactory.newMethod(
Modifier.PROTECTED,
- "void",
+ JAXXCompilerFinalizer.TYPE_VOID,
object.getAdditionMethodName(),
additionCode,
false)
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -28,10 +28,12 @@
import jaxx.compiler.CompiledObject;
import jaxx.compiler.CompilerConfiguration;
import jaxx.compiler.JAXXCompiler;
+import jaxx.compiler.finalizers.JAXXCompilerFinalizer;
import jaxx.compiler.java.JavaElementFactory;
import jaxx.compiler.java.JavaFile;
import jaxx.runtime.swing.help.JAXXHelpUI;
+import java.awt.Component;
import java.lang.reflect.Modifier;
import java.util.HashSet;
import java.util.Iterator;
@@ -84,7 +86,7 @@
packageName,
className,
fullClassName)
- ;
+ ;
CompilerConfiguration options = compiler.getConfiguration();
if (options.isGenerateHelp()) {
@@ -92,28 +94,27 @@
// add JAXXHelpUI interface
Class<?> validatorInterface = JAXXHelpUI.class;
String helpBrokerFQN = getBrokerFQN(compiler);
- javaFile.addInterface(
- JAXXCompiler.getCanonicalName(validatorInterface) + "<" +
- helpBrokerFQN + ">");
+ javaFile.addInterface(validatorInterface.getName() +
+ "<" + helpBrokerFQN + ">");
javaFile.addMethod(JavaElementFactory.newMethod(
Modifier.PUBLIC,
- "void",
+ JAXXCompilerFinalizer.TYPE_VOID,
"registerHelpId",
"broker.installUI(component, helpId);",
true,
newArgument(helpBrokerFQN, "broker"),
- newArgument("java.awt.Component", "component"),
- newArgument("String", "helpId"))
+ newArgument(Component.class.getName(), "component"),
+ newArgument(JAXXCompilerFinalizer.TYPE_STRING, "helpId"))
);
javaFile.addMethod(JavaElementFactory.newMethod(
Modifier.PUBLIC,
- "void",
+ JAXXCompilerFinalizer.TYPE_VOID,
"showHelp",
"getBroker().showHelp(this, helpId);",
true,
- newArgument("String", "helpId"))
+ newArgument(JAXXCompilerFinalizer.TYPE_STRING, "helpId"))
);
StringBuilder buffer = new StringBuilder();
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/AbstractFinalizer.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/AbstractFinalizer.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/AbstractFinalizer.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -15,14 +15,6 @@
*/
public abstract class AbstractFinalizer implements JAXXCompilerFinalizer {
- public static final String TYPE_STRING = "String";
-
- public static final String TYPE_VOID = "void";
-
- public static final String TYPE_BOOLEAN = "boolean";
-
- public static final String TYPE_OBJECT = "Object";
-
/**
* Clones the given {@code field} and adds it to the {@code file} as a
* property via the method {@link JavaFile#addField(JavaField)}.
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/DefaultFinalizer.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/DefaultFinalizer.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/DefaultFinalizer.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -53,15 +53,17 @@
import jaxx.runtime.JAXXUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.java.extension.ImportsManager;
import java.awt.Container;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.TreeMap;
import static java.lang.reflect.Modifier.FINAL;
import static java.lang.reflect.Modifier.PRIVATE;
@@ -149,10 +151,11 @@
*/
protected static final JavaField ACTIVE_BINDINGS_FIELD = newField(
PROTECTED,
- "java.util.List<" + TYPE_OBJECT + ">",
+ List.class.getName() + "<" + TYPE_OBJECT + ">",
FIELD_NAME_$ACTIVE_BINDINGS,
false,
- "new java.util.ArrayList<" + TYPE_OBJECT + ">()"
+ "new %s<" + TYPE_OBJECT + ">()",
+ ArrayList.class.getName()
);
/**
@@ -160,10 +163,11 @@
*/
protected static final JavaField BINDING_SOURCES_FIELD = newField(
PROTECTED,
- "java.util.Map<" + TYPE_STRING + ", " + TYPE_OBJECT + ">",
+ Map.class.getName() + "<" + TYPE_STRING + ", " + TYPE_OBJECT + ">",
FIELD_NAME_$BINDING_SOURCES,
false,
- "new java.util.HashMap<" + TYPE_STRING + ", " + TYPE_OBJECT + ">()"
+ "new %s<" + TYPE_STRING + ", " + TYPE_OBJECT + ">()",
+ HashMap.class.getName()
);
/**
@@ -171,10 +175,11 @@
*/
protected static final JavaField OBJECT_MAP_FIELD = newField(
PROTECTED,
- "java.util.Map<" + TYPE_STRING + ", " + TYPE_OBJECT + ">",
+ Map.class.getName() + "<" + TYPE_STRING + ", " + TYPE_OBJECT + ">",
FIELD_NAME_$OBJECT_MAP,
true,
- "new java.util.HashMap<" + TYPE_STRING + ", " + TYPE_OBJECT + ">()"
+ "new %s<" + TYPE_STRING + ", " + TYPE_OBJECT + ">()",
+ HashMap.class.getName()
);
/**
@@ -203,9 +208,10 @@
*/
protected static final JavaField PREVIOUS_VALUES_FIELD = newField(
PROTECTED,
- "java.util.Map<?,?>", FIELD_NAME_$PREVIOUS_VALUES,
+ Map.class.getName() + "<?,?>", FIELD_NAME_$PREVIOUS_VALUES,
false,
- "new java.util.HashMap<" + TYPE_OBJECT + ", " + TYPE_OBJECT + ">()"
+ "new %s<" + TYPE_OBJECT + ", " + TYPE_OBJECT + ">()",
+ HashMap.class.getName()
);
/**
@@ -213,10 +219,12 @@
*/
protected static final JavaField BINDINGS_FIELD = newField(
PROTECTED | FINAL,
- "java.util.Map<" + TYPE_STRING + ", " + JAXXBinding.class.getName() + ">",
+ Map.class.getName() + "<" + TYPE_STRING + ", " + JAXXBinding.class.getName() + ">",
FIELD_NAME_$BINDINGS,
false,
- "new java.util.TreeMap<" + TYPE_STRING + ", JAXXBinding>()"
+ "new %s<" + TYPE_STRING + ", %s>()",
+ TreeMap.class.getName(),
+ JAXXBinding.class.getName()
);
/**
@@ -310,7 +318,8 @@
"getParentContainer",
"return SwingUtil.getParentContainer(source, clazz);",
true,
- newArgument("Object", "source"), newArgument("Class<O>", "clazz")
+ newArgument(TYPE_OBJECT, "source"),
+ newArgument("Class<O>", "clazz")
);
/**
@@ -367,7 +376,7 @@
METHOD_NAME_REGISTER_DATA_BINDING,
FIELD_NAME_$BINDINGS + ".put(binding.getId(), binding);",
true,
- newArgument(JAXXBinding.class.getSimpleName(), "binding")
+ newArgument(JAXXBinding.class.getName(), "binding")
);
/**
@@ -375,7 +384,7 @@
*/
protected static final JavaMethod GET_DATA_BINDING_METHOD = newMethod(
PUBLIC,
- JAXXBinding.class.getSimpleName() + "[]",
+ JAXXBinding.class.getName() + "[]",
"getDataBindings",
"return " + FIELD_NAME_$BINDINGS + ".values().toArray(new " + JAXXBinding.class.getSimpleName() + "[" + FIELD_NAME_$BINDINGS + ".size()]);",
true
@@ -542,10 +551,10 @@
// add JAXXObject support
addField(javaFile, OBJECT_MAP_FIELD);
- javaFile.addMethod(GET_OBJECT_BY_ID_METHOD);
addSimpleField(javaFile, BINDING_SOURCES_FIELD);
addSimpleField(javaFile, ACTIVE_BINDINGS_FIELD);
addSimpleField(javaFile, BINDINGS_FIELD);
+ javaFile.addMethod(GET_OBJECT_BY_ID_METHOD);
javaFile.addMethod(REGISTER_DATA_BINDING_METHOD);
javaFile.addMethod(GET_DATA_BINDING_METHOD);
@@ -600,7 +609,7 @@
}
}
if (!overrideContextInitialized) {
- addSimpleField(javaFile, CONTEXT_INITIALIZED);
+ //addSimpleField(javaFile, CONTEXT_INITIALIZED);
}
JavaField descriptorField =
createJAXXObjectDescriptorField(compiler, javaFile);
@@ -676,7 +685,7 @@
int nbBindings = bindings.length;
boolean hasDataBindings = nbBindings > 0;
- javaFile.addMethod(createInitializer(compiler, nbBindings));
+ javaFile.addMethod(createInitializer(compiler, nbBindings, overrideContextInitialized));
addMethod(javaFile, GET_JAXX_OBJECT_DESCRIPTOR_METHOD);
@@ -864,8 +873,6 @@
protected void addEventHandlers(JAXXCompiler compiler,
JavaFile javaFile) {
- ImportsManager importManager = javaFile.getImportManager();
-
for (Map.Entry<String, Map<ClassDescriptor, List<EventHandler>>> e1 : compiler.getEventHandlers().entrySet()) {
// outer loop is iterating over different objects (well, technically, different Java expressions)
@@ -878,24 +885,30 @@
String methodName = compiler.getEventHandlerMethodName(handler);
MethodDescriptor listenerMethod = handler.getListenerMethod();
if (listenerMethod.getParameterTypes().length != 1) {
- throw new CompilerException("Expected event handler " + listenerMethod.getName() + " of class " + handler.getListenerClass() + " to have exactly one argument");
+ throw new CompilerException(
+ "Expected event handler " +
+ listenerMethod.getName() + " of class " +
+ handler.getListenerClass() +
+ " to have exactly one argument"
+ );
}
- ClassDescriptor eventType = listenerMethod.getParameterTypes()[0];
+ ClassDescriptor eventType =
+ listenerMethod.getParameterTypes()[0];
- String type = importManager.getType(
- JAXXCompiler.getCanonicalName(eventType));
-
JavaArgument argument =
JavaElementFactory.newArgument(
- type,
+ JAXXCompiler.getCanonicalName(eventType),
"event"
);
+
+ String body = JavaFileGenerator.addDebugLoggerInvocation(compiler, "event");
+ body += handler.getJavaCode();
javaFile.addMethod(JavaElementFactory.newMethod(
PUBLIC,
TYPE_VOID,
methodName,
- handler.getJavaCode(),
+ body,
false,
argument)
);
@@ -916,9 +929,9 @@
code.append(");");
code.append(eol);
} else {
- if (superclassIsJAXXObject) {
- code.append(" super();").append(eol);
- }
+// if (superclassIsJAXXObject) {
+// code.append(" super();").append(eol);
+// }
}
code.append(METHOD_NAME_$INITIALIZE + "();");
code.append(eol);
@@ -953,7 +966,8 @@
}
}
if (!superclassIsJAXXObject) {
- code.append(JAXXUtil.class.getSimpleName());
+ String prefix = compiler.getImportManager().getType(JAXXUtil.class);
+ code.append(prefix);
code.append(".initContext(this, " + PARAMETER_NAME_PARENT_CONTEXT + ");");
code.append(eol);
}
@@ -973,29 +987,26 @@
}
public JavaMethod createInitializer(JAXXCompiler compiler,
- int nbBindings) throws CompilerException {
+ int nbBindings,
+ boolean overrideContextInitialized) throws CompilerException {
String eol = JAXXCompiler.getLineSeparator();
StringBuffer code = new StringBuffer();
CompiledObject root = compiler.getRootObject();
- code.append("if (" + FIELD_NAME_ALL_COMPONENTS_CREATED + " || !" + FIELD_NAME_CONTEXT_INITIALIZED + ") {");
+ code.append("if (" + FIELD_NAME_ALL_COMPONENTS_CREATED);
+ if (overrideContextInitialized) {
+ code.append("|| !" + FIELD_NAME_CONTEXT_INITIALIZED);
+ }
+ code.append(") {");
code.append(eol);
code.append(" return;").append(eol);
code.append("}").append(eol);
-// // register bindings before anything else
-// if (nbBindings > 0) {
-// // ajout invocation a la methode d'enregistrement des bindings
-// code.append("// registers ").append(nbBindings).append(" data bindings").append(eol);
-// code.append(METHOD_NAME_$REGISTER_DEFAULT_BINDINGS + "();").append(eol);
-// }
-// String dataBindingsCode = createRegisterDefaultBindingsMethod(compiler);
-// if (dataBindingsCode != null && !dataBindingsCode.isEmpty()) {
-// code.append(dataBindingsCode).append(eol);
-// }
- //TODO-TC20091025 we should remove this if no used anywhere
+ code.append(JavaFileGenerator.addDebugLoggerInvocation(compiler, "this"));
+
code.append(FIELD_NAME_$OBJECT_MAP + ".put(");
- code.append(TypeManager.getJavaCode(root.getId()));
- code.append(", this);");
- code.append(eol);
+ String rootId = root.getId();
+ code.append(TypeManager.getJavaCode(rootId));
+// code.append(", this);");
+ code.append(", ").append(rootId).append(");").append(eol);
Iterator<CompiledObject> i = compiler.getObjectCreationOrder();
boolean lastWasMethodCall = false;
@@ -1049,6 +1060,7 @@
code.append(FIELD_NAME_ALL_COMPONENTS_CREATED + " = true;");
String eol = JAXXCompiler.getLineSeparator();
code.append(eol);
+ code.append(JavaFileGenerator.addDebugLoggerInvocation(compiler, "this"));
for (CompiledObject object : compiler.getObjects().values()) {
CompiledObjectDecorator decorator = object.getDecorator();
code.append(decorator.createCompleteSetupMethod(compiler,
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/JAXXCompilerFinalizer.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/JAXXCompilerFinalizer.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/JAXXCompilerFinalizer.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -38,6 +38,14 @@
*/
public interface JAXXCompilerFinalizer {
+ String TYPE_STRING = "String";
+
+ String TYPE_VOID = "void";
+
+ String TYPE_BOOLEAN = "boolean";
+
+ String TYPE_OBJECT = "Object";
+
/**
* Test if the finalizer must be apply on the given {@code compiler}.
*
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -124,7 +124,7 @@
compiler.getJavaFile().addMethod(JavaElementFactory.newMethod(
Modifier.PUBLIC,
- AbstractFinalizer.TYPE_VOID,
+ TYPE_VOID,
"registerValidatorFields",
VALIDATOR_UTIL_PREFIX + "installFields(this);",
true)
@@ -184,7 +184,7 @@
initializer,
true,
JavaElementFactory.newArgument(
- AbstractFinalizer.TYPE_STRING, "validatorId"))
+ TYPE_STRING, "validatorId"))
);
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElementFactory.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElementFactory.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElementFactory.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -46,12 +46,14 @@
String returnType,
String name,
boolean override,
- String initializer) {
+ String initializer,
+ String... initializerTypes) {
return new JavaField(modifiers,
returnType,
name,
override,
- initializer
+ initializer,
+ initializerTypes
);
}
@@ -97,7 +99,8 @@
field.getType(),
field.getName(),
field.isOverride(),
- field.getInitializer());
+ field.getInitializer(),
+ field.getInitializerTypes());
}
public static JavaMethod cloneMethod(JavaMethod method) {
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaField.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaField.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaField.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -46,6 +46,14 @@
/** initializer of field (can be null) */
private String initializer;
+ /**
+ * Types to apply to the initializer to try use simple type names.
+ *
+ * @since 2.4
+ */
+ private String[] initializerTypes;
+
+
/** flag to known where a field overrides a super-field */
private boolean override;
@@ -73,20 +81,23 @@
* value of the field as it would appear in Java source code, or <code>null</code> to leave it at the
* default value.
*
- * @param modifiers the modifier keywords that should appear as part of the field's declaration
- * @param type the type of the field as it would appear in Java source code
- * @param name the field's name
- * @param override {@code true} if method should be marked as overriden
- * @param initializer the initial value of the field, as it would appear in Java source code
+ * @param modifiers the modifier keywords that should appear as part of the field's declaration
+ * @param type the type of the field as it would appear in Java source code
+ * @param name the field's name
+ * @param override {@code true} if method should be marked as overriden
+ * @param initializer the initial value of the field, as it would appear in Java source code
+ * @param initializerTypes initializer types to use
*/
JavaField(int modifiers,
String type,
String name,
boolean override,
- String initializer) {
+ String initializer,
+ String... initializerTypes) {
super(modifiers, name);
this.type = type;
this.initializer = initializer;
+ this.initializerTypes = initializerTypes;
this.override = override;
}
@@ -107,6 +118,14 @@
return initializer;
}
+ public String[] getInitializerTypes() {
+ return initializerTypes;
+ }
+
+ public boolean hasInitializerTypes() {
+ return initializerTypes != null && initializerTypes.length > 0;
+ }
+
@Override
public int compareTo(JavaField o) {
return JavaElementComparator.compare(this, o);
@@ -122,6 +141,10 @@
this.type = type;
}
+ public void setInitializer(String initializer) {
+ this.initializer = initializer;
+ }
+
public enum FieldOrder {
staticsBean(Modifier.STATIC | Modifier.PUBLIC,
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFile.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFile.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFile.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -25,6 +25,7 @@
package jaxx.compiler.java;
+import jaxx.compiler.finalizers.JAXXCompilerFinalizer;
import jaxx.compiler.types.TypeManager;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
@@ -345,8 +346,13 @@
// add full javabean support accessor + mutator + constant with
// name of property to make it easier to use
// compute the property constant
- String constantId = TypeManager.convertVariableNameToConstantName("property" + capitalizedName);
- addSimpleField(JavaElementFactory.newField(Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL, String.class.getSimpleName(), constantId, false, "\"" + id + "\""));
+ String constantId = TypeManager.convertVariableNameToConstantName(
+ "property" + capitalizedName);
+ addSimpleField(JavaElementFactory.newField(
+ Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL,
+ String.class.getSimpleName(),
+ constantId, false, "\"" + id + "\"")
+ );
if (Boolean.class.getSimpleName().equals(field.getType())) {
String content = String.format(BOOLEAN_GETTER_PATTERN, id);
@@ -363,7 +369,7 @@
JavaArgument arg = JavaElementFactory.newArgument(field.getType(), id);
JavaMethod method = JavaElementFactory.newMethod(
Modifier.PUBLIC,
- "void",
+ JAXXCompilerFinalizer.TYPE_VOID,
"set" + capitalizedName,
content,
field.isOverride(),
@@ -381,8 +387,16 @@
String type = importManager.getType(fieldType);
field.setType(type);
} catch (Exception e) {
- log.error("Could not determine simple name of field [" + field.getName() + "] type " + fieldType);
+ log.error("Could not determine simple name of field [" +
+ field.getName() + "] type " + fieldType);
}
+ if (field.hasInitializerTypes()) {
+ String code = simplifyCode(field.getInitializer(), field.getInitializerTypes());
+ if (log.isDebugEnabled()) {
+ log.debug("Use simplify text : "+code);
+ }
+ field.setInitializer(code);
+ }
fields.add(field);
}
@@ -402,6 +416,34 @@
rawBodyCode.append(bodyCode);
}
+ /**
+ * Try to use a simple type fro the given {@code type} and apply it on the
+ * given {@code pattern}.
+ * <p/>
+ * Example :
+ * <pre>
+ * type = java.io.File, pattern = new %s("");
+ * returns : new File("") or new java.io.File("") if importManager can
+ * not import java.io.File
+ * </pre>
+ *
+ * @param types the types to simplify
+ * @param pattern the pattern where to apply simple types
+ * @return the input pattern with most simplest types
+ * @since 2.4
+ */
+ public String simplifyCode(String pattern,
+ String... types) {
+ String[] simpleTypes = new String[types.length];
+ for (int i = 0; i < types.length; i++) {
+ String type = types[i];
+ String simpleType = importManager.getType(type);
+ simpleTypes[i] = simpleType;
+ }
+ String format = String.format(pattern, (Object[]) simpleTypes);
+ return format;
+ }
+
public void clear() {
importManager.clearImports();
if (interfaces != null) {
@@ -421,11 +463,4 @@
}
}
-// public void addInterface(String canonicalName) {
-// if (interfaces == null || !interfaces.contains(canonicalName)) {
-// getInterfaces().add(canonicalName);
-// }
-// }
-
-
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -81,6 +81,23 @@
this.verbose = verbose && log.isDebugEnabled();
}
+ public static String addDebugLoggerInvocation(JAXXCompiler compiler,
+ String call) {
+ String eol = JAXXCompiler.getLineSeparator();
+ StringBuilder builder = new StringBuilder();
+ if (!compiler.getConfiguration().isAddLogger()) {
+ return "";
+ } else {
+ builder.append("if (log.isDebugEnabled()) {");
+ builder.append(eol);
+ builder.append(" log.debug(").append(call).append(");");
+ builder.append(eol);
+ builder.append("}");
+ builder.append(eol);
+ }
+ return builder.toString();
+ }
+
public String generateImport(String anImport) {
return "import " + anImport + ';' + eol;
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultComponentHandler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -222,19 +222,20 @@
return id + ".setLocation(" + id + ".getX(), " + valueCode + ");";
}
if (WIDTH_ATTRIBUTE.equals(name)) {
+ compiler.setNeedSwingUtil(true);
// need to optimize case when both width and height are being assigned
return SwingUtil.class.getSimpleName() + ".setComponentWidth(" + id + "," + valueCode + ");";
}
if (HEIGHT_ATTRIBUTE.equals(name)) {
+ compiler.setNeedSwingUtil(true);
return SwingUtil.class.getSimpleName() + ".setComponentHeight(" + id + "," + valueCode + ");";
}
if (FONT_FACE_ATTRIBUTE.equals(name)) {
- compiler.addImport(Font.class);
return "if (" + id + ".getFont() != null) {\n " + id + ".setFont(new Font(" + valueCode + ", " + id + ".getFont().getStyle(), " + id + ".getFont().getSize()));\n}";
}
if (FONT_SIZE_ATTRIBUTE.equals(name)) {
- compiler.addImport(Font.class);
- return "if (" + id + ".getFont() != null) {\n " + id + ".setFont(" + id + ".getFont().deriveFont((float) " + valueCode + "));\n}";
+ return "if (" + id + ".getFont() != null) {\n " + id + ".setFont(" + id + ".getFont().deriveFont(" + valueCode + "));\n}";
+// return "if (" + id + ".getFont() != null) {\n " + id + ".setFont(" + id + ".getFont().deriveFont((float) " + valueCode + "));\n}";
}
if (FONT_WEIGHT_ATTRIBUTE.equals(name)) {
if (valueCode.equals("\"bold\"")) {
@@ -288,7 +289,11 @@
}
@Override
- public void setAttribute(CompiledObject object, String propertyName, String stringValue, boolean inline, JAXXCompiler compiler) {
+ public void setAttribute(CompiledObject object,
+ String propertyName,
+ String stringValue,
+ boolean inline,
+ JAXXCompiler compiler) {
if (propertyName.startsWith("_")) {
// client property
@@ -311,6 +316,7 @@
if (!(stringValue.startsWith("{") || stringValue.endsWith("}"))) {
// this is a customized icon, add the icon creation code
if (compiler.getConfiguration().isUseUIManagerForIcon()) {
+ compiler.setNeedSwingUtil(true);
stringValue = "{" + SwingUtil.class.getSimpleName() + ".getUIManagerIcon(\"" + stringValue + "\")}";
} else {
stringValue = "{" + SwingUtil.class.getSimpleName() + ".createImageIcon(\"" + stringValue + "\")}";
@@ -325,6 +331,7 @@
}
propertyName = ICON_ATTRIBUTE;
if (compiler.getConfiguration().isUseUIManagerForIcon()) {
+ compiler.setNeedSwingUtil(true);
stringValue = "{" + SwingUtil.class.getSimpleName() + ".getUIManagerActionIcon(\"" + stringValue + "\")}";
} else {
stringValue = "{" + SwingUtil.class.getSimpleName() + ".createActionIcon(\"" + stringValue + "\")}";
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -45,6 +45,7 @@
import jaxx.runtime.JAXXObject;
import jaxx.runtime.JAXXObjectDescriptor;
import jaxx.runtime.css.Stylesheet;
+import org.apache.commons.lang.StringUtils;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
@@ -473,7 +474,7 @@
compiler.checkOverride(object);
String constructorParams =
tag.getAttribute(CONSTRUCTOR_PARAMS_ATTRIBUTE);
- if (constructorParams != null && constructorParams.length() > 0) {
+ if (StringUtils.isNotEmpty(constructorParams)) {
object.setConstructorParams(
compiler.getScriptManager().trimScript(constructorParams));
}
@@ -745,26 +746,6 @@
return 0;
}
-// public String getApplyPropertyOrDataBindingCode(CompiledObject object, String propertyName, String stringValue, JAXXCompiler compiler) {
-// ClassDescriptor type = getPropertyType(object, propertyName, compiler);
-// String binding = compiler.processDataBindings(stringValue);
-// if (binding != null) {
-// return "";
-// }
-// try {
-// Class<?> typeClass = type != null ? ClassDescriptorHelper.getClass(type.getName(), type.getClassLoader()) : null;
-// Object value = convertFromString(propertyName, stringValue, typeClass);
-// return getSetPropertyCode(object.getJavaCode(), propertyName, compiler.getJavaCode(value), compiler);
-// } catch (NumberFormatException e) {
-// compiler.reportError("could not convert literal string '" + stringValue + "' to type " + type.getName());
-// } catch (IllegalArgumentException e) {
-// compiler.reportError("could not convert literal string '" + stringValue + "' to type " + type.getName());
-// } catch (ClassNotFoundException e) {
-// compiler.reportError("could not find class " + type.getName());
-// }
-// return "";
-// }
-
/**
* Set a single property on an object. The value may be either a simple value or contain data binding expressions.
* Simple values are first converted to the property's type using {@link #convertFromString}.
@@ -972,10 +953,10 @@
String name,
String value,
JAXXCompiler compiler) {
- JAXXEventSetDescriptor JAXXEventSetDescriptor = events.get(name);
- if (JAXXEventSetDescriptor != null) {
+ JAXXEventSetDescriptor descriptorSet = events.get(name);
+ if (descriptorSet != null) {
MethodDescriptor[] listenerMethods =
- JAXXEventSetDescriptor.getListenerMethods();
+ descriptorSet.getListenerMethods();
MethodDescriptor listenerMethod = null;
for (MethodDescriptor listenerMethod1 : listenerMethods) {
if (listenerMethod1.getName().equals(name)) {
@@ -990,7 +971,7 @@
value = compiler.preprocessScript(value);
object.addEventHandler(
name,
- JAXXEventSetDescriptor.getAddListenerMethod(),
+ descriptorSet.getAddListenerMethod(),
listenerMethod,
value,
compiler
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JSpinnerHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JSpinnerHandler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JSpinnerHandler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -25,8 +25,8 @@
package jaxx.compiler.tags.swing;
+import jaxx.compiler.CompiledObject;
import jaxx.compiler.CompilerException;
-import jaxx.compiler.CompiledObject;
import jaxx.compiler.JAXXCompiler;
import jaxx.compiler.reflect.ClassDescriptor;
import jaxx.compiler.reflect.ClassDescriptorHelper;
@@ -34,12 +34,15 @@
import org.w3c.dom.Element;
import javax.swing.JSpinner;
+import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeListener;
public class JSpinnerHandler extends DefaultComponentHandler {
public static String MINIMUM_PROPERTY = "minimum";
+
public static String MAXIMUM_PROPERTY = "maximum";
+
public static String VALUE_PROPERTY = "value";
public JSpinnerHandler(ClassDescriptor beanClass) {
@@ -50,7 +53,9 @@
public static class CompiledSpinner extends CompiledObject {
Integer minimum;
+
Integer maximum;
+
Integer value;
public CompiledSpinner(String id, ClassDescriptor objectClass, JAXXCompiler compiler) throws CompilerException {
@@ -72,7 +77,7 @@
@Override
public ClassDescriptor getPropertyType(CompiledObject object, String propertyName, JAXXCompiler compiler) throws CompilerException {
if (propertyName.equals(MINIMUM_PROPERTY) || propertyName.equals(MAXIMUM_PROPERTY) ||
- propertyName.equals(VALUE_PROPERTY)) {
+ propertyName.equals(VALUE_PROPERTY)) {
return ClassDescriptorHelper.getClassDescriptor(Integer.class);
}
return super.getPropertyType(object, propertyName, compiler);
@@ -94,7 +99,9 @@
@Override
protected void closeComponent(CompiledObject object, Element tag, JAXXCompiler compiler) throws CompilerException {
CompiledSpinner spinner = (CompiledSpinner) object;
- if (spinner.minimum != null || spinner.maximum != null || spinner.value != null) {
+ if (spinner.minimum != null ||
+ spinner.maximum != null ||
+ spinner.value != null) {
if (spinner.getConstructorParams() != null) {
compiler.reportError("constructorParams and minimum/maximum may not both be specified for the same JSpinner");
}
@@ -107,7 +114,9 @@
if (spinner.value == null) {
spinner.value = spinner.minimum;
}
- spinner.setConstructorParams("new SpinnerNumberModel(" + spinner.value + ", " + spinner.minimum + ", " + spinner.maximum + ", 1)");
+ String type = compiler.getImportManager().getType(SpinnerNumberModel.class);
+
+ spinner.setConstructorParams("new " + type + "(" + spinner.value + ", " + spinner.minimum + ", " + spinner.maximum + ", 1)");
}
super.closeComponent(object, tag, compiler);
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTabbedPaneHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTabbedPaneHandler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTabbedPaneHandler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -34,6 +34,7 @@
import jaxx.compiler.tags.DefaultComponentHandler;
import jaxx.compiler.types.TypeManager;
import jaxx.runtime.swing.TabInfo;
+import jaxx.runtime.swing.TabInfoPropertyChangeListener;
import javax.swing.Icon;
import javax.swing.JTabbedPane;
@@ -82,7 +83,8 @@
}
int tabIndex = ++tabCount - 1;
- appendAdditionCode(tabInfo.getId() + ".addPropertyChangeListener(new jaxx.runtime.swing.TabInfoPropertyChangeListener(" + getId() + ", " + tabIndex + "));");
+ String type = compiler.getImportManager().getType(TabInfoPropertyChangeListener.class);
+ appendAdditionCode(tabInfo.getId() + ".addPropertyChangeListener(new " + type + "(" + getId() + ", " + tabIndex + "));");
String title = tabInfo.getTitle();
if (title != null) {
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTextComponentHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTextComponentHandler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/JTextComponentHandler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -89,8 +89,8 @@
String valueCode,
JAXXCompiler compiler) throws CompilerException {
if (name.equals(ATTRIBUTE_TEXT)) {
- compiler.addImport(SwingUtil.class);
- return SwingUtil.class.getSimpleName() + ".setText(" +
+ String prefix = compiler.getImportManager().getType(SwingUtil.class);
+ return prefix + ".setText(" +
id + ", " + valueCode + ");" +
JAXXCompiler.getLineSeparator();
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -101,8 +101,6 @@
tableConstraints.gridx = -1;
tableConstraints.gridy = -1;
tableConstraints.insets = DEFAULT_INSETS;
- compiler.addImport(GridBagConstraints.class.getName());
- compiler.addImport(Insets.class.getName());
}
@Override
@@ -131,6 +129,9 @@
super.addChild(child, TypeManager.getJavaCode(c), compiler);
emptyCell = false;
+
+ compiler.addImport(GridBagConstraints.class);
+ compiler.addImport(Insets.class);
}
public GridBagConstraints getTableConstraints() {
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -466,10 +466,11 @@
);
withError = true;
} else {
+ String prefix = compiler.getImportManager().getType(uiClazz.getName());
String code = handler.getSetPropertyCode(
getJavaCode(),
UI_CLASS_ATTRIBUTE,
- uiClazz.getName() + ".class",
+ prefix + ".class",
compiler
);
appendAdditionCode(code);
@@ -624,7 +625,9 @@
}
}
- String code = SwingValidatorUtil.class.getName() +
+ String prefix = compiler.getImportManager().getType(SwingValidatorUtil.class);
+
+ String code = prefix +
".registerErrorListMouseListener(" + errorList + ");";
appendAdditionCode(code);
@@ -651,7 +654,9 @@
}
}
- String code = SwingValidatorUtil.class.getName() +
+ String prefix = compiler.getImportManager().getType(SwingValidatorUtil.class);
+
+ String code = prefix +
".registerErrorTableMouseListener(" + errorTable +
");";
appendAdditionCode(code);
@@ -751,8 +756,9 @@
String constructorParams = beanClassName + ".class, " +
TypeManager.getJavaCode(contextName);
// setConstructorParams(constructorParams);
+ String prefix = compiler.getImportManager().getType(SwingValidatorUtil.class);
setInitializer(
- SwingValidatorUtil.class.getSimpleName() + ".newValidator(" + constructorParams + ")"
+ prefix + ".newValidator(" + constructorParams + ")"
);
// add generic type to validator
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tasks/GenerateTask.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tasks/GenerateTask.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tasks/GenerateTask.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -104,7 +104,8 @@
// optimize imports
List<String> imports = optimizeImports(
javaFile,
- packageName);
+ packageName,
+ compiler.isNeedSwingUtil());
String packageToExclude = packageName + ".*";
@@ -124,7 +125,9 @@
compiler.generate(generator);
}
- public List<String> optimizeImports(JavaFile f, String packageName) {
+ public List<String> optimizeImports(JavaFile f,
+ String packageName,
+ boolean needSwingUtil) {
ImportsManager importsManager = f.getImportManager();
@@ -174,7 +177,12 @@
// make sure this imports where done
// importsManager.addImport(Container.class);
importsManager.addImport(JAXXUtil.class);
- importsManager.addImport(SwingUtil.class);
+ if (!f.isSuperclassIsJAXXObject() || needSwingUtil) {
+
+ // while implementing JAXXObject contract we sure need the
+ // SwingUtil class
+ importsManager.addImport(SwingUtil.class);
+ }
// importsManager.addImport(List.class);
// importsManager.addImport(Map.class);
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tools/jaxxcapture/handlers/ObjectHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tools/jaxxcapture/handlers/ObjectHandler.java 2011-01-31 17:54:12 UTC (rev 2187)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tools/jaxxcapture/handlers/ObjectHandler.java 2011-02-01 17:43:17 UTC (rev 2188)
@@ -26,6 +26,7 @@
package jaxx.compiler.tools.jaxxcapture.handlers;
import jaxx.compiler.JAXXCompiler;
+import jaxx.compiler.finalizers.JAXXCompilerFinalizer;
import jaxx.compiler.java.JavaFileGenerator;
import jaxx.compiler.tools.jaxxcapture.CapturedObject;
import jaxx.compiler.tools.jaxxcapture.ContextNode;
@@ -46,6 +47,8 @@
public class ObjectHandler {
private static int count;
+ public static final String ATTRIBUTE_PROPERTY = "property";
+
protected CapturedObject createCapturedObject(String className, JAXXCapture capture) {
return new CapturedObject(this, className, capture);
}
@@ -59,7 +62,7 @@
Node child = children.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
Element innerTag = (Element) child;
- if (innerTag.getTagName().equals("void")) {
+ if (innerTag.getTagName().equals(JAXXCompilerFinalizer.TYPE_VOID)) {
result = true;
}
evaluate(innerTag, context, capture);
@@ -80,7 +83,7 @@
}
assert contextObject != null;
- String property = tag.getAttribute("property");
+ String property = tag.getAttribute(ATTRIBUTE_PROPERTY);
if (!property.equals("actionCommand")) { // filter out actionCommand due to screwiness in XMLEncoder's handling of it
Object current = context.peek();
PropertyNode newContext = new PropertyNode(property);
@@ -173,8 +176,8 @@
} else {
currentNode.addArgument(capture.processObject(tag, context));
}
- } else if (tagName.equals("void")) {
- String property = tag.getAttribute("property");
+ } else if (tagName.equals(JAXXCompilerFinalizer.TYPE_VOID)) {
+ String property = tag.getAttribute(ATTRIBUTE_PROPERTY);
if (property.length() > 0) {
evaluateProperty(tag, context, capture);
} else {
@@ -227,7 +230,7 @@
Node child = children.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) child;
- if (element.getTagName().equals("void") && element.getAttribute("property").equals("name")) {
+ if (element.getTagName().equals(JAXXCompilerFinalizer.TYPE_VOID) && element.getAttribute(ATTRIBUTE_PROPERTY).equals("name")) {
evaluate(element, context, capture);
String name = capturedObject.getProperty("name");
if (name != null && !capture.getCapturedObjects().containsKey(name)) {
@@ -243,7 +246,7 @@
Node child = children.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) child;
- if (!element.getTagName().equals("void") || !element.getAttribute("property").equals("name")) {
+ if (!JAXXCompilerFinalizer.TYPE_VOID.equals(element.getTagName()) || !element.getAttribute(ATTRIBUTE_PROPERTY).equals("name")) {
evaluate(element, context, capture);
}
}
1
0