You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/03/06 02:21:40 UTC
svn commit: r919681 - in /pivot/trunk:
tests/src/org/apache/pivot/tests/include_test.wtkx
wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java
Author: gbrown
Date: Sat Mar 6 01:21:40 2010
New Revision: 919681
URL: http://svn.apache.org/viewvc?rev=919681&view=rev
Log:
Resolve issue PIVOT-428.
Modified:
pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx
pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java
Modified: pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx
URL: http://svn.apache.org/viewvc/pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx?rev=919681&r1=919680&r2=919681&view=diff
==============================================================================
--- pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx (original)
+++ pivot/trunk/tests/src/org/apache/pivot/tests/include_test.wtkx Sat Mar 6 01:21:40 2010
@@ -30,6 +30,6 @@
</windowStateListeners>
<content>
- <wtkx:include src="include_test.content.wtkx"/>
+ <wtkx:include src="include_test.content.wtkx" inline="true"/>
</content>
</Window>
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java?rev=919681&r1=919680&r2=919681&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java Sat Mar 6 01:21:40 2010
@@ -297,6 +297,7 @@
public static final String INCLUDE_TAG = "include";
public static final String INCLUDE_SRC_ATTRIBUTE = "src";
public static final String INCLUDE_RESOURCES_ATTRIBUTE = "resources";
+ public static final String INCLUDE_INLINE_ATTRIBUTE = "inline";
public static final String SCRIPT_TAG = "script";
public static final String SCRIPT_SRC_ATTRIBUTE = "src";
@@ -674,12 +675,15 @@
// setters only
String src = null;
Resources resources = this.resources;
+ boolean inline = false;
for (Attribute attribute : element.attributes) {
if (attribute.localName.equals(INCLUDE_SRC_ATTRIBUTE)) {
src = attribute.value;
} else if (attribute.localName.equals(INCLUDE_RESOURCES_ATTRIBUTE)) {
resources = new Resources(resources, attribute.value);
+ } else if (attribute.localName.equals(INCLUDE_INLINE_ATTRIBUTE)) {
+ inline = Boolean.parseBoolean(attribute.value);
} else {
if (!Character.isUpperCase(attribute.localName.charAt(0))) {
throw new SerializationException("Instance property setters are not"
@@ -699,10 +703,18 @@
// Read the object
WTKXSerializer serializer;
- if (element.id == null) {
+ if (inline) {
serializer = new WTKXSerializer(resources, this);
} else {
serializer = new WTKXSerializer(resources);
+ }
+
+ if (element.id != null) {
+ if (namedSerializers.containsKey(element.id)) {
+ throw new SerializationException("Namespace ID " + element.id
+ + " is already in use.");
+ }
+
namedSerializers.put(element.id, serializer);
}
@@ -711,12 +723,6 @@
} else {
element.value = serializer.readObject(new URL(location, src));
}
-
- if (element.id == null
- && !serializer.isEmpty()
- && serializer.scriptEngineManager == null) {
- System.err.println("Include \"" + src + "\" defines unreachable objects.");
- }
} else {
// Process attributes looking for all property setters
for (Attribute attribute : element.attributes) {
@@ -730,6 +736,11 @@
// Add the value to the named objects map
if (element.id != null) {
+ if (namedObjects.containsKey(element.id)) {
+ throw new SerializationException("Element ID " + element.id
+ + " is already in use.");
+ }
+
namedObjects.put(element.id, element.value);
}