Author: DartPeng
Date: 2008-12-10 04:14:38 -0500 (Wed, 10 Dec 2008)
New Revision: 12534
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
Log:
JBIDE-3379
synchronize CR1 branch
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-12-10
09:09:51 UTC (rev 12533)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-12-10
09:14:38 UTC (rev 12534)
@@ -96,6 +96,10 @@
private HashMap usedBeanIDMap = new HashMap();
+ private List sourceModelList = null;
+
+ private List targetModelList = null;
+
public JavaBeanAnalyzer() {
adapterFactory = new ComposedAdapterFactory(
@@ -237,8 +241,8 @@
.iterator(); iterator3.hasNext();) {
LineConnectionModel childConnection = (LineConnectionModel) iterator3
.next();
- analyzeChildrenConnectionsToCreateBindingType(childConnection,
- child,
+ analyzeChildrenConnectionsToCreateBindingType(
+ childConnection, child,
(AbstractStructuredDataModel) source,
resourceConfig, root, resourceList,
getBindingsParamType(resourceConfig));
@@ -526,11 +530,13 @@
SmooksResourceListType listType, Object sourceObject,
Object targetObject) {
if (sourceObject instanceof List) {
+ sourceModelList = (List) sourceObject;
if (!((List) sourceObject).isEmpty()) {
sourceObject = (JavaBeanModel) ((List) sourceObject).get(0);
}
}
if (targetObject instanceof List) {
+ targetModelList = (List) targetObject;
if (!((List) targetObject).isEmpty()) {
targetObject = (JavaBeanModel) ((List) targetObject).get(0);
}
@@ -552,6 +558,9 @@
ResourceType rt = rc.getResource();
// find the first BeanPopulator resource config , this is the root.
String resourceClazz = null;
+ if(resourceConfigIsUsed(rc)){
+ continue;
+ }
if (rt != null) {
resourceClazz = rt.getStringValue();
}
@@ -567,6 +576,15 @@
if (selector != null) {
selector = selector.trim();
}
+ if(!sourceName.equals(selector)){
+ source = findJavaBeanModelFormList(selector, sourceModelList);
+ if(source != null){
+ sourceClazz = source.getBeanClass();
+ if (sourceClazz != null) {
+ sourceName = sourceClazz.getName();
+ }
+ }
+ }
if (sourceName.equals(selector)) {
String targetName = target.getName();
Class targetClazz = target.getBeanClass();
@@ -577,12 +595,20 @@
SmooksModelUtils.BEAN_CLASS, rc);
if (targetName != null
&& targetName.trim().equals(beanClass)) {
- // create the first connection
+ } else {
+ JavaBeanModel temptarget = findJavaBeanModelFormList(
+ beanClass, targetModelList);
+ if (temptarget != null) {
+ target = temptarget;
+ }
+ }
+ if (target != null) {
mappingModelList.add(new MappingModel(source, target));
resourceConfigList.addResourceConfig(rc);
analyzeMappingModelFromResourceConfig(mappingModelList,
resourceConfigList, listType, rc, source,
target);
+ setResourceConfigUsed(rc);
}
}
}
@@ -591,6 +617,22 @@
return resourceConfigList;
}
+ private JavaBeanModel findJavaBeanModelFormList(String beanClassString,
+ List objectList) {
+ if (beanClassString == null)
+ return null;
+ for (Iterator iterator = objectList.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ if (object instanceof JavaBeanModel) {
+ if (beanClassString.equals(((JavaBeanModel) object)
+ .getBeanClassString())) {
+ return (JavaBeanModel) object;
+ }
+ }
+ }
+ return null;
+ }
+
protected boolean isReferenceSelector(String selector) {
return (selector.startsWith(COMPLEX_PRIX_START) && selector
.endsWith(COMPLEX_PRIX_END));
@@ -612,7 +654,6 @@
if (bindingList == null)
return;
- setResourceConfigUsed(resourceConfig);
registeSourceJavaBeanWithResourceConfig(resourceConfig, source);
for (Iterator<Object> iterator = bindingList.iterator(); iterator
.hasNext();) {
@@ -648,6 +689,7 @@
analyzeMappingModelFromResourceConfig(mappingModelList,
mappingResourceConfigList, resourceList, rc,
sourceModel, childTargetModel);
+ setResourceConfigUsed(rc);
}
}
} else {
@@ -739,12 +781,16 @@
List resourceConfigList = listType.getAbstractResourceConfig();
String rootClassName = null;
ResourceConfigType current = null;
+ List<JavaBeanModel> list = new ArrayList<JavaBeanModel>();
for (Iterator iterator = resourceConfigList.iterator(); iterator
.hasNext();) {
AbstractResourceConfig ar = (AbstractResourceConfig) iterator
.next();
if (ar instanceof ResourceConfigType) {
ResourceConfigType rc = (ResourceConfigType) ar;
+ if (resourceConfigIsUsed(rc)) {
+ continue;
+ }
ResourceType resourceType = rc.getResource();
if (resourceType == null)
continue;
@@ -755,57 +801,62 @@
// create root beanmodel
rootClassName = rc.getSelector();
current = rc;
- break;
+ if (rootClassName == null) {
+ rootClassName = this.getDataSourceClass(graphInfo,
+ SOURCE_DATA);
+ }
+ if (rootClassName == null) {
+ return null;
+ } else {
+ rootClassName = rootClassName.trim();
+ }
+ boolean isWarning = false;
+ boolean isError = false;
+ Class clazz = null;
+ try {
+ if (classLoader == null) {
+ IProject project = sourceFile.getProject();
+ classLoader = new ProjectClassLoader(JavaCore
+ .create(project));
+ }
+
+ clazz = classLoader.loadClass(rootClassName);
+ } catch (ClassNotFoundException e) {
+ // TODO if can't find the class throws exception
+ // MODIFY by Dart 2008.11.12
+ throw new RuntimeException("Can't find the class : \""
+ + rootClassName
+ + "\" to create the JavaBean model");
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ }
+ JavaBeanModel model = null;
+ if (clazz != null) {
+ model = JavaBeanModelFactory
+ .getJavaBeanModelWithLazyLoad(clazz);
+ } else {
+ model = new JavaBeanModel(null, rootClassName);
+ model.setRootClassModel(true);
+ model
+ .setError(Messages
+ .getString("JavaBeanAnalyzer.ClassNotExist") + rootClassName);
//$NON-NLS-1$
+ model.setProperties(new ArrayList());
+ isError = true;
+ }
+ if (model != null) {
+ setCollectionsInstanceClassName(model, current);
+ this.setSelectorIsUsed(rootClassName);
+ buildSourceInputProperties(listType, model, false,
+ isError, current, classLoader);
+ this.setResourceConfigUsed(current);
+ }
+ if (model != null) {
+ if (!modelIsInList(list, model.getBeanClassString()))
+ list.add(model);
+ }
}
}
}
- if (rootClassName == null) {
- rootClassName = this.getDataSourceClass(graphInfo, SOURCE_DATA);
- }
- if (rootClassName == null) {
- return null;
- } else {
- rootClassName = rootClassName.trim();
- }
- boolean isWarning = false;
- boolean isError = false;
- Class clazz = null;
- try {
- if (classLoader == null) {
- IProject project = sourceFile.getProject();
- classLoader = new ProjectClassLoader(JavaCore.create(project));
- }
-
- clazz = classLoader.loadClass(rootClassName);
- } catch (ClassNotFoundException e) {
- // TODO if can't find the class throws exception
- // MODIFY by Dart 2008.11.12
- throw new RuntimeException("Can't find the class : \""
- + rootClassName + "\" to create the JavaBean model");
- } catch (JavaModelException e) {
- e.printStackTrace();
- }
- JavaBeanModel model = null;
- if (clazz != null) {
- model = JavaBeanModelFactory.getJavaBeanModelWithLazyLoad(clazz);
- } else {
- model = new JavaBeanModel(null, rootClassName);
- model.setRootClassModel(true);
- model
- .setError(Messages
- .getString("JavaBeanAnalyzer.ClassNotExist") + rootClassName);
//$NON-NLS-1$
- model.setProperties(new ArrayList());
- isError = true;
- }
- if (model != null) {
- setCollectionsInstanceClassName(model, current);
- this.setSelectorIsUsed(rootClassName);
- buildSourceInputProperties(listType, model, false, isError,
- current, classLoader);
- }
- List<JavaBeanModel> list = new ArrayList<JavaBeanModel>();
- if (model != null)
- list.add(model);
return list;
}
@@ -891,8 +942,8 @@
throw new RuntimeException(e);
}
}
-// throw new RuntimeException(
-// "Can't load Java bean model form the config file.");
+ // throw new RuntimeException(
+ // "Can't load Java bean model form the config file.");
}
// if can't load the source from GraphicalInformation , return NULL
if (current == null && rootClassName == null)
@@ -924,8 +975,8 @@
} catch (ClassNotFoundException e) {
// TODO if can't find the class throws exception
// MODIFY by Dart 2008.11.12
-// throw new RuntimeException("Can't find the class : \""
-// + rootClassName + "\" to create the JavaBean model");
+ // throw new RuntimeException("Can't find the class : \""
+ // + rootClassName + "\" to create the JavaBean model");
}
}
boolean rootIsError = false;
@@ -937,6 +988,9 @@
rootModel = new JavaBeanModel(null, rootClassName);
rootIsError = true;
}
+ if (modelIsInList(list, rootModel.getBeanClassString())) {
+ continue;
+ }
if (resourceConfig != null) {
rootModel.setBeanClassString(SmooksModelUtils.getParmaText(
SmooksModelUtils.BEAN_CLASS, resourceConfig));
@@ -949,6 +1003,21 @@
return list;
}
+ private boolean modelIsInList(List list, String modelClassString) {
+ if (list == null || modelClassString == null)
+ return false;
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ if (object instanceof JavaBeanModel) {
+ if (modelClassString.equals(((JavaBeanModel) object)
+ .getBeanClassString())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
protected void buildChildrenOfTargetInputModel(
SmooksResourceListType listType, JavaBeanModel beanModel,
boolean rootIsWarning, boolean rootIsError,
@@ -1096,7 +1165,7 @@
selector = this.getBeanIdWithRawSelectorString(selector);
ResourceConfigType resourceConfig = findResourceConfigTypeWithBeanId(
selector, listType);
- if (resourceConfig != null) {
+ if (resourceConfig != null && !resourceConfigIsUsed(resourceConfig)) {
String referenceSelector = resourceConfig.getSelector();
JavaBeanModel model = findTheChildJavaBeanModel(
referenceSelector, currentModel);
@@ -1133,6 +1202,7 @@
}
buildSourceInputProperties(listType, model, false, true,
resourceConfig, classLoader);
+ setResourceConfigUsed(resourceConfig);
}
} else {
selector = selector.trim();
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-12-10
09:09:51 UTC (rev 12533)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-12-10
09:14:38 UTC (rev 12534)
@@ -890,7 +890,10 @@
commandStackChanged = true;
analyzeDesignGraph();
updateSelectionActions();
- getManagedForm().dirtyStateChanged();
+ IManagedForm form = getManagedForm();
+ if(form != null){
+ form.dirtyStateChanged();
+ }
}
});
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java 2008-12-10
09:09:51 UTC (rev 12533)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java 2008-12-10
09:14:38 UTC (rev 12534)
@@ -56,6 +56,7 @@
*/
public class UIUtils {
+
public static final String[] SELECTORE_SPLITER = new String[] { "\\",
//$NON-NLS-1$
"/" }; //$NON-NLS-1$
@@ -346,11 +347,8 @@
command
.setResolveDescription(Messages
.getString("UIUtils.InstanceLoadedResolveMessage1") //$NON-NLS-1$
- + ((JavaBeanModel) refObj)
- .getBeanClass()
- .getCanonicalName() + "\""); //$NON-NLS-1$
- command.setInstanceName(((JavaBeanModel) refObj)
- .getBeanClass().getCanonicalName());
+ + instanceName + "\""); //$NON-NLS-1$
+ command.setInstanceName(instanceName);
command.setJavaBean((JavaBeanModel) refObj);
result.addResolveCommand(command);
resultList.add(result);
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-12-10
09:09:51 UTC (rev 12533)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-12-10
09:14:38 UTC (rev 12534)
@@ -43,7 +43,6 @@
import org.jboss.tools.smooks.xml.model.DocumentObject;
import org.jboss.tools.smooks.xml.model.TagObject;
import org.jboss.tools.smooks.xml.model.TagPropertyObject;
-import org.w3c.dom.ranges.DocumentRange;
/**
* @author Dart Peng