Author: DartPeng
Date: 2008-11-04 02:06:24 -0500 (Tue, 04 Nov 2008)
New Revision: 11497
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/utils/UIUtils.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
Log:
JBIDE-2994
Add parse/generate the properties of binding element
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-11-04
01:00:16 UTC (rev 11496)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-11-04
07:06:24 UTC (rev 11497)
@@ -261,8 +261,6 @@
.next();
if (connectionIsUsed(childConnection))
continue;
- Object[] properties = childConnection
- .getPropertyArray();
JavaBeanModel jbean = (JavaBeanModel) child
.getReferenceEntityModel();
String currentSelectorName = getSelectorString(
@@ -275,16 +273,8 @@
.addBindingTypeToParamType(
bindingsParam, jbean.getName(),
currentSelectorName, null, null);
- for (int i = 0; i < properties.length; i++) {
- PropertyModel property = (PropertyModel) properties[i];
- String pname = property.getName();
- String pvalue = property.getValue();
- binding.getAnyAttribute().add(
- ExtendedMetaData.INSTANCE
- .demandFeature(null, pname,
- false), pvalue);
- }
-
+ UIUtils.assignConnectionPropertyToBinding(childConnection, binding,
+ new String[] { "property", "selector" });
if (!jbean.isPrimitive()) {
analyzeStructuredDataModel(
resourceList,
@@ -575,20 +565,9 @@
}
if (sourceModel != null) {
MappingModel model = new MappingModel(sourceModel, targetModel);
- FeatureMap it = binding.getAnyAttribute();
- for (int i = 0; i < it.size(); i++) {
- EStructuralFeature feature = it.getEStructuralFeature(i);
- if (feature.equals(SmooksModelUtils.ATTRIBUTE_PROPERTY)
- || feature
- .equals(SmooksModelUtils.ATTRIBUTE_SELECTOR))
- continue;
- String pname = feature.getName();
- String pvalue = it.get(feature, false).toString();
- PropertyModel pmodel = new PropertyModel();
- pmodel.setName(pname);
- pmodel.setValue(pvalue);
- model.getProperties().add(pmodel);
- }
+ UIUtils.assignBindingPropertyToMappingModel(binding, model, new Object[] {
+ SmooksModelUtils.ATTRIBUTE_PROPERTY,
+ SmooksModelUtils.ATTRIBUTE_SELECTOR });
mappingModelList.add(model);
}
}
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-11-04
01:00:16 UTC (rev 11496)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java 2008-11-04
07:06:24 UTC (rev 11497)
@@ -9,6 +9,10 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.xml.type.AnyType;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jface.dialogs.ErrorDialog;
@@ -24,15 +28,18 @@
import org.eclipse.ui.IFileEditorInput;
import org.jboss.tools.smooks.analyzer.CompositeResolveCommand;
import org.jboss.tools.smooks.analyzer.DesignTimeAnalyzeResult;
+import org.jboss.tools.smooks.analyzer.MappingModel;
import org.jboss.tools.smooks.javabean.analyzer.JavaModelConnectionResolveCommand;
import org.jboss.tools.smooks.javabean.analyzer.JavaModelResolveCommand;
import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.model.util.SmooksModelUtils;
import org.jboss.tools.smooks.ui.SmooksUIActivator;
import org.jboss.tools.smooks.ui.ViewerInitorStore;
import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
import org.jboss.tools.smooks.ui.gef.model.GraphRootModel;
import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
+import org.jboss.tools.smooks.ui.gef.model.PropertyModel;
import org.jboss.tools.smooks.ui.gef.model.TargetModel;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.jboss.tools.smooks.xml.model.TagObject;
@@ -51,6 +58,55 @@
return fill;
}
+ public static void assignConnectionPropertyToBinding(
+ LineConnectionModel connection, AnyType binding,
+ String[] ignorePropertiesName) {
+ Object[] bindingPros = connection.getPropertyArray();
+ for (int i = 0; i < bindingPros.length; i++) {
+ PropertyModel property = (PropertyModel) bindingPros[i];
+ boolean ignore = false;
+ String pname = property.getName();
+ for (int j = 0; j < ignorePropertiesName.length; j++) {
+ String ignoreName = ignorePropertiesName[j];
+ if(pname.equals(ignoreName)){
+ ignore = true;
+ break;
+ }
+ }
+ if(ignore) continue;
+ String pvalue = property.getValue();
+ binding.getAnyAttribute()
+ .add(
+ ExtendedMetaData.INSTANCE.demandFeature(null,
+ pname, false), pvalue);
+ }
+ }
+
+ public static void assignBindingPropertyToMappingModel(AnyType binding, MappingModel
model,
+ Object[] ignoreProperties) {
+ FeatureMap it = binding.getAnyAttribute();
+ for (int i = 0; i < it.size(); i++) {
+ EStructuralFeature feature = it.getEStructuralFeature(i);
+ boolean ignore = false;
+ for (int j = 0; j < ignoreProperties.length; j++) {
+ Object ignoreProperty = ignoreProperties[j];
+ if (feature.equals(ignoreProperty)) {
+ ignore = true;
+ break;
+ }
+ }
+ if (ignore) {
+ continue;
+ }
+ String pname = feature.getName();
+ String pvalue = it.get(feature, false).toString();
+ PropertyModel pmodel = new PropertyModel();
+ pmodel.setName(pname);
+ pmodel.setValue(pvalue);
+ model.getProperties().add(pmodel);
+ }
+ }
+
public static boolean isInstanceCreatingConnection(
LineConnectionModel connection) {
AbstractStructuredDataModel sourceModel = (AbstractStructuredDataModel) connection
@@ -58,15 +114,14 @@
Object referenceObj = sourceModel.getReferenceEntityModel();
return isInstanceCreatingConnection(referenceObj);
}
-
- public static boolean isInstanceCreatingConnection(
- Object targetModel) {
+
+ public static boolean isInstanceCreatingConnection(Object targetModel) {
Object referenceObj = targetModel;
- if (referenceObj != null){
- if(referenceObj instanceof JavaBeanModel){
- return !((JavaBeanModel)referenceObj).isPrimitive();
+ if (referenceObj != null) {
+ if (referenceObj instanceof JavaBeanModel) {
+ return !((JavaBeanModel) referenceObj).isPrimitive();
}
- if(referenceObj instanceof TagObject){
+ if (referenceObj instanceof TagObject) {
return true;
}
}
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-11-04
01:00:16 UTC (rev 11496)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-11-04
07:06:24 UTC (rev 11497)
@@ -16,6 +16,7 @@
import javax.swing.text.html.HTMLDocument.HTMLReader.TagAction;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
import org.eclipse.emf.ecore.xml.type.AnyType;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
@@ -37,6 +38,7 @@
import org.jboss.tools.smooks.ui.gef.model.GraphRootModel;
import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
+import org.jboss.tools.smooks.ui.gef.model.PropertyModel;
import org.jboss.tools.smooks.ui.gef.model.SourceModel;
import org.jboss.tools.smooks.ui.gef.model.TreeItemRelationModel;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
@@ -168,8 +170,11 @@
(AbstractXMLObject) sourceModel
.getReferenceEntityModel(), source);
}
- SmooksModelUtils.addBindingTypeToParamType(bindingsParam, child
- .getName(), selector, null, null);
+ AnyType binding = SmooksModelUtils.addBindingTypeToParamType(
+ bindingsParam, child.getName(), selector, null, null);
+ // add connection's properties on the "binding" element
+ UIUtils.assignConnectionPropertyToBinding(connection, binding,
+ new String[] { "property", "selector" });
if (isComplex) {
processLineConnection(connection, context, listType,
(SourceModel) sourceModel, selector);
@@ -306,7 +311,7 @@
JavaBeanModel childBean = JavaBeanAnalyzer
.findTheChildJavaBeanModel(property, targetJavaBean);
processXMLSelector(configList, config, sourceRoot,
- childBean, list, selectorStr);
+ childBean, list, selectorStr, binding);
}
}
}
@@ -315,7 +320,7 @@
protected void processXMLSelector(MappingResourceConfigList configList,
ResourceConfigType resourceConfig, AbstractXMLObject root,
JavaBeanModel targetBean, SmooksResourceListType listType,
- String selector) {
+ String selector, AnyType currentBinding) {
if (isReferenceSelector(selector)) {
ResourceConfigType resourceConfig1 = this
.findResourceConfigTypeWithSelector(selector, listType);
@@ -330,6 +335,10 @@
selector, root);
if (source != null) {
MappingModel mapping = new MappingModel(source, targetBean);
+ UIUtils.assignBindingPropertyToMappingModel(currentBinding,
+ mapping, new Object[] {
+ SmooksModelUtils.ATTRIBUTE_PROPERTY,
+ SmooksModelUtils.ATTRIBUTE_SELECTOR });
configList.getMappingModelList().add(mapping);
configList.addResourceConfig(resourceConfig);
this.setSelectorIsUsed(selector);
@@ -397,7 +406,7 @@
}
return null;
}
-
+
private void checkRootNodeConnected(
SmooksConfigurationFileGenerateContext context) {
GraphRootModel root = context.getGraphicalRootModel();
@@ -428,7 +437,7 @@
.next();
AbstractXMLObject source = (AbstractXMLObject) sourceGraphModel
.getReferenceEntityModel();
- if (source.getParent().getClass() == DocumentObject.class ) {
+ if (source.getParent().getClass() == DocumentObject.class) {
rootSource = source;
break;
}