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
April 2010
- 3 participants
- 37 discussions
30 Apr '10
Author: tchemit
Date: 2010-04-30 22:09:43 +0200 (Fri, 30 Apr 2010)
New Revision: 1863
Url: http://nuiton.org/repositories/revision/jaxx/1863
Log:
resolve Anomalie 558
Added:
trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/ErrorsCss.xml
trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/css/
trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/css/UnsupportedPseudoclass.jaxx
Removed:
trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/UnsupportedPseudoclass.jaxx
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java
trunk/maven-jaxx-plugin/src/test/java/org/nuiton/jaxx/plugin/CompilerTest.java
trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/Errors.xml
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java 2010-04-30 11:50:43 UTC (rev 1862)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java 2010-04-30 20:09:43 UTC (rev 1863)
@@ -178,8 +178,7 @@
/**
* Performs introspection on the beanClass and stores the results.
*
- * @throws java.beans.IntrospectionException
- * if any pb
+ * @throws IntrospectionException if any pb
*/
protected void init() throws IntrospectionException {
if (jaxxBeanInfo == null) {
@@ -228,8 +227,7 @@
*
* @param beanClass the bean class for which to retrieve <code>JAXXBeanInfo</code>
* @return the class' <code>JAXXBeanInfo</code>
- * @throws java.beans.IntrospectionException
- * if any pb
+ * @throws IntrospectionException if any pb
*/
public static JAXXBeanInfo getJAXXBeanInfo(ClassDescriptor beanClass) throws IntrospectionException {
return JAXXIntrospector.getJAXXBeanInfo(beanClass);
@@ -942,63 +940,84 @@
applyStylesheets(object, compiler, overrides, true);
}
- private void applyStylesheets(CompiledObject object, JAXXCompiler compiler, Stylesheet overrides, boolean recurse) {
+ private void applyStylesheets(CompiledObject object,
+ JAXXCompiler compiler,
+ Stylesheet overrides,
+ boolean recurse) {
+
+ Stylesheet stylesheet = compiler.getStylesheet();
+
+ ClassDescriptor objectClass = object.getObjectClass();
+ ClassDescriptor jaxxObjectClassDescriptor =
+ ClassDescriptorLoader.getClassDescriptor(JAXXObject.class);
+
+ // to apply styleSheet to a jaxx object,
+ // since 2.0.2, this process can be skip if configuration
+ // autoRecurseInCss is set to false since this does not work
+ boolean applyInside =
+ recurse &&
+ jaxxObjectClassDescriptor.isAssignableFrom(objectClass) &&
+ // new since 2.0.2 to skip old buggy mode
+ compiler.getConfiguration().isAutoRecurseInCss();
+
try {
- Stylesheet stylesheet = compiler.getStylesheet();
- if (!compiler.getConfiguration().isAutoRecurseInCss()) {
- // do not do any recurse mode in css from existing jaxx objects.
+ if (!applyInside) {
+
+ // this is the safe mode to use, just apply stlySheet to object
if (stylesheet != null) {
StylesheetHelper.applyTo(object, compiler, stylesheet, overrides);
}
return;
}
- // old strange mode to de remove soon (or really improved...)
- ClassDescriptor objectClass = object.getObjectClass();
- if (recurse && ClassDescriptorLoader.getClassDescriptor(JAXXObject.class).isAssignableFrom(objectClass)) {
- JAXXObjectDescriptor jaxxObjectDescriptor = objectClass.getJAXXObjectDescriptor();
- ComponentDescriptor[] descriptors = jaxxObjectDescriptor.getComponentDescriptors();
- for (ComponentDescriptor descriptor : descriptors) {
- ClassDescriptor classDescriptor = ClassDescriptorLoader.getClassDescriptor(descriptor.getJavaClassName());
- boolean isRoot = classDescriptor != objectClass;
- String id = isRoot ? object.getId() + ' ' + descriptor.getId() : "( " + object.getId() + " ) " + descriptor.getId();
- CompiledObject child = new CompiledObject(id,
- "((" + JAXXCompiler.getCanonicalName(classDescriptor) + ") " +
- object.getJavaCode() + ".getObjectById(" + TypeManager.getJavaCode(descriptor.getId()) + "))",
- classDescriptor,
- compiler,
- true);
- ComponentDescriptor parentDescriptor = descriptor.getParent();
- CompiledObject currentObject = child;
- while (parentDescriptor != null) {
- CompiledObject parent = new CompiledObject("internal", ClassDescriptorLoader.getClassDescriptor(parentDescriptor.getJavaClassName()), compiler);
- currentObject.setParent(parent);
- currentObject = parent;
- parentDescriptor = parentDescriptor.getParent();
+ //FIXME TC-20100430 This is an old mode which try to apply inside a
+ // detected jaxx object stysheets (cascade) :
+ // It does not work in fact and must be repair...
+
+ JAXXObjectDescriptor jaxxObjectDescriptor =
+ objectClass.getJAXXObjectDescriptor();
+ ComponentDescriptor[] descriptors =
+ jaxxObjectDescriptor.getComponentDescriptors();
+ for (ComponentDescriptor descriptor : descriptors) {
+ ClassDescriptor classDescriptor =
+ ClassDescriptorLoader.getClassDescriptor(
+ descriptor.getJavaClassName()
+ );
+ boolean isRoot = classDescriptor != objectClass;
+ String id = isRoot ? object.getId() + ' ' + descriptor.getId() : "( " + object.getId() + " ) " + descriptor.getId();
+ CompiledObject child = new CompiledObject(id,
+ "((" + JAXXCompiler.getCanonicalName(classDescriptor) + ") " +
+ object.getJavaCode() + ".getObjectById(" + TypeManager.getJavaCode(descriptor.getId()) + "))",
+ classDescriptor,
+ compiler,
+ true);
+ ComponentDescriptor parentDescriptor = descriptor.getParent();
+ CompiledObject currentObject = child;
+ while (parentDescriptor != null) {
+ CompiledObject parent = new CompiledObject("internal", ClassDescriptorLoader.getClassDescriptor(parentDescriptor.getJavaClassName()), compiler);
+ currentObject.setParent(parent);
+ currentObject = parent;
+ parentDescriptor = parentDescriptor.getParent();
+ }
+ currentObject.setParent(object);
+ String styleClass = object.getStyleClass();
+ if (styleClass == null) {
+ styleClass = descriptor.getStyleClass();
+ }
+ child.setStyleClass(styleClass);
+ Stylesheet mergedStylesheet = overrides;
+ Stylesheet childOverrides = jaxxObjectDescriptor.getStylesheet();
+ if (childOverrides != null) {
+ if (mergedStylesheet == null) {
+ mergedStylesheet = childOverrides;
+ } else {
+ mergedStylesheet.add(childOverrides.getRules());
}
- currentObject.setParent(object);
- String styleClass = object.getStyleClass();
- if (styleClass == null) {
- styleClass = descriptor.getStyleClass();
- }
- child.setStyleClass(styleClass);
- Stylesheet mergedStylesheet = overrides;
- Stylesheet childOverrides = jaxxObjectDescriptor.getStylesheet();
- if (childOverrides != null) {
- if (mergedStylesheet == null) {
- mergedStylesheet = childOverrides;
- } else {
- mergedStylesheet.add(childOverrides.getRules());
- }
- }
- TagManager.getTagHandler(objectClass).applyStylesheets(child, compiler, mergedStylesheet, isRoot);
- object.appendInitializationCode(child.getInitializationCode(compiler));
}
+ TagManager.getTagHandler(objectClass).applyStylesheets(child, compiler, mergedStylesheet, isRoot);
+ object.appendInitializationCode(child.getInitializationCode(compiler));
}
-// } else if (stylesheet != null) {
-// StylesheetHelper.applyTo(object, compiler, stylesheet, overrides);
-// }
} catch (ClassNotFoundException e) {
throw new CompilerException(e);
} catch (IllegalArgumentException e) {
Modified: trunk/maven-jaxx-plugin/src/test/java/org/nuiton/jaxx/plugin/CompilerTest.java
===================================================================
--- trunk/maven-jaxx-plugin/src/test/java/org/nuiton/jaxx/plugin/CompilerTest.java 2010-04-30 11:50:43 UTC (rev 1862)
+++ trunk/maven-jaxx-plugin/src/test/java/org/nuiton/jaxx/plugin/CompilerTest.java 2010-04-30 20:09:43 UTC (rev 1863)
@@ -29,6 +29,7 @@
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.junit.Ignore;
import org.junit.Test;
import java.io.File;
@@ -122,7 +123,7 @@
// init mojo to get alls files to treate
mojo.init();
- assertNumberJaxxFiles(34);
+ assertNumberJaxxFiles(33);
mojo.setLog(new SystemStreamLog() {
@Override
@@ -162,7 +163,55 @@
}
}
+
+ @SuppressWarnings({"unchecked"})
@Test
+ public void ErrorsCss() throws Exception {
+ GenerateMojo mojo = getMojo();
+ // init mojo to get alls files to treate
+ mojo.init();
+
+ assertNumberJaxxFiles(1);
+ mojo.setLog(new SystemStreamLog() {
+
+ @Override
+ public boolean isErrorEnabled() {
+ return false;
+ }
+
+ @Override
+ public void error(Throwable error) {
+ //do nothing
+ }
+
+ @Override
+ public void error(CharSequence content) {
+ //do nothing
+ }
+
+ @Override
+ public void error(CharSequence content, Throwable error) {
+ //do nothing
+ }
+ });
+
+ // execute mjo on each jaxx file to produce the error
+ for (String file : mojo.files) {
+ log.info("test bad file " + file);
+ mojo.files = new String[]{file};
+ try {
+ mojo.doAction();
+ // should never pass
+ fail();
+ } catch (MojoExecutionException e) {
+ // ok jaxx compiler failed
+ assertTrue(true);
+ assertError(mojo.getEngine(), file, 1);
+ }
+ }
+ }
+
+ @Test
public void Initializers() throws Exception {
executeMojo();
assertNumberJaxxFiles(1);
Modified: trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/Errors.xml
===================================================================
--- trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/Errors.xml 2010-04-30 11:50:43 UTC (rev 1862)
+++ trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/Errors.xml 2010-04-30 20:09:43 UTC (rev 1863)
@@ -14,6 +14,7 @@
<configuration>
<src>${basedir}/target/test-classes</src>
<outJava>${basedir}/target/generated-sources/test-java</outJava>
+ <autoRecurseInCss>true</autoRecurseInCss>
<!--outResource>${basedir}/target/it-generated-sources/resources</outResource-->
<force>true</force>
<includes>
Added: trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/ErrorsCss.xml
===================================================================
--- trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/ErrorsCss.xml (rev 0)
+++ trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/ErrorsCss.xml 2010-04-30 20:09:43 UTC (rev 1863)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.nuiton.jaxx.test</groupId>
+ <artifactId>test</artifactId>
+ <version>0</version>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.nuiton</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <configuration>
+ <src>${basedir}/target/test-classes</src>
+ <outJava>${basedir}/target/generated-sources/test-java</outJava>
+ <autoRecurseInCss>false</autoRecurseInCss>
+ <force>true</force>
+ <includes>
+ <value>**/compilerTest/errors/css/*.jaxx</value>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Property changes on: trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/ErrorsCss.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Deleted: trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/UnsupportedPseudoclass.jaxx
===================================================================
--- trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/UnsupportedPseudoclass.jaxx 2010-04-30 11:50:43 UTC (rev 1862)
+++ trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/UnsupportedPseudoclass.jaxx 2010-04-30 20:09:43 UTC (rev 1863)
@@ -1,5 +0,0 @@
-<JButton>
- <style>
- :opaque { enabled: false; }
- </style>
-</JButton>
\ No newline at end of file
Added: trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/css/UnsupportedPseudoclass.jaxx
===================================================================
--- trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/css/UnsupportedPseudoclass.jaxx (rev 0)
+++ trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/css/UnsupportedPseudoclass.jaxx 2010-04-30 20:09:43 UTC (rev 1863)
@@ -0,0 +1,5 @@
+<JButton>
+ <style>
+ :opaque { enabled: false; }
+ </style>
+</JButton>
\ No newline at end of file
Property changes on: trunk/maven-jaxx-plugin/src/test/resources/org/nuiton/jaxx/plugin/compilerTest/errors/css/UnsupportedPseudoclass.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r1862 - in trunk: jaxx-compiler/src/main/java/jaxx/compiler jaxx-compiler/src/main/java/jaxx/compiler/binding jaxx-compiler/src/main/java/jaxx/compiler/css jaxx-compiler/src/main/java/jaxx/compiler/tags maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin maven-jaxx-plugin/src/main/resources
by tchemit@users.nuiton.org 30 Apr '10
by tchemit@users.nuiton.org 30 Apr '10
30 Apr '10
Author: tchemit
Date: 2010-04-30 13:50:43 +0200 (Fri, 30 Apr 2010)
New Revision: 1862
Url: http://nuiton.org/repositories/revision/jaxx/1862
Log:
Anomalie #559: Can not use in css jaxx widgets
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/PseudoClassDataBinding.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java
trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java
trunk/maven-jaxx-plugin/src/main/resources/log4j.properties
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java 2010-04-29 14:16:39 UTC (rev 1861)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java 2010-04-30 11:50:43 UTC (rev 1862)
@@ -25,58 +25,40 @@
package jaxx.compiler;
-import java.io.File;
import jaxx.runtime.JAXXContext;
+import java.io.File;
+
/**
* Configuration of a compiler task.
- *
+ *
* @author tchemit <chemit(a)codelutin.com>
* @since 2.0.0
*/
public interface CompilerConfiguration {
- /**
- *
- * @return the class loader used by compilers
- */
+ /** @return the class loader used by compilers */
ClassLoader getClassLoader();
- /**
- *
- * @return the type of compiler to use
- */
+ /** @return the type of compiler to use */
Class<? extends JAXXCompiler> getCompilerClass();
- /**
- *
- * @return the type of default decorator to use if none specified
- */
+ /** @return the type of default decorator to use if none specified */
Class<? extends CompiledObjectDecorator> getDefaultDecoratorClass();
- /**
- *
- * @return the type of the default error UI to use for validation
- */
+ /** @return the type of the default error UI to use for validation */
Class<?> getDefaultErrorUI();
- /**
- *
- * @return extra imports to add on all generated jaxx object
- */
+ /** @return extra imports to add on all generated jaxx object */
String[] getExtraImports();
/**
- *
* @return the FQN of the help broker (can not directly a type since
- * the help broker should (may?) be inside the sources.
+ * the help broker should (may?) be inside the sources.
*/
String getHelpBrokerFQN();
- /**
- *
- * @return the type of context to use in each generated jaxx object
- */
+ /** @return the type of context to use in each generated jaxx object */
Class<? extends JAXXContext> getJaxxContextClass();
/**
@@ -88,74 +70,59 @@
/**
* Returns whether or not auto css should be used.
- * @return {@code true} if a css file with same name as jaxx file should be included in jaxx file if found.
+ *
+ * @return {@code true} if a css file with same name as jaxx file should
+ * be included in jaxx file if found.
+ * @since 2.0.2
*/
boolean isAutoImportCss();
/**
- * Returns the target directory.
+ * Returns whether or not should recurse in css for existing JAXX Object.
*
- * @return the target directory
+ * <b>Note:</b> This functionnality was here at the beginning of the project
+ * but offers nothing very usefull, will be remove probably in JAXX 3.0.
+ *
+ * @return {@code true} if a css file with same name as jaxx file should
+ * be included in jaxx file if found.
+ * @since 2.0.2
*/
- File getTargetDirectory();
+ boolean isAutoRecurseInCss();
/**
+ * Returns the target directory.
*
- * @return the type of validator to use
+ * @return the target directory
*/
+ File getTargetDirectory();
+
+ /** @return the type of validator to use */
Class<?> getValidatorClass();
- /**
- *
- * @return {@code true} if a logger must add on each generated jaxx object
- */
+ /** @return {@code true} if a logger must add on each generated jaxx object */
boolean isAddLogger();
- /**
- *
- * @return {@code true} if we are generating help
- */
+ /** @return {@code true} if we are generating help */
boolean isGenerateHelp();
- /**
- *
- * @return {@code true} if we use the i18n system
- */
+ /** @return {@code true} if we use the i18n system */
boolean isI18nable();
- /**
- *
- * @return {@code true} to generate optimized code
- */
+ /** @return {@code true} to generate optimized code */
boolean isOptimize();
- /**
- *
- * @return {@code true} if a profile pass must be done
- */
+ /** @return {@code true} if a profile pass must be done */
boolean isProfile();
- /**
- *
- * @return {@code true} if states must be reset after the compilation
- */
+ /** @return {@code true} if states must be reset after the compilation */
boolean isResetAfterCompile();
- /**
- *
- * @return {@code true} if UIManager is used to retrieve icons
- */
+ /** @return {@code true} if UIManager is used to retrieve icons */
boolean isUseUIManagerForIcon();
- /**
- *
- * @return {@code true} if compiler is verbose
- */
+ /** @return {@code true} if compiler is verbose */
boolean isVerbose();
- /**
- *
- * @return the encoding to use to write files
- */
+ /** @return the encoding to use to write files */
String getEncoding();
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java 2010-04-29 14:16:39 UTC (rev 1861)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java 2010-04-30 11:50:43 UTC (rev 1862)
@@ -117,6 +117,8 @@
private boolean autoImportCss;
+ private boolean autoRecurseInCss;
+
@Override
public File getTargetDirectory() {
return targetDirectory;
@@ -222,6 +224,11 @@
}
@Override
+ public boolean isAutoRecurseInCss() {
+ return autoRecurseInCss;
+ }
+
+ @Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java 2010-04-29 14:16:39 UTC (rev 1861)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java 2010-04-30 11:50:43 UTC (rev 1862)
@@ -758,7 +758,12 @@
public void applyStylesheets() {
for (Object o : new ArrayList<CompiledObject>(objects.values())) {
CompiledObject object = (CompiledObject) o;
- TagManager.getTagHandler(object.getObjectClass()).applyStylesheets(object, this);
+ DefaultObjectHandler tagHandler = TagManager.getTagHandler(object.getObjectClass());
+ if (log.isDebugEnabled()) {
+ log.debug("will apply css on object " + object.getId()+" from handler " + tagHandler);
+ }
+
+ tagHandler.applyStylesheets(object, this);
}
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/PseudoClassDataBinding.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/PseudoClassDataBinding.java 2010-04-29 14:16:39 UTC (rev 1861)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/binding/PseudoClassDataBinding.java 2010-04-30 11:50:43 UTC (rev 1862)
@@ -57,6 +57,10 @@
pseudoClass = pseudoClass.substring(1, pseudoClass.length() - 1).trim();
pseudoClass = replaceObjectReferences(pseudoClass, object.getJavaCode());
String id = object.getId() + ".style." + pseudoClass + "." + methodName;
+
+ if (log.isDebugEnabled()) {
+ log.debug("will test if databinding : ["+ pseudoClass +"] " + id);
+ }
binding = new PseudoClassDataBinding(id, pseudoClass, propertyCode, invertTest);
}
return binding;
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java 2010-04-29 14:16:39 UTC (rev 1861)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java 2010-04-30 11:50:43 UTC (rev 1862)
@@ -44,6 +44,8 @@
import jaxx.runtime.css.Rule;
import jaxx.runtime.css.Selector;
import jaxx.runtime.css.Stylesheet;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
@@ -60,6 +62,9 @@
*/
public class StylesheetHelper {
+ /** Logger */
+ static private final Log log = LogFactory.getLog(StylesheetHelper.class);
+
public static String loadCssFile(JAXXCompiler compiler,
File styleFile) throws IOException {
FileReader in = new FileReader(styleFile);
@@ -172,6 +177,7 @@
mouseup("mouseReleased", "mousePressed");
final String addMethod;
+
final String removeMethod;
// ClassDescriptor mouseListenerDescriptor;
@@ -185,41 +191,10 @@
public String getProperty(int i) {
return i == 0 ? addMethod : removeMethod;
}
-
-// public ClassDescriptor getMouseEventDescriptor() {
-// if (mouseEventDescriptor == null) {
-// mouseEventDescriptor = ClassDescriptorLoader.getClassDescriptor(MouseEvent.class);
-// }
-// return mouseEventDescriptor;
-// }
-//
-// public ClassDescriptor getMouseListenerDescriptor() {
-// if (mouseListenerDescriptor == null) {
-// mouseListenerDescriptor = ClassDescriptorLoader.getClassDescriptor(MouseListener.class);
-// }
-// return mouseListenerDescriptor;
-// }
-//
-// public MethodDescriptor getAddMouseListenerMethod(CompiledObject object) {
-// try {
-// MethodDescriptor addMouseListener = object.getObjectClass().getMethodDescriptor("addMouseListener", getMouseListenerDescriptor());
-// return addMouseListener;
-// } catch (NoSuchMethodException e) {
-// throw new CompilerException("could not find addMouseListener for object " + object);
-// }
-// }
-//
-// public MethodDescriptor getMouseListenerMethod(CompiledObject object, String property) {
-// try {
-// MethodDescriptor methodDescriptor = getMouseListenerDescriptor().getMethodDescriptor(property, getMouseEventDescriptor());
-// return methodDescriptor;
-// } catch (NoSuchMethodException e) {
-// throw new CompilerException("could not find " + property + " for object " + object);
-// }
-// }
}
static ClassDescriptor mouseListenerDescriptor;
+
static ClassDescriptor mouseEventDescriptor;
public static ClassDescriptor getMouseEventDescriptor() {
@@ -317,136 +292,6 @@
}
}
-// /**
-// * Replaces all references to the variable "object" with the actual object ID.
-// *
-// * @param code ?
-// * @param id ?
-// * @return ?
-// * @throws CompilerException ?
-// */
-// public static String replaceObjectReferences(String code, String id) throws CompilerException {
-// JavaParser p = new JavaParser(new StringReader(code + ";"));
-// p.Expression();
-// jaxx.compiler.java.parser.SimpleNode node = p.popNode();
-// scanNode(node, id);
-// return node.getText();
-// }
-//
-// public static void scanNode(SimpleNode node, String id) {
-// if (node.getId() == JavaParserTreeConstants.JJTNAME) {
-// String name = node.getText();
-// if (name.equals("object") || (name.indexOf(".") != -1 && name.substring(0, name.indexOf(".")).trim().equals("object"))) {
-// node.firstToken.image = id;
-// }
-// } else {
-// int count = node.jjtGetNumChildren();
-// for (int i = 0; i < count; i++) {
-// scanNode(node.getChild(i), id);
-// }
-// }
-// }
-
-// public static void compilePseudoClassAdd(String pseudoClass, CompiledObject object, String propertyCode, JAXXCompiler compiler) throws CompilerException {
-//
-// if (pseudoClass.startsWith("{")) {
-// pseudoClass = pseudoClass.substring(1, pseudoClass.length() - 1).trim();
-// pseudoClass = replaceObjectReferences(pseudoClass, object.getJavaCode());
-// String dest = object.getId() + ".style." + pseudoClass + ".add";
-// String destCode = TypeManager.getJavaCode(dest);
-// DataBindingHelper bindingHelper = compiler.getBindingHelper();
-// if (bindingHelper.hasProcessDataBinding()) {
-// bindingHelper.appendProcessDataBinding("else ");
-// }
-// bindingHelper.appendProcessDataBinding("if ($dest.equals(" + destCode + ")) { if (" + pseudoClass + ") { " + propertyCode + "} }");
-// new DataSource(dest, pseudoClass, compiler).compile("new DataBindingListener(" + compiler.getRootObject().getJavaCode() + ", " + destCode + ")");
-// bindingHelper.appendInitDataBindings("applyDataBinding(" + destCode + ");");
-// return;
-// }
-//
-// MouseEventEnum constant = MouseEventEnum.valueOf(pseudoClass);
-//
-// String property = null;
-// switch (constant) {
-// case mousedown:
-// property = "mousePressed";
-// break;
-// case mouseout:
-// property = "mouseExited";
-// break;
-// case mouseover:
-// property = "mouseEntered";
-// break;
-// case mouseup:
-// property = "mouseReleased";
-// break;
-// }
-//
-// ClassDescriptor mouseListenerDescriptor = ClassDescriptorLoader.getClassDescriptor(MouseListener.class);
-// ClassDescriptor mouseEventDescriptor = ClassDescriptorLoader.getClassDescriptor(MouseEvent.class);
-//
-// try {
-// MethodDescriptor addMouseListener = object.getObjectClass().getMethodDescriptor("addMouseListener", mouseListenerDescriptor);
-// MethodDescriptor methodDescriptor = mouseListenerDescriptor.getMethodDescriptor(property, mouseEventDescriptor);
-// object.addEventHandler("style." + pseudoClass + ".add", addMouseListener, methodDescriptor, propertyCode, compiler);
-//
-// } catch (NoSuchMethodException e) {
-// compiler.reportError("mouseover pseudoclass cannot be applied to object " + object.getObjectClass().getName() + " (no addMouseListener method)");
-// }
-// }
-
-// public static void compilePseudoClassRemove(String pseudoClass, CompiledObject object, String propertyCode, JAXXCompiler compiler) throws CompilerException {
-// if (pseudoClass.startsWith("{")) {
-// pseudoClass = pseudoClass.substring(1, pseudoClass.length() - 1).trim();
-// pseudoClass = replaceObjectReferences(pseudoClass, object.getJavaCode());
-// String dest = object.getId() + ".style." + pseudoClass + ".remove";
-// String destCode = TypeManager.getJavaCode(dest);
-// DataBindingHelper bindingHelper = compiler.getBindingHelper();
-// if (bindingHelper.hasProcessDataBinding()) {
-// bindingHelper.appendProcessDataBinding("else ");
-// }
-// bindingHelper.appendProcessDataBinding("if ($dest.equals(" + destCode + ")) { if (" + invert(pseudoClass) + ") { " + propertyCode + "} }");
-// new DataSource(dest, pseudoClass, compiler).compile("new DataBindingListener(" + compiler.getRootObject().getJavaCode() + ", " + destCode + ")");
-// bindingHelper.appendInitDataBindings("applyDataBinding(" + destCode + ");");
-// return;
-// }
-//
-// MouseEventEnum constant = MouseEventEnum.valueOf(pseudoClass);
-//
-// String property = null;
-// switch (constant) {
-// case mousedown:
-// property = "mousePressed";
-// break;
-// case mouseout:
-// property = "mouseReleased";
-// break;
-// case mouseover:
-// property = "mouseExited";
-// break;
-// case mouseup:
-// property = "mousePressed";
-// break;
-// }
-//
-// ClassDescriptor mouseListenerDescriptor = ClassDescriptorLoader.getClassDescriptor(MouseListener.class);
-// ClassDescriptor mouseEventDescriptor = ClassDescriptorLoader.getClassDescriptor(MouseEvent.class);
-//
-// try {
-// MethodDescriptor addMouseListener = object.getObjectClass().getMethodDescriptor("addMouseListener", mouseListenerDescriptor);
-// MethodDescriptor methodDescriptor = mouseListenerDescriptor.getMethodDescriptor(property, mouseEventDescriptor);
-// object.addEventHandler("style." + pseudoClass + ".remove", addMouseListener, methodDescriptor, propertyCode, compiler);
-//
-// } catch (NoSuchMethodException e) {
-// compiler.reportError("mouseover pseudoclass cannot be applied to object " + object.getObjectClass().getName() + " (no addMouseListener method)");
-// }
-// }
-//
-// public static String invert(String javaCode) {
-// javaCode = javaCode.trim();
-// return javaCode.startsWith("!") ? javaCode.substring(1) : "!(" + javaCode + ")";
-// }
-
public static String unwrap(ClassDescriptor type, String valueCode) {
if (ClassDescriptorLoader.getClassDescriptor(boolean.class).equals(type)) {
return "((java.lang.Boolean) " + valueCode + ").booleanValue()";
@@ -508,17 +353,15 @@
for (Map.Entry<String, String> e : properties.entrySet()) {
String property = e.getKey();
ClassDescriptor type = handler.getPropertyType(object, property, compiler);
+ if (log.isDebugEnabled()) {
+ log.debug("will test if databinding : [" + e.getValue() + "] type=" + type);
+ }
String dataBindingCode = DataBindingHelper.processDataBindings(e.getValue());
String valueCode;
if (dataBindingCode != null) {
valueCode = "new jaxx.runtime.css.DataBinding(" + TypeManager.getJavaCode(object.getId() + "." + property + "." + priority) + ")";
DataBinding binding = new DataBinding(object.getId() + "." + property + "." + priority, dataBindingCode, handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode, compiler), false);
bindingHelper.registerDataBinding(binding);
-// DataBinding binding = new DataBinding(dataBindingCode, object.getId() + "." + property + "." + priority, handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode, compiler), false);
-// DataBinding dataBinding1 = new DataBinding(dataBinding, object.getId() + "." + property + "." + priority, handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBinding, compiler));
-// DataBinding dataBinding1 = new DataBinding(dataBinding, object.getId() + "." + property + "." + priority, handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBinding, compiler));
-// binding.compile(compiler);
-// dataBinding1.compile(compiler, false);
} else {
try {
Class<?> typeClass = type != null ? ClassDescriptorLoader.getClass(type.getName(), type.getClassLoader()) : null;
@@ -547,21 +390,6 @@
// throw new RuntimeException("could not find " + PseudoClassEnum.class + " with pseudoClass " + pseudoClass, e);
}
-// if (pseudoClass.equals("focused")) {
-// pseudoClass = "{ object.hasFocus() }";
-// } else if (pseudoClass.equals("unfocused")) {
-// pseudoClass = "{ !object.hasFocus() }";
-// } else if (pseudoClass.equals("enabled")) {
-// pseudoClass = "{ object.isEnabled() }";
-// } else if (pseudoClass.equals("disabled")) {
-// pseudoClass = "{ !object.isEnabled() }";
-// } else if (pseudoClass.equals("selected")) {
-// pseudoClass = "{ object.isSelected() }";
-// } else if (pseudoClass.equals("deselected")) {
-// pseudoClass = "{ !object.isSelected() }";
-// }
-
-// compilePseudoClassAdd(pseudoClass, object, buffer.toString(), compiler);
compilePseudoClass(pseudoClass, object, buffer.toString(), 0, "add", compiler, false);
buffer.setLength(0);
@@ -569,17 +397,15 @@
for (Map.Entry<String, String> e : properties.entrySet()) {
String property = e.getKey();
ClassDescriptor type = handler.getPropertyType(object, property, compiler);
+ if (log.isDebugEnabled()) {
+ log.debug("will test if databinding : [" + e.getValue() + "] type=" + type);
+ }
String dataBindingCode = DataBindingHelper.processDataBindings(e.getValue());
String valueCode;
if (dataBindingCode != null) {
valueCode = "new jaxx.runtime.css.DataBinding(" + TypeManager.getJavaCode(object.getId() + "." + property + "." + priority) + ")";
DataBinding binding = new DataBinding(object.getId() + "." + property + "." + priority, dataBindingCode, handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode, compiler), false);
-// DataBinding binding = new DataBinding(dataBindingCode, object.getId() + "." + property + "." + priority, handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode, compiler), false);
-// DataBinding binding = new DataBinding(dataBindingCode, object.getId() + "." + property + "." + priority, handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode, compiler));
-// DataBinding binding = new DataBinding(dataBindingCode, object.getId() + "." + property + "." + priority, handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + dataBindingCode, compiler));
bindingHelper.registerDataBinding(binding);
-// binding.compile(compiler);
-// binding.compile(compiler, false);
} else {
try {
Class<?> typeClass = type != null ? ClassDescriptorLoader.getClass(type.getName(), type.getClassLoader()) : null;
@@ -599,7 +425,6 @@
buffer.append(" ").append(handler.getSetPropertyCode(object.getJavaCode(), property, "(" + JAXXCompiler.getCanonicalName(type) + ") " + unwrappedValue, compiler)).append(eol);
buffer.append("}").append(eol);
}
-// compilePseudoClassRemove(pseudoClass, object, buffer.toString(), compiler);
compilePseudoClass(pseudoClass, object, buffer.toString(), 1, "remove", compiler, true);
}
@@ -610,15 +435,6 @@
compiler.getBindingHelper().registerDataBinding(binding);
return;
}
-// if (pseudoClass.startsWith("{")) {
-// pseudoClass = pseudoClass.substring(1, pseudoClass.length() - 1).trim();
-// pseudoClass = replaceObjectReferences(pseudoClass, object.getJavaCode());
-// String id = object.getId() + ".style." + pseudoClass + "." + methodName;
-// PseudoClassDataBinding binding = new PseudoClassDataBinding(id, pseudoClass, propertyCode, invertTest);
-// compiler.getBindingHelper().registerDataBinding(binding);
-//// binding.compile(compiler);
-// return;
-// }
MouseEventEnum constant = MouseEventEnum.valueOf(pseudoClass);
String property = constant.getProperty(pos);
MethodDescriptor addMouseListener = getAddMouseListenerMethod(object);
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java 2010-04-29 14:16:39 UTC (rev 1861)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/DefaultObjectHandler.java 2010-04-30 11:50:43 UTC (rev 1862)
@@ -63,43 +63,51 @@
public class DefaultObjectHandler implements TagHandler {
public static final String ABSTRACT_ATTRIBUTE = "abstract";
+
public static final String CONSTRAINTS_ATTRIBUTE = "constraints";
+
public static final String CONSTRUCTOR_PARAMS_ATTRIBUTE = "constructorParams";
+
public static final String DECORATOR_ATTRIBUTE = "decorator";
+
public static final String DISPLAYED_MNEMONIC_ATTRIBUTE = "displayedMnemonic";
+
public static final String DISPLAYED_MNEMONIC_INDEX_ATTRIBUTE = "displayedMnemonicIndex";
+
public static final String GENERICTYPE_ATTRIBUTE = "genericType";
+
public static final String ID_ATTRIBUTE = "id";
+
public static final String IMPLEMENTS_ATTRIBUTE = "implements";
+
public static final String INITIALIZER_ATTRIBUTE = "initializer";
+
public static final String JAVA_BEAN_ATTRIBUTE = "javaBean";
+
public static final String LAYOUT_ATTRIBUTE = "layout";
+
public static final String MNEMONIC_ATTRIBUTE = "mnemonic";
+
public static final String STYLE_CLASS_ATTRIBUTE = "styleClass";
+
public static final String SUPER_GENERIC_TYPE_ATTRIBUTE = "superGenericType";
- /**
- * The class that this handler provides support for.
- */
+
+ /** The class that this handler provides support for. */
private ClassDescriptor beanClass;
- /**
- * The JAXXBeanInfo for the beanClass.
- */
+
+ /** The JAXXBeanInfo for the beanClass. */
protected JAXXBeanInfo jaxxBeanInfo;
- /**
- * Maps property names to their respective JAXXPropertyDescriptors.
- */
+
+ /** Maps property names to their respective JAXXPropertyDescriptors. */
private Map<String, JAXXPropertyDescriptor> properties;
- /**
- * Maps event names to their respective JAXXEventSetDescriptors.
- */
+
+ /** Maps event names to their respective JAXXEventSetDescriptors. */
private Map<String, JAXXEventSetDescriptor> events;
- /**
- * Maps property names to their respective ProxyEventInfos.
- */
+
+ /** Maps property names to their respective ProxyEventInfos. */
private Map<String, ProxyEventInfo> eventInfos;
- /**
- * Maps XML tags to the CompiledObjects created from them.
- */
+
+ /** Maps XML tags to the CompiledObjects created from them. */
protected static Map<Element, CompiledObject> objectMap = new WeakHashMap<Element, CompiledObject>();
public ProxyEventInfo getEventInfo(String memberName) {
@@ -114,14 +122,12 @@
*/
public static class ProxyEventInfo {
- /**
- * The name of the method or field being proxied, e.g. "getText".
- */
+ /** The name of the method or field being proxied, e.g. "getText". */
String memberName;
- /**
- * The "actual" event listener for the property in question, e.g. DocumentListener.
- */
+
+ /** The "actual" event listener for the property in question, e.g. DocumentListener. */
ClassDescriptor listenerClass;
+
/**
* In cases where a different object (such as a model) is more directly responsible for
* managing the property, this is the name of the property where that object can be
@@ -131,13 +137,11 @@
* attached to the new value, and the data binding to be processed.
*/
String modelName;
- /**
- * The name of the method used to add the "native" event listener, e.g. "addDocumentListener".
- */
+
+ /** The name of the method used to add the "native" event listener, e.g. "addDocumentListener". */
String addMethod;
- /**
- * The name of the method used to remove the "native" event listener, e.g. "removeDocumentListener".
- */
+
+ /** The name of the method used to remove the "native" event listener, e.g. "removeDocumentListener". */
String removeMethod;
public String getAddMethod() {
@@ -201,9 +205,7 @@
}
}
- /**
- * @return the class which this <code>DefaultObjectHandler</code> supports.
- */
+ /** @return the class which this <code>DefaultObjectHandler</code> supports. */
public ClassDescriptor getBeanClass() {
return beanClass;
}
@@ -514,6 +516,7 @@
}
// TODO: remove this temporary method, complete switchover to ClassDescriptors
+
public void addProxyEventInfo(String memberName, Class<?> listenerClass,
String modelName, String addMethod, String removeMethod) {
try {
@@ -714,11 +717,11 @@
String name = attribute.getName();
String value = attribute.getValue().trim();
if (name.equals(ID_ATTRIBUTE) ||
- name.equals(CONSTRAINTS_ATTRIBUTE) ||
- name.equals(CONSTRUCTOR_PARAMS_ATTRIBUTE) ||
- name.equals(STYLE_CLASS_ATTRIBUTE) ||
- name.startsWith(XMLNS_ATTRIBUTE) ||
- JAXXCompiler.JAXX_INTERNAL_NAMESPACE.equals(attribute.getNamespaceURI())) {
+ name.equals(CONSTRAINTS_ATTRIBUTE) ||
+ name.equals(CONSTRUCTOR_PARAMS_ATTRIBUTE) ||
+ name.equals(STYLE_CLASS_ATTRIBUTE) ||
+ name.startsWith(XMLNS_ATTRIBUTE) ||
+ JAXXCompiler.JAXX_INTERNAL_NAMESPACE.equals(attribute.getNamespaceURI())) {
// ignore, already handled
continue;
}
@@ -827,8 +830,8 @@
*/
protected int getAttributeOrdering(Attr attr) {
if (attr.getName().equals(DISPLAYED_MNEMONIC_INDEX_ATTRIBUTE) ||
- attr.getName().equals(DISPLAYED_MNEMONIC_ATTRIBUTE) ||
- attr.getName().equals(MNEMONIC_ATTRIBUTE)) {
+ attr.getName().equals(DISPLAYED_MNEMONIC_ATTRIBUTE) ||
+ attr.getName().equals(MNEMONIC_ATTRIBUTE)) {
return 1;
}
return 0;
@@ -935,13 +938,23 @@
applyStylesheets(object, compiler, null);
}
- private void applyStylesheets(final CompiledObject object, JAXXCompiler compiler, Stylesheet overrides) {
+ private void applyStylesheets(CompiledObject object, JAXXCompiler compiler, Stylesheet overrides) {
applyStylesheets(object, compiler, overrides, true);
}
- private void applyStylesheets(final CompiledObject object, JAXXCompiler compiler, Stylesheet overrides, boolean recurse) {
+ private void applyStylesheets(CompiledObject object, JAXXCompiler compiler, Stylesheet overrides, boolean recurse) {
try {
Stylesheet stylesheet = compiler.getStylesheet();
+ if (!compiler.getConfiguration().isAutoRecurseInCss()) {
+
+ // do not do any recurse mode in css from existing jaxx objects.
+ if (stylesheet != null) {
+ StylesheetHelper.applyTo(object, compiler, stylesheet, overrides);
+ }
+ return;
+ }
+
+ // old strange mode to de remove soon (or really improved...)
ClassDescriptor objectClass = object.getObjectClass();
if (recurse && ClassDescriptorLoader.getClassDescriptor(JAXXObject.class).isAssignableFrom(objectClass)) {
JAXXObjectDescriptor jaxxObjectDescriptor = objectClass.getJAXXObjectDescriptor();
@@ -951,11 +964,11 @@
boolean isRoot = classDescriptor != objectClass;
String id = isRoot ? object.getId() + ' ' + descriptor.getId() : "( " + object.getId() + " ) " + descriptor.getId();
CompiledObject child = new CompiledObject(id,
- "((" + JAXXCompiler.getCanonicalName(classDescriptor) + ") " +
- object.getJavaCode() + ".getObjectById(" + TypeManager.getJavaCode(descriptor.getId()) + "))",
- classDescriptor,
- compiler,
- true);
+ "((" + JAXXCompiler.getCanonicalName(classDescriptor) + ") " +
+ object.getJavaCode() + ".getObjectById(" + TypeManager.getJavaCode(descriptor.getId()) + "))",
+ classDescriptor,
+ compiler,
+ true);
ComponentDescriptor parentDescriptor = descriptor.getParent();
CompiledObject currentObject = child;
while (parentDescriptor != null) {
@@ -982,9 +995,10 @@
TagManager.getTagHandler(objectClass).applyStylesheets(child, compiler, mergedStylesheet, isRoot);
object.appendInitializationCode(child.getInitializationCode(compiler));
}
- } else if (stylesheet != null) {
- StylesheetHelper.applyTo(object, compiler, stylesheet, overrides);
}
+// } else if (stylesheet != null) {
+// StylesheetHelper.applyTo(object, compiler, stylesheet, overrides);
+// }
} catch (ClassNotFoundException e) {
throw new CompilerException(e);
} catch (IllegalArgumentException e) {
@@ -1151,14 +1165,14 @@
* @see #constantValue
*/
protected Object convertFromString(String key, String value, Class<?> type) {
- if (type == null || type == Object.class) {
+ if (type == null || Object.class.equals(type)) {
return value;
}
try {
return TypeManager.convertFromString(value, type);
} catch (NumberFormatException e) {
- if (type == int.class || type == Integer.class) {
+ if (int.class.equals(type) || Integer.class.equals(type)) {
return constantValue(key, value);
}
throw e;
Modified: trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java
===================================================================
--- trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java 2010-04-29 14:16:39 UTC (rev 1861)
+++ trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java 2010-04-30 11:50:43 UTC (rev 1862)
@@ -210,6 +210,19 @@
protected boolean autoImportCss;
/**
+ * To let jaxx recurses in css when a JAXX Object auto import css files
+ * for a jaxx file.
+ *
+ * <b>Warning:</b> This option will be removed in version 3.0 or at least
+ * default value will become {@code false}.
+ *
+ *
+ * @parameter expression="${jaxx.autoRecurseInCss}" default-value="true"
+ * @since 2.0.2
+ */
+ protected boolean autoRecurseInCss;
+
+ /**
* flag to add logger to each generated jaxx file.
* <p/>
* By default, always add it.
@@ -305,19 +318,13 @@
*/
private Class<?> validatorClass;
- /**
- * type of {@link CompiledObjectDecorator} to use
- */
+ /** type of {@link CompiledObjectDecorator} to use */
private Class<? extends CompiledObjectDecorator> defaultDecoratorClass;
- /**
- * type of {@link JAXXContext} to use
- */
+ /** type of {@link JAXXContext} to use */
private Class<? extends JAXXContext> jaxxContextClass;
- /**
- * type of compiler to use
- */
+ /** type of compiler to use */
private Class<? extends JAXXCompiler> compilerClass;
/**
@@ -325,9 +332,7 @@
*/
private String[] extraImports;
- /**
- * internal state to known if a files has to be generated
- */
+ /** internal state to known if a files has to be generated */
private boolean nofiles;
/**
@@ -525,8 +530,13 @@
public boolean isAutoImportCss() {
return autoImportCss;
}
-
+
@Override
+ public boolean isAutoRecurseInCss() {
+ return autoRecurseInCss;
+ }
+
+ @Override
public boolean isI18nable() {
return i18nable;
}
Modified: trunk/maven-jaxx-plugin/src/main/resources/log4j.properties
===================================================================
--- trunk/maven-jaxx-plugin/src/main/resources/log4j.properties 2010-04-29 14:16:39 UTC (rev 1861)
+++ trunk/maven-jaxx-plugin/src/main/resources/log4j.properties 2010-04-30 11:50:43 UTC (rev 1862)
@@ -7,3 +7,5 @@
log4j.logger.org.nuiton.i18n=ERROR
log4j.logger.jaxx=INFO
+#log4j.logger.jaxx.compiler=DEBUG
+#log4j.logger.jaxx.runtime=DEBUG
1
0
Author: tchemit
Date: 2010-04-29 16:16:39 +0200 (Thu, 29 Apr 2010)
New Revision: 1861
Url: http://nuiton.org/repositories/revision/jaxx/1861
Log:
- remove Author svn keywords
- use autoCssImport in jaxx-demo
Added:
trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.css
trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.css
Removed:
trunk/jaxx-demo/src/main/java/jaxx/demo/fun/Calculator.css
trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyle.css
Modified:
trunk/jaxx-compiler/pom.xml
trunk/jaxx-compiler/src/site/site_fr.xml
trunk/jaxx-demo/pom.xml
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/DemoUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/StatusMessagePanelDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/I18nEditorDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/NumberEditorDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorContentUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MovieContentUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/HidorButtonDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JButtonDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JCheckBoxDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JCheckBoxMenuItemDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JComboBoxDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JDialogDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JListDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JMenuItemDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JPasswordFieldDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JProgressBarDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonMenuItemDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSliderDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSpinnerDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSplitPaneDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JTextAreaDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JTextFieldDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JToggleButtonDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BaseBeanDataBinding.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BeanDataBindingDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BindingExtremeDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationListDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationTableDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CounterDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.jaxx
trunk/jaxx-demo/src/site/site_fr.xml
trunk/jaxx-runtime/pom.xml
trunk/jaxx-runtime/src/site/site_fr.xml
trunk/jaxx-swing-action/pom.xml
trunk/jaxx-swing-action/src/site/site_fr.xml
trunk/jaxx-widgets/pom.xml
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ClockWidget.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/EntityComboBox.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/ColumnSelector.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/TimeEditor.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
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUI.jaxx
trunk/jaxx-widgets/src/site/site_fr.xml
trunk/maven-jaxx-plugin/pom.xml
trunk/maven-jaxx-plugin/src/site/site_fr.xml
Modified: trunk/jaxx-compiler/pom.xml
===================================================================
--- trunk/jaxx-compiler/pom.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-compiler/pom.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Compiler
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-compiler/src/site/site_fr.xml
===================================================================
--- trunk/jaxx-compiler/src/site/site_fr.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-compiler/src/site/site_fr.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Compiler
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/pom.xml
===================================================================
--- trunk/jaxx-demo/pom.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/pom.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
@@ -100,7 +99,8 @@
<jaxx.addProjectClassPath>true</jaxx.addProjectClassPath>
<jaxx.addSourcesToClassPath>true</jaxx.addSourcesToClassPath>
-
+ <jaxx.autoImportCss>true</jaxx.autoImportCss>
+
<!-- generate license bundled files -->
<license.generateBundle>true</license.generateBundle>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoPanel.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoPanel.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoPanel.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoSources.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
@@ -29,7 +28,7 @@
decorator='help'
onWindowClosing='getHandler().close(mainFrame)'>
- <style source='DemoUI.css'/>
+ <!--<style source='DemoUI.css'/>-->
<jaxx.runtime.swing.CardLayout2 id='contentLayout'/>
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/BoxedDecoratorDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/StatusMessagePanelDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/StatusMessagePanelDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/StatusMessagePanelDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/I18nEditorDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/I18nEditorDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/I18nEditorDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/NumberEditorDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/NumberEditorDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/NumberEditorDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorContentUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorContentUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorContentUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MovieContentUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MovieContentUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MovieContentUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/HidorButtonDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/HidorButtonDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/HidorButtonDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JButtonDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JButtonDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JButtonDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JCheckBoxDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JCheckBoxDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JCheckBoxDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JCheckBoxMenuItemDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JCheckBoxMenuItemDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JCheckBoxMenuItemDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JComboBoxDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JComboBoxDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JComboBoxDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JDialogDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JDialogDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JDialogDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JListDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JListDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JListDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JMenuItemDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JMenuItemDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JMenuItemDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JPasswordFieldDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JPasswordFieldDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JPasswordFieldDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JProgressBarDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JProgressBarDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JProgressBarDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JRadioButtonMenuItemDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSliderDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSliderDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSliderDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSpinnerDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSplitPaneDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSplitPaneDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JSplitPaneDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JTextAreaDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JTextAreaDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JTextAreaDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JTextFieldDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JTextFieldDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JTextFieldDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JToggleButtonDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JToggleButtonDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/swing/JToggleButtonDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BaseBeanDataBinding.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BeanDataBindingDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BeanDataBindingDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BeanDataBindingDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BindingExtremeDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BindingExtremeDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/databinding/BindingExtremeDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationListDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationListDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationListDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationTableDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationTableDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationTableDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Deleted: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/Calculator.css
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/fun/Calculator.css 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/fun/Calculator.css 2010-04-29 14:16:39 UTC (rev 1861)
@@ -1,76 +0,0 @@
-/*
- * #%L
- * JAXX :: Demo
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2008 - 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-#table {
- border: {BorderFactory.createEmptyBorder(4, 4, 4, 4)};
- font-face:"Trebuchet MS";
-}
-
-#display {
- background: #BCE5AD;
- opaque: true;
- horizontalAlignment: right;
- border: {BorderFactory.createBevelBorder(BevelBorder.LOWERED)};
- font-size:22;
- font-weight: bold;
-}
-
-#display:{object.getText().startsWith( "-" )} {
-foreground: red;
-}
-
-JButton {
- font-size: 18;
- width: 80;
- height: 35;
-}
-
-JButton.digit {
- foreground: blue;
-}
-
-JButton#dot {
- font-size: 20;
-}
-
-JButton.operator {
- font-size: 16;
- foreground: #009900;
-}
-
-JButton.clear {
- foreground: red;
-}
-
-/*JButton:mouseover {
- font-weight: bold;
-}*/
-
-JButton.operator:mouseover {
- font-weight: bold;
-}
-
-JButton.operator:mouseover {
- font-weight: normal;
-}
\ No newline at end of file
Copied: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.css (from rev 1858, trunk/jaxx-demo/src/main/java/jaxx/demo/fun/Calculator.css)
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.css (rev 0)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.css 2010-04-29 14:16:39 UTC (rev 1861)
@@ -0,0 +1,76 @@
+/*
+ * #%L
+ * JAXX :: Demo
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2008 - 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+#table {
+ border: {BorderFactory.createEmptyBorder(4, 4, 4, 4)};
+ font-face:"Trebuchet MS";
+}
+
+#display {
+ background: #BCE5AD;
+ opaque: true;
+ horizontalAlignment: right;
+ border: {BorderFactory.createBevelBorder(BevelBorder.LOWERED)};
+ font-size:22;
+ font-weight: bold;
+}
+
+#display:{object.getText().startsWith( "-" )} {
+foreground: red;
+}
+
+JButton {
+ font-size: 18;
+ width: 80;
+ height: 35;
+}
+
+JButton.digit {
+ foreground: blue;
+}
+
+JButton#dot {
+ font-size: 20;
+}
+
+JButton.operator {
+ font-size: 16;
+ foreground: #009900;
+}
+
+JButton.clear {
+ foreground: red;
+}
+
+/*JButton:mouseover {
+ font-weight: bold;
+}*/
+
+JButton.operator:mouseover {
+ font-weight: bold;
+}
+
+JButton.operator:mouseover {
+ font-weight: normal;
+}
\ No newline at end of file
Property changes on: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.css
___________________________________________________________________
Added: svn:keywords
+ HeadURL Id Date Revision Author
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CalculatorDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
@@ -25,14 +24,14 @@
-->
<jaxx.demo.DemoPanel>
- <style source='Calculator.css'/>
+ <!--<style source='CalculatorDemo.css'/>-->
<script><![CDATA[
plus.setText("+");
sign.setText("+/-");
@Override
protected String[] getSources() {
- return new String[]{ getDefaultSource(), "Calculator.css", "CalculatorEngine.java" };
+ return new String[]{ getDefaultSource(), "CalculatorDemo.css", "CalculatorEngine.java" };
}
]]>
</script>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CounterDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CounterDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/fun/CounterDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Deleted: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyle.css
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyle.css 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyle.css 2010-04-29 14:16:39 UTC (rev 1861)
@@ -1,58 +0,0 @@
-/*
- * #%L
- * JAXX :: Demo
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2008 - 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-JSlider {
- paintTicks: true;
-}
-
-JSlider.color {
- minorTickSpacing: 10;
- majorTickSpacing: 50;
- border: {BorderFactory.createEmptyBorder(1, 1, 1, 1)};
-}
-
-JSlider.color:focused {
- border: {BorderFactory.createLineBorder(Color.BLACK, 1)};
-}
-
-JSlider#red:focused {
- background: #E7ADAD;
-}
-
-JSlider#green:focused {
- background: #B2E7AD;
-}
-
-JSlider#blue:focused {
- background: #ADB2E7;
-}
-
-JSlider#dummySize {
- minorTickSpacing: 2;
- majorTickSpacing: 6;
-}
-
-JRadioButton {
- enabled: {backgroundCheckbox.isSelected()};
-}
\ No newline at end of file
Copied: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.css (from rev 1858, trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyle.css)
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.css (rev 0)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.css 2010-04-29 14:16:39 UTC (rev 1861)
@@ -0,0 +1,58 @@
+/*
+ * #%L
+ * JAXX :: Demo
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2008 - 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+JSlider {
+ paintTicks: true;
+}
+
+JSlider.color {
+ minorTickSpacing: 10;
+ majorTickSpacing: 50;
+ border: {BorderFactory.createEmptyBorder(1, 1, 1, 1)};
+}
+
+JSlider.color:focused {
+ border: {BorderFactory.createLineBorder(Color.BLACK, 1)};
+}
+
+JSlider#red:focused {
+ background: #E7ADAD;
+}
+
+JSlider#green:focused {
+ background: #B2E7AD;
+}
+
+JSlider#blue:focused {
+ background: #ADB2E7;
+}
+
+JSlider#dummySize {
+ minorTickSpacing: 2;
+ majorTickSpacing: 6;
+}
+
+JRadioButton {
+ enabled: {backgroundCheckbox.isSelected()};
+}
\ No newline at end of file
Property changes on: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.css
___________________________________________________________________
Added: svn:keywords
+ HeadURL Id Date Revision Author
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/fun/LabelStyleDemo.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
@@ -25,11 +24,11 @@
-->
<jaxx.demo.DemoPanel>
- <style source="LabelStyle.css"/>
+ <!--<style source="LabelStyleDemo.css"/>-->
<script><![CDATA[
@Override
protected String[] getSources() {
- return new String[]{ getDefaultSource(), "LabelStyle.css" };
+ return new String[]{ getDefaultSource(), "LabelStyleDemo.css" };
}
]]>
Modified: trunk/jaxx-demo/src/site/site_fr.xml
===================================================================
--- trunk/jaxx-demo/src/site/site_fr.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-demo/src/site/site_fr.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Demo
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-runtime/pom.xml
===================================================================
--- trunk/jaxx-runtime/pom.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-runtime/pom.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Runtime
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-runtime/src/site/site_fr.xml
===================================================================
--- trunk/jaxx-runtime/src/site/site_fr.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-runtime/src/site/site_fr.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Runtime
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-swing-action/pom.xml
===================================================================
--- trunk/jaxx-swing-action/pom.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-swing-action/pom.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Swing-Action
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-swing-action/src/site/site_fr.xml
===================================================================
--- trunk/jaxx-swing-action/src/site/site_fr.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-swing-action/src/site/site_fr.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Swing-Action
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/pom.xml
===================================================================
--- trunk/jaxx-widgets/pom.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/pom.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/AboutPanel.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ClockWidget.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ClockWidget.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ClockWidget.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/EntityComboBox.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/EntityComboBox.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/EntityComboBox.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ErrorDialogUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/FontSizor.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/HidorButton.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/MemoryStatusWidget.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/MemoryStatusWidget.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/MemoryStatusWidget.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/StatusMessagePanel.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/StatusMessagePanel.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/StatusMessagePanel.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/ColumnSelector.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/ColumnSelector.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/ColumnSelector.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/NumberEditor.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCallBackUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
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 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUI.jaxx 2010-04-29 14:16:39 UTC (rev 1861)
@@ -2,7 +2,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/jaxx-widgets/src/site/site_fr.xml
===================================================================
--- trunk/jaxx-widgets/src/site/site_fr.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/jaxx-widgets/src/site/site_fr.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Widgets
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- trunk/maven-jaxx-plugin/pom.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/maven-jaxx-plugin/pom.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Maven plugin
- $Author$
$Id$
$HeadURL$
%%
Modified: trunk/maven-jaxx-plugin/src/site/site_fr.xml
===================================================================
--- trunk/maven-jaxx-plugin/src/site/site_fr.xml 2010-04-29 14:01:01 UTC (rev 1860)
+++ trunk/maven-jaxx-plugin/src/site/site_fr.xml 2010-04-29 14:16:39 UTC (rev 1861)
@@ -3,7 +3,6 @@
#%L
JAXX :: Maven plugin
- $Author$
$Id$
$HeadURL$
%%
1
0
r1860 - in trunk: jaxx-compiler/src/main/java/jaxx/compiler jaxx-compiler/src/main/java/jaxx/compiler/css jaxx-compiler/src/main/java/jaxx/compiler/tags jaxx-widgets jaxx-widgets/src/main/java/jaxx/runtime/swing/editor jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin
by tchemit@users.nuiton.org 29 Apr '10
by tchemit@users.nuiton.org 29 Apr '10
29 Apr '10
Author: tchemit
Date: 2010-04-29 16:01:01 +0200 (Thu, 29 Apr 2010)
New Revision: 1860
Url: http://nuiton.org/repositories/revision/jaxx/1860
Log:
- Evolution #558: Add Auto import of css mode in generate goal
- clean some code
- improve css usefull methods
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXEngine.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/StyleHandler.java
trunk/jaxx-widgets/pom.xml
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUI.jaxx
trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java 2010-04-29 14:01:01 UTC (rev 1860)
@@ -29,7 +29,7 @@
import jaxx.runtime.JAXXContext;
/**
- * TODO javadoc.
+ * Configuration of a compiler task.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 2.0.0
@@ -87,6 +87,12 @@
boolean getOptimize();
/**
+ * Returns whether or not auto css should be used.
+ * @return {@code true} if a css file with same name as jaxx file should be included in jaxx file if found.
+ */
+ boolean isAutoImportCss();
+
+ /**
* Returns the target directory.
*
* @return the target directory
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java 2010-04-29 14:01:01 UTC (rev 1860)
@@ -114,6 +114,8 @@
* Encoding to use to write files
*/
private String encoding;
+
+ private boolean autoImportCss;
@Override
public File getTargetDirectory() {
@@ -215,6 +217,11 @@
}
@Override
+ public boolean isAutoImportCss() {
+ return autoImportCss;
+ }
+
+ @Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java 2010-04-29 14:01:01 UTC (rev 1860)
@@ -47,6 +47,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.FileUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.*;
@@ -254,6 +255,17 @@
protected final JAXXEngine engine;
/**
+ * Flag to know if jaxx file ident css was found, otherwise add it
+ * when {@link CompilerConfiguration#isAutoImportCss()} is sets to {@code true}
+ * at the end of the second compile pass.
+ *
+ * @since 2.0.2
+ */
+ protected boolean identCssFound;
+
+ public static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+ /**
* Creates a new JAXXCompiler.
*
* @param engine engine which use the compiler (could be null if not attach to any engine)
@@ -263,16 +275,24 @@
* @param configuration configuration to pass to javac
* @param defaultImports list of default imports to add to java files
*/
- public JAXXCompiler(JAXXEngine engine, File baseDir, File src, String outputClassName, CompilerConfiguration configuration, List<String> defaultImports) {
+ public JAXXCompiler(JAXXEngine engine,
+ File baseDir,
+ File src,
+ String outputClassName,
+ CompilerConfiguration configuration,
+ List<String> defaultImports) {
this.engine = engine;
this.baseDir = baseDir;
this.src = src;
- this.firstPassClassTagHandler = new DefaultObjectHandler(ClassDescriptorLoader.getClassDescriptor(Object.class));
+ firstPassClassTagHandler = new DefaultObjectHandler(
+ ClassDescriptorLoader.getClassDescriptor(Object.class)
+ );
sourceFiles.push(src);
this.outputClassName = outputClassName;
this.configuration = configuration;
if (outputClassName != null) {
- addImport(outputClassName.substring(0, outputClassName.lastIndexOf(".") + 1) + "*");
+ addImport(outputClassName.substring(
+ 0, outputClassName.lastIndexOf(".") + 1) + "*");
}
if (defaultImports != null) {
for (Object staticImport : defaultImports) {
@@ -286,10 +306,14 @@
addImport(extraImport);
}
}
- defaultDecorator = engine.getDecorator(configuration.getDefaultDecoratorClass());
+ defaultDecorator = engine.getDecorator(
+ configuration.getDefaultDecoratorClass());
if (defaultDecorator == null) {
- log.error("could not find default decorator : " + configuration.getDefaultDecoratorClass());
- throw new IllegalArgumentException("could not find default decorator : " + configuration.getDefaultDecoratorClass());
+ log.error("could not find default decorator : " +
+ configuration.getDefaultDecoratorClass());
+ throw new IllegalArgumentException(
+ "could not find default decorator : " +
+ configuration.getDefaultDecoratorClass());
}
idHelper = new IDHelper(configuration.isOptimize());
} else {
@@ -369,16 +393,16 @@
// add java bean support for this property
String capitalizeName = StringUtils.capitalize(id);
// add method
- symbolTable.getScriptMethods().add(new MethodDescriptor("get" + capitalizeName, Modifier.PUBLIC, fullClassName, new String[0], classLoader));
+ symbolTable.getScriptMethods().add(new MethodDescriptor("get" + capitalizeName, Modifier.PUBLIC, fullClassName, EMPTY_STRING_ARRAY, classLoader));
if (Boolean.class.getName().equals(fullClassName)) {
- symbolTable.getScriptMethods().add(new MethodDescriptor("is" + capitalizeName, Modifier.PUBLIC, fullClassName, new String[0], classLoader));
+ symbolTable.getScriptMethods().add(new MethodDescriptor("is" + capitalizeName, Modifier.PUBLIC, fullClassName, EMPTY_STRING_ARRAY, classLoader));
}
symbolTable.getScriptMethods().add(new MethodDescriptor("set" + capitalizeName, Modifier.PUBLIC, "void", new String[]{fullClassName}, classLoader));
} else {
// add simple get support
String capitalizeName = StringUtils.capitalize(id);
// add method
- symbolTable.getScriptMethods().add(new MethodDescriptor("get" + capitalizeName, Modifier.PUBLIC, fullClassName, new String[0], classLoader));
+ symbolTable.getScriptMethods().add(new MethodDescriptor("get" + capitalizeName, Modifier.PUBLIC, fullClassName, EMPTY_STRING_ARRAY, classLoader));
}
}
String interfacesStr = tag.getAttribute(DefaultObjectHandler.IMPLEMENTS_ATTRIBUTE);
@@ -422,13 +446,15 @@
// (and we can't wait until they have been processed because of circular dependencies). So we don't do any processing
// during the first pass which requires having a ClassDescriptor; here we determine whether we have a class tag or not
// (class tag namespaces end in "*") and use a generic handler if so. The real handler is used during the second pass.
- TagHandler handler = (namespace != null && namespace.endsWith("*")) ? firstPassClassTagHandler : TagManager.getTagHandler(tag.getNamespaceURI(), localName, namespacePrefix, this);
- if (handler != firstPassClassTagHandler && handler instanceof DefaultObjectHandler) {
+ TagHandler handler = namespace != null && namespace.endsWith("*") ?
+ firstPassClassTagHandler :
+ TagManager.getTagHandler(tag.getNamespaceURI(), localName, namespacePrefix, this);
+ if (!firstPassClassTagHandler.equals(handler) && handler instanceof DefaultObjectHandler) {
fullClassName = ((DefaultObjectHandler) handler).getBeanClass().getName();
//namespace = fullClassName.substring(0, fullClassName.lastIndexOf(".") + 1) + "*";
handler = firstPassClassTagHandler;
}
- if (handler == firstPassClassTagHandler) {
+ if (firstPassClassTagHandler.equals(handler)) {
final String finalClassName = fullClassName;
registerInitializer(new Runnable() {
// register an initializer which will create the CompiledObject after pass 1
@@ -478,15 +504,16 @@
}
protected void compileFirstPass() throws IOException {
+ InputStream in = new FileInputStream(src);
try {
- InputStream in = new FileInputStream(src);
document = parseDocument(in);
- in.close();
compileFirstPass(document.getDocumentElement());
} catch (SAXParseException e) {
reportError(e.getLineNumber(), "Invalid XML: " + e.getMessage());
} catch (SAXException e) {
reportError(null, "Error parsing XML document: " + e);
+ } finally {
+ in.close();
}
}
@@ -627,7 +654,7 @@
int index = 0;
String result2;
do {
- result2 = result + "_" + (index++);
+ result2 = result + "_" + index++;
} while (eventHandlerMethodNames.containsValue(result2));
result = result2;
@@ -669,7 +696,10 @@
if (sourceFile != null) {
File pop = sourceFiles.pop();
if (pop != sourceFile) {
- throw new RuntimeException("leaving registerScript(), but " + sourceFile + " was not the top entry on the stack (found " + pop + " instead)");
+ throw new RuntimeException(
+ "leaving registerScript(), but " + sourceFile +
+ " was not the top entry on the stack (found " + pop
+ + " instead)");
}
}
}
@@ -681,6 +711,50 @@
/*------------------------------------------------------------------------*/
/*-- StyleSheet methods --------------------------------------------------*/
/*------------------------------------------------------------------------*/
+
+ public File getIdentCssFile() {
+ String extension = FileUtil.extension(src);
+ String jaxxFileName = src.getName();
+ String identCssFilename = jaxxFileName.substring(
+ 0,
+ jaxxFileName.length() - extension.length()) + "css";
+ File identCssFile = new File(src.getParentFile(), identCssFilename);
+ return identCssFile;
+ }
+
+ public boolean isIdentCssFound() {
+ return identCssFound;
+ }
+
+ public void registerStyleSheetFile(File styleFile) throws IOException {
+ if (!identCssFound && getConfiguration().isAutoImportCss()) {
+
+ // detects if the given css file is ident to jaxx file
+ File identCssFile = getIdentCssFile();
+
+ if (identCssFile.exists()) {
+
+ // ok found ident css file
+ identCssFound = true;
+
+ reportWarning("autoImportCss mode is on, you can remove style declaration with source " + styleFile);
+// if (getConfiguration().isVerbose()) {
+// log.info("Ident css found : " + identCssFile);
+// }
+ }
+
+ }
+ String content = StylesheetHelper.loadCssFile(this, styleFile);
+ getSourceFiles().push(styleFile);
+ try {
+ Stylesheet stylesheet = StylesheetHelper.processStylesheet(content);
+ registerStylesheet(stylesheet);
+ } finally {
+
+ // whatever could be result, must pop this source file
+ getSourceFiles().pop();
+ }
+ }
public void applyStylesheets() {
for (Object o : new ArrayList<CompiledObject>(objects.values())) {
CompiledObject object = (CompiledObject) o;
@@ -728,7 +802,7 @@
StringBuilder buffer = new StringBuilder();
buffer.append(srcFile);
if (lineNumber != null) {
- buffer.append(":").append((sourceFiles.size() == 1) ? Integer.parseInt(lineNumber) + lineOffset : lineOffset + 1);
+ buffer.append(":").append(sourceFiles.size() == 1 ? Integer.parseInt(lineNumber) + lineOffset : lineOffset + 1);
}
buffer.append(getLineSeparator()).append(warning.trim());
if (engine != null) {
@@ -752,7 +826,7 @@
public void reportError(String extraMessage, CompilerException ex) {
String message = ex.getMessage();
- if (ex.getClass() == UnsupportedAttributeException.class || ex.getClass() == UnsupportedTagException.class) {
+ if (UnsupportedAttributeException.class.equals(ex.getClass()) || UnsupportedTagException.class.equals(ex.getClass())) {
message = ex.getClass().getName().substring(ex.getClass().getName().lastIndexOf(".") + 1) + ": " + message;
}
int lineOffset;
@@ -950,7 +1024,7 @@
int parentIndex = -1;
if (parent != null) {
for (int j = 0; j < i; j++) {
- if (components[j] == parent) {
+ if (components[j].equals(parent)) {
parentIndex = j;
break;
}
@@ -1106,43 +1180,14 @@
return true;
}
-// public String getAutoId(ClassDescriptor objectClass) {
-// String name = objectClass.getName();
-// name = name.substring(name.lastIndexOf(".") + 1);
-// return getAutoId(name);
-//// if (configuration.getOptimize()) {
-//// return "$" + Integer.toString(autogenID++, 36);
-//// } else {
-//// String name = objectClass.getName();
-//// name = name.substring(name.lastIndexOf(".") + 1);
-//// return "$" + name + autogenID++;
-//// }
-// }
-
public String getAutoId(String name) {
return idHelper.nextId(name);
-// if (configuration.getOptimize()) {
-// return "$" + Integer.toString(autogenID++, 36);
-// } else {
-// name = name.substring(name.lastIndexOf(".") + 1);
-// return "$" + name + autogenID++;
-// }
}
public String getUniqueId(Object object) {
return idHelper.getUniqueId(object);
-// String result = uniqueIds.get(object);
-// if (result == null) {
-// result = "$u" + uniqueIds.size();
-// uniqueIds.put(object, result);
-// }
-// return result;
}
-// public void revertId(String name) {
-// idHelper.revertId(name);
-// }
-
public void setExtraInterfaces(String[] extraInterfaces) {
this.extraInterfaces = extraInterfaces;
}
@@ -1246,19 +1291,11 @@
log.warn("could not touch file " + dest);
}
PrintWriter out = null;
+ out = new PrintWriter(new FileWriter(dest));
try {
- out = new PrintWriter(new FileWriter(dest));
generator.generateFile(javaFile, out);
- } catch (IOException e) {
- // file could not be generated, so delete it...
- if (!dest.delete()) {
- log.warn("could not delete file " + dest);
- }
- throw e;
} finally {
- if (out != null) {
- out.close();
- }
+ out.close();
}
}
@@ -1450,286 +1487,4 @@
ids.clear();
}
-// /*------------------------------------------------------------------------*/
-// /*-- REMOVE CODE (Goto to idHelper and DataBindingHelper) ----------------*/
-// /*------------------------------------------------------------------------*/
-// /**
-// * Sequence number used to create automatic variable names.
-// */
-// protected int autogenID = 0;
-// /**
-// * data bindings detected
-// */
-// protected List<DataBinding> dataBindings = new ArrayList<DataBinding>();
-// /**
-// * Maps of uniqued id for objects used in compiler
-// */
-// protected Map<Object, String> uniqueIds = new HashMap<Object, String>();
-// /**
-// * left brace matcher
-// */
-// protected Matcher leftBraceMatcher = Pattern.compile("^(\\{)|[^\\\\](\\{)").matcher("");
-// /**
-// * right brace matcher
-// */
-// protected Matcher rightBraceMatcher = Pattern.compile("^(\\})|[^\\\\](\\})").matcher("");
-// /**
-// * Code to initialize data bindings.
-// */
-// protected StringBuffer initDataBindings = new StringBuffer();
-// /**
-// * Body of the applyDataBinding method.
-// */
-// protected StringBuffer applyDataBinding = new StringBuffer();
-// /**
-// * Body of the removeDataBinding method.
-// */
-// protected StringBuffer removeDataBinding = new StringBuffer();
-// /**
-// * Body of the processDataBinding method.
-// */
-// protected StringBuffer processDataBinding = new StringBuffer();
-// public String getJavaCode(Object object) {
-// String result = TypeManager.getJavaCode(object);
-// return result;
-// }
-// public Object convertFromString(String string, Class<?> type) {
-// Object result = TypeManager.convertFromString(string, type);
-// return result;
-// }
-// public List<DataBinding> getDataBindings() {
-// return dataBindings;
-// }
-// /**
-// * Examine an attribute value for data binding expressions. Returns a 'cooked' expression which
-// * can be used to determine the resulting value. It is expected that this expression will be used
-// * as the source expression in a call to {@link #registerDataBinding}.
-// * If the attribute value does not invoke data binding, this method returns <code>null</code>
-// *
-// * @param stringValue the string value of the property from the XML
-// * @return a processed version of the expression
-// * @throws CompilerException ?
-// */
-// public String processDataBindings(String stringValue) throws CompilerException {
-// int pos = getNextLeftBrace(stringValue, 0);
-// if (pos != -1) {
-// StringBuffer expression = new StringBuffer();
-// int lastPos = 0;
-// while (pos != -1 && pos < stringValue.length()) {
-// if (pos > lastPos) {
-// if (expression.length() > 0) {
-// expression.append(" + ");
-// }
-// expression.append('"');
-// expression.append(escapeJavaString(stringValue.substring(lastPos, pos)));
-// expression.append('"');
-// }
-// boolean multi = expression.length() > 0;
-// if (multi) {
-// expression.append(" + ");
-// expression.append('(');
-// }
-// int pos2 = getNextRightBrace(stringValue, pos + 1);
-// if (pos2 == -1) {
-// reportError("unmatched '{' in expression: " + stringValue);
-// return "";
-// }
-// expression.append(stringValue.substring(pos + 1, pos2));
-// if (multi) {
-// expression.append(')');
-// }
-// pos2++;
-// if (pos2 < stringValue.length()) {
-// pos = getNextLeftBrace(stringValue, pos2);
-// lastPos = pos2;
-// } else {
-// pos = stringValue.length();
-// lastPos = pos;
-// }
-// }
-// if (lastPos < stringValue.length()) {
-// if (expression.length() > 0) {
-// expression.append(" + ");
-// }
-// expression.append('"');
-// expression.append(escapeJavaString(stringValue.substring(lastPos)));
-// expression.append('"');
-// }
-// //TC-20091027 : developper must write extact databinding
-// // the fact of adding the String boxed for String type binding is not
-// // a good thing, since it add one more call to process in binding
-// // and add nothing special more ?
-//// return type == ClassDescriptorLoader.getClassDescriptor(String.class) ? "String.valueOf(" + expression + ")" : expression.toString();
-// return expression.toString();
-// }
-// return null;
-// }
-// public void registerDataBinding(String src, String dest, String assignment) {
-// try {
-// src = checkJavaCode(src);
-//// if (log.isDebugEnabled()) {
-//// log.info(getRootObject().getId() + " src=" + src + ", dst=" + dest.trim());
-//// }
-// dataBindings.add(new DataBinding(src, dest, assignment));
-//// dataBindings.add(new DataBinding(src, dest, assignment, this));
-// } catch (CompilerException e) {
-// reportError("While parsing data binding for '" + dest.substring(dest.lastIndexOf(".") + 1) + "': " + e.getMessage());
-// }
-// }
-// public void setFailed(boolean failed) {
-// this.failed = failed;
-// }
-// public StringBuffer getInitDataBindings() {
-// return initDataBindings;
-// }
-// public StringBuffer getApplyDataBinding() {
-// return applyDataBinding;
-// }
-// public StringBuffer getRemoveDataBinding() {
-// return removeDataBinding;
-// }
-// public StringBuffer getProcessDataBinding() {
-// return processDataBinding;
-// }
-// public void appendInitDataBindings(String code) {
-// initDataBindings.append(code);
-// }
-
-// public void appendProcessDataBinding(String code) {
-// processDataBinding.append(code);
-// }
-
-// public void appendApplyDataBinding(String code) {
-// applyDataBinding.append(code);
-// }
-
-// public void appendRemoveDataBinding(String code) {
-// removeDataBinding.append(code);
-// }
-
-// public boolean hasProcessDataBinding() {
-// return processDataBinding.length() > 0;
-// }
-
-// public boolean hasApplyDataBinding() {
-// return applyDataBinding.length() > 0;
-// }
-
- // public boolean hasRemoveDataBinding() {
-// return removeDataBinding.length() > 0;
-// }
-// public int getNextLeftBrace(String string, int pos) {
-// leftBraceMatcher.reset(string);
-// return leftBraceMatcher.find(pos) ? Math.max(leftBraceMatcher.start(1), leftBraceMatcher.start(2)) : -1;
-// }
-//
-// public int getNextRightBrace(String string, int pos) {
-// leftBraceMatcher.reset(string);
-// rightBraceMatcher.reset(string);
-// int openCount = 1;
-// int rightPos;
-// while (openCount > 0) {
-// pos++;
-// int leftPos = leftBraceMatcher.find(pos) ? Math.max(leftBraceMatcher.start(1), leftBraceMatcher.start(2)) : -1;
-// rightPos = rightBraceMatcher.find(pos) ? Math.max(rightBraceMatcher.start(1), rightBraceMatcher.start(2)) : -1;
-// assert leftPos == -1 || leftPos >= pos;
-// assert rightPos == -1 || rightPos >= pos;
-// if (leftPos != -1 && leftPos < rightPos) {
-// pos = leftPos;
-// openCount++;
-// } else if (rightPos != -1) {
-// pos = rightPos;
-// openCount--;
-// } else {
-// openCount = 0;
-// }
-// }
-// return pos;
-// }
-//
-// public String[] parseParameterList(String parameters) throws CompilerException {
-// List<String> result = new ArrayList<String>();
-// StringBuffer current = new StringBuffer();
-// int state = 0; // normal
-// for (int i = 0; i < parameters.length(); i++) {
-// char c = parameters.charAt(i);
-// switch (state) {
-// case 0: // normal
-// switch (c) {
-// case '"':
-// current.append(c);
-// state = 1;
-// break; // in quoted string
-// case '\\':
-// current.append(c);
-// state = 2;
-// break; // immediately after backslash
-// case ',':
-// if (current.length() > 0) {
-// result.add(current.toString());
-// current.setLength(0);
-// break;
-// } else {
-// reportError("error parsing parameter list: " + parameters);
-// break;
-// }
-// default:
-// current.append(c);
-// }
-// break;
-// case 1: // in quoted string
-// switch (c) {
-// case '"':
-// current.append(c);
-// state = 0;
-// break; // normal
-// case '\\':
-// current.append(c);
-// state = 3;
-// break; // immediate after backslash in quoted string
-// default:
-// current.append(c);
-// }
-// break;
-// case 2: // immediately after backslash
-// current.append(c);
-// state = 0; // normal
-// break;
-// case 3: // immediately after backslash in quoted string
-// current.append(c);
-// state = 1; // in quoted string
-// break;
-// }
-// }
-// if (current.length() > 0) {
-// result.add(current.toString());
-// }
-// return result.toArray(new String[result.size()]);
-// }
-// /**
-// * Convertit un nom de variable en nom de constante.
-// *
-// * @param variableName le nom de variable a convertir
-// * @return le nom de la constante à partir du nom de la variable
-// */
-// public static String convertVariableNameToConstantName(String variableName) {
-// StringBuilder buffer = new StringBuilder();
-// boolean lastCarIsUp = false;
-// for (int i = 0, j = variableName.length(); i < j; i++) {
-// char c = variableName.charAt(i);
-// boolean carIsUp = Character.isUpperCase(c);
-// if (i > 0 && !lastCarIsUp && carIsUp) {
-// // ajout d'un _
-// buffer.append('_');
-// }
-// if (carIsUp) {
-// buffer.append(c);
-// } else {
-// buffer.append(Character.toUpperCase(c));
-// }
-// lastCarIsUp = carIsUp;
-// }
-// return buffer.toString();
-// }
-
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXEngine.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXEngine.java 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXEngine.java 2010-04-29 14:01:01 UTC (rev 1860)
@@ -255,8 +255,8 @@
do {
compiled = false;
assert engine.jaxxFiles.size() == engine.jaxxFileClassNames.size();
- java.util.Iterator<File> filesIterator = new ArrayList<File>(engine.jaxxFiles).iterator(); // clone it so it can safely be modified while we're iterating
- java.util.Iterator<String> classNamesIterator = new ArrayList<String>(engine.jaxxFileClassNames).iterator();
+ Iterator<File> filesIterator = new ArrayList<File>(engine.jaxxFiles).iterator(); // clone it so it can safely be modified while we're iterating
+ Iterator<String> classNamesIterator = new ArrayList<String>(engine.jaxxFileClassNames).iterator();
while (filesIterator.hasNext()) {
File file = filesIterator.next();
String className = classNamesIterator.next();
@@ -284,6 +284,25 @@
addStartProfileTime(engine, compiler);
engine.compilers.put(className, compiler);
compiler.compileFirstPass();
+ if (compiler.getConfiguration().isAutoImportCss() && !compiler.isIdentCssFound()) {
+
+ // check if can add ident css file
+
+ File cssFile = compiler.getIdentCssFile();
+ if (log.isDebugEnabled()) {
+ log.debug("test ident css file " + cssFile+" : "+compiler.getConfiguration().isVerbose());
+ }
+ if (cssFile.exists()) {
+
+ compiler.identCssFound = true;
+
+ if (compiler.getConfiguration().isVerbose()) {
+ log.info("Auto import of css " + cssFile);
+ }
+ // ok add it
+ compiler.registerStyleSheetFile(cssFile);
+ }
+ }
addEndProfileTime(engine, compiler);
assert !engine.symbolTables.values().contains(compiler.getSymbolTable()) : "symbolTable is already registered";
engine.symbolTables.put(file, compiler.getSymbolTable());
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/css/StylesheetHelper.java 2010-04-29 14:01:01 UTC (rev 1860)
@@ -31,6 +31,10 @@
import jaxx.compiler.binding.DataBinding;
import jaxx.compiler.binding.DataBindingHelper;
import jaxx.compiler.binding.PseudoClassDataBinding;
+import jaxx.compiler.css.parser.CSSParser;
+import jaxx.compiler.css.parser.CSSParserConstants;
+import jaxx.compiler.css.parser.CSSParserTreeConstants;
+import jaxx.compiler.css.parser.SimpleNode;
import jaxx.compiler.reflect.ClassDescriptor;
import jaxx.compiler.reflect.ClassDescriptorLoader;
import jaxx.compiler.reflect.MethodDescriptor;
@@ -43,6 +47,7 @@
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
+import java.io.*;
import java.util.*;
/**
@@ -55,6 +60,110 @@
*/
public class StylesheetHelper {
+ public static String loadCssFile(JAXXCompiler compiler,
+ File styleFile) throws IOException {
+ FileReader in = new FileReader(styleFile);
+ try {
+ StringWriter styleBuffer = new StringWriter();
+ char[] readBuffer = new char[2048];
+ int c;
+ while ((c = in.read(readBuffer)) > 0) {
+ styleBuffer.write(readBuffer, 0, c);
+ }
+ return styleBuffer.toString();
+ } catch (FileNotFoundException e) {
+ compiler.reportError("stylesheet file not found: " + styleFile);
+ return "";
+ } finally {
+ in.close();
+ }
+ }
+
+ public static Stylesheet processStylesheet(String stylesheetText) throws CompilerException {
+ CSSParser p = new CSSParser(new StringReader(stylesheetText));
+ SimpleNode node;
+ try {
+ node = p.Stylesheet();
+ } catch (Error e) {
+ throw new CompilerException(e);
+ }
+ List<Rule> rules = new ArrayList<Rule>();
+ for (int i = 0; i < node.jjtGetNumChildren(); i++) {
+ SimpleNode ruleNode = node.getChild(i);
+ Rule rule = processRule(ruleNode);
+ rules.add(rule);
+ }
+ Stylesheet stylesheet;
+ stylesheet = new Stylesheet(rules.toArray(new Rule[rules.size()]));
+ return stylesheet;
+ }
+
+ public static Rule processRule(SimpleNode ruleNode) {
+ if (ruleNode.getId() != CSSParserTreeConstants.JJTRULE) {
+ throw new IllegalArgumentException("argument node is not a Rule");
+ }
+ SimpleNode selectorsNode = ruleNode.getChild(0);
+ assert selectorsNode.getId() == CSSParserTreeConstants.JJTSELECTORS : "expected node to be of type Selectors";
+
+ List<Selector> selectors = new ArrayList<Selector>();
+ for (int i = 0; i < selectorsNode.jjtGetNumChildren(); i++) {
+ SimpleNode selectorNode = selectorsNode.getChild(i);
+ selectors.add(processSelector(selectorNode));
+ }
+
+ Map<String, String> properties = new HashMap<String, String>();
+ for (int i = 1; i < ruleNode.jjtGetNumChildren(); i++) {
+ SimpleNode declarationNode = ruleNode.getChild(i);
+ if (declarationNode.getId() == CSSParserTreeConstants.JJTDECLARATION) {
+ String key = declarationNode.getChild(0).getText();
+ SimpleNode valueNode = declarationNode.getChild(1);
+ String value = valueNode.getText();
+ if (valueNode.firstToken.kind == CSSParserConstants.STRING) {
+ value = value.substring(1, value.length() - 1);
+ }
+ properties.put(key, value);
+ }
+ }
+ Rule rule;
+ rule = new Rule(selectors.toArray(new Selector[selectors.size()]), properties);
+ return rule;
+ }
+
+ public static Selector processSelector(SimpleNode selector) {
+ if (selector.getId() != CSSParserTreeConstants.JJTSELECTOR) {
+ throw new IllegalArgumentException("argument node is not a Selector");
+ }
+ String javaClassName = null;
+ String styleClass = null;
+ String pseudoClass = null;
+ String id = null;
+
+ for (int i = 0; i < selector.jjtGetNumChildren(); i++) {
+ SimpleNode child = selector.getChild(i);
+ switch (child.getId()) {
+ case CSSParserTreeConstants.JJTJAVACLASS:
+ if (!child.getText().trim().equals("*")) {
+ javaClassName = child.getText();
+ }
+ break;
+ case CSSParserTreeConstants.JJTCLASS:
+ styleClass = child.getText().substring(1);
+ break;
+ case CSSParserTreeConstants.JJTPSEUDOCLASS:
+ pseudoClass = child.getText().substring(1);
+ break;
+ case CSSParserTreeConstants.JJTID:
+ id = child.getText().substring(1);
+ break;
+
+ default:
+ throw new IllegalStateException("unexpected child of Selector node, type=" + child.getId());
+ }
+ }
+
+ return new Selector(javaClassName, styleClass, pseudoClass, id);
+ }
+
public enum MouseEventEnum {
mouseover("mouseEntered", "mouseExited"),
@@ -145,7 +254,10 @@
}
}
- public static void applyTo(CompiledObject object, JAXXCompiler compiler, Stylesheet stylesheet, Stylesheet overrides) throws CompilerException {
+ public static void applyTo(CompiledObject object,
+ JAXXCompiler compiler,
+ Stylesheet stylesheet,
+ Stylesheet overrides) throws CompilerException {
Map<String, String> overriddenProperties;
if (overrides != null) {
overriddenProperties = getApplicableProperties(overrides, object);
@@ -159,30 +271,37 @@
if (overriddenProperties != null) {
properties.keySet().removeAll(overriddenProperties.keySet());
}
- DefaultObjectHandler handler = TagManager.getTagHandler(object.getObjectClass());
+ DefaultObjectHandler handler =
+ TagManager.getTagHandler(object.getObjectClass());
for (Map.Entry<String, String> e : properties.entrySet()) {
String value = e.getValue();
- if (value.equals(Rule.INLINE_ATTRIBUTE) || value.equals(Rule.DATA_BINDING)) {
+ if (value.equals(Rule.INLINE_ATTRIBUTE) ||
+ value.equals(Rule.DATA_BINDING)) {
continue;
}
- handler.setAttribute(object, e.getKey(), e.getValue(), false, compiler);
+ handler.setAttribute(object, e.getKey(), e.getValue(),
+ false, compiler);
}
}
Rule[] pseudoClasses = getApplicablePseudoClasses(stylesheet, object);
if (pseudoClasses != null) {
- Map<String, Map<String, String>> combinedPseudoClasses = new LinkedHashMap<String, Map<String, String>>();
+ Map<String, Map<String, String>> combinedPseudoClasses =
+ new LinkedHashMap<String, Map<String, String>>();
for (Rule pseudoClass1 : pseudoClasses) {
Selector[] selectors = pseudoClass1.getSelectors();
for (Selector selector : selectors) {
- if (appliesTo(selector, object) == Selector.PSEUDOCLASS_APPLIES) {
+ if (appliesTo(selector, object) ==
+ Selector.PSEUDOCLASS_APPLIES) {
properties = pseudoClass1.getProperties();
String pseudoClass = selector.getPseudoClass();
// TODO: overrides by downstream pseudoclasses are not handled
- Map<String, String> combinedProperties = combinedPseudoClasses.get(pseudoClass);
+ Map<String, String> combinedProperties =
+ combinedPseudoClasses.get(pseudoClass);
if (combinedProperties == null) {
combinedProperties = new HashMap<String, String>();
- combinedPseudoClasses.put(pseudoClass, combinedProperties);
+ combinedPseudoClasses.put(pseudoClass,
+ combinedProperties);
}
combinedProperties.putAll(properties);
}
@@ -190,8 +309,10 @@
}
int count = 0;
- for (Map.Entry<String, Map<String, String>> e : combinedPseudoClasses.entrySet()) {
- applyPseudoClass(e.getKey(), e.getValue(), object, compiler, count++);
+ for (Map.Entry<String, Map<String, String>> e :
+ combinedPseudoClasses.entrySet()) {
+ applyPseudoClass(e.getKey(), e.getValue(), object, compiler,
+ count++);
}
}
}
@@ -327,28 +448,28 @@
// }
public static String unwrap(ClassDescriptor type, String valueCode) {
- if (type == ClassDescriptorLoader.getClassDescriptor(boolean.class)) {
+ if (ClassDescriptorLoader.getClassDescriptor(boolean.class).equals(type)) {
return "((java.lang.Boolean) " + valueCode + ").booleanValue()";
}
- if (type == ClassDescriptorLoader.getClassDescriptor(byte.class)) {
+ if (ClassDescriptorLoader.getClassDescriptor(byte.class).equals(type)) {
return "((java.lang.Byte) " + valueCode + ").byteValue()";
}
- if (type == ClassDescriptorLoader.getClassDescriptor(short.class)) {
+ if (ClassDescriptorLoader.getClassDescriptor(short.class).equals(type)) {
return "((java.lang.Short) " + valueCode + ").shortValue()";
}
- if (type == ClassDescriptorLoader.getClassDescriptor(int.class)) {
+ if (ClassDescriptorLoader.getClassDescriptor(int.class).equals(type)) {
return "((java.lang.Integer) " + valueCode + ").intValue()";
}
- if (type == ClassDescriptorLoader.getClassDescriptor(long.class)) {
+ if (ClassDescriptorLoader.getClassDescriptor(long.class).equals(type)) {
return "((java.lang.Long) " + valueCode + ").longValue()";
}
- if (type == ClassDescriptorLoader.getClassDescriptor(float.class)) {
+ if (ClassDescriptorLoader.getClassDescriptor(float.class).equals(type)) {
return "((java.lang.Float) " + valueCode + ").floatValue()";
}
- if (type == ClassDescriptorLoader.getClassDescriptor(double.class)) {
+ if (ClassDescriptorLoader.getClassDescriptor(double.class).equals(type)) {
return "((java.lang.Double) " + valueCode + ").doubleValue()";
}
- if (type == ClassDescriptorLoader.getClassDescriptor(char.class)) {
+ if (ClassDescriptorLoader.getClassDescriptor(char.class).equals(type)) {
return "((java.lang.Character) " + valueCode + ").charValue()";
}
return valueCode;
@@ -375,10 +496,10 @@
public static void applyPseudoClass(String pseudoClass, Map<String, String> properties,
CompiledObject object, JAXXCompiler compiler, int priority) throws CompilerException {
- if (pseudoClass.indexOf("[") != -1) {
+ if (pseudoClass.contains("[")) {
pseudoClass = pseudoClass.substring(0, pseudoClass.indexOf("["));
}
- final StringBuffer buffer = new StringBuffer();
+ StringBuffer buffer = new StringBuffer();
DefaultObjectHandler handler = TagManager.getTagHandler(object.getObjectClass());
boolean valueDeclared = false;
@@ -564,7 +685,7 @@
String id = selector.getId();
while (parent != null) {
- boolean classMatch = (javaClassName == null);
+ boolean classMatch = javaClassName == null;
if (!classMatch) {
ClassDescriptor javaClass = parent.getObjectClass();
do {
@@ -577,11 +698,13 @@
} while (javaClass != null);
}
- boolean styleClassMatch = (styleClass == null || styleClass.equals(parent.getStyleClass()));
+ boolean styleClassMatch = styleClass == null ||
+ styleClass.equals(parent.getStyleClass());
String objectId = parent.getId();
objectId = objectId.substring(objectId.lastIndexOf(".") + 1);
- boolean idMatch = (id == null || (' ' + objectId + ' ').indexOf(' ' + id + ' ') > -1);
+ boolean idMatch = id == null ||
+ (' ' + objectId + ' ').contains(' ' + id + ' ');
if (classMatch && styleClassMatch && idMatch) {
if (pseudoClass != null) {
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/StyleHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/StyleHandler.java 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/StyleHandler.java 2010-04-29 14:01:01 UTC (rev 1860)
@@ -28,12 +28,7 @@
import jaxx.compiler.CompilerException;
import jaxx.compiler.UnsupportedAttributeException;
import jaxx.compiler.JAXXCompiler;
-import jaxx.compiler.css.parser.CSSParser;
-import jaxx.compiler.css.parser.CSSParserConstants;
-import jaxx.compiler.css.parser.CSSParserTreeConstants;
-import jaxx.compiler.css.parser.SimpleNode;
-import jaxx.runtime.css.Rule;
-import jaxx.runtime.css.Selector;
+import jaxx.compiler.css.StylesheetHelper;
import jaxx.runtime.css.Stylesheet;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
@@ -43,15 +38,8 @@
import org.w3c.dom.Text;
import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
import java.io.IOException;
-import java.io.StringReader;
import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
/**
* Handles the <code><style></code> tag.
@@ -72,20 +60,27 @@
if (name.equals(SOURCE_ATTRIBUTE)) {
source = true;
File styleFile = new File(compiler.getBaseDir(), attrValue.replace('/', File.separatorChar));
- StringWriter styleBuffer = new StringWriter();
- try {
- FileReader in = new FileReader(styleFile);
- char[] readBuffer = new char[2048];
- int c;
- while ((c = in.read(readBuffer)) > 0) {
- styleBuffer.write(readBuffer, 0, c);
- }
- } catch (FileNotFoundException e) {
+ if (!styleFile.exists()) {
compiler.reportError("stylesheet file not found: " + styleFile);
+ } else {
+ compiler.registerStyleSheetFile(styleFile);
}
- compiler.getSourceFiles().push(styleFile);
- compiler.registerStylesheet(processStylesheet(styleBuffer.toString()));
- compiler.getSourceFiles().pop();
+// StringWriter styleBuffer = new StringWriter();
+// FileReader in = new FileReader(styleFile);
+// try {
+// char[] readBuffer = new char[2048];
+// int c;
+// while ((c = in.read(readBuffer)) > 0) {
+// styleBuffer.write(readBuffer, 0, c);
+// }
+// } catch (FileNotFoundException e) {
+// compiler.reportError("stylesheet file not found: " + styleFile);
+// } finally {
+// in.close();
+// }
+// compiler.getSourceFiles().push(styleFile);
+// compiler.registerStylesheet(StylesheetHelper.processStylesheet(styleBuffer.toString()));
+// compiler.getSourceFiles().pop();
} else if (!name.startsWith(XMLNS_ATTRIBUTE) &&
!JAXXCompiler.JAXX_INTERNAL_NAMESPACE.equals(attribute.getNamespaceURI())) {
throw new UnsupportedAttributeException(name);
@@ -110,7 +105,9 @@
if (source) {
compiler.reportError("<style> tag has both a source attribute and an inline stylesheet");
}
- compiler.registerStylesheet(processStylesheet(style.toString()));
+ Stylesheet stylesheet =
+ StylesheetHelper.processStylesheet(style.toString());
+ compiler.registerStylesheet(stylesheet);
}
}
@@ -118,88 +115,4 @@
public void compileSecondPass(Element tag, JAXXCompiler compiler) throws CompilerException, IOException {
}
- protected Selector processSelector(SimpleNode selector) {
- if (selector.getId() != CSSParserTreeConstants.JJTSELECTOR) {
- throw new IllegalArgumentException("argument node is not a Selector");
- }
- String javaClassName = null;
- String styleClass = null;
- String pseudoClass = null;
- String id = null;
-
- for (int i = 0; i < selector.jjtGetNumChildren(); i++) {
- SimpleNode child = selector.getChild(i);
- switch (child.getId()) {
- case CSSParserTreeConstants.JJTJAVACLASS:
- if (!child.getText().trim().equals("*")) {
- javaClassName = child.getText();
- }
- break;
- case CSSParserTreeConstants.JJTCLASS:
- styleClass = child.getText().substring(1);
- break;
- case CSSParserTreeConstants.JJTPSEUDOCLASS:
- pseudoClass = child.getText().substring(1);
- break;
- case CSSParserTreeConstants.JJTID:
- id = child.getText().substring(1);
- break;
-
- default:
- throw new IllegalStateException("unexpected child of Selector node, type=" + child.getId());
- }
- }
-
- return new Selector(javaClassName, styleClass, pseudoClass, id);
- }
-
- protected Rule processRule(SimpleNode ruleNode) {
- if (ruleNode.getId() != CSSParserTreeConstants.JJTRULE) {
- throw new IllegalArgumentException("argument node is not a Rule");
- }
- SimpleNode selectorsNode = ruleNode.getChild(0);
- assert selectorsNode.getId() == CSSParserTreeConstants.JJTSELECTORS : "expected node to be of type Selectors";
-
- List<Selector> selectors = new ArrayList<Selector>();
- for (int i = 0; i < selectorsNode.jjtGetNumChildren(); i++) {
- SimpleNode selectorNode = selectorsNode.getChild(i);
- selectors.add(processSelector(selectorNode));
- }
-
- Map<String, String> properties = new HashMap<String, String>();
- for (int i = 1; i < ruleNode.jjtGetNumChildren(); i++) {
- SimpleNode declarationNode = ruleNode.getChild(i);
- if (declarationNode.getId() == CSSParserTreeConstants.JJTDECLARATION) {
- String key = declarationNode.getChild(0).getText();
- SimpleNode valueNode = declarationNode.getChild(1);
- String value = valueNode.getText();
- if (valueNode.firstToken.kind == CSSParserConstants.STRING) {
- value = value.substring(1, value.length() - 1);
- }
- properties.put(key, value);
- }
- }
- Rule rule;
- rule = new Rule(selectors.toArray(new Selector[selectors.size()]), properties);
- return rule;
- }
-
- protected Stylesheet processStylesheet(String stylesheetText) throws CompilerException {
- CSSParser p = new CSSParser(new StringReader(stylesheetText));
- SimpleNode node;
- try {
- node = p.Stylesheet();
- } catch (Error e) {
- throw new CompilerException(e);
- }
- List<Rule> rules = new ArrayList<Rule>();
- for (int i = 0; i < node.jjtGetNumChildren(); i++) {
- SimpleNode ruleNode = node.getChild(i);
- Rule rule = processRule(ruleNode);
- rules.add(rule);
- }
- Stylesheet stylesheet;
- stylesheet = new Stylesheet(rules.toArray(new Rule[rules.size()]));
- return stylesheet;
- }
}
Modified: trunk/jaxx-widgets/pom.xml
===================================================================
--- trunk/jaxx-widgets/pom.xml 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-widgets/pom.xml 2010-04-29 14:01:01 UTC (rev 1860)
@@ -91,6 +91,7 @@
<properties>
<jaxx.addSourcesToClassPath>true</jaxx.addSourcesToClassPath>
+ <jaxx.autoImportCss>true</jaxx.autoImportCss>
<!--jaxx.useUIManagerForIcon>true</jaxx.useUIManagerForIcon-->
</properties>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/TimeEditor.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
@@ -27,7 +27,7 @@
<JPanel layout='{new BorderLayout()}'>
- <style source='TimeEditor.css'/>
+ <!--<style source='TimeEditor.css'/>-->
<!-- bean property -->
<String id='property' javaBean='""'/>
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 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
@@ -25,7 +25,7 @@
-->
<JPanel layout='{new BorderLayout()}'>
- <style source='ConfigCategoryUI.css'/>
+ <!--<style source='ConfigCategoryUI.css'/>-->
<script><![CDATA[
import jaxx.runtime.swing.editor.config.model.*;
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUI.jaxx 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUI.jaxx 2010-04-29 14:01:01 UTC (rev 1860)
@@ -25,7 +25,7 @@
-->
<JPanel layout='{new BorderLayout()}'>
- <style source='ConfigUI.css'/>
+ <!--<style source='ConfigUI.css'/>-->
<script><![CDATA[
import jaxx.runtime.swing.editor.config.model.ConfigUIModel;
Modified: trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java
===================================================================
--- trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java 2010-04-29 08:54:33 UTC (rev 1859)
+++ trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java 2010-04-29 14:01:01 UTC (rev 1860)
@@ -202,6 +202,14 @@
protected boolean optimize;
/**
+ * To auto import css files for a jaxx file.
+ *
+ * @parameter expression="${jaxx.autoImportCss}" default-value="false"
+ * @since 2.0.2
+ */
+ protected boolean autoImportCss;
+
+ /**
* flag to add logger to each generated jaxx file.
* <p/>
* By default, always add it.
@@ -514,6 +522,11 @@
}
@Override
+ public boolean isAutoImportCss() {
+ return autoImportCss;
+ }
+
+ @Override
public boolean isI18nable() {
return i18nable;
}
1
0
Author: tchemit
Date: 2010-04-29 10:54:33 +0200 (Thu, 29 Apr 2010)
New Revision: 1859
Log:
use i18n 1.2.2
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-04-29 05:44:06 UTC (rev 1858)
+++ trunk/pom.xml 2010-04-29 08:54:33 UTC (rev 1859)
@@ -387,7 +387,7 @@
<projectId>jaxx</projectId>
<lutinutil.version>1.3-SNAPSHOT</lutinutil.version>
- <i18n.version>1.2.2-SNAPSHOT</i18n.version>
+ <i18n.version>1.2.2</i18n.version>
<jxlayer.version>3.0.3</jxlayer.version>
1
0
Author: tchemit
Date: 2010-04-29 07:44:06 +0200 (Thu, 29 Apr 2010)
New Revision: 1858
Log:
Utilisation de mavenpom4redmine 2.1.3
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-04-28 14:32:37 UTC (rev 1857)
+++ trunk/pom.xml 2010-04-29 05:44:06 UTC (rev 1858)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.1.2</version>
+ <version>2.1.3</version>
</parent>
<artifactId>jaxx</artifactId>
@@ -387,7 +387,7 @@
<projectId>jaxx</projectId>
<lutinutil.version>1.3-SNAPSHOT</lutinutil.version>
- <i18n.version>1.2.1</i18n.version>
+ <i18n.version>1.2.2-SNAPSHOT</i18n.version>
<jxlayer.version>3.0.3</jxlayer.version>
1
0
Author: jcouteau
Date: 2010-04-28 16:32:37 +0200 (Wed, 28 Apr 2010)
New Revision: 1857
Log:
Add doc about data-binding
small add on stylesheet use doc
Added:
trunk/src/site/rst/dataBinding.rst
Modified:
trunk/src/site/rst/useStylesheets.rst
trunk/src/site/rst/useSwingObjects.rst
trunk/src/site/site_fr.xml
Added: trunk/src/site/rst/dataBinding.rst
===================================================================
--- trunk/src/site/rst/dataBinding.rst (rev 0)
+++ trunk/src/site/rst/dataBinding.rst 2010-04-28 14:32:37 UTC (rev 1857)
@@ -0,0 +1,46 @@
+========================
+Utiliser le data-binding
+========================
+
+Dans un fichier JAXX, Les attributs peuvent prendre la valeur d'expressions Java
+évaluées au runtime. Cela semble censé pour des expressions comme new
+GridLayout(1, 0, 6, 0), mais que se passe-t-il quand vous utilisez une
+expression dont la valeur change ?
+
+En fait, c'est ce que nous appelons data-binding. A la compilation, JAXX parse
+les expressions Java pour trouver toutes leurs dépendances et ajouter les
+listeners d'évènement pour détecter quand elles changent. Quand la valeur
+de l'expression change, la nouvelle value est automatiquement changée. A peu
+près toutes les propriétés de tous les tags peuvent être gérées de cette
+manière. Par example::
+
+ <JTextField id='nameField'/>
+
+ <JButton text='Button'
+ enabled='{nameField.getText().length() != 0}'/>
+
+Ainsi, le JButton ne sera activé que si un texte est rentré dans le JTextField.
+
+En utilisant ainsi le data-binding, vous pouvez aussi :
+
+* Afficher une vue détaillée des éléments sélectionnés d'une liste.
+* Appliquer les préférences utilisateur comme une taille de police.
+* Afficher automatiquement un curseur d'attente dès que l'application passe dans un état occupé.
+* Mettre à jour la barre de titre pour refléter le fichier actif.
+* Mettre à jour automatiquement une barre de progression.
+* Pré-remplir des éléments de formulaire.
+* ...
+
+Virtuellement, à chaque fois qu'un évènement change la valeur d'une propriété,
+vous pouvez remplacer la gestion d'évènements Java par une expression de
+data-binding plus simple et plus facile à lire. Bien sûr, JAXX n'est pas devin.
+Non seulement la propriété à suivre doit lancer un évènement quand elle est
+modifiée, mais JAXX doit savoir quel évènement est lancé pour ajouter le
+listener approprié. Heureusement JAXX sait comment traquer presque toutes les
+propriétés de tous les composants Swing, et peut automatiquement traquer les
+propriétés attachées (les propriétés qui lancent des PropertyChangeEvent quand
+elles sont modifiées), même sur des classes qu'il n'a jamais vu auparavant.
+
+
+.. Trouver le site de l'ancien JAXX pour cette partie : The JAXX website lists
+which properties can be tracked for each and every Swing component.
\ No newline at end of file
Modified: trunk/src/site/rst/useStylesheets.rst
===================================================================
--- trunk/src/site/rst/useStylesheets.rst 2010-04-28 08:35:57 UTC (rev 1856)
+++ trunk/src/site/rst/useStylesheets.rst 2010-04-28 14:32:37 UTC (rev 1857)
@@ -58,6 +58,17 @@
| Pseudo-classe | :mouseover, :focused, ... | Sélectionne les composants dynamiquement selon leur état |
+-----------------+---------------------------+-------------------------------------------------------------------------------+
+Expressions Java
+----------------
+
+Beaucoup de style Swing ne peut être déclaré qu'en utilisant des expressions
+Java. Ces expressions Java peuvent être insérées dans des feuilles de style si
+elles sont échappées par des accolades. Par exemple::
+
+ JSlider {
+ border: {BorderFactory.createLineBorder(Color.black, 1)};
+ }
+
Combiner les sélecteurs
-----------------------
Modified: trunk/src/site/rst/useSwingObjects.rst
===================================================================
--- trunk/src/site/rst/useSwingObjects.rst 2010-04-28 08:35:57 UTC (rev 1856)
+++ trunk/src/site/rst/useSwingObjects.rst 2010-04-28 14:32:37 UTC (rev 1857)
@@ -33,4 +33,12 @@
appelé lors d'un appel à la méthode fireMyAction de l'objet Swing. Dans le cas
de notre JButton, la méthode **org.my.package.MyApplication.validate()** sera
appelée lorsqu'un évènement de type ActionEvent sera créé par la méthode
-fireActionPerformed du JButton.
\ No newline at end of file
+fireActionPerformed du JButton.
+
+Code Java
+---------
+
+Dand l'example présenté en début de page, vous avez pu remarquer un appel à du
+code java (org.my.package.MyApplication.validate()). Il est possible d'appeler
+du code Java dans JAXX depuis un attribut d'un tag en échappant le code Java par
+des accolades comme dans l'example précédent.
\ No newline at end of file
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2010-04-28 08:35:57 UTC (rev 1856)
+++ trunk/src/site/site_fr.xml 2010-04-28 14:32:37 UTC (rev 1857)
@@ -54,6 +54,7 @@
<item name="Fonctionalités de base">
<item name="Utiliser les objets Swing" href="useSwingObjects.html"/>
<item name="Utiliser des styles" href="useStylesheets.html"/>
+ <item name="Le data-binding" href="dataBinding.html"/>
</item>
<item name="Migration JAXX 2.0" href="migration.html"/>
</menu>
1
0
Author: jcouteau
Date: 2010-04-28 10:35:57 +0200 (Wed, 28 Apr 2010)
New Revision: 1856
Log:
Add doc about stylesheets
Added:
trunk/src/site/rst/useStylesheets.rst
Modified:
trunk/src/site/site_fr.xml
Added: trunk/src/site/rst/useStylesheets.rst
===================================================================
--- trunk/src/site/rst/useStylesheets.rst (rev 0)
+++ trunk/src/site/rst/useStylesheets.rst 2010-04-28 08:35:57 UTC (rev 1856)
@@ -0,0 +1,133 @@
+===================
+Utiliser des styles
+===================
+
+Introduction
+------------
+
+JAXX vous permet de séparer le contenu de l'apparance, un peu comme en HTML, en
+utilisant les feuilles de style CSS. Les feuilles de style JAXX peuvent assigner
+n'importe quelle propriété d'un objet, et permettre a n'importe quel nombre
+d'objets d'être décorés de la même manière avec des règles simples. De plus, les
+feuilles de style vous permettent de créer facilement des comportements
+dynamiques.
+
+Appliquer un style
+------------------
+
+Pour qu'une application utilise une feuille de style, il lui suffit d'avoir
+une balise style à sa racine ::
+
+ <Application title='Example'>
+ <style source='example.css'/>
+ ...
+ </Application>
+
+Les sélecteurs
+--------------
+
+Ensuite, la feuille de style en question ressemble à une feuille de style HTML.
+Le style d'une classe Java est définit de la manière suivante ::
+
+ JSlider {
+ paintTicks: true;
+ minorTickSpacing: 10;
+ majorTickSpacing: 50;
+ }
+
+Ainsi toutes les JSlider de l'application auront ce style. On peut également
+définir le style d'une balise ayant un id particulier de cette manière::
+
+ #red {
+ background: red;
+ }
+
+Ainsi, les balises qui ont un id red auront toute un background rouge.
+
+Pour résumé, il y a 4 types de sélecteur de style.
+
++-----------------+---------------------------+-------------------------------------------------------------------------------+
+| Type | Syntaxe | Description |
++=================+===========================+===============================================================================+
+| classe Java | classname | Sélectionne toutes les instances de la classe (ou ses sous-classes) spécifiée |
++-----------------+---------------------------+-------------------------------------------------------------------------------+
+| ID | #id | Sélectionne les composants ayant l'attribut id='<id>' |
++-----------------+---------------------------+-------------------------------------------------------------------------------+
+| Classe de style | #styleclass | Sélectionne les composants avec l'attribut styleClass='<styleClass>' |
++-----------------+---------------------------+-------------------------------------------------------------------------------+
+| Pseudo-classe | :mouseover, :focused, ... | Sélectionne les composants dynamiquement selon leur état |
++-----------------+---------------------------+-------------------------------------------------------------------------------+
+
+Combiner les sélecteurs
+-----------------------
+
+Un sélecteur est une expression spécifique qui peux être vraie ou fausse pour
+n'importe quel type de composant. Vrai signifie que le composant est affecté par
+la règle, faux signifie qu'il ne l'est pas. Les quatres types de sélecteur
+basiques peuvent être combinés pour former des expressions composées:
+
+* JButton.cancel: S'applique à toutes les instances de JButton (ou une sous-classe) qui a styleClass='cancel'.
+* #display:disabled: S'applique au composant ayant l'ID display quand il est dans le statut disabled.
+* AbstractButton.large:selected: S'applique a toutes les sous-classes d'AbstractButton ayant styleClass='large' lorsqu'ils sont dans le statut selected.
+
+Le style
+--------
+
+Le support des css JAXX est relativement similaire au HTML. La grosse différence
+est qu'au lieu d'appliquer des propriétés spécifiques au HTML comme padding
+ou color, vous appliquez des propriétés spécifiques comme border ou foreground.
+Les mêmes propriétés que vous pouvez spécifier directement sur les tags. JAXX
+utilises aussi les pseudo-classe CSS, une fonctionnalité peu utilisée qui vous
+permet de changer le style des liens, et étendue pour fonctionner avec tous les
+composants permet de répondre à a peu près tous les évènements.
+
+Les pseudo-classes
+------------------
+
+Il peut-être intéressant de changer le style d'un composant lorsqu'il est dans
+un état particulier. Dans ce cas, il suffit d'utiliser les pseudo-classes.
+Par exemple, si on souhaite que notre élément ayant l'ID red ne devienne rouge
+que lorsqu'il est survolé par la souris, il suffit de changer le style à::
+
+ #red:mouseover {
+ background: #E7ADAD;
+ }
+
+JAXX supporte les pseudo-classes suivantes:
+
+* mouseover
+* mouseout
+* mousedown
+* mouseup
+* enabled
+* disabled
+* focused
+* unfocused
+* selected
+* deselected
+* armed
+* unarmed
+
+Pseudo-classes programmatiques
+------------------------------
+
+Chaque pseudo-classe est, comme tous les sélecteurs, un test vrai/faux. La
+souris survole le composant, ou pas ? En plus de toutes les pseudo-classes,
+JAXX vous permet de spécifier explicitement un test comme ceci::
+
+ JSlider#powerLevel:{object.getValue() > 100} {
+ background: red;
+ }
+
+Il apparait au même endroit qu'une pseudo-classe, sauf que c'est une expression
+Java échappée par des accolades. Avec ce style, le JSlider avec l'ID powerLevel
+deviendra rouge lorsque sa valeur dépassera 100. Cette sorte de pseudo-classe
+est appellée pseudo-classe programmatique, et elle vous donne toute la
+flexibilité possible pour décider si un style doit être appliqué à un objet.
+
+Le système de data binding de JAXX est utilisé pour suivre les changements d'une
+expression, ainsi les pseudo-classes programmatique supportent les mêmes
+propriétés que le data-binding. En interne, la plupart des pseudo-classes JAXX
+sont implémentées comme des pseudo-classes programmatiques. Ainsi la
+pseudo-classe focused, par example, est exactement équivalente à
+{object.hasFocus()}, mais beaucoup plus simple à retenir.
\ No newline at end of file
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2010-04-27 15:11:09 UTC (rev 1855)
+++ trunk/src/site/site_fr.xml 2010-04-28 08:35:57 UTC (rev 1856)
@@ -53,6 +53,7 @@
<item name="Qu'est-ce qu'un fichier JAXX ?" href="JAXXFile.html"/>
<item name="Fonctionalités de base">
<item name="Utiliser les objets Swing" href="useSwingObjects.html"/>
+ <item name="Utiliser des styles" href="useStylesheets.html"/>
</item>
<item name="Migration JAXX 2.0" href="migration.html"/>
</menu>
1
0
Author: jcouteau
Date: 2010-04-27 17:11:09 +0200 (Tue, 27 Apr 2010)
New Revision: 1855
Log:
Start new Documentation : presentation + basics
Added:
trunk/src/site/rst/JAXXFile.rst
trunk/src/site/rst/presentation.rst
trunk/src/site/rst/useSwingObjects.rst
Modified:
trunk/src/site/site_fr.xml
Added: trunk/src/site/rst/JAXXFile.rst
===================================================================
--- trunk/src/site/rst/JAXXFile.rst (rev 0)
+++ trunk/src/site/rst/JAXXFile.rst 2010-04-27 15:11:09 UTC (rev 1855)
@@ -0,0 +1,24 @@
+==============================
+Qu'est-ce qu'un fichier JAXX ?
+==============================
+
+Un fichier JAXX est un fichier XML. Le tag racine de votre fichier JAXX est le
+composant qui va être généré. Par exemple, un fichier myJaxxComponent.jaxx comme
+ceci::
+
+ <JPanel id='myPanelId'>
+ </JPanel>
+
+Ce code va générer une classe myJaxxComponent.java qui étends JPanel et
+implémente JAXXObject.
+
+Maintenant, si on souhaite ajouter des composants à l'intérieur de ce panel,
+il suffit de rajouter un fils à l'élément JPanel ::
+
+ <JPanel id='myPanelId'>
+ <JButton id='myButton'/>
+ </JPanel>
+
+Ce code va générer un JPanel qui contient un JButton nommé myButton. On peut
+maintenant jouer avec l'arborescence de notre fichier JAXX pour créer simplement
+des interfaces complexes.
\ No newline at end of file
Added: trunk/src/site/rst/presentation.rst
===================================================================
--- trunk/src/site/rst/presentation.rst (rev 0)
+++ trunk/src/site/rst/presentation.rst 2010-04-27 15:11:09 UTC (rev 1855)
@@ -0,0 +1,25 @@
+============
+Présentation
+============
+
+Qu'est-ce que JAXX ?
+--------------------
+
+JAXX est un framework de création d'interfaces utilisateur Swing libre en XML
+automatisant un certain nombre de mécanismes complexes de Swing. En effet, qui
+ne s'est pas arraché les cheveux sur des layouts managers trop complexes, des
+classes internes anonymes à répétition et des bidouillages bas-niveau pour
+réaliser une interface utilisateur, certes magnifique, mais à quel prix.
+
+JAXX se base sur XML qui permet de décrire les interfaces en gardant le principe
+d'arbre et d'inclusion de composants sans se préocupper des classes internes,
+du style, des layouts,...
+
+Pourquoi utiliser JAXX au lieu de Swing ?
+-----------------------------------------
+
+- Les fichiers XML ont naturellement une structure d'arbre. Les tags contiennent des tags, tout comme les composants contiennent des composants.
+- JAXX gère les évènements et le data binding pour vous. Plus besoin de créer de classes anonymes à la main pour gérer les évènements.
+- La gestion des CSS vous permet de séparer le fond de la forme, et de changer l'aspect de votre programme en changeant juste de feuille de style.
+- Les fichiers JAXX sont bien plus courts et faciles à comprendre que le code Java équivalent.
+- La balise <Table> fournit la puissance du GridBagLayout en en simplifiant l'utilisation.
\ No newline at end of file
Added: trunk/src/site/rst/useSwingObjects.rst
===================================================================
--- trunk/src/site/rst/useSwingObjects.rst (rev 0)
+++ trunk/src/site/rst/useSwingObjects.rst 2010-04-27 15:11:09 UTC (rev 1855)
@@ -0,0 +1,36 @@
+=========================
+Utiliser les objets Swing
+=========================
+
+Dans JAXX, comme nous générons des interfaces Swing, il est possible d'utiliser
+directement les objets Swing. Par exemple, si je veux créer un JPanel Swing,
+j'utilise le tag <JPanel> si je veux créer un JButton Swing, j'utilise le tag
+<JButton>, et ainsi de suite. Tous les objets Swing sont ainsi disponible
+aisément sans avoir besoin de déclarer des imports dans le fichier JAXX.
+
+Pour configurer ces objets Swing, il suffit de leur passer en attribut la valeur
+souhaitée. Par exemple, si je veux créer un JButton qui a le texte 'Valider' et
+qui appelle une méthode statique MyApplication.validate(), j'écris le code JAXX
+suivant ::
+
+ <JButton id='myButton'
+ text='Valider'
+ onActionPerformed='{org.my.package.MyApplication.validate()}'/>
+ </JButton>
+
+Propriétés
+----------
+
+Pour généraliser, un attribut myAttribute sera passé en paramètre de la méthode
+setMyAttribute. Dans notre cas, le JButton myButton sera créé, puis on
+effectuera l'appel de méthode suivant : **myButton.setText("Valider")**.
+
+Evenements
+----------
+
+De même, pour les évènements, il est possible de déclarer des méthodes écoutant
+les évènements créés par un objet Swing. Ainsi un attribut onMyAction sera
+appelé lors d'un appel à la méthode fireMyAction de l'objet Swing. Dans le cas
+de notre JButton, la méthode **org.my.package.MyApplication.validate()** sera
+appelée lorsqu'un évènement de type ActionEvent sera créé par la méthode
+fireActionPerformed du JButton.
\ No newline at end of file
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2010-04-26 16:06:36 UTC (rev 1854)
+++ trunk/src/site/site_fr.xml 2010-04-27 15:11:09 UTC (rev 1855)
@@ -49,6 +49,11 @@
<menu name="Utilisateur">
<item name="Accueil" href="index.html"/>
+ <item name="Présentation/Concept" href="presentation.html"/>
+ <item name="Qu'est-ce qu'un fichier JAXX ?" href="JAXXFile.html"/>
+ <item name="Fonctionalités de base">
+ <item name="Utiliser les objets Swing" href="useSwingObjects.html"/>
+ </item>
<item name="Migration JAXX 2.0" href="migration.html"/>
</menu>
1
0
r1854 - trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator
by tchemit@users.nuiton.org 26 Apr '10
by tchemit@users.nuiton.org 26 Apr '10
26 Apr '10
Author: tchemit
Date: 2010-04-26 18:06:36 +0200 (Mon, 26 Apr 2010)
New Revision: 1854
Log:
add tests for multiJXPath with parentheses
Modified:
trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/JXPathDecoratorTest.java
trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/MultiJXPathDecoratorTest.java
Modified: trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/JXPathDecoratorTest.java
===================================================================
--- trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/JXPathDecoratorTest.java 2010-04-23 08:15:07 UTC (rev 1853)
+++ trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/JXPathDecoratorTest.java 2010-04-26 16:06:36 UTC (rev 1854)
@@ -110,6 +110,16 @@
}
@Test
+ public void testDecoratorEspcapeCharacters() throws Exception {
+
+ decorator = DecoratorUtils.newJXPathDecorator(JXPathDecorator.class, "(${expression}$s) - ${nbToken}$d");
+ assertEquals("(%1$s) - %2$d", decorator.getExpression());
+ String s = decorator.toString(decorator);
+ System.out.println("s="+s);
+ assertDecoratorInternal();
+
+ }
+ @Test
public void testSort() throws Exception {
List<Data> datas = Data.generate(10);
Modified: trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/MultiJXPathDecoratorTest.java
===================================================================
--- trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/MultiJXPathDecoratorTest.java 2010-04-23 08:15:07 UTC (rev 1853)
+++ trunk/jaxx-runtime/src/test/java/jaxx/runtime/decorator/MultiJXPathDecoratorTest.java 2010-04-26 16:06:36 UTC (rev 1854)
@@ -25,7 +25,6 @@
package jaxx.runtime.decorator;
import org.junit.After;
-import static org.junit.Assert.assertEquals;
import org.junit.Test;
import java.util.ArrayList;
@@ -33,14 +32,18 @@
import java.util.Comparator;
import java.util.List;
-/**
+import static org.junit.Assert.assertEquals;
+
+/**
* @author tchemit <chemit(a)codelutin.com>
* @since 1.7.2 (was previously {@code jaxx.runtime.MultiJXPathDecoratorTest}).
*/
public class MultiJXPathDecoratorTest {
protected MultiJXPathDecorator<?> decorator;
+
protected String expected;
+
protected String result;
@After
@@ -130,7 +133,49 @@
assertEquals(expected, result);
}
+
@Test
+ public void testDecoratorEspcapeCharacters() throws Exception {
+
+ decorator = DecoratorUtils.newMultiJXPathDecorator(JXPathDecorator.class, "(${expression}$s)#${nbToken}$d", "#", " - ");
+ assertEquals("(%1$s) - %2$d", decorator.getExpression());
+ assertTokens("expression", "nbToken");
+ assertEquals(2, decorator.contexts.length);
+ expected = String.format(decorator.getExpression(), decorator.getExpression(), decorator.getNbToken());
+ result = decorator.toString(decorator);
+ System.out.println("s=" + result);
+ assertEquals(expected, result);
+
+ decorator = DecoratorUtils.newMultiJXPathDecorator(JXPathDecorator.class, "${nbToken}$d#(${expression}$s)", "#", " - ");
+ assertEquals("%1$d - (%2$s)", decorator.getExpression());
+ assertTokens("nbToken", "expression");
+ assertEquals(2, decorator.contexts.length);
+ expected = String.format(decorator.getExpression(), decorator.getNbToken(), decorator.getExpression());
+ result = decorator.toString(decorator);
+ System.out.println("s=" + result);
+ assertEquals(expected, result);
+
+ DecoratorProvider provider = new DecoratorProvider() {
+
+ @Override
+ protected void loadDecorators() {
+ }
+
+ };
+ provider.registerMultiJXPathDecorator(MultiJXPathDecorator.class, "(${expression}$s)#${nbToken}$d", "#", " - ");
+ decorator = (MultiJXPathDecorator<?>) provider.getDecorator(MultiJXPathDecorator.class);
+
+ assertEquals("(%1$s) - %2$d", decorator.getExpression());
+ assertTokens("expression", "nbToken");
+ assertEquals(2, decorator.contexts.length);
+ expected = String.format(decorator.getExpression(), decorator.getExpression(), decorator.getNbToken());
+ result = decorator.toString(decorator);
+ System.out.println("s=" + result);
+ assertEquals(expected, result);
+
+ }
+
+ @Test
public void testMultiDecoratorWithMultiRef() throws Exception {
decorator = DecoratorUtils.newMultiJXPathDecorator(JXPathDecorator.class, "${expression}$s#${nbToken}$d#${separator}$s %3$s", "#", " - ");
1
0