Author: DartPeng
Date: 2009-02-20 02:41:56 -0500 (Fri, 20 Feb 2009)
New Revision: 13689
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/BeanPopulatorConnectionFilter.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.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/xml/model/XMLConnectionCommandProcessor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodePropertySection.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodeSectionFilter.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLPropertiesSectionFilter.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLGraphicalModelListener.java
Log:
JBIDE-3827
reset contents directly when the file was saved.
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -118,7 +118,7 @@
}
}
- if(source instanceof IXMLStructuredObject && t instanceof JavaBeanModel){
+ if(source instanceof IXMLStructuredObject && t instanceof JavaBeanModel
&& !(source instanceof JavaBeanModel)){
boolean isattribute = ((IXMLStructuredObject)source).isAttribute();
JavaBeanModel targetModel = (JavaBeanModel) t;
boolean isprimitive = targetModel.isPrimitive();
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/BeanPopulatorConnectionFilter.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/BeanPopulatorConnectionFilter.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/BeanPopulatorConnectionFilter.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -6,6 +6,9 @@
import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
import org.jboss.tools.smooks.ui.AbstractConnectionModelSectionFilter;
import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
+import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
+import org.jboss.tools.smooks.xml.ui.XMLPropertiesSection;
+import org.jboss.tools.smooks.xml2xml.XML2XMLGraphicalModelListener;
/**
* @author Dart
@@ -16,6 +19,7 @@
public boolean select(Object toTest) {
Object target = this.getReferenceTargetObject(toTest);
+ Object source = getReferenceSourceObject(toTest);
if (target != null && target instanceof JavaBeanModel) {
LineConnectionModel connection = getConnectionModel(toTest);
if (BeanPopulatorMappingAnalyzer.REFERENCE_BINDING
@@ -25,6 +29,16 @@
}
return true;
}
+ if (target != null && target instanceof AbstractXMLObject) {
+ if (source != null && source instanceof AbstractXMLObject) {
+ LineConnectionModel connection = getConnectionModel(toTest);
+ if (XMLPropertiesSection.MAPPING.equals(connection
+ .getProperty(XMLPropertiesSection.MAPPING_TYPE))) {
+ return true;
+ }
+ }
+ }
+
return false;
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -8,19 +8,19 @@
import java.util.Iterator;
import java.util.List;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.text.DocumentEvent;
import org.eclipse.jface.text.IDocumentListener;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ExtendedModifyEvent;
-import org.eclipse.swt.custom.ExtendedModifyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.texteditor.IDocumentProvider;
+import org.eclipse.ui.texteditor.IDocumentProviderExtension;
import org.eclipse.wst.sse.ui.StructuredTextEditor;
import org.jboss.tools.smooks.ui.editors.ISaveListener;
import org.jboss.tools.smooks.ui.editors.SaveResult;
@@ -49,6 +49,20 @@
return false;
return super.isDirty();
}
+
+
+ public void editorInputChanged(IEditorInput input){
+ IDocumentProvider provider = getDocumentProvider();
+ try {
+ if (provider instanceof IDocumentProviderExtension) {
+ IDocumentProviderExtension extension= (IDocumentProviderExtension) provider;
+ extension.synchronize(input);
+ } else {
+ doSetInput(input);
+ }
+ } catch (CoreException x) {
+ }
+ }
public void setDirty(boolean dirty) {
this.dirty = dirty;
@@ -216,11 +230,9 @@
public void documentAboutToBeChanged(DocumentEvent event) {
setDirty(true);
-// firePropertyChange(PROP_DIRTY);
}
public void documentChanged(DocumentEvent event) {
-
}
});
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -256,6 +256,7 @@
IEditorPart editor = this.getActiveEditor();
if (editor == null) {
this.graphicalPage.doSave(monitor);
+ this.xmlTextEditor.editorInputChanged(getEditorInput());
fireEditorDirty(false);
} else {
this.xmlTextEditor.doSave(monitor);
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 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -996,6 +996,7 @@
IFile file = ((IFileEditorInput) this.getEditorInput()).getFile();
if (file.exists()) {
file.setContents(stream, IResource.FORCE, monitor);
+ file.refreshLocal(IResource.DEPTH_ZERO, monitor);
}
// save graphical informations
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLConnectionCommandProcessor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLConnectionCommandProcessor.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLConnectionCommandProcessor.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -3,14 +3,22 @@
*/
package org.jboss.tools.smooks.xml.model;
+import java.util.Iterator;
+import java.util.List;
+
import org.eclipse.emf.common.command.Command;
+import org.jboss.tools.smooks.model.ResourceConfigType;
import org.jboss.tools.smooks.ui.gef.commandprocessor.ICommandProcessor;
import org.jboss.tools.smooks.ui.gef.commands.CreateConnectionCommand;
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.modelparser.SmooksConfigurationFileGenerateContext;
+import org.jboss.tools.smooks.utils.UIUtils;
import org.jboss.tools.smooks.xml.ui.XMLPropertiesSection;
+import org.jboss.tools.smooks.xml2xml.XML2XMLGraphicalModelListener;
/**
* @author Dart
@@ -47,25 +55,74 @@
IConnectableModel source = command.getSource();
IConnectableModel target = command.getTarget();
// allow only one connection
- if(!source.getModelSourceConnections().isEmpty() ||
!target.getModelTargetConnections().isEmpty()) return false;
+ if (!source.getModelSourceConnections().isEmpty()
+ || !target.getModelTargetConnections().isEmpty())
+ return false;
+ // only allow line to the Tag
+ if (!(((AbstractStructuredDataModel) target)
+ .getReferenceEntityModel() instanceof TagObject))
+ return false;
+
if (((AbstractStructuredDataModel) source)
.getReferenceEntityModel() instanceof TagObject
- && ((AbstractStructuredDataModel)target).getReferenceEntityModel()
instanceof TagObject) {
+ && ((AbstractStructuredDataModel) target)
+ .getReferenceEntityModel() instanceof TagObject) {
PropertyModel property = new PropertyModel();
property.setName(XMLPropertiesSection.MAPPING_TYPE);
property.setValue(XMLPropertiesSection.MAPPING);
command.addPropertyModel(property);
}
- if (((AbstractStructuredDataModel) source).getReferenceEntityModel() instanceof
TagPropertyObject
- || ((AbstractStructuredDataModel) source).getReferenceEntityModel() instanceof
TagPropertyObject) {
+ if (((AbstractStructuredDataModel) source)
+ .getReferenceEntityModel() instanceof TagPropertyObject) {
PropertyModel property = new PropertyModel();
property.setName(XMLPropertiesSection.MAPPING_TYPE);
property.setValue(XMLPropertiesSection.BINDING);
command.addPropertyModel(property);
+ ResourceConfigType resourceConfig = findFirstRelateResourceConfig(
+ context.getGraphicalRootModel(),
+ (AbstractStructuredDataModel) target);
+ if (resourceConfig == null)
+ return false;
+ PropertyModel property1 = new PropertyModel();
+ property1
+ .setName(XML2XMLGraphicalModelListener.PRO_REFERENCE_RESOURCE_CONFIG);
+ property1.setValue(resourceConfig);
+ command.addPropertyModel(property1);
}
}
return true;
}
+ private ResourceConfigType findFirstRelateResourceConfig(
+ GraphRootModel root, AbstractStructuredDataModel target) {
+ AbstractXMLObject model = (AbstractXMLObject) target
+ .getReferenceEntityModel();
+ AbstractXMLObject parent = model.getParent();
+ IConnectableModel parentGraph = (IConnectableModel) UIUtils
+ .findGraphModel(root, parent);
+ List connections = parentGraph.getModelTargetConnections();
+ ResourceConfigType resourceConfig = null;
+ while (resourceConfig == null && parentGraph != null) {
+ for (Iterator iterator = connections.iterator(); iterator.hasNext();) {
+ LineConnectionModel connection = (LineConnectionModel) iterator
+ .next();
+ Object mt = connection
+ .getProperty(XMLPropertiesSection.MAPPING_TYPE);
+ if (XMLPropertiesSection.MAPPING.equals(mt)) {
+ resourceConfig = (ResourceConfigType) connection
+ .getProperty(XML2XMLGraphicalModelListener.PRO_REFERENCE_RESOURCE_CONFIG);
+ break;
+ }
+ }
+ parent = parent.getParent();
+ parentGraph = (IConnectableModel) UIUtils.findGraphModel(root,
+ parent);
+ if (parentGraph != null) {
+ connections = parentGraph.getModelTargetConnections();
+ }
+ }
+ return resourceConfig;
+ }
+
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodePropertySection.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodePropertySection.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodePropertySection.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -87,6 +87,9 @@
SmooksConfigurationFileGenerateContext context =
page.getSmooksConfigurationFileGenerateContext();
IConnectableModel connectModel = (IConnectableModel)
UIUtils.findGraphModel(context.getGraphicalRootModel(), model);
XML2XMLGraphicalModelListener.setResourceCDATAViaTargetNode(model.getReferenceElement(),
connectModel);
+ if(part != null){
+ ((SmooksFormEditor)part).fireEditorDirty(true);
+ }
}
}
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodeSectionFilter.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodeSectionFilter.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodeSectionFilter.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -3,7 +3,6 @@
*/
package org.jboss.tools.smooks.xml.ui;
-import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.jface.viewers.IFilter;
import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLPropertiesSectionFilter.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLPropertiesSectionFilter.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLPropertiesSectionFilter.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -20,6 +20,11 @@
*/
public boolean select(Object toTest) {
Object source = getReferenceSourceObject(toTest);
+ Object target = getReferenceSourceObject(toTest);
+ if(target != null && target instanceof AbstractXMLObject){
+ // don't allow show it when editing x2x
+ return false;
+ }
if (source != null && source instanceof AbstractXMLObject) {
return true;
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -5,16 +5,11 @@
import java.beans.PropertyChangeListener;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.DocumentException;
-import org.dom4j.Element;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.XMLWriter;
-import org.dom4j.tree.DefaultElement;
import org.jboss.tools.smooks.analyzer.AbstractAnalyzer;
import org.jboss.tools.smooks.analyzer.DesignTimeAnalyzeResult;
import org.jboss.tools.smooks.analyzer.MappingModel;
@@ -24,16 +19,8 @@
import org.jboss.tools.smooks.model.AbstractResourceConfig;
import org.jboss.tools.smooks.model.ResourceConfigType;
import org.jboss.tools.smooks.model.ResourceType;
-import org.jboss.tools.smooks.model.SmooksFactory;
import org.jboss.tools.smooks.model.SmooksResourceListType;
-import org.jboss.tools.smooks.model.util.SmooksModelUtils;
-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.SourceModel;
-import org.jboss.tools.smooks.ui.gef.model.TargetModel;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.jboss.tools.smooks.utils.UIUtils;
import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
@@ -72,206 +59,9 @@
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
- if (true)
- return;
- GraphRootModel root = context.getGraphicalRootModel();
- List<SourceModel> sourceList = root.loadSourceModelList();
- for (Iterator<SourceModel> iterator = sourceList.iterator(); iterator
- .hasNext();) {
- SourceModel sourceModel = (SourceModel) iterator.next();
- List sourceConnectList = sourceModel.getModelSourceConnections();
- if (sourceConnectList.isEmpty())
- continue;
- for (Iterator iterator2 = sourceConnectList.iterator(); iterator2
- .hasNext();) {
- LineConnectionModel connection = (LineConnectionModel) iterator2
- .next();
- if (isMappingConnection(connection)
- && !connectionIsUsed(connection)) {
- ResourceConfigType resourceConfig = generateSmooksResourceConfig(
- context, connection);
- if (resourceConfig != null) {
- context.getGeneratorResourceList().add(resourceConfig);
- setConnectionUsed(connection);
- }
- }
- }
- }
- return;
}
- private ResourceConfigType generateSmooksResourceConfig(
- SmooksConfigurationFileGenerateContext context,
- LineConnectionModel connection) {
- ResourceConfigType resourceConfig = SmooksFactory.eINSTANCE
- .createResourceConfigType();
- String selector = generateSelectorString(context,
- (SourceModel) connection.getSource());
- if (selector != null) {
- resourceConfig.setSelector(selector);
- }
- ResourceType resource = SmooksFactory.eINSTANCE.createResourceType();
- resource.setType(XSL);
- resourceConfig.setResource(resource);
- String cdata = generateResourceCDATAContents(context, connection);
- if (cdata != null)
- SmooksModelUtils.setCDATAToAnyType(resource, cdata);
- return resourceConfig;
- }
- private String generateResourceCDATAContents(
- SmooksConfigurationFileGenerateContext context,
- LineConnectionModel connection) {
- TargetModel target = (TargetModel) connection.getTarget();
- AbstractXMLObject xmlNode = (AbstractXMLObject) target
- .getReferenceEntityModel();
- SourceModel mappingSource = (SourceModel) connection.getSource();
- if (xmlNode instanceof TagObject) {
- Element element = new DefaultElement(xmlNode.getName());
- List<AbstractXMLObject> childrenList = ((TagObject) xmlNode)
- .getXMLNodeChildren();
- for (Iterator iterator = childrenList.iterator(); iterator
- .hasNext();) {
- AbstractXMLObject abstractXMLObject = (AbstractXMLObject) iterator
- .next();
- Element childElement = generateMappingChilrenNodes(context,
- abstractXMLObject, mappingSource);
- if (childElement != null)
- element.add(childElement);
- }
- ByteArrayOutputStream stream = null;
- XMLWriter writer = null;
- try {
- stream = new ByteArrayOutputStream();
- OutputFormat format = OutputFormat.createPrettyPrint();
- writer = new XMLWriter(stream, format);
- writer.write(element);
- return new String(stream.toByteArray());
- } catch (Exception e) {
-
- } finally {
- try {
- if (stream != null)
- stream.close();
- if (writer != null)
- writer.close();
- } catch (Throwable t) {
- }
- }
- }
- return null;
- }
-
- private Element generateMappingChilrenNodes(
- SmooksConfigurationFileGenerateContext context,
- AbstractXMLObject xmlNode, SourceModel mappingSource) {
- Element element = new DefaultElement(xmlNode.getName());
- AbstractStructuredDataModel graphNode = UIUtils.findGraphModel(context
- .getGraphicalRootModel(), xmlNode);
- if (graphNode != null) {
- List connectionList = ((IConnectableModel) graphNode)
- .getModelTargetConnections();
- // only one connection , didn't support multiple connection
- if (connectionList.size() == 1) {
- LineConnectionModel connection = (LineConnectionModel) connectionList
- .get(0);
- if (isBindingConnection(connection)
- && !connectionIsUsed(connection)) {
- Element valueOf = createXSLValueOfElement(context,
- (SourceModel) connection.getSource(), mappingSource);
- if (valueOf != null) {
- element.add(valueOf);
- }
- }
- setConnectionUsed(connection);
- }
- }
- return element;
- }
-
- private String generateSelectorString(
- SmooksConfigurationFileGenerateContext context,
- SourceModel mappingSource) {
- AbstractXMLObject transformModel = (AbstractXMLObject) mappingSource
- .getReferenceEntityModel();
- String selector = transformModel.getName();
- AbstractXMLObject parent = transformModel.getParent();
- while (parent != null && !(parent instanceof TagList)
- && !(parent.getParent() instanceof TagList)) {
- selector = parent.getName() + " " + selector;
- parent = parent.getParent();
- }
- return selector;
- }
-
- private Element createXSLValueOfElement(
- SmooksConfigurationFileGenerateContext context,
- SourceModel bindingSource, SourceModel mappingSource) {
- // Element element = new DefaultElement(new QName("value-of",
- // new Namespace("xsl", null)));
- Element element = new DefaultElement("xsl:value-of");
- String select = generateXSLValueOfSelectValue(context, mappingSource,
- bindingSource);
- if (select != null)
- element.addAttribute(XSL_PRO_SELECT, select);
- return element;
- }
-
- private String generateXSLValueOfSelectValue(
- SmooksConfigurationFileGenerateContext context,
- SourceModel mappingSource, SourceModel bindingSource) {
- Object mappingTransformModel = mappingSource.getReferenceEntityModel();
- AbstractXMLObject bindingTransformModel = (AbstractXMLObject) bindingSource
- .getReferenceEntityModel();
-
- String select = bindingTransformModel.getName();
- if (bindingTransformModel instanceof TagPropertyObject) {
- select = "@" + select;
- }
- boolean hasParent = false;
- AbstractXMLObject bindingParent = bindingTransformModel.getParent();
- while (bindingParent != null && bindingParent != mappingTransformModel) {
- hasParent = true;
- String select1 = bindingParent.getName();
- if (bindingParent instanceof TagPropertyObject) {
- select1 = "@" + select1;
- }
- select = select1 + "/" + select;
- bindingParent = bindingParent.getParent();
- }
-
- if (hasParent) {
- select = "./" + select;
- }
- return select;
- }
-
- private boolean isMappingConnection(LineConnectionModel connection) {
- List<PropertyModel> list = connection.getProperties();
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- PropertyModel propertyModel = (PropertyModel) iterator.next();
- if (XMLPropertiesSection.MAPPING_TYPE.equals(propertyModel
- .getName())) {
- return XMLPropertiesSection.MAPPING.equals(propertyModel
- .getValue());
- }
- }
- return false;
- }
-
- private boolean isBindingConnection(LineConnectionModel connection) {
- List<PropertyModel> list = connection.getProperties();
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- PropertyModel propertyModel = (PropertyModel) iterator.next();
- if (XMLPropertiesSection.MAPPING_TYPE.equals(propertyModel
- .getName())) {
- return XMLPropertiesSection.BINDING.equals(propertyModel
- .getValue());
- }
- }
- return false;
- }
-
/*
* (non-Javadoc)
*
@@ -509,16 +299,12 @@
sourceNode, targetNode);
setXMLObjectUsed(sourceNode);
setXMLObjectUsed(targetNode);
- mapping
- .getProperties()
- .add(
- new PropertyModel(
+ mapping.getProperties()
+ .add(new PropertyModel(
XMLPropertiesSection.MAPPING_TYPE,
XMLPropertiesSection.BINDING));
- mapping
- .getProperties()
- .add(
- new PropertyModel(
+ mapping.getProperties()
+ .add(new PropertyModel(
XML2XMLGraphicalModelListener.PRO_REFERENCE_RESOURCE_CONFIG,
referenceResourceConfig));
mappingList.getMappingModelList().add(mapping);
@@ -615,30 +401,7 @@
TagList sourceTagList) {
if (selector == null)
return null;
- String[] names = selector.trim().split(" ");
- List<TagObject> list = sourceTagList.getRootTagList();
- AbstractXMLObject firstNode = null;
- if (names != null) {
- // find the first node:
- String name = names[0].trim();
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- AbstractXMLObject abstractXMLObject = (AbstractXMLObject) iterator
- .next();
- AbstractXMLObject node = findTheXMLNode(name, abstractXMLObject);
- if (node != null && !isXMLObjectUsed(node)) {
- firstNode = node;
- break;
- }
- }
-
- AbstractXMLObject sourceNode = findTheXMLObjectFromNameArray(names,
- firstNode);
- if (sourceNode != null && !isXMLObjectUsed(sourceNode)) {
- setXMLObjectUsed(sourceNode);
- return sourceNode;
- }
- }
- return null;
+ return (AbstractXMLObject)UIUtils.localXMLNodeWithPath(selector, sourceTagList);
}
private AbstractXMLObject findTheXMLObjectFromNameArray(String[] names,
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLGraphicalModelListener.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLGraphicalModelListener.java 2009-02-19
18:11:12 UTC (rev 13688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLGraphicalModelListener.java 2009-02-20
07:41:56 UTC (rev 13689)
@@ -15,12 +15,14 @@
import org.dom4j.io.XMLWriter;
import org.dom4j.tree.DefaultElement;
import org.jboss.tools.smooks.javabean.model.SelectorAttributes;
+import org.jboss.tools.smooks.javabean.ui.BeanPopulatorMappingAnalyzer;
import org.jboss.tools.smooks.model.ResourceConfigType;
import org.jboss.tools.smooks.model.ResourceType;
import org.jboss.tools.smooks.model.SmooksFactory;
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.model.util.SmooksModelUtils;
import org.jboss.tools.smooks.ui.IXMLStructuredObject;
+import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataConnectionModel;
import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
import org.jboss.tools.smooks.ui.gef.model.IGraphicalModelListener;
@@ -39,7 +41,7 @@
public class XML2XMLGraphicalModelListener implements IGraphicalModelListener {
public static final String PRO_REFERENCE_RESOURCE_CONFIG =
"__reference_resource_config_x2x";
- public static final String PRO_SELECTOR_ATTRIBUTES =
"__pro_selector_attributes_x2x";
+ public static final String PRO_SELECTOR_ATTRIBUTES =
BeanPopulatorMappingAnalyzer.PRO_SELECTOR_ATTRIBUTES;
/*
* (non-Javadoc)
@@ -94,10 +96,17 @@
if (selector == null)
return;
- newMappingResourceConfig(selector, target, context);
+ ResourceConfigType resourceConfig = newMappingResourceConfig(selector,
+ target, context);
+ if (resourceConfig != null) {
+ PropertyModel property = new PropertyModel();
+ property.setName(PRO_REFERENCE_RESOURCE_CONFIG);
+ property.setValue(resourceConfig);
+ connection.addPropertyModel(property);
+ }
}
- private void newMappingResourceConfig(String selector,
+ private ResourceConfigType newMappingResourceConfig(String selector,
AbstractStructuredDataModel target,
SmooksConfigurationFileGenerateContext context) {
SmooksResourceListType list = context.getSmooksResourceListModel();
@@ -120,7 +129,7 @@
UIUtils
.addResourceConfigType(context.getDomain(), list,
resourceConfig);
-
+ return resourceConfig;
}
private SelectorAttributes newDefaultSelectorAttribute() {
@@ -348,7 +357,25 @@
public void modelChanged(Object graphicalModel,
SmooksConfigurationFileGenerateContext context,
PropertyChangeEvent event) {
-
+ String pm = event.getPropertyName();
+ if (AbstractStructuredDataConnectionModel.CONNECTION_PROPERTY_UPDATE
+ .equals(pm)) {
+ LineConnectionModel line = (LineConnectionModel) graphicalModel;
+ ResourceConfigType rc = (ResourceConfigType) line
+ .getProperty(PRO_REFERENCE_RESOURCE_CONFIG);
+ if (rc == null)
+ return;
+ SelectorAttributes sa = (SelectorAttributes) line
+ .getProperty(PRO_SELECTOR_ATTRIBUTES);
+ Object obj = ((AbstractStructuredDataModel) line.getSource())
+ .getReferenceEntityModel();
+ if (obj instanceof IXMLStructuredObject) {
+ String newSelector = UIUtils.generatePath(
+ (IXMLStructuredObject) obj, sa);
+ if (newSelector != null)
+ rc.setSelector(newSelector);
+ }
+ }
}
/*
@@ -372,26 +399,28 @@
AbstractXMLObject xmlNode = (AbstractXMLObject) target
.getReferenceEntityModel();
Element element = xmlNode.getReferenceElement();
- Element valueOf= null;
+ Element valueOf = null;
List elements = element.elements();
for (Iterator iterator = elements.iterator(); iterator
.hasNext();) {
Element e1 = (Element) iterator.next();
- if (e1.getName().equalsIgnoreCase("value-of") ||
- e1.getName().equalsIgnoreCase("xsl:value-of")) {
+ if (e1.getName().equalsIgnoreCase("value-of")
+ || e1.getName().equalsIgnoreCase("xsl:value-of")) {
valueOf = e1;
break;
}
}
- if(valueOf != null){
+ if (valueOf != null) {
element.remove(valueOf);
}
- setResourceCDATAViaTargetNode(element, (IConnectableModel) target);
+ setResourceCDATAViaTargetNode(element,
+ (IConnectableModel) target);
}
if (XMLPropertiesSection.MAPPING.equals(mt)) {
ResourceConfigType resourceConfig = (ResourceConfigType) connection
.getProperty(PRO_REFERENCE_RESOURCE_CONFIG);
- if(resourceConfig == null) return;
+ if (resourceConfig == null)
+ return;
context.getSmooksResourceListModel()
.getAbstractResourceConfig().remove(resourceConfig);
}