JBoss Tools SVN: r12881 - trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2009-01-05 11:40:33 -0500 (Mon, 05 Jan 2009)
New Revision: 12881
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploySection.java
Log:
better undo / redo support
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploySection.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploySection.java 2009-01-05 16:14:54 UTC (rev 12880)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/editor/DeploySection.java 2009-01-05 16:40:33 UTC (rev 12881)
@@ -372,6 +372,17 @@
type = IDeployableServer.DEPLOY_CUSTOM;
}
+ if( !newSelection.getSelection() ) {
+ // REDO, so no one actually clicked the radio. UGH!
+ oldSelection.removeSelectionListener(radioListener);
+ oldSelection.setSelection(false);
+ oldSelection.addSelectionListener(radioListener);
+
+ newSelection.removeSelectionListener(radioListener);
+ newSelection.setSelection(true);
+ newSelection.addSelectionListener(radioListener);
+ }
+
newDir = newDir == null ? oldDir : newDir;
newTemp = newTemp == null ? oldTemp : newTemp;
@@ -403,6 +414,13 @@
oldSelection.setSelection(true);
oldSelection.addSelectionListener(radioListener);
+ newSelection.removeSelectionListener(radioListener);
+ newSelection.setSelection(false);
+ newSelection.addSelectionListener(radioListener);
+
+ deployText.setEnabled(customRadio.getSelection());
+ tempDeployText.setEnabled(customRadio.getSelection());
+
String oldType = oldSelection == customRadio ? IDeployableServer.DEPLOY_CUSTOM :
oldSelection == serverRadio ? IDeployableServer.DEPLOY_SERVER :
IDeployableServer.DEPLOY_METADATA;
15 years, 3 months
JBoss Tools SVN: r12880 - trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2009-01-05 11:14:54 -0500 (Mon, 05 Jan 2009)
New Revision: 12880
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/JBossServerWizardFragment.java
Log:
JBIDE-3435 - NPE in wizard if (for some reason) enter had not been used
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/JBossServerWizardFragment.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/JBossServerWizardFragment.java 2009-01-05 15:56:08 UTC (rev 12879)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/JBossServerWizardFragment.java 2009-01-05 16:14:54 UTC (rev 12880)
@@ -236,7 +236,7 @@
return;
IJBossServerRuntime srt = getRuntime();
- name = getDefaultNameText();
+ name = name == null ? getDefaultNameText() : name;
nameText.setText(name);
homeValLabel.setText(srt.getRuntime().getLocation().toOSString());
configValLabel.setText(srt.getJBossConfiguration());
@@ -250,13 +250,14 @@
public void performFinish(IProgressMonitor monitor) throws CoreException {
IServerWorkingCopy serverWC = (IServerWorkingCopy) getTaskModel().getObject(TaskModel.TASK_SERVER);
+ handleDefaults(serverWC);
serverWC.setRuntime((IRuntime)getTaskModel().getObject(TaskModel.TASK_RUNTIME));
serverWC.setName(name);
serverWC.setServerConfiguration(null); // no inside jboss folder
- handleDefaults(serverWC);
}
protected void handleDefaults(IServerWorkingCopy wc) {
+ name = name == null ? getDefaultNameText() : name;
String deployVal = IJBossServerConstants.PLUGIN_LOCATION.append(name).
append(IJBossServerConstants.DEPLOY).makeAbsolute().toString();
String deployTmpFolderVal = IJBossServerConstants.PLUGIN_LOCATION.append(name).
15 years, 3 months
JBoss Tools SVN: r12879 - trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2009-01-05 10:56:08 -0500 (Mon, 05 Jan 2009)
New Revision: 12879
Modified:
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls/TextControlFactory.java
Log:
JBIDE-3450 - added H-scroll to operation result dialog
Modified: trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls/TextControlFactory.java
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls/TextControlFactory.java 2009-01-05 10:10:39 UTC (rev 12878)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls/TextControlFactory.java 2009-01-05 15:56:08 UTC (rev 12879)
@@ -51,7 +51,7 @@
if (value instanceof Number || value instanceof Character) {
style |= SWT.SINGLE;
} else {
- style |= SWT.MULTI | SWT.WRAP;
+ style |= SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL;
}
if (!writable) {
15 years, 3 months
JBoss Tools SVN: r12878 - in trunk/documentation/whatsnew: esb and 6 other directories.
by jbosstools-commits@lists.jboss.org
Author: max.andersen(a)jboss.com
Date: 2009-01-05 05:10:39 -0500 (Mon, 05 Jan 2009)
New Revision: 12878
Modified:
trunk/documentation/whatsnew/as/as-news-2.0.0.CR1.html
trunk/documentation/whatsnew/esb/esb-news-1.1.0.CR1.html
trunk/documentation/whatsnew/examples/examples-news-1.0.0.CR1.html
trunk/documentation/whatsnew/hibernate/hibernate-news-3.2.4.CR1.html
trunk/documentation/whatsnew/jmx/jmx-news-0.5.0.CR1.html
trunk/documentation/whatsnew/portlet/portlet-news-1.0.0.CR1.html
trunk/documentation/whatsnew/seam/seam-news-2.0.0.CR1.html
trunk/documentation/whatsnew/vpe/vpe-news-3.0.0.CR1.html
Log:
last minute fixes for n&n
Modified: trunk/documentation/whatsnew/as/as-news-2.0.0.CR1.html
===================================================================
--- trunk/documentation/whatsnew/as/as-news-2.0.0.CR1.html 2009-01-05 09:36:26 UTC (rev 12877)
+++ trunk/documentation/whatsnew/as/as-news-2.0.0.CR1.html 2009-01-05 10:10:39 UTC (rev 12878)
@@ -9,7 +9,7 @@
<h1>JBoss AS Tools 2.0.0.CR1 - New and Noteworthy</h1>
-<p align="right"><a href="../index.html">< Main Index</a> <a href="../portlet/portlet-news-1.0.0.CR1.html">Portlet Tools News ></a></p>
+<p align="right"><a href="../index.html">< Main Index</a> <a href="../vpe/vpe-news-3.0.0.CR1.html">Visual Page Editor ></a></p>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
Modified: trunk/documentation/whatsnew/esb/esb-news-1.1.0.CR1.html
===================================================================
--- trunk/documentation/whatsnew/esb/esb-news-1.1.0.CR1.html 2009-01-05 09:36:26 UTC (rev 12877)
+++ trunk/documentation/whatsnew/esb/esb-news-1.1.0.CR1.html 2009-01-05 10:10:39 UTC (rev 12878)
@@ -11,7 +11,7 @@
<body>
<h1>ESB tools 1.1.0.CR1 What's New</h1>
-<p align="right"><a href="../index.html">< Main Index</a> <a href="../smooks/smooks-news-1.0.0.CR1.html">Smooks Tools News ></a></p>
+<p align="right"><a href="../index.html">< Main Index</a> <a href="../hibernate/hibernate-news-3.2.4.CR1.html">Hibernate Tools ></a></p>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
Modified: trunk/documentation/whatsnew/examples/examples-news-1.0.0.CR1.html
===================================================================
--- trunk/documentation/whatsnew/examples/examples-news-1.0.0.CR1.html 2009-01-05 09:36:26 UTC (rev 12877)
+++ trunk/documentation/whatsnew/examples/examples-news-1.0.0.CR1.html 2009-01-05 10:10:39 UTC (rev 12878)
@@ -11,7 +11,7 @@
<body>
<h1>Examples 1.0.0.CR1 What's New</h1>
-<p align="right"><a href="../index.html">< Main Index</a> <a href="../core/core-news-3.0.0.CR1.html">Core/General ></a></p>
+<p align="right"><a href="../index.html">< Main Index</a> <a href="../seam/seam-news-2.0.0.CR1.html">Seam Tools ></a></p>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
<tr>
Modified: trunk/documentation/whatsnew/hibernate/hibernate-news-3.2.4.CR1.html
===================================================================
--- trunk/documentation/whatsnew/hibernate/hibernate-news-3.2.4.CR1.html 2009-01-05 09:36:26 UTC (rev 12877)
+++ trunk/documentation/whatsnew/hibernate/hibernate-news-3.2.4.CR1.html 2009-01-05 10:10:39 UTC (rev 12878)
@@ -11,7 +11,7 @@
<body>
<h1>Hibernate tools 3.2.4.CR1 What's New</h1>
-<p align="right"><a href="../index.html">< Main Index</a> <a href="../as/as-news-2.0.0.CR1.html">JBoss AS Tools News ></a></p>
+<p align="right"><a href="../index.html">< Main Index</a> <a href="../as/as-news-2.0.0.CR1.html">JBoss AS Tools ></a></p>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
Modified: trunk/documentation/whatsnew/jmx/jmx-news-0.5.0.CR1.html
===================================================================
--- trunk/documentation/whatsnew/jmx/jmx-news-0.5.0.CR1.html 2009-01-05 09:36:26 UTC (rev 12877)
+++ trunk/documentation/whatsnew/jmx/jmx-news-0.5.0.CR1.html 2009-01-05 10:10:39 UTC (rev 12878)
@@ -9,7 +9,7 @@
<h1>JMX Tools 0.5.beta1 - New and Noteworthy</h1>
-<html>
+<p align="right"><a href="../index.html">< Main Index</a> <a href="../esb/esb-news-1.1.0.CR1.html">JBoss ESB Tools ></a></p>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
<tr>
Modified: trunk/documentation/whatsnew/portlet/portlet-news-1.0.0.CR1.html
===================================================================
--- trunk/documentation/whatsnew/portlet/portlet-news-1.0.0.CR1.html 2009-01-05 09:36:26 UTC (rev 12877)
+++ trunk/documentation/whatsnew/portlet/portlet-news-1.0.0.CR1.html 2009-01-05 10:10:39 UTC (rev 12878)
@@ -11,7 +11,7 @@
<body>
<h1>JBoss Tools Portlet 3.0.0.CR1 - New and Noteworthy</h1>
-<p align="right"><a href="../index.html">< Main Index</a> <a href="../vpe/vpe-news-3.0.0.CR1.html">Visual Page Editor News ></a></p>
+<p align="right"><a href="../index.html">< Main Index</a> <a href="../examples/examples-news-1.0.0.CR1.html">Examples ></a></p>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
<tr>
Modified: trunk/documentation/whatsnew/seam/seam-news-2.0.0.CR1.html
===================================================================
--- trunk/documentation/whatsnew/seam/seam-news-2.0.0.CR1.html 2009-01-05 09:36:26 UTC (rev 12877)
+++ trunk/documentation/whatsnew/seam/seam-news-2.0.0.CR1.html 2009-01-05 10:10:39 UTC (rev 12878)
@@ -11,7 +11,7 @@
<body>
<h1>Seam tools 2.0.0.CR1 What's New</h1>
-<p align="right"><a href="../index.html">< Main Index</a> <a href="../hibernate/hibernate-news-3.2.4.CR1.html">Hibernate News ></a></p>
+<p align="right"><a href="../index.html">< Main Index</a> <a href="../jmx/jmx-news-0.5.0.CR1.html">JMX Tools ></a></p>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
Modified: trunk/documentation/whatsnew/vpe/vpe-news-3.0.0.CR1.html
===================================================================
--- trunk/documentation/whatsnew/vpe/vpe-news-3.0.0.CR1.html 2009-01-05 09:36:26 UTC (rev 12877)
+++ trunk/documentation/whatsnew/vpe/vpe-news-3.0.0.CR1.html 2009-01-05 10:10:39 UTC (rev 12878)
@@ -11,7 +11,7 @@
<body>
<h1>What's New Visual Page Editor</h1>
-<p align="right"><a href="../index.html">< Main Index</a> <a href="../esb/esb-news-1.1.0.Beta1.html">ESB News ></a></p>
+<p align="right"><a href="../index.html">< Main Index</a> <a href="../portlet/portlet-news-1.0.0.CR1.html">Portal Tools ></a></p>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
<tr>
<td colspan="2">
15 years, 3 months
JBoss Tools SVN: r12877 - in trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks: ui/gef/editparts and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2009-01-05 04:36:26 -0500 (Mon, 05 Jan 2009)
New Revision: 12877
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
Log:
JBIDE-3207
Fix some bugs for X2J analyzer
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java 2009-01-04 22:43:28 UTC (rev 12876)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java 2009-01-05 09:36:26 UTC (rev 12877)
@@ -23,6 +23,7 @@
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.jboss.tools.smooks.model.AbstractResourceConfig;
import org.jboss.tools.smooks.model.ParamType;
import org.jboss.tools.smooks.model.ResourceConfigType;
import org.jboss.tools.smooks.model.SmooksFactory;
@@ -36,10 +37,17 @@
* @Date Aug 20, 2008
*/
public abstract class AbstractAnalyzer implements IMappingAnalyzer {
+
+ protected List<AbstractResourceConfig> usedResourceConfigRecordList = new ArrayList<AbstractResourceConfig>();
+
protected List usedConnectionList = new ArrayList();
+
protected AdapterFactoryEditingDomain editingDomain;
+
protected ComposedAdapterFactory adapterFactory;
+
private HashMap<String, Object> userdResourceTypeMap;
+
public AbstractAnalyzer() {
userdResourceTypeMap = new HashMap<String, Object>();
adapterFactory = new ComposedAdapterFactory(
@@ -69,19 +77,19 @@
protected void cleanUsedConnectionList() {
usedConnectionList.clear();
}
-
-
+
protected void setSelectorIsUsed(String selector) {
- if(selector != null) selector = selector.trim();
+ if (selector != null)
+ selector = selector.trim();
userdResourceTypeMap.put(selector, new Object());
}
-
protected boolean isSelectorIsUsed(String selector) {
- if(selector != null) selector = selector.trim();
+ if (selector != null)
+ selector = selector.trim();
return (userdResourceTypeMap.get(selector) != null);
}
-
+
protected void addResourceConfigType(SmooksResourceListType resourceList,
ResourceConfigType resourceConfig) {
Command addResourceConfigCommand = AddCommand.create(
@@ -91,7 +99,6 @@
addResourceConfigCommand.execute();
}
-
protected ParamType addParamTypeToResourceConfig(
ResourceConfigType resourceConfigType, String name, String text) {
ParamType paramType = SmooksFactory.eINSTANCE.createParamType();
@@ -102,8 +109,7 @@
resourceConfigType.getParam().add(paramType);
return paramType;
}
-
-
+
protected String getBeanIDFromParam(ResourceConfigType config) {
List list = config.getParam();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
@@ -115,7 +121,7 @@
}
return null;
}
-
+
protected String getBeanIdWithRawSelectorString(String selector) {
selector = selector.substring(2, selector.length() - 1);
return selector;
@@ -124,31 +130,43 @@
protected boolean isReferenceSelector(String selector) {
return (selector.startsWith("${") && selector.endsWith("}"));
}
-
+ /**
+ * Find the ResourceConfig via its child param element which one's name property value is "beanId".
+ * If can't find that , return the ResourceConfig which one's "selector" property value same as the selector
+ * @param selector
+ * @param listType
+ * @return
+ */
protected ResourceConfigType findResourceConfigTypeWithSelector(
String selector, SmooksResourceListType listType) {
- if(selector != null) selector = selector.trim();
+ if (selector != null)
+ selector = selector.trim();
if (isReferenceSelector(selector)) {
selector = this.getBeanIdWithRawSelectorString(selector);
}
- List rl = listType.getAbstractResourceConfig();
+ List<AbstractResourceConfig> rl = listType.getAbstractResourceConfig();
ResourceConfigType resourceConfig = null;
- for (Iterator iterator = rl.iterator(); iterator.hasNext();) {
- ResourceConfigType rct = (ResourceConfigType) iterator.next();
- if (this.isSelectorIsUsed(rct.getSelector()))
- continue;
- String beanId = getBeanIDFromParam(rct);
- if (selector.equals(beanId)) {
- resourceConfig = rct;
- break;
+ for (Iterator<AbstractResourceConfig> iterator = rl.iterator(); iterator
+ .hasNext();) {
+ AbstractResourceConfig abstractResourceConfig = iterator.next();
+ if (abstractResourceConfig instanceof ResourceConfigType) {
+ ResourceConfigType rct = (ResourceConfigType) abstractResourceConfig;
+ if (isResourceConfigUsed(rct))
+ continue;
+ String beanId = getBeanIDFromParam(rct);
+ if (selector.equals(beanId)) {
+ resourceConfig = rct;
+ break;
+ }
+ String selector1 = rct.getSelector();
+ if (selector1 != null)
+ selector1 = selector1.trim();
+ if (selector.equals(selector1)) {
+ resourceConfig = rct;
+ break;
+ }
}
- String selector1 = rct.getSelector();
- if(selector1 != null) selector1 = selector1.trim();
- if(selector.equals(selector1)){
- resourceConfig = rct;
- break;
- }
}
return resourceConfig;
}
@@ -168,4 +186,12 @@
this.editingDomain = editingDomain;
}
+ public void setResourceConfigUsed(ResourceConfigType resourceConfig) {
+ usedResourceConfigRecordList.add(resourceConfig);
+ }
+
+ public boolean isResourceConfigUsed(ResourceConfigType resourceConfig) {
+ return usedResourceConfigRecordList.indexOf(resourceConfig) != -1;
+ }
+
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java 2009-01-04 22:43:28 UTC (rev 12876)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java 2009-01-05 09:36:26 UTC (rev 12877)
@@ -17,6 +17,7 @@
import org.eclipse.gef.GraphicalViewer;
import org.eclipse.gef.editparts.AbstractConnectionEditPart;
import org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.IEditorPart;
@@ -194,11 +195,12 @@
}
}
if (collapse) {
- figure.setForegroundColor(GraphicsConstants.groupBorderColor);
- figure.setLineStyle(Graphics.LINE_DOT);
+// figure.setForegroundColor(GraphicsConstants.groupBorderColor);
+ figure.setForegroundColor(new Color(null,224,224,224));
+// figure.setLineStyle(Graphics.LINE_DOT);
} else {
figure.setForegroundColor(GraphicsConstants.groupBorderColor);
- figure.setLineStyle(Graphics.LINE_SOLID);
+// figure.setLineStyle(Graphics.LINE_SOLID);
}
}
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 2009-01-04 22:43:28 UTC (rev 12876)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2009-01-05 09:36:26 UTC (rev 12877)
@@ -10,6 +10,8 @@
******************************************************************************/
package org.jboss.tools.smooks.xml2java.analyzer;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -23,6 +25,7 @@
import org.jboss.tools.smooks.analyzer.SmooksAnalyzerException;
import org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer;
import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.model.AbstractResourceConfig;
import org.jboss.tools.smooks.model.ParamType;
import org.jboss.tools.smooks.model.ResourceConfigType;
import org.jboss.tools.smooks.model.ResourceType;
@@ -52,6 +55,10 @@
private static final String SPACE_SPLITER = " ";
+ private List<AbstractResourceConfig> usedResourceConfigList = new ArrayList<AbstractResourceConfig>();
+
+ private HashMap<String, ResourceConfigType> createdResourceConfigMap = new HashMap<String, ResourceConfigType>();
+
/*
* (non-Javadoc)
*
@@ -120,9 +127,27 @@
.getReferenceEntityModel();
JavaBeanModel target = (JavaBeanModel) ((AbstractStructuredDataModel) targetg)
.getReferenceEntityModel();
+
+ // generate the beanId value:
+ if (beanID == null) {
+ beanID = getBeanID(target);
+ } else {
+ if (beanID.startsWith("${") && beanID.endsWith("}")) {
+ beanID = beanID.substring(2, beanID.length() - 1);
+ }
+ }
+ // if the resource config was created , return
+ if (beanID != null) {
+ if(isResourceConfigCreated(beanID)){
+ return;
+ }
+ }
+
ResourceConfigType resourceConfigType = SmooksFactory.eINSTANCE
.createResourceConfigType();
context.getGeneratorResourceList().add(resourceConfigType);
+ // registe it
+ registeCreatedResourceConfig(beanID, resourceConfigType);
// addResourceConfigType(listType, resourceConfigType);
// set the selector string value
resourceConfigType.setSelector(parentSelector);
@@ -145,14 +170,6 @@
resourceConfigType.setResource(resourceType);
// create param for resourceConfig
- if (beanID == null) {
- beanID = getBeanID(target);
- } else {
- if (beanID.startsWith("${") && beanID.endsWith("}")) {
- beanID = beanID.substring(2, beanID.length() - 1);
- }
- }
-
addParamTypeToResourceConfig(resourceConfigType,
SmooksModelConstants.BEAN_ID, beanID);
@@ -295,10 +312,13 @@
populator = populator.trim();
if (!JavaBeanAnalyzer.BEANPOPULATOR.equals(populator))
continue;
+ // if the ResourCeconfig element was used to render , don't analyze
+ // it again.
+ if (isResourceConfigUsed(resourceConfig)) {
+ continue;
+ }
String selector = resourceConfig.getSelector();
- if (isSelectorIsUsed(selector))
- continue;
- AbstractXMLObject source = findChildXMLObjectByName(selector,
+ AbstractXMLObject source = findXMLNodeWithSelector(selector,
sourceRoot);
if (source == null) {
// TODO if can't find the root , throw exception
@@ -347,7 +367,53 @@
return null;
}
- public static AbstractXMLObject findChildXMLObjectByName(String selector,
+ public static AbstractXMLObject findXMLNodeWithSelector(String selector,
+ AbstractXMLObject root, boolean fromRoot, boolean includeProperty) {
+ if (fromRoot) {
+ AbstractXMLObject parent = root.getParent();
+ if (parent == null)
+ return null;
+ while (!(parent instanceof TagList)) {
+ root = parent;
+ parent = parent.getParent();
+ }
+ }
+
+ if (selector != null)
+ selector = selector.trim();
+ if (isXMLAttributeObject(selector))
+ selector = selector.substring(1);
+
+ if (selector.equalsIgnoreCase(root.getName()))
+ return root;
+ if (root instanceof TagObject) {
+ List<AbstractXMLObject> children = ((TagObject) root).getChildren();
+ List<TagPropertyObject> properties = ((TagObject) root)
+ .getProperties();
+ for (Iterator iterator = children.iterator(); iterator.hasNext();) {
+ AbstractXMLObject child = (AbstractXMLObject) iterator.next();
+ AbstractXMLObject result = findXMLNodeWithSelector(selector,
+ child, false, includeProperty);
+ if (result != null)
+ return result;
+ }
+ if (includeProperty) {
+ for (Iterator iterator = properties.iterator(); iterator
+ .hasNext();) {
+ TagPropertyObject property = (TagPropertyObject) iterator
+ .next();
+ if (selector.equalsIgnoreCase(property.getName())) {
+ return property;
+ }
+ }
+ }
+ }
+
+ return null;
+
+ }
+
+ public static AbstractXMLObject findXMLNodeWithSelector(String selector,
AbstractXMLObject root) {
if (selector == null)
return null;
@@ -359,60 +425,25 @@
if (nameArray != null) {
if (nameArray.length > 1) {
String firstNodeName = nameArray[0];
- root = findChildXMLObjectByName(firstNodeName, root);
+ root = findXMLNodeWithSelector(firstNodeName, root);
+ if (root == null) {
+ root = findXMLNodeWithSelector(firstNodeName, root, true,
+ false);
+ }
if (root == null)
return null;
for (int i = 1; i < nameArray.length; i++) {
String name = nameArray[i];
- if (root instanceof TagObject) {
- List<AbstractXMLObject> childrenTags = root
- .getChildren();
- for (Iterator iterator = childrenTags.iterator(); iterator
- .hasNext();) {
- AbstractXMLObject abstractXMLObject = (AbstractXMLObject) iterator
- .next();
- if (abstractXMLObject.getName().equalsIgnoreCase(
- name)) {
- root = abstractXMLObject;
- break;
- }
- }
- }
+ root = findXMLNodeWithSelector(name, root, false, false);
}
return root;
}
}
- if (selector.equalsIgnoreCase(root.getName())) {
- return root;
- }
- if (root instanceof TagObject) {
- List properties = ((TagObject) root).getProperties();
- for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
- TagPropertyObject pro = (TagPropertyObject) iterator.next();
- if (selector.equals(pro.getName()))
- return pro;
- }
- List<AbstractXMLObject> tags = ((TagObject) root).getChildren();
- for (Iterator iterator = tags.iterator(); iterator.hasNext();) {
- AbstractXMLObject tagChild = (AbstractXMLObject) iterator
- .next();
- AbstractXMLObject result = findChildXMLObjectByName(selector,
- tagChild);
- if (result != null)
- return result;
- }
- }
- return null;
-
+ return findXMLNodeWithSelector(selector, root, false, false);
}
- protected void createMappingResourceConfigList(
- MappingResourceConfigList configList, SmooksResourceListType list,
- ResourceConfigType config, AbstractXMLObject sourceRoot,
- JavaBeanModel targetJavaBean) {
-
- MappingModel mapping = new MappingModel(sourceRoot, targetJavaBean);
- configList.getMappingModelList().add(mapping);
+ protected void checkNamespaceProperty(MappingModel mapping,
+ ResourceConfigType config) {
String namespace = config.getSelectorNamespace();
if (namespace != null) {
PropertyModel np = new PropertyModel();
@@ -420,69 +451,96 @@
np.setValue(namespace);
mapping.getProperties().add(np);
}
+ }
- configList.addResourceConfig(config);
+ protected void createMappingResourceConfigList(
+ MappingResourceConfigList configList, SmooksResourceListType list,
+ ResourceConfigType processingConfig, AbstractXMLObject sourceRoot,
+ JavaBeanModel targetJavaBean) {
- List<ParamType> paramList = config.getParam();
- ParamType bindingParam = null;
- for (Iterator iterator = paramList.iterator(); iterator.hasNext();) {
- ParamType paramType = (ParamType) iterator.next();
- String name = paramType.getName();
- if (SmooksModelConstants.BINDINGS.equals(name)) {
- bindingParam = paramType;
- break;
- }
+ MappingModel mapping = new MappingModel(sourceRoot, targetJavaBean);
+ configList.getMappingModelList().add(mapping);
+ checkNamespaceProperty(mapping, processingConfig);
+
+ // this ResourceConfig was used to render , so record it in the
+ // RelatingResourceConfig of MappingResourceConfigList
+ // to make it dosen't to show in the ConfigurationPage.
+ configList.addResourceConfig(processingConfig);
+
+ // Load the bindings of parameter element:
+ List<Object> bindings = SmooksModelUtils
+ .getBindingListFromResourceConfigType(processingConfig);
+ // If the resourceConfig was be used , don't to generate binding for it and return.
+ if(isResourceConfigUsed(processingConfig)){
+ return;
+ }else{
+ // when starting to process the ResourceConfig , mark it be used
+ setResourceConfigUsed(processingConfig);
}
+ // If the bindings isn't NULL to visit the "property" and "selector" of
+ // binding to render the graphical
+ if (bindings != null ) {
+ for (Iterator<Object> iterator = bindings.iterator(); iterator
+ .hasNext();) {
+ Object anyType = iterator.next();
+ if (!(anyType instanceof AnyType))
+ continue;
+ AnyType binding = (AnyType) anyType;
+ String property = SmooksModelUtils
+ .getAttributeValueFromAnyType(binding,
+ SmooksModelUtils.ATTRIBUTE_PROPERTY);
+ String selectorStr = SmooksModelUtils
+ .getAttributeValueFromAnyType(binding,
+ SmooksModelUtils.ATTRIBUTE_SELECTOR);
- if (bindingParam != null) {
- List bindings = (List) bindingParam.getMixed().get(
- SmooksModelUtils.ELEMENT_BINDING, true);
- if (bindings != null) {
- for (Iterator iterator = bindings.iterator(); iterator
- .hasNext();) {
- AnyType binding = (AnyType) iterator.next();
- String property = SmooksModelUtils
- .getAttributeValueFromAnyType(binding,
- SmooksModelUtils.ATTRIBUTE_PROPERTY);
- String selectorStr = SmooksModelUtils
- .getAttributeValueFromAnyType(binding,
- SmooksModelUtils.ATTRIBUTE_SELECTOR);
- JavaBeanModel childBean = JavaBeanAnalyzer
- .findTheChildJavaBeanModel(property, targetJavaBean);
- processXMLSelector(configList, config, sourceRoot,
- childBean, list, selectorStr, binding);
- }
+ JavaBeanModel childBean = JavaBeanAnalyzer
+ .findTheChildJavaBeanModel(property, targetJavaBean);
+ processXMLSelector(configList, processingConfig, sourceRoot,
+ childBean, list, selectorStr, binding);
}
}
}
+ /**
+ *
+ * @param configList
+ * @param resourceConfig
+ * @param root
+ * @param targetBean
+ * @param listType
+ * @param selector
+ * @param currentBinding
+ */
protected void processXMLSelector(MappingResourceConfigList configList,
ResourceConfigType resourceConfig, AbstractXMLObject root,
JavaBeanModel targetBean, SmooksResourceListType listType,
String selector, AnyType currentBinding) {
if (isReferenceSelector(selector)) {
- ResourceConfigType resourceConfig1 = this
+ ResourceConfigType processingResourceConfig = this
.findResourceConfigTypeWithSelector(selector, listType);
- if (resourceConfig1 == null) {
+ if (processingResourceConfig == null) {
throw new RuntimeException(
"Can't find some ResourceConfig element in the config file.Maybe some ResourceConfig element miss <param name = \"beanId\">"
+ selector + "</param>");
}
- String newSelector = resourceConfig1.getSelector();
+ String newSelector = processingResourceConfig.getSelector();
if (newSelector == null)
return;
- AbstractXMLObject newRoot = findChildXMLObjectByName(newSelector,
+ AbstractXMLObject newRoot = findXMLNodeWithSelector(newSelector,
root);
if (newRoot == null) {
+ newRoot = findXMLNodeWithSelector(newSelector, root, true,
+ false);
+ }
+ if (newRoot == null) {
// TODO If can't find the element , throw exception
// MODIFY by Dart , 2008.11.07
throw new RuntimeException(
Messages
.getString("XML2JavaAnalyzer.CantFindNodeErrorMessage1") + newSelector + Messages.getString("XML2JavaAnalyzer.CantFindNodeErrorMessage2")); //$NON-NLS-1$ //$NON-NLS-2$
}
- this.setSelectorIsUsed(resourceConfig1.getSelector());
createMappingResourceConfigList(configList, listType,
- resourceConfig1, newRoot, targetBean);
+ processingResourceConfig, newRoot, targetBean);
} else {
AbstractXMLObject source = findXMLObjectWithSelectorString(
@@ -516,45 +574,22 @@
if (names == null)
return null;
int startIndex = 0;
- String s = null;
+ String firstName = null;
if (names.length > 1)
- s = names[0];
+ firstName = names[0];
else
- s = selector;
- AbstractXMLObject current = findChildXMLObjectByName(s, parent);
- if (current == parent) {
-
- } else {
- while (!(parent.getParent() instanceof TagList)) {
- parent = parent.getParent();
- }
- current = parent;
+ firstName = selector;
+ AbstractXMLObject current = findXMLNodeWithSelector(firstName, parent,
+ false, false);
+ if (current == null) {
+ current = findXMLNodeWithSelector(firstName, parent, true, false);
}
+ if (current == null) {
+ return null;
+ }
for (int i = startIndex; i < names.length; i++) {
String name = names[i].trim();
- if (current instanceof TagObject && isXMLAttributeObject(name)) {
- List properties = ((TagObject) current).getProperties();
- name = name.substring(1);
- for (Iterator iterator = properties.iterator(); iterator
- .hasNext();) {
- TagPropertyObject property = (TagPropertyObject) iterator
- .next();
- if (name.equalsIgnoreCase(property.getName())) {
- current = property;
- break;
- }
- }
- } else {
- List list = current.getChildren();
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- AbstractXMLObject child = (AbstractXMLObject) iterator
- .next();
- if (name.equalsIgnoreCase(child.getName())) {
- current = child;
- break;
- }
- }
- }
+ current = findXMLNodeWithSelector(name, current, false, true);
}
return current;
}
@@ -675,4 +710,34 @@
return typeCheckResults.toArray(new DesignTimeAnalyzeResult[] {});
}
+ public void setResourceConfigUsed(ResourceConfigType resourceConfig) {
+ usedResourceConfigList.add(resourceConfig);
+ }
+
+ public boolean isResourceConfigUsed(ResourceConfigType resourceConfig) {
+ return (usedResourceConfigList.indexOf(resourceConfig) != -1);
+ }
+
+ public void registeCreatedResourceConfig(String beanId,
+ ResourceConfigType resourceConfig) {
+ if(beanId == null) return;
+ beanId = beanId.trim().toLowerCase();
+ createdResourceConfigMap.put(beanId, resourceConfig);
+ }
+
+ public ResourceConfigType getCreatedResourceConfig(String beanId) {
+ if(beanId == null) return null;
+ beanId = beanId.trim().toLowerCase();
+ return createdResourceConfigMap.get(beanId);
+ }
+
+ public boolean isResourceConfigCreated(String beanId) {
+ if(beanId == null) return false;
+ beanId = beanId.trim().toLowerCase();
+ return getCreatedResourceConfig(beanId) != null;
+ }
+
+ public boolean isResourceConfigCreated(ResourceConfigType resourceConfig) {
+ return createdResourceConfigMap.containsValue(resourceConfig);
+ }
}
15 years, 3 months
JBoss Tools SVN: r12876 - workspace/snjeza/seam-examples.
by jbosstools-commits@lists.jboss.org
Author: snjeza
Date: 2009-01-04 17:43:28 -0500 (Sun, 04 Jan 2009)
New Revision: 12876
Added:
workspace/snjeza/seam-examples/booking-mavenized.zip
Log:
Mavenize Seam Booking Example
Added: workspace/snjeza/seam-examples/booking-mavenized.zip
===================================================================
(Binary files differ)
Property changes on: workspace/snjeza/seam-examples/booking-mavenized.zip
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
15 years, 3 months
JBoss Tools SVN: r12875 - workspace/examples.
by jbosstools-commits@lists.jboss.org
Author: snjeza
Date: 2009-01-04 17:42:36 -0500 (Sun, 04 Jan 2009)
New Revision: 12875
Modified:
workspace/examples/projectExamples.xml
Log:
Mavenize Seam Booking Example
Modified: workspace/examples/projectExamples.xml
===================================================================
--- workspace/examples/projectExamples.xml 2009-01-04 08:35:50 UTC (rev 12874)
+++ workspace/examples/projectExamples.xml 2009-01-04 22:42:36 UTC (rev 12875)
@@ -35,6 +35,24 @@
<project>
<category>Seam</category>
+ <name>booking2</name>
+ <included-projects>
+ booking,booking-ear,booking-ejb,booking-parent
+ </included-projects>
+ <shortDescription>Seam Booking Example - EAR mavenized</shortDescription>
+ <description>This example demonstrates the use of Seam in a Java EE 5 environment.
+Transaction and persistence context management is handled by the EJB container.
+It includes the booking, booking-ear, booking-ejb and booking-parent projects.
+Requires m2eclipse >= 0.9.7.20081001-2217
+</description>
+ <size>203639</size>
+ <url>
+ http://anonsvn.jboss.org/repos/jbosstools/workspace/snjeza/seam-examples/...
+ </url>
+ </project>
+
+ <project>
+ <category>Seam</category>
<name>jboss-seam-jpa</name>
<shortDescription>Seam Booking Example - WAR Standalone</shortDescription>
<description>This example demonstrates the use of Seam in a Java EE 5 environment.
15 years, 3 months
JBoss Tools SVN: r12874 - in trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test: xml and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2009-01-04 03:35:50 -0500 (Sun, 04 Jan 2009)
New Revision: 12874
Modified:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/FreeMarkerTest.java
Log:
JBIDE-3479
Add/Modify :
1.java model building factory test case
2.java2java simple config file test case
Modified: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java 2009-01-04 08:32:25 UTC (rev 12873)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java 2009-01-04 08:35:50 UTC (rev 12874)
@@ -1,7 +1,6 @@
package org.jboss.tools.smooks.test.java2java;
-import java.util.Date;
/**
* @author <a href="mailto:tom.fennelly@gmail.com">tom.fennelly(a)gmail.com</a>
Modified: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java 2009-01-04 08:32:25 UTC (rev 12873)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java 2009-01-04 08:35:50 UTC (rev 12874)
@@ -16,7 +16,6 @@
package org.jboss.tools.smooks.test.java2java;
import java.math.BigDecimal;
-import java.util.Arrays;
/**
* @author <a href="mailto:tom.fennelly@gmail.com">tom.fennelly(a)gmail.com</a>
Modified: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/FreeMarkerTest.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/FreeMarkerTest.java 2009-01-04 08:32:25 UTC (rev 12873)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/FreeMarkerTest.java 2009-01-04 08:35:50 UTC (rev 12874)
@@ -10,18 +10,14 @@
******************************************************************************/
package org.jboss.tools.smooks.test.xml;
-import java.io.IOException;
-
import junit.framework.TestCase;
-import org.dom4j.DocumentException;
-
/**
* @author Dart Peng
* @Date : Sep 25, 2008
*/
public class FreeMarkerTest extends TestCase {
- public void testParse() throws DocumentException, IOException {
+// public void testParse() throws DocumentException, IOException {
// Reader reader = new InputStreamReader(FreeMarkerTest.class
// .getResourceAsStream("test.flt"));
// FreeMarkerContentReplacer replacer = new FreeMarkerContentReplacer();
@@ -34,5 +30,5 @@
// String result = trans.transformDOM(doc);
//
// System.out.println(result);
- }
+// }
}
15 years, 3 months
JBoss Tools SVN: r12873 - in trunk/smooks/tests/org.jboss.tools.smooks.test: .settings and 4 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2009-01-04 03:32:25 -0500 (Sun, 04 Jan 2009)
New Revision: 12873
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/.settings/
trunk/smooks/tests/org.jboss.tools.smooks.test/.settings/org.eclipse.jdt.core.prefs
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/AbstractModelTestCase.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java/JavaModelLoaderTest.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJava2JavaModelTestCase.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJavaBeanModel.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/NormalJ2JConfigFileAnalyzerTester.java
Removed:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java
Modified:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java
Log:
JBIDE-3479
Add/Modify :
1.java model building factory test case
2.java2java simple config file test case
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/.settings/org.eclipse.jdt.core.prefs 2009-01-04 08:32:25 UTC (rev 12873)
@@ -0,0 +1,12 @@
+#Wed Nov 19 18:27:41 HKT 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/AbstractModelTestCase.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/AbstractModelTestCase.java (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/AbstractModelTestCase.java 2009-01-04 08:32:25 UTC (rev 12873)
@@ -0,0 +1,114 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.test;
+
+import java.util.HashMap;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.jboss.tools.smooks.analyzer.IMappingAnalyzer;
+import org.jboss.tools.smooks.analyzer.ISourceModelAnalyzer;
+import org.jboss.tools.smooks.analyzer.ITargetModelAnalyzer;
+import org.jboss.tools.smooks.graphical.GraphInformations;
+import org.jboss.tools.smooks.graphical.GraphicalPackage;
+import org.jboss.tools.smooks.model.SmooksPackage;
+import org.jboss.tools.smooks.model.provider.SmooksItemProviderAdapterFactory;
+import org.jboss.tools.smooks.model.util.SmooksResourceFactoryImpl;
+
+/**
+ * @author Dart
+ *
+ */
+public abstract class AbstractModelTestCase extends TestCase {
+
+ protected ISourceModelAnalyzer sourceModelAnalyzer = newSourceModelAnalyzer();
+ protected ITargetModelAnalyzer targetModelAnalyzer = newTargetModelAnalyzer();
+ protected IMappingAnalyzer connectionsAnalyzer = newConnectionModelAnalyzer();
+
+ protected GraphInformations graph;
+
+ public GraphInformations getGraph() {
+ return graph;
+ }
+
+ protected abstract IMappingAnalyzer newConnectionModelAnalyzer();
+
+ protected abstract ITargetModelAnalyzer newTargetModelAnalyzer();
+
+ protected abstract ISourceModelAnalyzer newSourceModelAnalyzer();
+
+ public void setGraph(GraphInformations graph) {
+ this.graph = graph;
+ }
+
+ public ComposedAdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ public void setAdapterFactory(ComposedAdapterFactory adapterFactory) {
+ this.adapterFactory = adapterFactory;
+ }
+
+ public AdapterFactoryEditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ public void setEditingDomain(AdapterFactoryEditingDomain editingDomain) {
+ this.editingDomain = editingDomain;
+ }
+
+ public Resource getSmooksResource() {
+ return smooksResource;
+ }
+
+ public void setSmooksResource(Resource smooksResource) {
+ this.smooksResource = smooksResource;
+ }
+
+ protected ComposedAdapterFactory adapterFactory;
+ protected AdapterFactoryEditingDomain editingDomain;
+ protected Resource smooksResource;
+ protected Resource graphResource;
+
+ public Resource getGraphResource() {
+ return graphResource;
+ }
+
+ public void setGraphResource(Resource graphResource) {
+ this.graphResource = graphResource;
+ }
+
+ public AbstractModelTestCase() {
+ adapterFactory = new ComposedAdapterFactory(
+ ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+ adapterFactory
+ .addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory
+ .addAdapterFactory(new SmooksItemProviderAdapterFactory());
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory,
+ createCommandStack(), new HashMap<Resource, Boolean>());
+ Registry.INSTANCE.put(GraphicalPackage.eNS_URI,
+ GraphicalPackage.eINSTANCE);
+ Registry.INSTANCE.put(SmooksPackage.eNS_URI, SmooksPackage.eINSTANCE);
+
+ smooksResource = new SmooksResourceFactoryImpl().createResource(null);
+ graphResource = new XMLResourceFactoryImpl().createResource(null);
+
+ loadResources();
+ }
+
+ public abstract void loadResources() throws RuntimeException;
+
+ protected CommandStack createCommandStack() {
+ return new BasicCommandStack();
+ }
+}
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/AbstractModelTestCase.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java/JavaModelLoaderTest.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java/JavaModelLoaderTest.java (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java/JavaModelLoaderTest.java 2009-01-04 08:32:25 UTC (rev 12873)
@@ -0,0 +1,112 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.test.java;
+
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModelFactory;
+import org.jboss.tools.smooks.test.java2java.Header;
+import org.jboss.tools.smooks.test.java2java.Order;
+import org.jboss.tools.smooks.test.java2java.OrderItem;
+
+/**
+ * @author Dart
+ *
+ */
+public class JavaModelLoaderTest extends TestCase {
+ public void testJavaBeanModelFactory(){
+ JavaBeanModel model = JavaBeanModelFactory.getJavaBeanModel(Order.class);
+ List properties = model.getProperties();
+
+ // there are 14 properties , 9 properties come from the parent class.
+ Assert.assertEquals(14, properties.size());
+ Assert.assertTrue(model.isRootClassModel());
+ for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
+ JavaBeanModel property = (JavaBeanModel) iterator.next();
+ // check header property
+ if(property.getName().equals("header")){
+ Assert.assertTrue(property.getBeanClass() == Header.class);
+ }
+ // check the collection property
+ if(property.getName().equals("orderItems")){
+ Assert.assertTrue(property.hasGenericType());
+ Assert.assertTrue(property.isList());
+ Assert.assertTrue(property.getGenericType() == OrderItem.class);
+ // have only one model
+ Assert.assertEquals(1, property.getProperties().size());
+ }
+ // check the array property
+ if(property.getName().equals("headerArray")){
+ Assert.assertTrue(property.hasGenericType());
+ Assert.assertTrue(property.isArray());
+ Assert.assertTrue(property.getGenericType() == Header.class);
+ // have only one model
+ Assert.assertEquals(1, property.getProperties().size());
+ }
+ if(property.getName().equals("orderCounts")){
+ Assert.assertTrue(property.hasGenericType());
+ Assert.assertTrue(property.isArray());
+ Assert.assertTrue(property.getGenericType() == int.class);
+ // have only one model
+ Assert.assertEquals(1, property.getProperties().size());
+ }
+ if(property.getName().equals("ages")){
+ Assert.assertTrue(property.hasGenericType());
+ Assert.assertTrue(property.isArray());
+ Assert.assertTrue(property.getGenericType() == int.class);
+ // have only one model
+ Assert.assertEquals(1, property.getProperties().size());
+ }
+ // check the parent's primitive properties
+ if(property.getName().equals("stringProperty")){
+ Assert.assertTrue(property.isPrimitive());
+ Assert.assertTrue(property.getBeanClass() == String.class);
+ // have no children model
+ Assert.assertEquals(0, property.getProperties().size());
+ }
+ if(property.getName().equals("longProperty")){
+ Assert.assertTrue(property.isPrimitive());
+ Assert.assertTrue(property.getBeanClass() == Long.class);
+ Assert.assertEquals(0, property.getProperties().size());
+ }
+ if(property.getName().equals("doubleProperty")){
+ Assert.assertTrue(property.isPrimitive());
+ Assert.assertTrue(property.getBeanClass() == Double.class);
+ Assert.assertEquals(0, property.getProperties().size());
+ }
+ if(property.getName().equals("dateProperty")){
+ Assert.assertTrue(property.isPrimitive());
+ Assert.assertTrue(property.getBeanClass() == Date.class);
+ Assert.assertEquals(0, property.getProperties().size());
+ }
+ if(property.getName().equals("BooleanProperty")){
+ Assert.assertTrue(property.isPrimitive());
+ Assert.assertTrue(property.getBeanClass() == Boolean.class);
+ Assert.assertEquals(0, property.getProperties().size());
+ }
+ if(property.getName().equals("integerProperty")){
+ Assert.assertTrue(property.isPrimitive());
+ Assert.assertTrue(property.getBeanClass() == Integer.class);
+ Assert.assertEquals(0, property.getProperties().size());
+ }
+ if(property.getName().equals("floatProperty")){
+ Assert.assertTrue(property.isPrimitive());
+ Assert.assertTrue(property.getBeanClass() == Float.class);
+ Assert.assertEquals(0, property.getProperties().size());
+ }
+ if(property.getName().equals("bigIntegerProperty")){
+ Assert.assertTrue(property.isPrimitive());
+ Assert.assertTrue(property.getBeanClass() == BigInteger.class);
+ Assert.assertEquals(0, property.getProperties().size());
+ }
+ }
+ }
+}
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java/JavaModelLoaderTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJava2JavaModelTestCase.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJava2JavaModelTestCase.java (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJava2JavaModelTestCase.java 2009-01-04 08:32:25 UTC (rev 12873)
@@ -0,0 +1,28 @@
+package org.jboss.tools.smooks.test.java2java;
+
+import org.jboss.tools.smooks.analyzer.IMappingAnalyzer;
+import org.jboss.tools.smooks.analyzer.ISourceModelAnalyzer;
+import org.jboss.tools.smooks.analyzer.ITargetModelAnalyzer;
+import org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer;
+import org.jboss.tools.smooks.test.AbstractModelTestCase;
+
+public abstract class AbstractJava2JavaModelTestCase extends AbstractModelTestCase {
+
+ public AbstractJava2JavaModelTestCase() {
+ super();
+
+ }
+
+ public ISourceModelAnalyzer newSourceModelAnalyzer() {
+ return new JavaBeanAnalyzer();
+ }
+
+ public ITargetModelAnalyzer newTargetModelAnalyzer() {
+ return new JavaBeanAnalyzer();
+ }
+
+ public IMappingAnalyzer newConnectionModelAnalyzer() {
+ return new JavaBeanAnalyzer();
+ }
+
+}
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJava2JavaModelTestCase.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJavaBeanModel.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJavaBeanModel.java (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJavaBeanModel.java 2009-01-04 08:32:25 UTC (rev 12873)
@@ -0,0 +1,78 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.test.java2java;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+
+/**
+ * @author Dart
+ *
+ */
+public class AbstractJavaBeanModel {
+ private String stringProperty;
+ private Date dateProperty;
+ private Boolean booleanProperty;
+ private Integer integerProperty;
+ private Long longProperty;
+ private Double doubleProperty;
+ private Float floatProperty;
+ private BigDecimal bigDecimalProperty;
+ private BigInteger bigIntegerProperty;
+ public String getStringProperty() {
+ return stringProperty;
+ }
+ public void setStringProperty(String stringProperty) {
+ this.stringProperty = stringProperty;
+ }
+ public Date getDateProperty() {
+ return dateProperty;
+ }
+ public void setDateProperty(Date dateProperty) {
+ this.dateProperty = dateProperty;
+ }
+ public Boolean getBooleanProperty() {
+ return booleanProperty;
+ }
+ public void setBooleanProperty(Boolean booleanProperty) {
+ this.booleanProperty = booleanProperty;
+ }
+ public Integer getIntegerProperty() {
+ return integerProperty;
+ }
+ public void setIntegerProperty(Integer integerProperty) {
+ this.integerProperty = integerProperty;
+ }
+ public Long getLongProperty() {
+ return longProperty;
+ }
+ public void setLongProperty(Long longProperty) {
+ this.longProperty = longProperty;
+ }
+ public Double getDoubleProperty() {
+ return doubleProperty;
+ }
+ public void setDoubleProperty(Double doubleProperty) {
+ this.doubleProperty = doubleProperty;
+ }
+ public Float getFloatProperty() {
+ return floatProperty;
+ }
+ public void setFloatProperty(Float floatProperty) {
+ this.floatProperty = floatProperty;
+ }
+ public BigDecimal getBigDecimalProperty() {
+ return bigDecimalProperty;
+ }
+ public void setBigDecimalProperty(BigDecimal bigDecimalProperty) {
+ this.bigDecimalProperty = bigDecimalProperty;
+ }
+ public BigInteger getBigIntegerProperty() {
+ return bigIntegerProperty;
+ }
+ public void setBigIntegerProperty(BigInteger bigIntegerProperty) {
+ this.bigIntegerProperty = bigIntegerProperty;
+ }
+}
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/AbstractJavaBeanModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/NormalJ2JConfigFileAnalyzerTester.java (from rev 11562, trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java)
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/NormalJ2JConfigFileAnalyzerTester.java (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/NormalJ2JConfigFileAnalyzerTester.java 2009-01-04 08:32:25 UTC (rev 12873)
@@ -0,0 +1,145 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.test.java2java;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.eclipse.core.resources.IFile;
+import org.jboss.tools.smooks.analyzer.MappingModel;
+import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
+import org.jboss.tools.smooks.analyzer.NormalSmooksModelBuilder;
+import org.jboss.tools.smooks.analyzer.NormalSmooksModelPackage;
+import org.jboss.tools.smooks.analyzer.ResourceConfigEraser;
+import org.jboss.tools.smooks.graphical.GraphInformations;
+import org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.model.DocumentRoot;
+import org.jboss.tools.smooks.model.SmooksResourceListType;
+
+/**
+ * @author Dart Peng Date : 2008-9-1
+ */
+public class NormalJ2JConfigFileAnalyzerTester extends
+ AbstractJava2JavaModelTestCase {
+
+ public MappingResourceConfigList analyzeGraphical() throws IOException,
+ InvocationTargetException {
+ ClassLoader classLoader = NormalJ2JConfigFileAnalyzerTester.class
+ .getClassLoader();
+ SmooksResourceListType listType = ((DocumentRoot) smooksResource
+ .getContents().get(0)).getSmooksResourceList();
+ ((JavaBeanAnalyzer) sourceModelAnalyzer)
+ .setCurrentClassLoader(classLoader);
+ ((JavaBeanAnalyzer) targetModelAnalyzer)
+ .setCurrentClassLoader(classLoader);
+ Object source = sourceModelAnalyzer.buildSourceInputObjects(graph,
+ listType, null, null);
+ Object target = targetModelAnalyzer.buildTargetInputObjects(graph,
+ listType, null, null);
+ MappingResourceConfigList configList = connectionsAnalyzer
+ .analyzeMappingSmooksModel(listType, source, target);
+ List connections = configList.getMappingModelList();
+ List relationgConnection = configList
+ .getGraphRenderResourceConfigList();
+ // there are 8 connection lines model
+ Assert.assertTrue(connections.size() == 8);
+
+ // those 8 connection lines were analyzed by 3 ResourceConfig element
+ Assert.assertTrue(relationgConnection.size() == 3);
+
+ // check the connection properties
+ for (Iterator iterator = connections.iterator(); iterator.hasNext();) {
+ MappingModel connectionModels = (MappingModel) iterator.next();
+ Assert.assertNotNull(connectionModels.getSource());
+ Assert.assertNotNull(connectionModels.getTarget());
+ JavaBeanModel sourceModel = (JavaBeanModel)connectionModels.getSource();
+ JavaBeanModel targetModel = (JavaBeanModel)connectionModels.getSource();
+ if(targetModel.isPrimitive()){
+ // check the connection model properties
+ if(targetModel.getName().equals("productCode")){
+ Assert.assertTrue(connectionModels.getProperties().size() > 0);
+ }
+ if(targetModel.getName().equals("unitPrice")){
+ Assert.assertTrue(connectionModels.getProperties().size() > 0);
+ }
+ if(targetModel.getName().equals("unitQuantity")){
+ Assert.assertTrue(connectionModels.getProperties().size() > 0);
+ }
+ }
+ }
+
+ return configList;
+ }
+
+ public void eraserMappingResourceConfig() throws IOException,
+ InvocationTargetException {
+ ResourceConfigEraser eraser = new ResourceConfigEraser();
+ SmooksResourceListType listType = ((DocumentRoot) smooksResource
+ .getContents().get(0)).getSmooksResourceList();
+ int oldCount = listType.getAbstractResourceConfig().size();
+ MappingResourceConfigList configList = analyzeGraphical();
+ eraser.cleanMappingResourceConfig(listType, configList, null);
+ int newCount = listType.getAbstractResourceConfig().size();
+ Assert.assertTrue(oldCount >= newCount);
+ }
+
+ public void testEraser() throws IOException, InvocationTargetException {
+ eraserMappingResourceConfig();
+ }
+
+ public void testAnalyzer() throws IOException, InvocationTargetException {
+ MappingResourceConfigList configList = analyzeGraphical();
+ }
+
+ public void generateNormalInforPackage() {
+ SmooksResourceListType listType = ((DocumentRoot) smooksResource
+ .getContents().get(0)).getSmooksResourceList();
+ NormalSmooksModelPackage modePackage = NormalSmooksModelBuilder
+ .getInstance().buildNormalSmooksModelPackage(listType);
+
+ }
+
+ public void testGenerateNormalInforPackage() throws IOException,
+ InvocationTargetException {
+ eraserMappingResourceConfig();
+ generateNormalInforPackage();
+ }
+
+ @Override
+ public void loadResources() throws RuntimeException {
+ ClassLoader classLoader = NormalJ2JConfigFileAnalyzerTester.class
+ .getClassLoader();
+ InputStream stream1 = classLoader
+ .getResourceAsStream("org/jboss/tools/smooks/test/java2java/Test.xml");
+ InputStream stream2 = classLoader
+ .getResourceAsStream("org/jboss/tools/smooks/test/java2java/Test.smooks.graph");
+ try {
+ graphResource.load(stream2, Collections.EMPTY_MAP);
+
+ graph = (GraphInformations) graphResource.getContents().get(0);
+
+ smooksResource.load(stream1, Collections.EMPTY_MAP);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public IFile getSmooksConfigFile() {
+ return null;
+ }
+}
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/NormalJ2JConfigFileAnalyzerTester.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java 2009-01-04 08:27:31 UTC (rev 12872)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java 2009-01-04 08:32:25 UTC (rev 12873)
@@ -1,19 +1,34 @@
package org.jboss.tools.smooks.test.java2java;
-
import java.util.ArrayList;
import java.util.List;
-import java.util.Arrays;
/**
* @author <a href="mailto:tom.fennelly@gmail.com">tom.fennelly(a)gmail.com</a>
*/
-public class Order {
- private Header header;
- private List<OrderItem> modifyOrderItems;
+public class Order extends AbstractJavaBeanModel {
+ private Header header;
+ private List<OrderItem> modifyOrderItems;
+ private int[] orderCounts = new int[] {};
+ private Header[] headerArray = new Header[] { header };
+ private int[] ages;
- private int[] ages;
- public int[] getAges() {
+ public Order() {
+ header = new Header();
+ modifyOrderItems = new ArrayList<OrderItem>();
+ modifyOrderItems.add(new OrderItem());
+ modifyOrderItems.add(new OrderItem());
+
+ modifyOrderItems.get(0).setProductId(111);
+ modifyOrderItems.get(0).setQuantity(2);
+ modifyOrderItems.get(0).setPrice(10.99);
+
+ modifyOrderItems.get(1).setProductId(222);
+ modifyOrderItems.get(1).setQuantity(4);
+ modifyOrderItems.get(1).setPrice(25.50);
+ }
+
+ public int[] getAges() {
return ages;
}
@@ -21,44 +36,45 @@
this.ages = ages;
}
- public Order() {
- header = new Header();
- modifyOrderItems = new ArrayList<OrderItem>();
- modifyOrderItems.add(new OrderItem());
- modifyOrderItems.add(new OrderItem());
+ public Header[] getHeaderArray() {
+ return headerArray;
+ }
- modifyOrderItems.get(0).setProductId(111);
- modifyOrderItems.get(0).setQuantity(2);
- modifyOrderItems.get(0).setPrice(10.99);
+ public void setHeaderArray(Header[] headerArray) {
+ this.headerArray = headerArray;
+ }
- modifyOrderItems.get(1).setProductId(222);
- modifyOrderItems.get(1).setQuantity(4);
- modifyOrderItems.get(1).setPrice(25.50);
- }
+ public int[] getOrderCounts() {
+ return orderCounts;
+ }
- public Header getHeader() {
- return header;
- }
+ public void setOrderCounts(int[] orderCounts) {
+ this.orderCounts = orderCounts;
+ }
- public void setHeader(Header header) {
- this.header = header;
- }
+ public Header getHeader() {
+ return header;
+ }
- public List<OrderItem> getOrderItems() {
- return modifyOrderItems;
- }
+ public void setHeader(Header header) {
+ this.header = header;
+ }
- public void setOrderItems(List<OrderItem> orderItems) {
- this.modifyOrderItems = orderItems;
- }
+ public List<OrderItem> getOrderItems() {
+ return modifyOrderItems;
+ }
- public String toString() {
- StringBuilder stringBuilder = new StringBuilder();
+ public void setOrderItems(List<OrderItem> orderItems) {
+ this.modifyOrderItems = orderItems;
+ }
- stringBuilder.append("Class: " + getClass().getName() + "\n");
- stringBuilder.append("\theader: " + header + "\n");
- stringBuilder.append("\torderItems: " + modifyOrderItems);
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
- return stringBuilder.toString();
- }
+ stringBuilder.append("Class: " + getClass().getName() + "\n");
+ stringBuilder.append("\theader: " + header + "\n");
+ stringBuilder.append("\torderItems: " + modifyOrderItems);
+
+ return stringBuilder.toString();
+ }
}
\ No newline at end of file
Deleted: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java 2009-01-04 08:27:31 UTC (rev 12872)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java 2009-01-04 08:32:25 UTC (rev 12873)
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.smooks.test.java2java;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EPackage.Registry;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
-import org.jboss.tools.smooks.analyzer.NormalSmooksModelBuilder;
-import org.jboss.tools.smooks.analyzer.NormalSmooksModelPackage;
-import org.jboss.tools.smooks.analyzer.ResourceConfigEraser;
-import org.jboss.tools.smooks.graphical.GraphInformations;
-import org.jboss.tools.smooks.graphical.GraphicalPackage;
-import org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer;
-import org.jboss.tools.smooks.model.DocumentRoot;
-import org.jboss.tools.smooks.model.SmooksPackage;
-import org.jboss.tools.smooks.model.SmooksResourceListType;
-import org.jboss.tools.smooks.model.provider.SmooksItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.util.SmooksResourceFactoryImpl;
-
-/**
- * @author Dart Peng Date : 2008-9-1
- */
-public class SmooksAnalyzerTester extends TestCase {
-
- private GraphInformations graph;
- private Resource resource;
- private ComposedAdapterFactory adapterFactory;
- private AdapterFactoryEditingDomain editingDomain;
- private Resource smooksResource;
- protected CommandStack createCommandStack() {
- return new BasicCommandStack();
- }
- public SmooksAnalyzerTester() throws IOException {
-// super();
- adapterFactory = new ComposedAdapterFactory(
- ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
- adapterFactory
- .addAdapterFactory(new ResourceItemProviderAdapterFactory());
- adapterFactory
- .addAdapterFactory(new SmooksItemProviderAdapterFactory());
- editingDomain = new AdapterFactoryEditingDomain(adapterFactory,
- createCommandStack(), new HashMap<Resource, Boolean>());
-
-
- ClassLoader classLoader = SmooksAnalyzerTester.class.getClassLoader();
- Registry.INSTANCE.put(GraphicalPackage.eNS_URI,
- GraphicalPackage.eINSTANCE);
- Registry.INSTANCE.put(SmooksPackage.eNS_URI, SmooksPackage.eINSTANCE);
-
- resource = new SmooksResourceFactoryImpl().createResource(null);
- Resource gr = new XMLResourceFactoryImpl().createResource(null);
- InputStream stream1 = classLoader
- .getResourceAsStream("org/jboss/tools/smooks/test/java2java/Test.xml");
- InputStream stream2 = classLoader
- .getResourceAsStream("org/jboss/tools/smooks/test/java2java/Test.smooks.graph");
- gr.load(stream2, Collections.EMPTY_MAP);
- graph = (GraphInformations) gr.getContents().get(0);
-
- resource.load(stream1, Collections.EMPTY_MAP);
- }
-
- public MappingResourceConfigList analyzeGraphical() {
- try {
- ClassLoader classLoader = SmooksAnalyzerTester.class
- .getClassLoader();
- JavaBeanAnalyzer sourceModelAnalyzer = new JavaBeanAnalyzer();
- JavaBeanAnalyzer targetModelAnalyzer = new JavaBeanAnalyzer();
- JavaBeanAnalyzer connectionsAnalyzer = new JavaBeanAnalyzer();
- SmooksResourceListType listType = ((DocumentRoot) resource
- .getContents().get(0)).getSmooksResourceList();
- Object source = sourceModelAnalyzer.buildSourceInputObjects(graph,
- listType, null, classLoader);
- Object target = targetModelAnalyzer.buildTargetInputObjects(graph,
- listType, null, classLoader);
- MappingResourceConfigList configList = connectionsAnalyzer
- .analyzeMappingSmooksModel(listType, source, target);
- List connections = configList.getMappingModelList();
- List relationgConnection = configList
- .getRelationgResourceConfigList();
- Assert.assertTrue(!connections.isEmpty());
- Assert.assertTrue(!relationgConnection.isEmpty());
- System.out.println(connections);
- return configList;
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- public void eraserMappingResourceConfig() {
- ResourceConfigEraser eraser = new ResourceConfigEraser();
- SmooksResourceListType listType = ((DocumentRoot) resource
- .getContents().get(0)).getSmooksResourceList();
- int oldCount = listType.getAbstractResourceConfig().size();
- MappingResourceConfigList configList = analyzeGraphical();
- eraser.cleanMappingResourceConfig(listType, configList, null);
- int newCount = listType.getAbstractResourceConfig().size();
- Assert.assertTrue(oldCount >= newCount);
- }
-
- public void testEraser() {
- eraserMappingResourceConfig();
- }
-
- public void testAnalyzer() {
- MappingResourceConfigList configList = analyzeGraphical();
- }
-
- public void generateNormalInforPackage() {
- SmooksResourceListType listType = ((DocumentRoot) resource
- .getContents().get(0)).getSmooksResourceList();
- NormalSmooksModelPackage modePackage = NormalSmooksModelBuilder
- .getInstance().buildNormalSmooksModelPackage(listType);
-
- }
-
- public void testGenerateNormalInforPackage(){
- eraserMappingResourceConfig();
- generateNormalInforPackage();
- }
-}
Modified: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml 2009-01-04 08:27:31 UTC (rev 12872)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml 2009-01-04 08:32:25 UTC (rev 12873)
@@ -5,11 +5,10 @@
<param name="stream.filter.type">SAX</param>
</resource-config>
-
- <resource-config selector="srcmodel.Order">
+ <resource-config selector="org.jboss.tools.smooks.test.java2java.Order">
<resource>org.milyn.javabean.BeanPopulator</resource>
<param name="beanId">LineOrder</param>
- <param name="beanClass">targetmodel.LineOrder</param>
+ <param name="beanClass">org.jboss.tools.smooks.test.java2java.LineOrder</param>
<param name="bindings">
<binding property="customerId"
selector="header customerNumber" />
@@ -21,47 +20,25 @@
<resource-config selector="orderItems">
<resource>org.milyn.javabean.BeanPopulator</resource>
<param name="beanId">lineItems</param>
- <param name="beanClass">targetmodel.LineItem[]</param>
+ <param name="beanClass">org.jboss.tools.smooks.test.java2java.LineItem[]</param>
<param name="bindings">
<binding property="LineItem" selector="${LineItem}" />
</param>
</resource-config>
- <resource-config selector="srcmodel.OrderItem">
+ <resource-config selector="org.jboss.tools.smooks.test.java2java.OrderItem">
<resource>org.milyn.javabean.BeanPopulator</resource>
<param name="beanId">LineItem</param>
- <param name="beanClass">targetmodel.LineItem</param>
+ <param name="beanClass">org.jboss.tools.smooks.test.java2java.LineItem</param>
<param name="bindings">
<binding property="productCode"
- selector="srcmodel.OrderItem productId" />
+ selector="org.jboss.tools.smooks.test.java2java.OrderItem productId" type="Integer" />
<binding property="unitPrice"
- selector="srcmodel.OrderItem price" />
- <binding property="unitPrice"
- selector="srcmodel.OrderItem Ate" />
+ selector="org.jboss.tools.smooks.test.java2java.OrderItem price" type="BigInteger"/>
<binding property="unitQuantity"
- selector="srcmodel.OrderItem quantity" />
+ selector="org.jboss.tools.smooks.test.java2java.OrderItem quantity" type="Double" />
</param>
</resource-config>
- <resource-config selector="addtioninfo">
- <resource>org.milyn.javabean.BeanPopulator</resource>
- <param name="beanId">no</param>
- </resource-config>
-
- <resource-config selector="addtioninfo1">
- <resource>org.milyn.javabean.BeanPopulator</resource>
- <param name="beanId">no1</param>
- </resource-config>
-
- <resource-config selector="addtioninfo2">
- <resource>org.milyn.javabean.BeanPopulator</resource>
- <param name="beanId">no2</param>
- </resource-config>
-
- <resource-config selector="addtioninfo3">
- <resource>org.milyn.javabean.BeanPopulator</resource>
- <param name="beanId">no3</param>
- </resource-config>
-
<resource-config selector="decoder:OrderDateLong">
<resource>org.milyn.javabean.decoders.DateDecoder</resource>
<param name="format">EEE MMM dd HH:mm:ss z yyyy</param>
Modified: trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java 2009-01-04 08:27:31 UTC (rev 12872)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java 2009-01-04 08:32:25 UTC (rev 12873)
@@ -51,6 +51,6 @@
XMLObjectAnalyzer an = new XMLObjectAnalyzer();
InputStream aa = ModelTest.class.getClassLoader().getResourceAsStream(
"org/jboss/tools/smooks/test/xml/pom.xml");
- System.out.println(an.analyze(aa).toString());
+ System.out.println(an.analyze(aa , null).toString());
}
}
15 years, 3 months
JBoss Tools SVN: r12872 - in trunk/smooks/plugins/org.jboss.tools.smooks.ui: META-INF and 21 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2009-01-04 03:27:31 -0500 (Sun, 04 Jan 2009)
New Revision: 12872
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/obj16/binding_line.gif
trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/obj16/mapping_line.gif
trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/linePaintListener.exsd
trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/menuActionProvider.exsd
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/CompositeSelectionProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/TransformDataTreeViewer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/ILineFigurePaintListener.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/LineFigurePaintListenerManager.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ActionProviderManager.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ISmooksAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/IViewerActionsProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/SmooksAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/IXMLNode.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagList.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/AddXMLChildNodeAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLPropertyAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLRootNodeAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/RemoveXMLNodeAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XML2XMLLinePaintListener.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/XMLViewerActionProvider.java
Removed:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/DocumentObject.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF
trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ISourceModelAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ITargetModelAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingResourceConfigList.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResourceConfigEraser.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
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/commandprocessor/JavaBeanModelCommandProcessor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/AbstractSmooksPropertySection.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksUIActivator.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/ui/editors/SmooksNormalContentEditFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/SourceConnectionPointEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/TargetConnectionPointEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/CurveLineConnection.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/TreeItemRelationFigure.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/PropertyModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/TreeItemRelationModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/tools/TargetTreeDropTargetListener.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/SmooksExtensionPointConstants.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/xml/XMLImageConstants.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/AbstractXMLObject.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagObject.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagPropertyObject.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLObjectAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLStrucutredModelParser.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLPropertiesSection.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataContentProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataLabelProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataWizardPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/AbstractXMLModelAnalyzer.java
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/XMLSourceModelAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
Log:
JBIDE-3177
generate inner xsl contents with graphical model
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF 2009-01-04 08:27:31 UTC (rev 12872)
@@ -15,7 +15,8 @@
org.eclipse.xsd.edit,
org.eclipse.wst.sse.ui,
org.eclipse.jface.text,
- org.jboss.tools.smooks.core
+ org.jboss.tools.smooks.core,
+ org.eclipse.ui
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: .,
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/obj16/binding_line.gif
===================================================================
(Binary files differ)
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/obj16/binding_line.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/obj16/mapping_line.gif
===================================================================
(Binary files differ)
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/obj16/mapping_line.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml 2009-01-04 08:27:31 UTC (rev 12872)
@@ -4,6 +4,8 @@
<extension-point id="viewerInitor" name="viewerInitor" schema="schema/viewerInitor.exsd"/>
<extension-point id="analyzer" name="analyzer" schema="schema/analyzer.exsd"/>
<extension-point id="commandProcessor" name="commandProcessor" schema="schema/commandProcessor.exsd"/>
+ <extension-point id="menuActionProvider" name="menuActionProvider" schema="schema/menuActionProvider.exsd"/>
+ <extension-point id="linePaintListener" name="linePaintListener" schema="schema/linePaintListener.exsd"/>
<extension point="org.eclipse.emf.ecore.generated_package">
<package
uri = "http://www.jboss.org/tools/smooks/graphicalInformation"
@@ -48,6 +50,12 @@
id="org.jboss.tools.smooks.ui.xml.propertySection"
tab="org.jboss.tools.smooks.ui.xml.propertyTab">
</propertySection>
+ <propertySection
+ class="org.jboss.tools.smooks.xml.ui.XMLNodePropertySection"
+ filter="org.jboss.tools.smooks.xml.ui.XMLNodeSectionFilter"
+ id="org.jboss.tools.smooks.ui.xmlnode.propertySection"
+ tab="org.jboss.tools.smooks.ui.xmlnode.propertyTab">
+ </propertySection>
</propertySections>
</extension>
<extension
@@ -57,6 +65,9 @@
typeMapper="org.jboss.tools.smooks.ui.SmooksGraphPropertyTypeMapper">
<propertyCategory
category="connection"></propertyCategory>
+ <propertyCategory
+ category="transformdata">
+ </propertyCategory>
</propertyContributor>
</extension>
<extension
@@ -71,13 +82,18 @@
<propertyTab
category="connection"
id="org.jboss.tools.smooks.ui.javabean.propertyTab"
- label="JavaBean Properties">
+ label="JavaBean Connection Properties">
</propertyTab>
<propertyTab
category="connection"
id="org.jboss.tools.smooks.ui.xml.propertyTab"
- label="XML Properties">
+ label="XML Connection Properties">
</propertyTab>
+ <propertyTab
+ category="transformdata"
+ id="org.jboss.tools.smooks.ui.xmlnode.propertyTab"
+ label="XML Node">
+ </propertyTab>
</propertyTabs>
</extension>
<extension
@@ -201,6 +217,11 @@
sourceId="org.jboss.tools.smooks.xml.viewerInitor.xml"
targetId="org.jboss.tools.smooks.ui.viewerInitor.javabean">
</commandProcessor>
+ <commandProcessor
+ class="org.jboss.tools.smooks.xml.model.XMLConnectionCommandProcessor"
+ sourceId="org.jboss.tools.smooks.xml.viewerInitor.xml"
+ targetId="org.jboss.tools.smooks.xml.viewerInitor.xml">
+ </commandProcessor>
</extension>
<extension
@@ -231,4 +252,19 @@
state="true">
</decorator>
</extension>
+ <extension
+ point="org.jboss.tools.smooks.ui.menuActionProvider">
+ <menuActionProvider
+ class="org.jboss.tools.smooks.xml.ui.XMLViewerActionProvider"
+ typeID="org.jboss.tools.smooks.xml.viewerInitor.xml">
+ </menuActionProvider>
+ </extension>
+ <extension
+ point="org.jboss.tools.smooks.ui.linePaintListener">
+ <linePaintListener
+ class="org.jboss.tools.smooks.xml.ui.XML2XMLLinePaintListener"
+ sourceId="org.jboss.tools.smooks.xml.viewerInitor.xml"
+ targetId="org.jboss.tools.smooks.xml.viewerInitor.xml">
+ </linePaintListener>
+ </extension>
</plugin>
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/linePaintListener.exsd
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/linePaintListener.exsd (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/linePaintListener.exsd 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,116 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.jboss.tools.smooks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.jboss.tools.smooks.ui" id="linePaintListener" name="linePaintListener"/>
+ </appinfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="linePaintListener" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="linePaintListener">
+ <complexType>
+ <attribute name="sourceId" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="targetId" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn=":org.jboss.tools.smooks.ui.gef.figures.ILineFigurePaintListener"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/linePaintListener.exsd
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/menuActionProvider.exsd
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/menuActionProvider.exsd (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/menuActionProvider.exsd 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.jboss.tools.smooks.ui" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.jboss.tools.smooks.ui" id="menuActionProvider" name="menuActionProvider"/>
+ </appinfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="menuActionProvider"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="menuActionProvider">
+ <complexType>
+ <attribute name="label" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="typeID" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/schema/menuActionProvider.exsd
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -143,6 +143,12 @@
resourceConfig = rct;
break;
}
+ String selector1 = rct.getSelector();
+ if(selector1 != null) selector1 = selector1.trim();
+ if(selector.equals(selector1)){
+ resourceConfig = rct;
+ break;
+ }
}
return resourceConfig;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ISourceModelAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ISourceModelAnalyzer.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ISourceModelAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -22,6 +22,6 @@
*/
public interface ISourceModelAnalyzer {
public Object buildSourceInputObjects(GraphInformations graphInfo,
- SmooksResourceListType listType, IFile sourceFile)
+ SmooksResourceListType listType, IFile sourceFile , Object viewer )
throws InvocationTargetException;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ITargetModelAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ITargetModelAnalyzer.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ITargetModelAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -22,6 +22,6 @@
*/
public interface ITargetModelAnalyzer {
public Object buildTargetInputObjects(GraphInformations graphInfo,
- SmooksResourceListType listType, IFile sourceFile)
+ SmooksResourceListType listType, IFile sourceFile , Object viewer )
throws InvocationTargetException;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingResourceConfigList.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingResourceConfigList.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingResourceConfigList.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -31,17 +31,17 @@
this.mappingModelList = mappingModelList;
}
- public List<ResourceConfigType> getRelationgResourceConfigList() {
+ public List<ResourceConfigType> getGraphRenderResourceConfigList() {
return relationgResourceConfigList;
}
public void addResourceConfig(ResourceConfigType resourceConfig) {
- if (!this.getRelationgResourceConfigList().contains(resourceConfig))
- this.getRelationgResourceConfigList().add(resourceConfig);
+ if (!this.getGraphRenderResourceConfigList().contains(resourceConfig))
+ this.getGraphRenderResourceConfigList().add(resourceConfig);
}
public void removeResourceConfig(ResourceConfigType resourceConfig) {
- this.getRelationgResourceConfigList().remove(resourceConfig);
+ this.getGraphRenderResourceConfigList().remove(resourceConfig);
}
public void setRelationgResourceConfigList(
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResourceConfigEraser.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResourceConfigEraser.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResourceConfigEraser.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -27,7 +27,7 @@
EditingDomain domain) {
if (mappingResourceConfigList != null) {
List<ResourceConfigType> resourceConfigList = mappingResourceConfigList
- .getRelationgResourceConfigList();
+ .getGraphRenderResourceConfigList();
for (Iterator iterator = resourceConfigList.iterator(); iterator
.hasNext();) {
ResourceConfigType resourceConfigType = (ResourceConfigType) iterator
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -36,7 +36,7 @@
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.jboss.tools.smooks.utils.UIUtils;
import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
-import org.jboss.tools.smooks.xml.model.DocumentObject;
+import org.jboss.tools.smooks.xml.model.TagList;
import org.jboss.tools.smooks.xml.model.TagObject;
import org.jboss.tools.smooks.xml.model.TagPropertyObject;
@@ -142,7 +142,7 @@
protected TagObject findTheRootTagObject(AbstractXMLObject obj) {
AbstractXMLObject parent = obj.getParent();
- if (parent instanceof DocumentObject && obj instanceof TagObject)
+ if (parent instanceof TagList && obj instanceof TagObject)
return (TagObject) obj;
return (TagObject) findTheRootTagObject(parent);
}
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 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -65,6 +65,8 @@
*/
public class JavaBeanAnalyzer implements IMappingAnalyzer,
ISourceModelAnalyzer, ITargetModelAnalyzer {
+
+ private ClassLoader currentClassLoader = null;
public static final String BEANPOPULATOR = "org.milyn.javabean.BeanPopulator"; //$NON-NLS-1$
@@ -175,6 +177,14 @@
return (usedConnectionList.indexOf(connection) != -1);
}
+ public ClassLoader getCurrentClassLoader() {
+ return currentClassLoader;
+ }
+
+ public void setCurrentClassLoader(ClassLoader currentClassLoader) {
+ this.currentClassLoader = currentClassLoader;
+ }
+
private void setConnectionUsed(Object connection) {
usedConnectionList.add(connection);
}
@@ -459,7 +469,7 @@
.next();
JavaBeanModel source = (JavaBeanModel) sourceGraphModel
.getReferenceEntityModel();
- if (source.isRoot()) {
+ if (source.isRootClassModel()) {
rootSource = source;
break;
}
@@ -470,7 +480,7 @@
.next();
JavaBeanModel target = (JavaBeanModel) targetGraphModel
.getReferenceEntityModel();
- if (target.isRoot()) {
+ if (target.isRootClassModel()) {
rootTarget = target;
break;
}
@@ -910,19 +920,19 @@
}
public Object buildSourceInputObjects(GraphInformations graphInfo,
- SmooksResourceListType listType, IFile sourceFile)
+ SmooksResourceListType listType, IFile sourceFile , Object viewer )
throws InvocationTargetException {
UIUtils.checkSelector(listType);
return this.buildSourceInputObjects(graphInfo, listType, sourceFile,
- null);
+ getCurrentClassLoader());
}
public Object buildTargetInputObjects(GraphInformations graphInfo,
- SmooksResourceListType listType, IFile sourceFile)
+ SmooksResourceListType listType, IFile sourceFile , Object viewer)
throws InvocationTargetException {
UIUtils.checkSelector(listType);
return this.buildTargetInputObjects(graphInfo, listType, sourceFile,
- null);
+ getCurrentClassLoader());
}
public Object buildTargetInputObjects(GraphInformations graphInfo,
@@ -1185,6 +1195,12 @@
resourceConfig = rct;
break;
}
+ String selector1 = rct.getSelector();
+ if(selector1 != null) selector1 = selector1.trim();
+ if(selector.equals(selector1)){
+ resourceConfig = rct;
+ break;
+ }
}
return resourceConfig;
}
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-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.smooks.javabean.commandprocessor;
+import java.util.Collection;
import java.util.List;
import org.eclipse.emf.common.command.Command;
@@ -51,12 +52,25 @@
.getReferenceEntityModel();
Object t = ((AbstractStructuredDataModel) m)
.getReferenceEntityModel();
- if(source instanceof JavaBeanModel && t instanceof JavaBeanModel){
- boolean sis = ((JavaBeanModel)source).isPrimitive();
- boolean tis = ((JavaBeanModel)t).isPrimitive();
- if( (sis && !tis) || (!sis && tis)){
+ if (source instanceof JavaBeanModel
+ && t instanceof JavaBeanModel) {
+ JavaBeanModel sourceModel = (JavaBeanModel) source;
+ JavaBeanModel targetModel = (JavaBeanModel) t;
+ boolean sis = ((JavaBeanModel) source).isPrimitive();
+ boolean tis = ((JavaBeanModel) t).isPrimitive();
+ if ((sis && !tis) || (!sis && tis)) {
return false;
}
+ Class sourceClass = sourceModel.getBeanClass();
+ Class targetClass = targetModel.getBeanClass();
+ boolean isCompositeSource = sourceClass.isArray()
+ || Collection.class
+ .isAssignableFrom(sourceClass);
+ boolean isCompositeTarget = targetClass.isArray()
+ || Collection.class
+ .isAssignableFrom(targetClass);
+ if(isCompositeSource != isCompositeTarget) return false;
+
}
}
}
@@ -141,7 +155,8 @@
private CreateConnectionCommand createParentLinkCommand(Object source,
JavaBeanModel target, SmooksConfigurationFileGenerateContext context) {
- if(target == null) return null;
+ if (target == null)
+ return null;
ITreeContentProvider sourceProvider = context.getSourceViewerProvider();
JavaBeanModel targetParent = target.getParent();
AbstractStructuredDataModel targetParentGraphModel = UIUtils
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -1,5 +1,7 @@
package org.jboss.tools.smooks.javabean.model;
+import java.util.Collection;
+
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.smooks.javabean.ui.JavaImageConstants;
@@ -24,7 +26,7 @@
if (name == null)
name = "<nonamed>";
- Object error = ((JavaBeanModel) element).getError();
+ Object error = ((JavaBeanModel) element).getError();
if (error != null) {
name = name + " " + "<" + error.toString() + ">";
return name;
@@ -52,7 +54,7 @@
@Override
public Image getImage(Object element) {
if (element instanceof JavaBeanModel) {
- Object error = ((JavaBeanModel) element).getError();
+ Object error = ((JavaBeanModel) element).getError();
if (error != null) {
return SmooksUIActivator.getDefault().getImageRegistry().get(
SmooksGraphConstants.IMAGE_ERROR);
@@ -60,6 +62,19 @@
if (((JavaBeanModel) element).isPrimitive()) {
return this.getJavaAttributeImage();
} else {
+ Class typeRef = ((JavaBeanModel) element).getBeanClass();
+ if (typeRef != null) {
+ if (typeRef.isArray()) {
+ return SmooksUIActivator.getDefault()
+ .getImageRegistry().get(
+ JavaImageConstants.IMAGE_JAVA_ARRAY);
+ }
+ if (Collection.class.isAssignableFrom(typeRef)) {
+ return SmooksUIActivator.getDefault()
+ .getImageRegistry()
+ .get(JavaImageConstants.IMAGE_JAVA_COLLECTION);
+ }
+ }
return this.getJavaObjectImage();
}
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -60,7 +60,7 @@
private Class parentClass = null;
- private boolean isRoot = false;
+// private boolean isRoot = false;
private boolean isRootClassModel = false;
@@ -68,7 +68,7 @@
* @return the isRootClassModel
*/
public boolean isRootClassModel() {
- return isRootClassModel;
+ return isRootClassModel || getParent() == null;
}
/**
@@ -79,12 +79,12 @@
this.isRootClassModel = isRootClassModel;
}
- /**
- * @return the isRoot
- */
- public boolean isRoot() {
- return isRoot;
- }
+// /**
+// * @return the isRoot
+// */
+// public boolean isRoot() {
+// return isRoot;
+// }
public String getBeanClassString() {
if(beanClassString != null && beanClassString.length() != 0){
@@ -106,9 +106,7 @@
* @param isRoot
* the isRoot to set
*/
- public void setRoot(boolean isRoot) {
- this.isRoot = isRoot;
- }
+// public void setRoot(boolean isRoot) {ois
private boolean isList = false;
@@ -165,7 +163,7 @@
if (propertyDescriptor == null)
- isRoot = true;
+ setRootClassModel(true);
this.propertyDescriptor = propertyDescriptor;
Class beanType = beanClass;
if (beanClass.isArray()) {
@@ -192,9 +190,7 @@
if (beanType.isPrimitive()
|| JavaBeanModelFactory.isPrimitiveObject(beanType)) {
- setTypeRef(beanType);
this.parentClass = parentClass;
-
if (!isArray() && !isList())
setPrimitive(true);
return;
@@ -223,6 +219,12 @@
}
public boolean isPrimitive() {
+ Class beanType = getBeanClass();
+ if (beanType.isPrimitive()
+ || JavaBeanModelFactory.isPrimitiveObject(beanType)) {
+ if (!isArray() && !isList())
+ setPrimitive(true);
+ }
return isPrimitive;
}
@@ -240,27 +242,31 @@
}
return many;
}
+
+ public Class getGenericType(){
+ return componentClass;
+ }
public void setMany(boolean many) {
this.many = many;
}
- public boolean isCollection() {
- return collection;
- }
+// public boolean isCollection() {
+// return collection;
+// }
+//
+// public void setCollection(boolean collection) {
+// this.collection = collection;
+// }
- public void setCollection(boolean collection) {
- this.collection = collection;
- }
+// public Class getTypeRef() {
+// return typeRef;
+// }
+//
+// public void setTypeRef(Class typeRef) {
+// this.typeRef = typeRef;
+// }
- public Class getTypeRef() {
- return typeRef;
- }
-
- public void setTypeRef(Class typeRef) {
- this.typeRef = typeRef;
- }
-
public String getName() {
return name;
}
@@ -282,8 +288,9 @@
if (properties == null) {
properties = new ArrayList();
+ if(isPrimitive()) return properties;
+
Class beanType = beanClass;
-
if (this.componentClass != null) {
if (isArray() || isList()) {
JavaBeanModel proxyModel = new JavaBeanModel(
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -1,6 +1,10 @@
package org.jboss.tools.smooks.javabean.ui;
public class JavaImageConstants {
- public static final String IMAGE_JAVA_ATTRIBUTE = "java_attribute";
+ public static final String IMAGE_JAVA_ATTRIBUTE = "icons/full/obj16/att_obj.gif";
public static final String IMAGE_JAVA_OBJECT = "java_object";
+
+ public static final String IMAGE_JAVA_COLLECTION = "icons/full/obj16/javalistmodel.gif";
+
+ public static final String IMAGE_JAVA_ARRAY = "icons/full/obj16/javaarraymodel.gif";
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/AbstractSmooksPropertySection.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/AbstractSmooksPropertySection.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/AbstractSmooksPropertySection.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -15,10 +15,8 @@
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
import org.jboss.tools.smooks.ui.editors.SmooksFormEditor;
import org.jboss.tools.smooks.ui.editors.SmooksGraphicalFormPage;
-import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
/**
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksUIActivator.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksUIActivator.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksUIActivator.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -64,10 +64,23 @@
reg.put(XMLImageConstants.IMAGE_XML_ELEMENT,
imageDescriptorFromPlugin(PLUGIN_ID,
"icons/full/obj16/element_obj.gif"));
+
+ // regist java images
reg.put(JavaImageConstants.IMAGE_JAVA_ATTRIBUTE,
- imageDescriptorFromPlugin(PLUGIN_ID, "icons/full/obj16/att_obj.gif"));
+ imageDescriptorFromPlugin(PLUGIN_ID, JavaImageConstants.IMAGE_JAVA_ATTRIBUTE));
reg.put(JavaImageConstants.IMAGE_JAVA_OBJECT,
imageDescriptorFromPlugin(PLUGIN_ID, "icons/full/obj16/class_obj.gif"));
+ reg.put(JavaImageConstants.IMAGE_JAVA_ARRAY,
+ imageDescriptorFromPlugin(PLUGIN_ID, JavaImageConstants.IMAGE_JAVA_ARRAY));
+ reg.put(JavaImageConstants.IMAGE_JAVA_COLLECTION,
+ imageDescriptorFromPlugin(PLUGIN_ID, JavaImageConstants.IMAGE_JAVA_COLLECTION));
+
+ // for the xml2xml line
+ reg.put(XMLImageConstants.IMAGE_BINDING_LINE,
+ imageDescriptorFromPlugin(PLUGIN_ID,XMLImageConstants.IMAGE_BINDING_LINE));
+
+ reg.put(XMLImageConstants.IMAGE_MAPPING_LINE,
+ imageDescriptorFromPlugin(PLUGIN_ID, XMLImageConstants.IMAGE_MAPPING_LINE));
}
/**
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/CompositeSelectionProvider.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/CompositeSelectionProvider.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/CompositeSelectionProvider.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,68 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+/**
+ * @author Dart
+ *
+ */
+public class CompositeSelectionProvider implements ISelectionProvider {
+
+ List<ISelectionProvider> list = new ArrayList<ISelectionProvider>();
+
+ private ISelection selection;
+
+ public void addSelectionProvider(ISelectionProvider provider){
+ this.list.add(provider);
+ }
+
+ public void removeSelectionProvider(ISelectionProvider provider){
+ list.remove(provider);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ ISelectionProvider p = (ISelectionProvider) iterator.next();
+ p.addSelectionChangedListener(listener);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
+ */
+ public ISelection getSelection() {
+ // TODO Auto-generated method stub
+ return this.selection;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
+ */
+ public void removeSelectionChangedListener(
+ ISelectionChangedListener listener) {
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ ISelectionProvider p = (ISelectionProvider) iterator.next();
+ p.removeSelectionChangedListener(listener);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
+ */
+ public void setSelection(ISelection selection) {
+ this.selection = selection;
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/CompositeSelectionProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -43,6 +43,8 @@
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.model.provider.SmooksItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.util.SmooksResourceFactoryImpl;
+import org.jboss.tools.smooks.ui.AnalyzeResult;
+import org.jboss.tools.smooks.ui.IAnalyzeListener;
import org.jboss.tools.smooks.ui.SmooksTextEdtor;
import org.jboss.tools.smooks.utils.UIUtils;
@@ -51,7 +53,7 @@
* @Date Jul 28, 2008
*/
public class SmooksFormEditor extends FormEditor implements
- ITabbedPropertySheetPageContributor {
+ ITabbedPropertySheetPageContributor , IAnalyzeListener{
private SmooksTextEdtor xmlTextEditor;
@@ -112,7 +114,7 @@
normalPage.setDisableGUI(this.showTextEditorReason != null);
if (mappingResourceConfig != null) {
refreshNormalPage(mappingResourceConfig
- .getRelationgResourceConfigList());
+ .getGraphRenderResourceConfigList());
} else {
refreshNormalPage(Collections.EMPTY_LIST);
}
@@ -144,6 +146,7 @@
xmlTextEditor.addSaveListener(graphicalPage);
graphicalPage.addAnalyzeListener(xmlTextEditor);
graphicalPage.addAnalyzeListener(normalPage);
+ graphicalPage.addAnalyzeListener(this);
}
public void setParseException(boolean onlyShowTextEditor, Throwable reason) {
@@ -320,4 +323,10 @@
this.smooksResource = smooksResource;
}
+ public void endAnalyze(AnalyzeResult result) {
+ if(result.getError() != null){
+ this.setActivePage(2);
+ }
+ }
+
}
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-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -16,6 +16,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.EventObject;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -50,6 +51,10 @@
import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
import org.eclipse.gef.ui.parts.SelectionSynchronizer;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -101,6 +106,7 @@
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.internal.handlers.WizardHandler.New;
import org.eclipse.wst.sse.ui.StructuredTextEditor;
import org.jboss.tools.smooks.analyzer.AnalyzerFactory;
import org.jboss.tools.smooks.analyzer.DesignTimeAnalyzeResult;
@@ -140,6 +146,10 @@
import org.jboss.tools.smooks.ui.gef.tools.TargetTreeDropTargetListener;
import org.jboss.tools.smooks.ui.gef.util.GraphicsConstants;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+import org.jboss.tools.smooks.ui.popup.ActionProviderManager;
+import org.jboss.tools.smooks.ui.popup.ISmooksAction;
+import org.jboss.tools.smooks.ui.popup.IViewerActionsProvider;
+import org.jboss.tools.smooks.ui.popup.SmooksAction;
import org.jboss.tools.smooks.ui.wizards.SmooksConfigFileNewWizard;
import org.jboss.tools.smooks.ui.wizards.TransformDataSelectionWizard;
import org.jboss.tools.smooks.utils.SmooksGraphConstants;
@@ -153,6 +163,10 @@
ISelectionChangedListener, ISelectionProvider,
org.eclipse.emf.common.command.CommandStackListener, ISaveListener {
+ private HashMap<Object, Object> graph_trasform_data_map = new HashMap<Object, Object>();
+
+ private CompositeSelectionProvider compositeSelectionProvider = new CompositeSelectionProvider();
+
private final String[] REQUIRED_SOURCE_SELECT_TYPE = new String[] { "org.jboss.tools.smooks.xml.viewerInitor.xml" };
private List<IAnalyzeListener> analyzeListenerList = new ArrayList<IAnalyzeListener>();
@@ -350,6 +364,7 @@
GridData gd = new GridData(GridData.FILL_BOTH);
sourceViewer = this.createSourceTreeViewer(composite1);
+ compositeSelectionProvider.addSelectionProvider(sourceViewer);
sourceViewer.getTree().setLayoutData(gd);
sourceViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY
| DND.DROP_LINK, new Transfer[] { TemplateTransfer
@@ -365,7 +380,20 @@
new TreePaintControlListener());
sourceViewer.getTree().addListener(SWT.PaintItem,
new TreeItemPaintListener());
+ final MenuManager menuManager = new MenuManager("#SourceViewerMenu");
+ sourceViewer.getTree().setMenu(
+ menuManager.createContextMenu(sourceViewer.getTree()));
+ menuManager.add(new Separator("smooks_additions"));
+ menuManager.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager manager) {
+ manager.removeAll();
+ fillMenuManager(menuManager, true);
+ }
+
+ });
+ getSite().registerContextMenu(menuManager, sourceViewer);
+
sourceViewer.addSelectionChangedListener(this);
composite1.setLayoutData(gd);
composite1.setBackground(GraphicsConstants.groupBorderColor);
@@ -386,6 +414,7 @@
composite3.setLayout(layout);
GridData gd = new GridData(GridData.FILL_BOTH);
targetViewer = createTargetTreeViewer(composite3, SWT.NONE);
+ compositeSelectionProvider.addSelectionProvider(targetViewer);
composite3.setLayoutData(gd);
targetViewer.getTree().setLayoutData(gd);
targetViewer.addDropSupport(DND.DROP_TARGET_MOVE | DND.DROP_MOVE
@@ -397,6 +426,21 @@
new TreePaintControlListener());
targetViewer.getTree().addListener(SWT.PaintItem,
new TreeItemPaintListener());
+
+ final MenuManager menuManager = new MenuManager("#TargetViewerMenu");
+ targetViewer.getTree().setMenu(
+ menuManager.createContextMenu(targetViewer.getTree()));
+ menuManager.addMenuListener(new IMenuListener() {
+
+ public void menuAboutToShow(IMenuManager manager) {
+ manager.removeAll();
+ fillMenuManager(menuManager, false);
+ }
+
+ });
+ menuManager.add(new Separator("smooks_additions"));
+ getSite().registerContextMenu(menuManager, targetViewer);
+
targetViewer.addSelectionChangedListener(this);
composite3.setBackground(GraphicsConstants.groupBorderColor);
}
@@ -462,6 +506,23 @@
toolkit.paintBordersFor(rootMainControl);
form.pack();
+
+ Throwable throwable = null;
+ try {
+ this.initTransformViewerModel((IEditorSite) getSite(),
+ getEditorInput());
+ } catch (IOWrappedException ex) {
+ MessageDialog.openWarning(getSite().getShell(), "Waring", //$NON-NLS-1$
+ "Exceptions occurd during parsing Smooks file, no worries"); //$NON-NLS-1$
+ } catch (Throwable e) {
+ throwable = e;
+ }
+ if (throwable != null) {
+ this.disableMappingGUI = true;
+ ((SmooksFormEditor) getEditor()).setParseException(true, throwable);
+ this.notifyAnalyzeListeners(throwable);
+ }
+
if (initSourceTreeViewerProviders()) {
initSourceTreeViewer();
expandSourceConnectionModel();
@@ -470,6 +531,9 @@
initTargetTreeViewer();
expandTargetConnectionModel();
}
+
+ getSite().setSelectionProvider(compositeSelectionProvider);
+
this.hookGraphicalViewer();
this.initGraphicalViewer();
initMappingGUIStates();
@@ -554,7 +618,7 @@
}
protected TreeViewer createSourceTreeViewer(Composite composite) {
- sourceViewer = new TreeViewer(composite, SWT.NONE);
+ sourceViewer = new TransformDataTreeViewer(composite, SWT.NONE, this);
return sourceViewer;
}
@@ -613,18 +677,28 @@
if (item.getData(REFERENCE_MODEL) != null && !item.isDisposed()) {
} else {
- AbstractStructuredDataModel model = null;
- if (modelClass == SourceModel.class) {
- model = new SourceModel();
- }
- if (modelClass == TargetModel.class) {
- model = new TargetModel();
- }
- if (model != null && model instanceof TreeItemRelationModel) {
- model.setReferenceEntityModel(item.getData());
+ AbstractStructuredDataModel model = (AbstractStructuredDataModel) graph_trasform_data_map
+ .get(item.getData());
+ boolean needAdd = false;
+ if (model == null) {
+ if (modelClass == SourceModel.class) {
+ model = new SourceModel();
+ needAdd = true;
+ }
+ if (modelClass == TargetModel.class) {
+ model = new TargetModel();
+ needAdd = true;
+ }
+ if (model instanceof TreeItemRelationModel) {
+ graph_trasform_data_map.put(item.getData(), model);
+ model.setReferenceEntityModel(item.getData());
+ ((TreeItemRelationModel) model).setTreeItem(item);
+ item.setData(REFERENCE_MODEL, model);
+ if (needAdd)
+ this.rootModel.addChild(model);
+ }
+ }else{
((TreeItemRelationModel) model).setTreeItem(item);
- item.setData(REFERENCE_MODEL, model);
- this.rootModel.addChild(model);
}
}
if (item.getExpanded() && item.getItemCount() > 0) {
@@ -653,6 +727,7 @@
line.disConnect();
}
temp.clear();
+ list.clear();
}
if (clazz == TargetModel.class) {
@@ -664,10 +739,49 @@
line.disConnect();
}
temp.clear();
+ list.clear();
}
}
/**
+ *
+ * @param transformModel
+ */
+ public void clearGraphModel(Object transformModel) {
+ AbstractStructuredDataModel graphModel = UIUtils.findGraphModel(
+ rootModel, transformModel);
+ if (graphModel != null) {
+ if (graphModel.getClass() == SourceModel.class) {
+ List list = ((TreeItemRelationModel) graphModel)
+ .getModelSourceConnections();
+ List temp = new ArrayList(list);
+ for (Iterator iterator = temp.iterator(); iterator.hasNext();) {
+ LineConnectionModel line = (LineConnectionModel) iterator
+ .next();
+ line.disConnect();
+ }
+ temp.clear();
+ list.clear();
+ }
+
+ if (graphModel.getClass() == TargetModel.class) {
+ List list = ((TreeItemRelationModel) graphModel)
+ .getModelTargetConnections();
+ List temp = new ArrayList(list);
+ for (Iterator iterator = temp.iterator(); iterator.hasNext();) {
+ LineConnectionModel line = (LineConnectionModel) iterator
+ .next();
+ line.disConnect();
+ }
+ temp.clear();
+ list.clear();
+ }
+ rootModel.removeChild(graphModel);
+ deAssosiateGraphAndTransformModel(graphModel);
+ }
+ }
+
+ /**
* Remove GEF models from the root , and remove all associated connection
* model.
* <p>
@@ -688,8 +802,26 @@
}
}
rootModel.removeChildrenList(removeList);
+ for (Iterator iterator = removeList.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ deAssosiateGraphAndTransformModel(object);
+ }
}
}
+
+ private void deAssosiateGraphAndTransformModel(Object graphModel){
+ if(graph_trasform_data_map.containsValue(graphModel)){
+ Iterator it = graph_trasform_data_map.keySet().iterator();
+ while(it.hasNext()){
+ Object key = it.next();
+ if(graphModel == graph_trasform_data_map.get(key)){
+ graph_trasform_data_map.put(key, null);
+ graph_trasform_data_map.remove(key);
+ break;
+ }
+ }
+ }
+ }
protected void createTargetGraphModels() {
clearExsitingGraphModels(TargetModel.class);
@@ -701,7 +833,8 @@
}
protected TreeViewer createTargetTreeViewer(Composite parent, int style) {
- TreeViewer viewer = new TreeViewer(parent, SWT.NONE | style);
+ TreeViewer viewer = new TransformDataTreeViewer(parent, SWT.NONE
+ | style, this);
return viewer;
}
@@ -721,6 +854,7 @@
protected GraphicalViewer createGraphicalViewer(Composite parent) {
GraphicalViewer viewer = new ScrollingGraphicalViewer();
+ compositeSelectionProvider.addSelectionProvider(viewer);
Control control = viewer.createControl(parent);
control.setBackground(ColorConstants.white);
return viewer;
@@ -827,11 +961,11 @@
.getContentProvider());
}
if (targetViewer != null) {
- context.setTargetViewerLabelProvider((LabelProvider) targetViewer
- .getLabelProvider());
- context
- .setTargetViewerContentProvider((ITreeContentProvider) targetViewer
- .getContentProvider());
+ context.setTargetViewerLabelProvider((LabelProvider) targetViewer
+ .getLabelProvider());
+ context
+ .setTargetViewerContentProvider((ITreeContentProvider) targetViewer
+ .getContentProvider());
}
context.setShell(getSite().getShell());
@@ -849,7 +983,7 @@
protected void hookGraphicalViewer() {
getSelectionSynchronizer().addViewer(getGraphicalViewer());
this.getGraphicalViewer().addSelectionChangedListener(this);
- getSite().setSelectionProvider(getGraphicalViewer());
+ // getSite().setSelectionProvider(getGraphicalViewer());
getGraphicalViewer().addDropTargetListener(
new MappingPanelDropTargetListener(this.getGraphicalViewer()));
}
@@ -1008,10 +1142,12 @@
.getMappingAnalyzer(sourceDataTypeID, targetDataTypeID);
if (sourceModelAnalyzer != null && sourceTreeViewerInputModel == null)
sourceTreeViewerInputModel = sourceModelAnalyzer
- .buildSourceInputObjects(graph, listType, file);
+ .buildSourceInputObjects(graph, listType, file,
+ sourceViewer);
if (targetModelAnalyzer != null && targetTreeViewerInputModel == null)
targetTreeViewerInputModel = targetModelAnalyzer
- .buildTargetInputObjects(graph, listType, file);
+ .buildTargetInputObjects(graph, listType, file,
+ targetViewer);
if (connectionAnalyzer != null) {
mappingResourceConfigList = connectionAnalyzer
.analyzeMappingSmooksModel(listType,
@@ -1046,7 +1182,7 @@
if (dialog.open() == org.eclipse.jface.dialogs.Dialog.OK) {
sourceDataTypeID = wizard.getSourceDataTypeID();
targetDataTypeID = wizard.getTargetDataTypeID();
-
+
SmooksConfigurationFileGenerateContext context = getSmooksConfigurationFileGenerateContext();
context.setSourceDataTypeID(sourceDataTypeID);
context.setTargetDataTypeID(targetDataTypeID);
@@ -1150,24 +1286,6 @@
this.targetTreeViewerInputModel = ((SmooksFileEditorInput) input)
.getTargetTreeViewerInputContents();
}
- Throwable throwable = null;
- try {
- this.initTransformViewerModel((IEditorSite) getSite(),
- getEditorInput());
- // if (mappingResourceConfigList != null)
- // callParentRefillNormalModelInfor(mappingResourceConfigList
- // .getRelationgResourceConfigList());
- } catch (IOWrappedException ex) {
- MessageDialog.openWarning(getSite().getShell(), "Waring", //$NON-NLS-1$
- "Exceptions occurd during parsing Smooks file, no worries"); //$NON-NLS-1$
- } catch (Throwable e) {
- throwable = e;
- }
- if (throwable != null) {
- this.disableMappingGUI = true;
- ((SmooksFormEditor) getEditor()).setParseException(true, throwable);
- this.notifyAnalyzeListeners(throwable);
- }
}
/**
@@ -1433,11 +1551,11 @@
if (tree == sourceViewer.getTree()) {
modelClass = SourceModel.class;
}
- createGraphModels(new TreeItem[] { tree.getTopItem() }, modelClass);
- if (tree.getData(TreeItemRelationModel.PRO_TREE_REPAINT) != null) {
- // System.out.println("Block a event fire !!");
- return;
- }
+ createGraphModels(tree.getItems(), modelClass);
+// if (tree.getData(TreeItemRelationModel.PRO_TREE_REPAINT) != null) {
+// // System.out.println("Block a event fire !!");
+// return;
+// }
rootModel.firePropertyChange(
AbstractStructuredDataModel.P_REFRESH_PANEL, null,
new Object());
@@ -1446,10 +1564,44 @@
}
public void selectionChanged(SelectionChangedEvent event) {
+ this.selection = event.getSelection();
+ compositeSelectionProvider.setSelection(selection);
updateSelectionActions();
- // this.setSelection(event.getSelection());
+ updataViewerAction(event);
}
+ private void updataViewerAction(SelectionChangedEvent event) {
+ boolean isSource = false;
+ if (event.getSource() == sourceViewer) {
+ isSource = true;
+ }
+ ISelection selection = null;
+ String typeID = null;
+ if (isSource) {
+ typeID = getSourceDataTypeID();
+ selection = sourceViewer.getSelection();
+ } else {
+ typeID = getTargetDataTypeID();
+ selection = targetViewer.getSelection();
+ }
+ if (typeID != null) {
+ IViewerActionsProvider provider = ActionProviderManager
+ .getInstance().getActionProvider(typeID);
+ if (provider != null) {
+ List<ISmooksAction> list = provider.getActionList();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ ISmooksAction smooksAction = (ISmooksAction) iterator
+ .next();
+ if (smooksAction instanceof SmooksAction) {
+ ((SmooksAction) smooksAction).setViewer(event
+ .getSource());
+ }
+ smooksAction.selectionChanged(selection);
+ }
+ }
+ }
+ }
+
protected void updateSelectionActions() {
IAction action = getActionRegistry().getAction(
IWorkbenchActionConstants.DELETE);
@@ -1623,6 +1775,8 @@
DesignTimeAnalyzeResult[] results = analyzer
.analyzeGraphModel(context);
analyzeResultList.clear();
+ if (results == null)
+ return;
for (int i = 0; i < results.length; i++) {
analyzeResultList.add(results[i]);
}
@@ -1683,4 +1837,41 @@
}
+ private void fillMenuManager(IMenuManager menuManager, boolean isSource) {
+ String typeID = null;
+ if (isSource) {
+ typeID = getSourceDataTypeID();
+ } else {
+ typeID = getTargetDataTypeID();
+ }
+ if (typeID != null) {
+ IViewerActionsProvider provider = ActionProviderManager
+ .getInstance().getActionProvider(typeID);
+ if (provider != null) {
+ List<ISmooksAction> list = provider.getActionList();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ ISmooksAction smooksAction = (ISmooksAction) iterator
+ .next();
+ smooksAction
+ .setSmooksContext(getSmooksConfigurationFileGenerateContext());
+ if (isSource) {
+ if (smooksAction instanceof SmooksAction) {
+ ((SmooksAction) smooksAction)
+ .setViewer(sourceViewer);
+ }
+ smooksAction.selectionChanged(sourceViewer
+ .getSelection());
+ } else {
+ if (smooksAction instanceof SmooksAction) {
+ ((SmooksAction) smooksAction)
+ .setViewer(targetViewer);
+ }
+ smooksAction.selectionChanged(targetViewer
+ .getSelection());
+ }
+ menuManager.add(smooksAction);
+ }
+ }
+ }
+ }
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksNormalContentEditFormPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksNormalContentEditFormPage.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksNormalContentEditFormPage.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -565,7 +565,7 @@
.getMappingResourceConfigList();
if (rclist != null) {
pa.setHidenSmooksElements(rclist
- .getRelationgResourceConfigList());
+ .getGraphRenderResourceConfigList());
}
setModelPackage(pa);
} else {
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/TransformDataTreeViewer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/TransformDataTreeViewer.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/TransformDataTreeViewer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,78 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+
+/**
+ * @author Dart
+ *
+ */
+public class TransformDataTreeViewer extends TreeViewer implements
+ PropertyChangeListener {
+
+ public static final String NODE_PROPERTY_EVENT = "__node_property_event";
+
+ public static final String ADD_CHILDREN_EVENT = "__add_children_event";
+
+ public static final String REMOVE_CHILDREN_EVENT = "__remove_children_event";
+
+ private SmooksGraphicalFormPage editor;
+
+ public TransformDataTreeViewer(Composite parent, int style,
+ SmooksGraphicalFormPage editor) {
+ super(parent, style);
+ this.editor = editor;
+ }
+
+ public TransformDataTreeViewer(Composite parent,
+ SmooksGraphicalFormPage editor) {
+ super(parent);
+ this.editor = editor;
+ }
+
+ public TransformDataTreeViewer(Tree tree, SmooksGraphicalFormPage editor) {
+ super(tree);
+ this.editor = editor;
+ }
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ String type = evt.getPropertyName();
+ if (NODE_PROPERTY_EVENT.equals(type) || ADD_CHILDREN_EVENT.equals(type)) {
+ this.refresh(evt.getSource());
+ }
+ if (REMOVE_CHILDREN_EVENT.equals(type)) {
+ if (editor != null) {
+ Object model = evt.getOldValue();
+ removeGraphModel(model);
+ }
+ this.refresh(evt.getSource());
+ }
+ }
+
+ private void removeGraphModel(Object model) {
+ if (model == null)
+ return;
+ ITreeContentProvider provider = (ITreeContentProvider) this
+ .getContentProvider();
+ if (provider != null) {
+ editor.clearGraphModel(model);
+ Object[] children = provider.getChildren(model);
+ if (children != null) {
+ for (int i = 0; i < children.length; i++) {
+ Object child = children[i];
+ removeGraphModel(child);
+ }
+ }
+ }
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/TransformDataTreeViewer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/SourceConnectionPointEditPart.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/SourceConnectionPointEditPart.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/SourceConnectionPointEditPart.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -23,9 +23,9 @@
@Override
protected IFigure createFigure() {
SourceConnectionPointFigure figure = new SourceConnectionPointFigure();
- figure.setSize(10,10);
+ figure.setSize(50,50);
TreeItemRelationModel model = (TreeItemRelationModel)getModel();
- figure.setTreeItem(model.getTreeItem());
+ figure.setModel(model);//(model.getTreeItem());
return figure;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -11,13 +11,19 @@
import org.eclipse.draw2d.Shape;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.gef.DefaultEditDomain;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalViewer;
import org.eclipse.gef.editparts.AbstractConnectionEditPart;
import org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.IEditorPart;
+import org.jboss.tools.smooks.ui.editors.SmooksGraphicalFormPage;
import org.jboss.tools.smooks.ui.gef.figures.CurveLineConnection;
+import org.jboss.tools.smooks.ui.gef.figures.ILineFigurePaintListener;
+import org.jboss.tools.smooks.ui.gef.figures.LineFigurePaintListenerManager;
import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataConnectionModel;
import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
@@ -68,15 +74,45 @@
new DeleteConnectionEditPolicy());
}
+ private String getSourceDataTypeID() {
+ GraphicalViewer viewer = (GraphicalViewer) this.getViewer();
+ IEditorPart editor = ((DefaultEditDomain) viewer.getEditDomain())
+ .getEditorPart();
+ if (editor instanceof SmooksGraphicalFormPage) {
+ return ((SmooksGraphicalFormPage) editor).getSourceDataTypeID();
+ }
+ return null;
+ }
+
+ private String getTargetDataTypeID() {
+ GraphicalViewer viewer = (GraphicalViewer) this.getViewer();
+ IEditorPart editor = ((DefaultEditDomain) viewer.getEditDomain())
+ .getEditorPart();
+ if (editor instanceof SmooksGraphicalFormPage) {
+ return ((SmooksGraphicalFormPage) editor).getTargetDataTypeID();
+ }
+ return null;
+ }
+
protected IFigure createFigure() {
- CurveLineConnection conn = new CurveLineConnection() {
- public void paintFigure(Graphics graphics) {
- super.paintFigure(graphics);
+ CurveLineConnection conn = new CurveLineConnection(this) {
+ public void paintClientArea(Graphics graphics) {
+
+ String sourceid = getSourceDataTypeID();
+ String targetid = getTargetDataTypeID();
+ ILineFigurePaintListener listener = LineFigurePaintListenerManager
+ .getInstance().getPaintListener(sourceid, targetid);
+// graphics.pushState();
+ if (listener != null) {
+ listener.drawLineAdditions(graphics,this,
+ (LineConnectionModel) getHostEditPart().getModel());
+ }
+// graphics.popState();
+ super.paintClientArea(graphics);
}
};
// conn.setSmoothness(SmoothPolyLineConnection.SMOOTH_MORE);
Figure targetFlagFigure = new Figure() {
-
/*
* (non-Javadoc)
*
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/TargetConnectionPointEditPart.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/TargetConnectionPointEditPart.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/TargetConnectionPointEditPart.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -24,7 +24,7 @@
TargetConnectionPointFigure figure = new TargetConnectionPointFigure();
figure.setSize(10,10);
TreeItemRelationModel model = (TreeItemRelationModel)getModel();
- figure.setTreeItem(model.getTreeItem());
+ figure.setModel(model);
return figure;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/CurveLineConnection.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/CurveLineConnection.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/CurveLineConnection.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -16,6 +16,8 @@
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.PointList;
import org.eclipse.draw2d.geometry.Rectangle;
+import org.jboss.tools.smooks.ui.gef.editparts.StructuredDataConnectionEditPart;
+import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
/**
* @author Dart Peng
@@ -23,7 +25,24 @@
*/
public class CurveLineConnection extends PolylineConnection {
private double[] fBasicCenterCurve;
+
+
+ private StructuredDataConnectionEditPart hostEditPart;
+ public StructuredDataConnectionEditPart getHostEditPart() {
+ return hostEditPart;
+ }
+
+ public void setHostEditPart(StructuredDataConnectionEditPart hostEditPart) {
+ this.hostEditPart = hostEditPart;
+ }
+
+ public CurveLineConnection(StructuredDataConnectionEditPart editPart) {
+ super();
+ this.setHostEditPart(editPart);
+ }
+
+
private int[] getCenterCurvePoints(int startx, int starty, int endx,
int endy) {
buildBaseCenterCurve(endx - startx);
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/ILineFigurePaintListener.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/ILineFigurePaintListener.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/ILineFigurePaintListener.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.gef.figures;
+
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
+
+/**
+ * @author Dart
+ *
+ */
+public interface ILineFigurePaintListener {
+ public void drawLineAdditions(Graphics graphics , IFigure hostFigure, LineConnectionModel model);
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/ILineFigurePaintListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/LineFigurePaintListenerManager.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/LineFigurePaintListenerManager.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/LineFigurePaintListenerManager.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,73 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.gef.figures;
+
+import java.util.HashMap;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.smooks.utils.SmooksExtensionPointConstants;
+
+/**
+ * @author Dart
+ *
+ */
+public class LineFigurePaintListenerManager {
+ private static LineFigurePaintListenerManager instance;
+ private HashMap<String, IConfigurationElement> processorMap = new HashMap<String, IConfigurationElement>();
+
+ private LineFigurePaintListenerManager() {
+ super();
+ loadExtensions();
+ }
+
+ public synchronized static LineFigurePaintListenerManager getInstance() {
+ if (instance == null) {
+ instance = new LineFigurePaintListenerManager();
+ }
+ return instance;
+ }
+
+ public ILineFigurePaintListener getPaintListener(String sid, String tid) {
+ try {
+ IConfigurationElement element = processorMap.get(this.generateKey(
+ sid, tid));
+ if (element != null) {
+ return (ILineFigurePaintListener) element
+ .createExecutableExtension(SmooksExtensionPointConstants.EXTENTION_POINT_ATTRIBUTE_CLASS);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ private void loadExtensions() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint ep = registry
+ .getExtensionPoint(SmooksExtensionPointConstants.EXTENTION_POINT_LINEPAINT_LISTENER);
+ IConfigurationElement[] elements = ep.getConfigurationElements();
+ for (int i = 0; i < elements.length; i++) {
+ IConfigurationElement element = elements[i];
+ if (!element
+ .getName()
+ .equals(
+ SmooksExtensionPointConstants.EXTENTION_POINT_ELEMENT_LINEPAINT_LISTENER))
+ continue;
+ String sourceId = element
+ .getAttribute(SmooksExtensionPointConstants.EXTENTION_POINT_ATTRIBUTE_SOURCEID);
+ String targetId = element
+ .getAttribute(SmooksExtensionPointConstants.EXTENTION_POINT_ATTRIBUTE_TARGETID);
+ if (sourceId != null && targetId != null) {
+ processorMap.put(generateKey(sourceId, targetId), element);
+ }
+ }
+ }
+
+ private String generateKey(String sid, String tid) {
+ return sid + ":" + tid;
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/LineFigurePaintListenerManager.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/TreeItemRelationFigure.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/TreeItemRelationFigure.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/TreeItemRelationFigure.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -14,42 +14,55 @@
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.RectangleFigure;
import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
+import org.jboss.tools.smooks.ui.gef.model.TreeItemRelationModel;
/**
* @author Dart Peng
* @Date Jul 31, 2008
*/
public class TreeItemRelationFigure extends RectangleFigure {
- TreeItem treeItem = null;
- int caculateY = 0;
+// TreeItem treeItem = null;
+// int caculateY = 0;
- public TreeItem getTreeItem() {
- return treeItem;
+// public TreeItem getTreeItem() {
+// return treeItem;
+// }
+//
+// public void setTreeItem(TreeItem treeItem) {
+// this.treeItem = treeItem;
+// }
+
+ private TreeItemRelationModel model = null;
+
+ public TreeItemRelationModel getModel() {
+ return model;
}
- public void setTreeItem(TreeItem treeItem) {
- this.treeItem = treeItem;
+ public void setModel(TreeItemRelationModel model) {
+ this.model = model;
}
@Override
public void paint(Graphics graphics) {
super.paint(graphics);
- graphics.pushState();
-
- graphics.setForegroundColor(ColorConstants.red);
- if (!treeItem.isDisposed()) {
- String text = treeItem.getText();
- if (text != null)
- graphics.drawText(text, getBounds().getTopLeft());
- }
-
- graphics.popState();
+ graphics.setBackgroundColor(ColorConstants.black);
+ graphics.fillRectangle(getBounds());
+// graphics.pushState();
+//
+// graphics.setForegroundColor(ColorConstants.red);
+// if (!treeItem.isDisposed()) {
+// String text = treeItem.getText();
+// if (text != null)
+// graphics.drawText(text, getBounds().getTopLeft());
+// }
+//
+// graphics.popState();
}
public void caculateLocationY() {
+ TreeItem treeItem = this.getModel().getTreeItem();
if (treeItem != null && !treeItem.isDisposed()) {
int y = this.collapsedParentItemLocation(treeItem);
Tree tree = treeItem.getParent();
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/PropertyModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/PropertyModel.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/PropertyModel.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -17,6 +17,15 @@
public class PropertyModel extends AbstractStructuredDataModel {
private String name;
private String value;
+
+ public PropertyModel(String name,String value){
+ this.name = name;
+ this.value = value;
+ }
+
+ public PropertyModel(){
+
+ }
public String getName() {
return name;
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/TreeItemRelationModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/TreeItemRelationModel.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/TreeItemRelationModel.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -38,7 +38,7 @@
public boolean isCollapse() {
TreeItem item = getTreeItem();
int y = Integer.MAX_VALUE;
- if (item != null) {
+ if (item != null && !item.isDisposed()) {
y = item.getBounds().y;
// for windows
TreeItem parentItem = item.getParentItem();
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/tools/TargetTreeDropTargetListener.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/tools/TargetTreeDropTargetListener.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/tools/TargetTreeDropTargetListener.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -110,26 +110,29 @@
this.getGraphicalViewer()).getModel();
EditPart targetEditPart = tool.findTheEditPart(target, this
.getGraphicalViewer());
- target = targetEditPart.getModel();
- CreateConnectionCommand command = new CreateConnectionCommand();
- command.setSource(source);
- command.setTarget(target);
- CommandStack stack = getGraphicalViewer().getEditDomain()
- .getCommandStack();
- try {
- boolean cando = CommandProcessorFactory.getInstance()
- .processGEFCommand(command, targetEditPart);
- if (!cando)
- return;
- } catch (CoreException e) {
- // ignore
+ if (targetEditPart != null) {
+ target = targetEditPart.getModel();
+ CreateConnectionCommand command = new CreateConnectionCommand();
+ command.setSource(source);
+ command.setTarget(target);
+ CommandStack stack = getGraphicalViewer()
+ .getEditDomain().getCommandStack();
+ try {
+ boolean cando = CommandProcessorFactory
+ .getInstance().processGEFCommand(command,
+ targetEditPart);
+ if (!cando)
+ return;
+ } catch (CoreException e) {
+ // ignore
+ }
+ stack.execute(command);
}
- stack.execute(command);
}
}
- }catch(Throwable t){
+ } catch (Throwable t) {
t.printStackTrace();
- }finally {
+ } finally {
Tool dt = getGraphicalViewer().getEditDomain().getDefaultTool();
getGraphicalViewer().getEditDomain().setActiveTool(dt);
}
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ActionProviderManager.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ActionProviderManager.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ActionProviderManager.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,95 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.popup;
+
+import java.util.HashMap;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.smooks.utils.SmooksExtensionPointConstants;
+
+/**
+ * @author Dart
+ *
+ */
+public class ActionProviderManager {
+ private static ActionProviderManager instance;
+
+ private HashMap<String, IConfigurationElement> providerMap = new HashMap<String, IConfigurationElement>();
+
+ private HashMap<String, IViewerActionsProvider> providerInstanceMap = new HashMap<String, IViewerActionsProvider>();
+
+ private ActionProviderManager() {
+ registActionProvider();
+ }
+
+ /**
+ *
+ * @param typeID
+ * @return
+ * @throws CoreException
+ */
+ public IViewerActionsProvider newActionProvider(String typeID)
+ throws CoreException {
+ IConfigurationElement element = providerMap.get(typeID);
+ if (element == null) {
+ return null;
+ }
+ IViewerActionsProvider provider = (IViewerActionsProvider) element
+ .createExecutableExtension(SmooksExtensionPointConstants.EXTENTION_POINT_ATTRIBUTE_CLASS);
+ return provider;
+ }
+
+ /**
+ *
+ * @param typeID
+ * @return
+ */
+ public IViewerActionsProvider getActionProvider(String typeID) {
+ IViewerActionsProvider provider = providerInstanceMap.get(typeID);
+ if (provider == null) {
+ try {
+ provider = newActionProvider(typeID);
+ providerInstanceMap.put(typeID, provider);
+ } catch (Exception e) {
+
+ }
+ }
+ return provider;
+ }
+
+ private void registActionProvider() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint ep = registry
+ .getExtensionPoint(SmooksExtensionPointConstants.EXTENTION_POINT_ACTION_PROVIDER);
+ if (ep == null)
+ return;
+ IConfigurationElement[] elements = ep.getConfigurationElements();
+ for (int i = 0; i < elements.length; i++) {
+ IConfigurationElement element = elements[i];
+
+ String typeID = element
+ .getAttribute(SmooksExtensionPointConstants.EXTENTION_POINT_ATTRIBUTE_TYPE_ID);
+ if (typeID == null) {
+ continue;
+ }
+ providerMap.put(typeID, element);
+ }
+ }
+
+ /**
+ *
+ * @return
+ */
+ public static synchronized ActionProviderManager getInstance() {
+ if (instance == null) {
+ instance = new ActionProviderManager();
+ }
+ return instance;
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ActionProviderManager.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ISmooksAction.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ISmooksAction.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ISmooksAction.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,20 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.popup;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+
+/**
+ * @author Dart
+ *
+ */
+public interface ISmooksAction extends IAction {
+ public SmooksConfigurationFileGenerateContext getSmooksContext();
+
+ public void setSmooksContext(SmooksConfigurationFileGenerateContext context);
+
+ public void selectionChanged(ISelection selection);
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/ISmooksAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/IViewerActionsProvider.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/IViewerActionsProvider.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/IViewerActionsProvider.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.popup;
+
+import java.util.List;
+
+/**
+ * @author Dart
+ *
+ */
+public interface IViewerActionsProvider {
+
+ public List<ISmooksAction> getActionList();
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/IViewerActionsProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/SmooksAction.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/SmooksAction.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/SmooksAction.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,66 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.popup;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ISelection;
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+
+/**
+ * @author Dart
+ *
+ */
+public class SmooksAction extends Action implements ISmooksAction {
+
+ protected SmooksConfigurationFileGenerateContext context;
+
+ protected Object viewer;
+
+ public Object getViewer() {
+ return viewer;
+ }
+
+ public void setViewer(Object viewer) {
+ this.viewer = viewer;
+ }
+
+ protected ISelection selection;
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.ui.popup.ISmooksAction#getSelection()
+ */
+ public ISelection getSelection() {
+ return selection;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.ui.popup.ISmooksAction#getSmooksContext()
+ */
+ public SmooksConfigurationFileGenerateContext getSmooksContext() {
+ return context;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.ui.popup.ISmooksAction#setSelection(org.eclipse.jface.viewers.ISelection)
+ */
+ public void setSelection(ISelection selection) {
+ this.selection = selection;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.ui.popup.ISmooksAction#setSmooksContext(org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext)
+ */
+ public void setSmooksContext(SmooksConfigurationFileGenerateContext context) {
+ this.context = context;
+ }
+
+ public void run(){
+
+ }
+
+ public void selectionChanged(ISelection selection) {
+ this.setSelection(selection);
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/popup/SmooksAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/SmooksExtensionPointConstants.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/SmooksExtensionPointConstants.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/SmooksExtensionPointConstants.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -17,6 +17,8 @@
public class SmooksExtensionPointConstants {
/** @deprecated */
public static final String EXTENTION_POINT_TRANSFORM_DATATYPE_WIZARD = "org.jboss.tools.smooks.ui.transformDataWizards";
+
+ public static final String EXTENTION_POINT_ACTION_PROVIDER = "org.jboss.tools.smooks.ui.menuActionProvider";
public static final String EXTENTION_POINT_VIEWER_INITOR = "org.jboss.tools.smooks.ui.viewerInitor";
@@ -24,6 +26,10 @@
public static final String EXTENTION_POINT_COMMAND_PROCESSOR = "org.jboss.tools.smooks.ui.commandProcessor";
+ public static final String EXTENTION_POINT_LINEPAINT_LISTENER = "org.jboss.tools.smooks.ui.linePaintListener";
+
+ public static final String EXTENTION_POINT_ELEMENT_LINEPAINT_LISTENER = "linePaintListener";
+
public static final String EXTENTION_POINT_ELEMENT_SOURCEMODEL_ANALYZER = "sourceModelAnalyzer";
public static final String EXTENTION_POINT_ELEMENT_TARGETMODEL_ANALYZER = "targetModelAnalyzer";
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 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -46,7 +46,7 @@
import org.jboss.tools.smooks.ui.gef.model.TargetModel;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
-import org.jboss.tools.smooks.xml.model.DocumentObject;
+import org.jboss.tools.smooks.xml.model.TagList;
import org.jboss.tools.smooks.xml.model.TagObject;
/**
@@ -71,13 +71,13 @@
AbstractXMLObject parent = xmlObj.getParent();
while (true) {
AbstractXMLObject p = parent.getParent();
- if (p == null)
+ if (p instanceof TagList)
break;
parent = p;
}
- if (parent instanceof DocumentObject) {
- parent = ((DocumentObject) parent).getRootTag();
- }
+// if (parent instanceof TagList) {
+// parent = ((TagList) parent).getRootTag();
+// }
return parent;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/XMLImageConstants.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/XMLImageConstants.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/XMLImageConstants.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -11,4 +11,8 @@
public static final String IMAGE_XML_ELEMENT = "xml_element";
public static final String IMAGE_XML_ATTRIBUTE = "xml_attribute";
+
+ public static final String IMAGE_MAPPING_LINE = "icons/full/obj16/mapping_line.gif";
+
+ public static final String IMAGE_BINDING_LINE = "icons/full/obj16/binding_line.gif";
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/AbstractXMLObject.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/AbstractXMLObject.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/AbstractXMLObject.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -10,15 +10,31 @@
******************************************************************************/
package org.jboss.tools.smooks.xml.model;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import java.util.List;
+import org.jboss.tools.smooks.ui.editors.TransformDataTreeViewer;
+
/**
* @author Dart Peng
* @Date Jul 25, 2008
*/
-public class AbstractXMLObject {
+public class AbstractXMLObject implements IXMLNode{
+ protected PropertyChangeSupport support = new PropertyChangeSupport(this);
+
+ protected boolean canEdit = false;
+
+ public boolean isCanEdit() {
+ return canEdit;
+ }
+
+ public void setCanEdit(boolean canEdit) {
+ this.canEdit = canEdit;
+ }
+
protected AbstractXMLObject parent;
protected String name;
@@ -38,9 +54,15 @@
public String getName() {
return name;
}
+
+ public PropertyChangeListener[] getPropertyChangeListeners(){
+ return support.getPropertyChangeListeners();
+ }
public void setName(String name) {
+ String oldName = this.name;
this.name = name;
+ support.firePropertyChange(TransformDataTreeViewer.NODE_PROPERTY_EVENT, oldName, this.name);
}
public List<AbstractXMLObject> getChildren() {
@@ -64,6 +86,14 @@
public void setParent(AbstractXMLObject parent) {
this.parent = parent;
}
+
+ public void addNodePropetyChangeListener(PropertyChangeListener listener) {
+ support.addPropertyChangeListener(listener);
+ }
+
+ public void removeNodePropetyChangeListener(PropertyChangeListener listener) {
+ support.removePropertyChangeListener(listener);
+ }
}
Deleted: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/DocumentObject.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/DocumentObject.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/DocumentObject.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.smooks.xml.model;
-
-/**
- * @author Dart Peng
- * @Date Jul 26, 2008
- */
-public class DocumentObject extends AbstractXMLObject {
- TagObject rootTag;
-
- public TagObject getRootTag() {
- return rootTag;
- }
-
- public void setRootTag(TagObject rootTag) {
- this.rootTag = rootTag;
- if(rootTag != null) rootTag.setParent(this);
- }
-
- public String toString(){
- if(rootTag != null)
- return "Document : " + getName() + "\n" + getRootTag().toString();
-
- return "Docuement Object : " +getName();
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.smooks.xml.model.AbstractXMLObject#getParent()
- */
- @Override
- public AbstractXMLObject getParent() {
- return null;
- }
-
-
-
-}
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/IXMLNode.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/IXMLNode.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/IXMLNode.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.model;
+
+import java.beans.PropertyChangeListener;
+
+/**
+ * @author Dart
+ *
+ */
+public interface IXMLNode {
+
+ public void addNodePropetyChangeListener(PropertyChangeListener listener);
+
+ public void removeNodePropetyChangeListener(PropertyChangeListener listener);
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/IXMLNode.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagList.java (from rev 12795, trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/DocumentObject.java)
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagList.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagList.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.xml.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.smooks.ui.editors.TransformDataTreeViewer;
+
+/**
+ * @author Dart Peng
+ * @Date Jul 26, 2008
+ */
+public class TagList extends AbstractXMLObject {
+ List<TagObject> rootTagList = new ArrayList<TagObject>();
+
+// public TagObject getRootTag() {
+// return rootTag;
+// }
+
+ public List<TagObject> getRootTagList() {
+ return rootTagList;
+ }
+
+ public void removeRootTag(TagObject rootTag){
+ rootTagList.remove(rootTag);
+ if(rootTag != null) rootTag.setParent(null);
+ support.firePropertyChange(TransformDataTreeViewer.REMOVE_CHILDREN_EVENT, rootTag, null);
+ }
+
+ public void addRootTag(TagObject rootTag) {
+ rootTagList.add(rootTag);
+ if(rootTag != null) rootTag.setParent(this);
+ support.firePropertyChange(TransformDataTreeViewer.ADD_CHILDREN_EVENT, null, rootTag);
+ }
+
+ public String toString(){
+// if(rootTag != null)
+// return "Document : " + getName() + "\n" + getRootTag().toString();
+
+ return "Docuement Object : " +getName();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.xml.model.AbstractXMLObject#getParent()
+ */
+ @Override
+ public AbstractXMLObject getParent() {
+ return null;
+ }
+
+
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagList.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagObject.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagObject.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagObject.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -14,6 +14,8 @@
import java.util.Iterator;
import java.util.List;
+import org.jboss.tools.smooks.ui.editors.TransformDataTreeViewer;
+
/**
* @author Dart Peng
* @Date Jul 25, 2008
@@ -33,24 +35,28 @@
this.getProperties().add(pro);
if (pro != null)
pro.setParent(this);
+ support.firePropertyChange(TransformDataTreeViewer.ADD_CHILDREN_EVENT, null, pro);
}
public void removeProperty(TagPropertyObject pro) {
this.getProperties().remove(pro);
if (pro != null)
pro.setParent(null);
+ support.firePropertyChange(TransformDataTreeViewer.REMOVE_CHILDREN_EVENT, pro, null);
}
public void addChildTag(TagObject tag) {
this.getChildren().add(tag);
if (tag != null)
tag.setParent(this);
+ support.firePropertyChange(TransformDataTreeViewer.ADD_CHILDREN_EVENT, null, tag);
}
public void removeChildTag(TagObject tag) {
this.getChildren().remove(tag);
if (tag != null)
tag.setParent(null);
+ support.firePropertyChange(TransformDataTreeViewer.REMOVE_CHILDREN_EVENT, tag, null);
}
public String toString() {
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagPropertyObject.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagPropertyObject.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/TagPropertyObject.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -19,7 +19,17 @@
public class TagPropertyObject extends AbstractXMLObject {
protected String type = "string";
+
+ protected String value = null;
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
public String getType() {
return type;
}
Added: 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 (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLConnectionCommandProcessor.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,73 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.model;
+
+import org.eclipse.emf.common.command.Command;
+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.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.xml.ui.XMLPropertiesSection;
+
+/**
+ * @author Dart
+ *
+ */
+public class XMLConnectionCommandProcessor implements ICommandProcessor {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.jboss.tools.smooks.ui.gef.commandprocessor.ICommandProcessor#
+ * processEMFCommand(org.eclipse.emf.common.command.Command,
+ * org.jboss.tools.
+ * smooks.ui.modelparser.SmooksConfigurationFileGenerateContext)
+ */
+ public boolean processEMFCommand(Command emfCommand,
+ SmooksConfigurationFileGenerateContext context) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.jboss.tools.smooks.ui.gef.commandprocessor.ICommandProcessor#
+ * processGEFCommand(org.eclipse.gef.commands.Command,
+ * org.jboss.tools.smooks
+ * .ui.modelparser.SmooksConfigurationFileGenerateContext)
+ */
+ public boolean processGEFCommand(
+ org.eclipse.gef.commands.Command gefCommand,
+ SmooksConfigurationFileGenerateContext context) {
+ if (gefCommand instanceof CreateConnectionCommand) {
+ CreateConnectionCommand command = (CreateConnectionCommand) gefCommand;
+ IConnectableModel source = command.getSource();
+ IConnectableModel target = command.getTarget();
+ // allow only one connection
+ if(!source.getModelSourceConnections().isEmpty() || !target.getModelTargetConnections().isEmpty()) return false;
+ if (((AbstractStructuredDataModel) source)
+ .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) {
+ PropertyModel property = new PropertyModel();
+ property.setName(XMLPropertiesSection.MAPPING_TYPE);
+ property.setValue(XMLPropertiesSection.BINDING);
+ command.addPropertyModel(property);
+ }
+
+ }
+ return true;
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLConnectionCommandProcessor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLObjectAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLObjectAnalyzer.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLObjectAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -27,23 +27,31 @@
* @Date Jul 25, 2008
*/
public class XMLObjectAnalyzer {
- public DocumentObject analyze(String xmlFilePath)
+ public TagList analyze(String xmlFilePath,String[] ignoreNodeNames)
throws FileNotFoundException, DocumentException {
FileInputStream stream = new FileInputStream(xmlFilePath);
- return this.analyze(stream);
+ return this.analyze(stream,ignoreNodeNames);
}
- public DocumentObject analyze(InputStream stream) throws DocumentException {
+ public TagList analyze(InputStream stream , String[] ignoreNodeNames) throws DocumentException {
SAXReader reader = new SAXReader();
Document doc = reader.read(stream);
Element rootElement = doc.getRootElement();
- DocumentObject dco = new DocumentObject();
+ TagList dco = new TagList();
dco.setName("Docuement");
- dco.setRootTag( parseElement(rootElement, null));
+ dco.addRootTag( parseElement(rootElement, null , ignoreNodeNames));
return dco;
}
+
+ public TagObject analyzeFregment(InputStream stream,String[] ignoreNodeNames) throws DocumentException {
+ SAXReader reader = new SAXReader();
+ Document doc = reader.read(stream);
+ Element rootElement = doc.getRootElement();
+ return parseElement(rootElement, null ,ignoreNodeNames);
+ }
- protected TagObject getChildTagByName(String name, TagObject tag) {
+ protected TagObject getChildTagByName(String name, TagObject tag , String[] ignoreNodeNames) {
+ if(isIgnoreNode(name, ignoreNodeNames)) return null;
if (tag == null)
return null;
List list = tag.getChildren();
@@ -54,21 +62,40 @@
}
return null;
}
+
+ private boolean isIgnoreNode(Element element , String[] ignoreNodeNames){
+ return isIgnoreNode(element.getName(), ignoreNodeNames);
+ }
+
+ private boolean isIgnoreNode(TagObject element , String[] ignoreNodeNames){
+ return isIgnoreNode(element.getName(), ignoreNodeNames);
+ }
+
+ private boolean isIgnoreNode(String name , String[] ignoreNodeNames){
+ if(ignoreNodeNames == null) return false;
+ for (int i = 0; i < ignoreNodeNames.length; i++) {
+ String ignore = ignoreNodeNames[i];
+ if(ignore.trim().equalsIgnoreCase(name)) return true;
+ }
+ return false;
+ }
- protected TagObject parseElement(Element element, TagObject parentTag) {
+ protected TagObject parseElement(Element element, TagObject parentTag , String[] ignoreNodeNames) {
+ if(isIgnoreNode(element, ignoreNodeNames))
+ return null;
boolean canAdd = false;
- TagObject tag = getChildTagByName(element.getName(), parentTag);
+ TagObject tag = getChildTagByName(element.getName(), parentTag , ignoreNodeNames);
if (tag == null) {
tag = new TagObject();
canAdd = true;
}
tag.setName(element.getName());
- fillProperties(element, tag);
+ fillProperties(element, tag ,ignoreNodeNames);
tag.setNamespaceURL(element.getNamespaceURI());
List list = element.elements();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Element childElement = (Element) iterator.next();
- TagObject t = parseElement(childElement, tag);
+ TagObject t = parseElement(childElement, tag , ignoreNodeNames);
if (t != null)
tag.addChildTag(t);
}
@@ -88,15 +115,19 @@
return false;
}
- protected void fillProperties(Element element, TagObject tag) {
+ protected void fillProperties(Element element, TagObject tag , String[] ignoreNodeNames) {
Iterator it = element.attributeIterator();
for (Iterator iterator = it; iterator.hasNext();) {
Attribute attr = (Attribute) iterator.next();
- if (hasSameNameProperty(attr.getName(), tag)) {
+ String attrName = attr.getName();
+ String value = attr.getValue();
+ if(isIgnoreNode(attrName, ignoreNodeNames)) continue;
+ if (hasSameNameProperty(attrName, tag)) {
continue;
}
TagPropertyObject pro = new TagPropertyObject();
pro.setName(attr.getName());
+ pro.setValue(value);
pro.setNamespaceURL(attr.getNamespaceURI());
tag.addProperty(pro);
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLStrucutredModelParser.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLStrucutredModelParser.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/model/XMLStrucutredModelParser.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -30,9 +30,9 @@
public AbstractStructuredDataModel parse(Object customModel) {
AbstractStructuredDataModel model = null;
// for AbstractXMLObject (come from xml file fragment)
- if(customModel instanceof DocumentObject){
+ if(customModel instanceof TagList){
model = new StructuredDataModel();
- model.setLabelName(((DocumentObject)customModel).getName());
+ model.setLabelName(((TagList)customModel).getName());
}
if(customModel instanceof TagObject){
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLChildNodeAction.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLChildNodeAction.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLChildNodeAction.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,60 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.ui;
+
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.jboss.tools.smooks.ui.popup.SmooksAction;
+import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
+import org.jboss.tools.smooks.xml.model.TagList;
+import org.jboss.tools.smooks.xml.model.TagObject;
+import org.jboss.tools.smooks.xml.model.TagPropertyObject;
+
+/**
+ * @author Dart
+ *
+ */
+public class AddXMLChildNodeAction extends SmooksAction {
+
+ @Override
+ public void run() {
+ ISelection s = getSelection();
+ if (s != null) {
+ IStructuredSelection selection = (IStructuredSelection) s;
+ Object obj = selection.getFirstElement();
+
+ if (obj != null && obj instanceof TagObject) {
+ TagObject tag = new TagObject();
+ tag.setCanEdit(true);
+ tag.setName("Node");
+ Object v = this.getViewer();
+ if (v != null && v instanceof PropertyChangeListener) {
+ tag
+ .addNodePropetyChangeListener((PropertyChangeListener) v);
+ }
+ ((TagObject) obj).addChildTag(tag);
+ }
+ }
+ }
+
+ @Override
+ public void setSelection(ISelection selection) {
+ super.setSelection(selection);
+ this.setEnabled(true);
+ IStructuredSelection s = (IStructuredSelection) selection;
+ Object obj = s.getFirstElement();
+ if (obj == null) {
+ this.setEnabled(false);
+ }
+ if (obj instanceof AbstractXMLObject) {
+ this.setEnabled(((AbstractXMLObject) obj).isCanEdit());
+ }
+ if (obj instanceof TagPropertyObject) {
+ this.setEnabled(false);
+ }
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLChildNodeAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLPropertyAction.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLPropertyAction.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLPropertyAction.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,53 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.ui;
+
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.jboss.tools.smooks.ui.popup.SmooksAction;
+import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
+import org.jboss.tools.smooks.xml.model.TagObject;
+import org.jboss.tools.smooks.xml.model.TagPropertyObject;
+
+/**
+ * @author Dart
+ *
+ */
+public class AddXMLPropertyAction extends SmooksAction {
+ @Override
+ public void run() {
+ ISelection s = getSelection();
+ if(s != null){
+ IStructuredSelection selection = (IStructuredSelection)s;
+ Object obj = selection.getFirstElement();
+ if(obj instanceof TagObject){
+ TagPropertyObject tag = new TagPropertyObject();
+ tag.setCanEdit(true);
+ tag.setName("property");
+ Object v = this.getViewer();
+ if(v != null && v instanceof PropertyChangeListener){
+ tag.addNodePropetyChangeListener((PropertyChangeListener)v);
+ }
+ ((TagObject)obj).addProperty(tag);
+ }
+ }
+ }
+
+ @Override
+ public void setSelection(ISelection selection) {
+ super.setSelection(selection);
+ this.setEnabled(true);
+ IStructuredSelection s = (IStructuredSelection)selection;
+ Object obj = s.getFirstElement();
+ if(obj instanceof AbstractXMLObject){
+ this.setEnabled(((AbstractXMLObject)obj).isCanEdit());
+ }
+ if(obj == null || obj instanceof TagPropertyObject){
+ this.setEnabled(false);
+ }
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLPropertyAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLRootNodeAction.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLRootNodeAction.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLRootNodeAction.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,50 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.ui;
+
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.jboss.tools.smooks.ui.popup.SmooksAction;
+import org.jboss.tools.smooks.xml.model.TagList;
+import org.jboss.tools.smooks.xml.model.TagObject;
+
+/**
+ * @author Dart
+ *
+ */
+public class AddXMLRootNodeAction extends SmooksAction {
+ @Override
+ public void run() {
+ ISelection s = getSelection();
+ if (s != null) {
+ TreeViewer viewer = (TreeViewer) getViewer();
+ Object obj = viewer.getInput();
+ if (obj == null) {
+ obj = new TagList();
+ }
+ if(!(obj instanceof TagList) ) return;
+ TagObject tag = new TagObject();
+ tag.setCanEdit(true);
+ tag.setName("Node");
+ ((TagList) obj).addRootTag(tag);
+ Object v = this.getViewer();
+ if (v != null && v instanceof TreeViewer) {
+ ((TreeViewer) v).setInput(obj);
+
+ }
+ if (v != null && v instanceof PropertyChangeListener) {
+ ((TagList)obj).addNodePropetyChangeListener((PropertyChangeListener) v);
+ tag.addNodePropetyChangeListener((PropertyChangeListener) v);
+ }
+ }
+ }
+
+ @Override
+ public void setSelection(ISelection selection) {
+ super.setSelection(selection);
+ this.setEnabled(true);
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/AddXMLRootNodeAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/RemoveXMLNodeAction.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/RemoveXMLNodeAction.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/RemoveXMLNodeAction.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,62 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.ui;
+
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.jboss.tools.smooks.ui.popup.SmooksAction;
+import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
+import org.jboss.tools.smooks.xml.model.TagList;
+import org.jboss.tools.smooks.xml.model.TagObject;
+import org.jboss.tools.smooks.xml.model.TagPropertyObject;
+
+/**
+ * @author Dart
+ *
+ */
+public class RemoveXMLNodeAction extends SmooksAction {
+ @Override
+ public void run() {
+ ISelection s = getSelection();
+ if (s != null) {
+ IStructuredSelection selection = (IStructuredSelection) s;
+ Object obj = selection.getFirstElement();
+ if (obj != null && obj instanceof AbstractXMLObject) {
+ Object v = this.getViewer();
+ AbstractXMLObject parent = ((AbstractXMLObject) obj)
+ .getParent();
+ if(parent instanceof TagObject){
+ if(obj instanceof TagObject){
+ ((TagObject)parent).removeChildTag((TagObject)obj);
+ }
+ if(obj instanceof TagPropertyObject){
+ ((TagObject)parent).removeProperty((TagPropertyObject)obj);
+ }
+ }
+ if(parent instanceof TagList){
+ if(obj instanceof TagObject){
+ ((TagList)parent).removeRootTag((TagObject)obj);
+ }
+ }
+
+ if (v != null && v instanceof PropertyChangeListener) {
+ ((TagObject)obj).removeNodePropetyChangeListener((PropertyChangeListener)v);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void setSelection(ISelection selection) {
+ super.setSelection(selection);
+ this.setEnabled(true);
+ IStructuredSelection s = (IStructuredSelection) selection;
+ Object obj = s.getFirstElement();
+ if (obj instanceof AbstractXMLObject) {
+ this.setEnabled(((AbstractXMLObject) obj).isCanEdit());
+ }
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/RemoveXMLNodeAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XML2XMLLinePaintListener.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XML2XMLLinePaintListener.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XML2XMLLinePaintListener.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,67 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.ui;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.smooks.ui.SmooksUIActivator;
+import org.jboss.tools.smooks.ui.gef.figures.ILineFigurePaintListener;
+import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
+import org.jboss.tools.smooks.ui.gef.model.PropertyModel;
+import org.jboss.tools.smooks.xml.XMLImageConstants;
+
+/**
+ * @author Dart
+ *
+ */
+public class XML2XMLLinePaintListener implements ILineFigurePaintListener {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.jboss.tools.smooks.ui.gef.figures.ILineFigurePaintListener#
+ * drawLineAdditions(org.eclipse.draw2d.Graphics)
+ */
+ public void drawLineAdditions(Graphics graphics, IFigure hostFigure,
+ LineConnectionModel model) {
+ // graphics.drawText("Mapping", graphics.getb)
+ PropertyModel type = null;
+ List<PropertyModel> list = model.getProperties();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ PropertyModel propertyModel = (PropertyModel) iterator.next();
+ if (XMLPropertiesSection.MAPPING_TYPE.equals(propertyModel
+ .getName())) {
+ type = propertyModel;
+ break;
+ }
+ }
+ if (type != null) {
+ Point center = hostFigure.getBounds().getCenter();
+ center = center.translate(-8, -8);
+ Image bindingImage = SmooksUIActivator.getDefault()
+ .getImageRegistry().get(
+ XMLImageConstants.IMAGE_BINDING_LINE);
+ Image mappingImage = SmooksUIActivator.getDefault()
+ .getImageRegistry().get(
+ XMLImageConstants.IMAGE_MAPPING_LINE);
+ if (XMLPropertiesSection.BINDING.equals(type.getValue())) {
+ graphics.fillRectangle(center.x,center.y,16,16);
+ graphics.drawImage(bindingImage, 0, 0,
+ bindingImage.getBounds().width, bindingImage
+ .getBounds().height, center.x, center.y, 16, 16);
+ }
+ if (XMLPropertiesSection.MAPPING.equals(type.getValue())) {
+ graphics.fillRectangle(center.x,center.y,16,16);
+ graphics.drawImage(mappingImage, 0, 0,
+ mappingImage.getBounds().width, mappingImage
+ .getBounds().height, center.x, center.y, 16, 16);
+ }
+ }
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XML2XMLLinePaintListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: 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 (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodePropertySection.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,113 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.ui;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+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.Text;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+import org.jboss.tools.smooks.ui.AbstractSmooksPropertySection;
+import org.jboss.tools.smooks.ui.editors.SmooksGraphicalFormPage;
+import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
+
+/**
+ * @author Dart
+ *
+ */
+public class XMLNodePropertySection extends AbstractSmooksPropertySection {
+
+ private Text nodeText;
+
+ /**
+ *
+ */
+ public XMLNodePropertySection() {
+ }
+
+ @Override
+ public void createControls(Composite parent,
+ TabbedPropertySheetPage tabbedPropertySheetPage) {
+ super.createControls(parent, tabbedPropertySheetPage);
+
+ TabbedPropertySheetWidgetFactory factory = tabbedPropertySheetPage
+ .getWidgetFactory();
+ Section section = createRootSection(factory, parent);
+ section.setText("XML Node"); //$NON-NLS-1$
+
+ section.setLayout(new FillLayout());
+
+ Composite com = factory.createComposite(section);
+ section.setClient(com);
+
+ GridLayout gl = new GridLayout();
+ gl.numColumns = 2;
+ com.setLayout(gl);
+
+ factory.createLabel(com, "Node Name : ");
+ nodeText = factory.createText(com, "");
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ nodeText.setLayoutData(gd);
+ hookNodeText();
+ getGraphicalEditor();
+ factory.paintBordersFor(com);
+ }
+
+ private void hookNodeText() {
+ nodeText.addModifyListener(new ModifyListener() {
+
+ public void modifyText(ModifyEvent e) {
+ if (isLock())
+ return;
+ String text = nodeText.getText();
+ AbstractXMLObject model = getModel();
+ if (model != null && model.isCanEdit()) {
+ model.setName(text);
+
+ }
+ }
+
+ });
+ }
+
+
+
+ @Override
+ public SmooksGraphicalFormPage getGraphicalEditor() {
+ IWorkbenchPart part = getPart();
+ return null;
+ }
+
+ @Override
+ public void refresh() {
+ super.refresh();
+ lockEventFire();
+ AbstractXMLObject model = getModel();
+ if (model != null) {
+ String name = model.getName();
+ nodeText.setText(name);
+ }
+ unLockEventFire();
+ }
+
+ private AbstractXMLObject getModel(){
+ ISelection selection = this.getSelection();
+ if(selection instanceof IStructuredSelection){
+ Object model = ((IStructuredSelection)selection).getFirstElement();
+ if(model instanceof AbstractXMLObject){
+ return (AbstractXMLObject)model;
+ }
+ }
+ return null;
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodePropertySection.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: 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 (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodeSectionFilter.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+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;
+
+/**
+ * @author Dart
+ *
+ */
+public class XMLNodeSectionFilter implements IFilter {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IFilter#select(java.lang.Object)
+ */
+ public boolean select(Object toTest) {
+ if (toTest instanceof AbstractXMLObject) {
+ return ((AbstractXMLObject) toTest).isCanEdit();
+ }
+ return false;
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLNodeSectionFilter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLPropertiesSection.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLPropertiesSection.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLPropertiesSection.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -7,6 +7,9 @@
import java.util.List;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
@@ -30,9 +33,16 @@
*/
public class XMLPropertiesSection extends AbstractSmooksPropertySection {
- private static final String SELECTOR_NAMESPACE = "selector-namespace";
+ public static final String MAPPING_TYPE = "mappingType";
+ public static final String SELECTOR_NAMESPACE = "selector-namespace";
+
+ public static final String MAPPING = "mapping";
+
+ public static final String BINDING = "binding";
+
private Text namespaceText;
private Button checkButton;
+ private CCombo connectionTypeCombo;
@Override
public void createControls(Composite parent,
@@ -41,7 +51,7 @@
TabbedPropertySheetWidgetFactory factory = tabbedPropertySheetPage
.getWidgetFactory();
Section section = createRootSection(factory, parent);
- section.setText("XML Properties"); //$NON-NLS-1$
+ section.setText("XML Connection Properties"); //$NON-NLS-1$
section.setLayout(new FillLayout());
@@ -88,8 +98,46 @@
gd = new GridData(GridData.FILL_HORIZONTAL);
namespaceText.setLayoutData(gd);
namespaceText.setEditable(false);
+
+ factory.createLabel(com, "Connection Type : ");
+ connectionTypeCombo = factory.createCCombo(com);// (com, "");
+ connectionTypeCombo.add("mapping");
+ connectionTypeCombo.add("binding");
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ connectionTypeCombo.setLayoutData(gd);
+ connectionTypeCombo.setEditable(false);
+ connectionTypeCombo.addModifyListener(new ModifyListener() {
+
+ public void modifyText(ModifyEvent e) {
+ if (isLock())
+ return;
+ setConnectionType();
+ }
+
+ });
}
+ private void setConnectionType() {
+ LineConnectionModel connection = getLineConnectionModel();
+ if (connection != null) {
+ PropertyModel type = null;
+ List<PropertyModel> list = connection.getProperties();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ PropertyModel propertyModel = (PropertyModel) iterator.next();
+ if(propertyModel.getName().equals(MAPPING_TYPE)){
+ type = propertyModel;
+ break;
+ }
+ }
+ if(type == null){
+ type = new PropertyModel();
+ type.setName(MAPPING_TYPE);
+ }
+ type.setValue(connectionTypeCombo.getText().trim());
+ fireDirty();
+ }
+ }
+
@Override
public void refresh() {
super.refresh();
@@ -108,8 +156,7 @@
.hasNext();) {
PropertyModel propertyModel = (PropertyModel) iterator
.next();
- if (propertyModel.getName()
- .equals(SELECTOR_NAMESPACE)) {
+ if (propertyModel.getName().equals(SELECTOR_NAMESPACE)) {
if (propertyModel.getValue().equals(namespace)) {
checkButton.setEnabled(true);
lockEventFire();
@@ -117,9 +164,15 @@
unLockEventFire();
}
}
+
+ if (propertyModel.getName().equals(MAPPING_TYPE)) {
+ String type = propertyModel.getValue();
+ if (type != null)
+ connectionTypeCombo.setText(type);
+ }
}
}
- }else{
+ } else {
checkButton.setEnabled(false);
}
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataContentProvider.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataContentProvider.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataContentProvider.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -16,7 +16,7 @@
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
-import org.jboss.tools.smooks.xml.model.DocumentObject;
+import org.jboss.tools.smooks.xml.model.TagList;
import org.jboss.tools.smooks.xml.model.TagObject;
/**
@@ -30,8 +30,8 @@
*/
public Object[] getChildren(Object obj) {
// for AbstractXMLObject (come from xml file fragment)
- if(obj instanceof DocumentObject){
- return new Object[]{((DocumentObject)obj).getRootTag()};
+ if(obj instanceof TagList){
+ return ((TagList)obj).getRootTagList().toArray();
}
if(obj instanceof TagObject){
@@ -66,7 +66,7 @@
public boolean hasChildren(Object obj) {
// for AbstractXMLObject (come from xml file fragment)
- if(obj instanceof DocumentObject){
+ if(obj instanceof TagList){
return true;
}
if(obj instanceof TagObject){
@@ -84,12 +84,9 @@
* .lang.Object)
*/
public Object[] getElements(Object arg0) {
- if (arg0 instanceof List) {
- return ((List) arg0).toArray();
+ if(arg0 instanceof TagList){
+ return ((TagList)arg0).getRootTagList().toArray();
}
- if(arg0 instanceof DocumentObject){
- return new Object[]{((DocumentObject)arg0).getRootTag()};
- }
return new Object[] {};
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataLabelProvider.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataLabelProvider.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataLabelProvider.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -15,7 +15,7 @@
import org.jboss.tools.smooks.ui.SmooksUIActivator;
import org.jboss.tools.smooks.xml.XMLImageConstants;
import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
-import org.jboss.tools.smooks.xml.model.DocumentObject;
+import org.jboss.tools.smooks.xml.model.TagList;
import org.jboss.tools.smooks.xml.model.TagObject;
import org.jboss.tools.smooks.xml.model.TagPropertyObject;
@@ -59,7 +59,7 @@
*/
@Override
public String getText(Object element) {
- if (element instanceof DocumentObject) {
+ if (element instanceof TagList) {
return "Root";
}
if (element instanceof AbstractXMLObject) {
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataWizardPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataWizardPage.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLStructuredDataWizardPage.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -4,7 +4,7 @@
package org.jboss.tools.smooks.xml.ui;
import org.jboss.tools.smooks.xml.AbstractFileSelectionWizardPage;
-import org.jboss.tools.smooks.xml.model.DocumentObject;
+import org.jboss.tools.smooks.xml.model.TagList;
import org.jboss.tools.smooks.xml.model.XMLObjectAnalyzer;
/**
@@ -33,7 +33,7 @@
@Override
protected Object loadedTheObject(String path) throws Exception {
XMLObjectAnalyzer analyzer = new XMLObjectAnalyzer();
- DocumentObject doc = analyzer.analyze(path);
+ TagList doc = analyzer.analyze(path , null);
return doc;
}
}
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLViewerActionProvider.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLViewerActionProvider.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLViewerActionProvider.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -0,0 +1,62 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.xml.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.smooks.ui.popup.ISmooksAction;
+import org.jboss.tools.smooks.ui.popup.IViewerActionsProvider;
+import org.jboss.tools.smooks.ui.popup.SmooksAction;
+
+/**
+ * @author Dart
+ *
+ */
+public class XMLViewerActionProvider implements IViewerActionsProvider {
+
+ private List<ISmooksAction> actionList = null;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.ui.popup.IViewerActionsProvider#getActionList()
+ */
+ public List<ISmooksAction> getActionList() {
+ if (actionList == null) {
+ actionList = new ArrayList<ISmooksAction>();
+ actionList.add(createAddXMLRootNodeAction());
+ actionList.add(createAddXMLNodeAction());
+ actionList.add(createAddXMLPropertyAction());
+ actionList.add(createRemoveXMLNodeAction());
+ }
+ return actionList;
+ }
+
+ private ISmooksAction createRemoveXMLNodeAction() {
+ ISmooksAction removeAction = new RemoveXMLNodeAction();
+ removeAction.setText("Delete Node");
+ return removeAction;
+ }
+
+ private ISmooksAction createAddXMLRootNodeAction() {
+ ISmooksAction addAction = new AddXMLRootNodeAction();
+ addAction.setText("Add Root Node");
+ return addAction;
+ }
+
+ private ISmooksAction createAddXMLNodeAction() {
+ ISmooksAction addxml = new AddXMLChildNodeAction();
+ addxml.setText("Add Node");
+ return addxml;
+ }
+
+ private ISmooksAction createAddXMLPropertyAction() {
+ ISmooksAction addProperty = new AddXMLPropertyAction();
+ addProperty.setText("Add Property");
+ return addProperty;
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml/ui/XMLViewerActionProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/AbstractXMLModelAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/AbstractXMLModelAnalyzer.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/AbstractXMLModelAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -10,6 +10,8 @@
******************************************************************************/
package org.jboss.tools.smooks.xml2java.analyzer;
+import java.beans.PropertyChangeListener;
+import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.lang.reflect.InvocationTargetException;
@@ -25,8 +27,13 @@
import org.jboss.tools.smooks.graphical.GraphInformations;
import org.jboss.tools.smooks.graphical.Param;
import org.jboss.tools.smooks.graphical.Params;
+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.SmooksResourceListType;
-import org.jboss.tools.smooks.xml.model.DocumentObject;
+import org.jboss.tools.smooks.xml.model.TagList;
+import org.jboss.tools.smooks.xml.model.TagObject;
+import org.jboss.tools.smooks.xml.model.TagPropertyObject;
import org.jboss.tools.smooks.xml.model.XMLObjectAnalyzer;
/**
@@ -62,19 +69,23 @@
if (file.exists()) {
path = file.getLocation().toOSString();
} else {
- throw new InvocationTargetException(new Exception(
- Messages.getString("AbstractXMLModelAnalyzer.FileDosentExistErrorMessage1") + path + Messages.getString("AbstractXMLModelAnalyzer.FileDosentExistErrorMessage2"))); //$NON-NLS-1$ //$NON-NLS-2$
+ throw new InvocationTargetException(
+ new Exception(
+ Messages
+ .getString("AbstractXMLModelAnalyzer.FileDosentExistErrorMessage1") + path + Messages.getString("AbstractXMLModelAnalyzer.FileDosentExistErrorMessage2"))); //$NON-NLS-1$ //$NON-NLS-2$
}
} else {
- throw new InvocationTargetException(new Exception(
- Messages.getString("AbstractXMLModelAnalyzer.IllegalPathErrorMessage1") + path + ".")); //$NON-NLS-1$ //$NON-NLS-2$
+ throw new InvocationTargetException(
+ new Exception(
+ Messages
+ .getString("AbstractXMLModelAnalyzer.IllegalPathErrorMessage1") + path + ".")); //$NON-NLS-1$ //$NON-NLS-2$
}
}
return path;
}
public Object buildSourceInputObjects(GraphInformations graphInfo,
- SmooksResourceListType listType, IFile sourceFile)
+ SmooksResourceListType listType, IFile sourceFile, Object viewer)
throws InvocationTargetException {
Params params = graphInfo.getParams();
String path = null;
@@ -89,27 +100,98 @@
}
}
}
- if (path == null) {
- return null;
-// throw new InvocationTargetException(new Exception(
-// "xml file can't be found in the .graph file."));
+ TagList document = new TagList();
+ if (path != null) {
+ path = parseFilePath(path);
+ XMLObjectAnalyzer objectBuilder = new XMLObjectAnalyzer();
+ try {
+ FileInputStream stream = new FileInputStream(path);
+ document = objectBuilder.analyze(stream, null);
+ if (viewer != null && viewer instanceof PropertyChangeListener) {
+ document
+ .addNodePropetyChangeListener((PropertyChangeListener) viewer);
+ }
+ return document;
+ } catch (FileNotFoundException e) {
+ throw new InvocationTargetException(e);
+ } catch (DocumentException e) {
+ throw new InvocationTargetException(e);
+ }
+ } else {
+ String sid = graphInfo.getMappingType().getSourceTypeID();
+ String tid = graphInfo.getMappingType().getTargetTypeID();
+ if (sid.equals("org.jboss.tools.smooks.xml.viewerInitor.xml")
+ && tid
+ .equals("org.jboss.tools.smooks.xml.viewerInitor.xml")) {
+ List list = listType.getAbstractResourceConfig();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ AbstractResourceConfig re = (AbstractResourceConfig) iterator
+ .next();
+ if (re instanceof ResourceConfigType) {
+ ResourceConfigType config = (ResourceConfigType) re;
+ ResourceType resource = config.getResource();
+ if (resource != null) {
+ if ("xsl".equals(resource.getType())) {
+ String cdata = resource.getCDATAValue();
+ if (cdata != null) {
+ cdata = cdata.replaceAll(":", "-");
+ XMLObjectAnalyzer fragmentBuilder = new XMLObjectAnalyzer();
+ try {
+ TagObject tag = fragmentBuilder
+ .analyzeFregment(
+ new ByteArrayInputStream(
+ cdata
+ .getBytes()),
+ new String[] { "xsl-value-of" });
+ if (tag != null) {
+ if (viewer instanceof PropertyChangeListener) {
+ document.addNodePropetyChangeListener(
+ (PropertyChangeListener) viewer);
+ hookNodes(
+ tag,
+ (PropertyChangeListener) viewer);
+ document.addRootTag(tag);
+ }
+ }
+
+ } catch (DocumentException e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ throw new InvocationTargetException(new Exception(
+ "can't load xml file"));
+ }
}
- path = parseFilePath(path);
- XMLObjectAnalyzer objectBuilder = new XMLObjectAnalyzer();
- try {
- FileInputStream stream = new FileInputStream(path);
- DocumentObject document = objectBuilder.analyze(stream);
- return document;
- } catch (FileNotFoundException e) {
- throw new InvocationTargetException(e);
- } catch (DocumentException e) {
- throw new InvocationTargetException(e);
+ return document;
+ }
+
+ public static void hookNodes(TagObject tag, PropertyChangeListener viewer) {
+ tag.setCanEdit(true);
+ tag.addNodePropetyChangeListener(viewer);
+ List<TagPropertyObject> properties = tag.getProperties();
+ for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
+ TagPropertyObject tagPropertyObject = (TagPropertyObject) iterator
+ .next();
+ tagPropertyObject.setCanEdit(true);
+ tagPropertyObject.addNodePropetyChangeListener(viewer);
}
+ List list = tag.getChildren();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ if (object instanceof TagObject) {
+ hookNodes((TagObject) object, viewer);
+ }
+ }
}
public Object buildTargetInputObjects(GraphInformations graphInfo,
- SmooksResourceListType listType, IFile sourceFile)
+ SmooksResourceListType listType, IFile sourceFile, Object viewer)
throws InvocationTargetException {
- return buildSourceInputObjects(graphInfo, listType, sourceFile);
+ return buildSourceInputObjects(graphInfo, listType, sourceFile, viewer);
}
}
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 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -40,7 +40,7 @@
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.jboss.tools.smooks.utils.UIUtils;
import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
-import org.jboss.tools.smooks.xml.model.DocumentObject;
+import org.jboss.tools.smooks.xml.model.TagList;
import org.jboss.tools.smooks.xml.model.TagObject;
import org.jboss.tools.smooks.xml.model.TagPropertyObject;
@@ -81,10 +81,11 @@
}
}
}
-
- protected String generateParentSelector(AbstractXMLObject xmlObject){
+
+ protected String generateParentSelector(AbstractXMLObject xmlObject) {
String selector = xmlObject.getName();
- while(xmlObject.getParent() != null && !(xmlObject.getParent() instanceof DocumentObject)){
+ while (xmlObject.getParent() != null
+ && !(xmlObject.getParent() instanceof TagList)) {
xmlObject = xmlObject.getParent();
selector = xmlObject.getName() + SPACE_SPLITER + selector;
}
@@ -184,7 +185,8 @@
AbstractStructuredDataModel sourceModel = (AbstractStructuredDataModel) connection
.getSource();
- if (targetJavaChild.isPrimitive() || targetJavaChild.getProperties().isEmpty()) {
+ if (targetJavaChild.isPrimitive()
+ || targetJavaChild.getProperties().isEmpty()) {
isComplex = false;
}
String resourceConfigSelector = parentSelector;
@@ -196,12 +198,13 @@
resourceConfigSelector);
}
String propertyName = targetJavaChild.getName();
- // if the parent bean is Array or List , the binding property name should be set NULL
- if(javaBean.isArray() || javaBean.isList()){
+ // if the parent bean is Array or List , the binding property name
+ // should be set NULL
+ if (javaBean.isArray() || javaBean.isList()) {
propertyName = null;
}
AnyType binding = SmooksModelUtils.addBindingTypeToParamType(
- bindingsParam, propertyName , selector, null, null);
+ bindingsParam, propertyName, selector, null, null);
// add connection's properties on the "binding" element
UIUtils.assignConnectionPropertyToBinding(connection, binding,
new String[] { "property", "selector" });
@@ -250,8 +253,9 @@
SmooksResourceListType listType, Object sourceObject,
Object targetObject) {
JavaBeanModel tempBean = null;
- if (sourceObject instanceof DocumentObject) {
- sourceObject = ((DocumentObject) sourceObject).getRootTag();
+ if (sourceObject instanceof TagList
+ && !((TagList) sourceObject).getRootTagList().isEmpty()) {
+ sourceObject = ((TagList) sourceObject).getRootTagList().get(0);
}
if (targetObject instanceof List && !((List) targetObject).isEmpty()) {
tempBean = (JavaBeanModel) ((List) targetObject).get(0);
@@ -459,6 +463,11 @@
if (isReferenceSelector(selector)) {
ResourceConfigType resourceConfig1 = this
.findResourceConfigTypeWithSelector(selector, listType);
+ if (resourceConfig1 == null) {
+ throw new RuntimeException(
+ "Can't find some ResourceConfig element in the config file.Maybe some ResourceConfig element miss <param name = \"beanId\">"
+ + selector + "</param>");
+ }
String newSelector = resourceConfig1.getSelector();
if (newSelector == null)
return;
@@ -516,7 +525,7 @@
if (current == parent) {
} else {
- while (!(parent.getParent() instanceof DocumentObject)) {
+ while (!(parent.getParent() instanceof TagList)) {
parent = parent.getParent();
}
current = parent;
@@ -604,7 +613,7 @@
.next();
AbstractXMLObject source = (AbstractXMLObject) sourceGraphModel
.getReferenceEntityModel();
- if (source.getParent().getClass() == DocumentObject.class) {
+ if (source.getParent().getClass() == TagList.class) {
rootSource = source;
break;
}
@@ -615,7 +624,7 @@
.next();
JavaBeanModel target = (JavaBeanModel) targetGraphModel
.getReferenceEntityModel();
- if (target.isRoot()) {
+ if (target.isRootClassModel()) {
rootTarget = target;
break;
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XMLSourceModelAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XMLSourceModelAnalyzer.java 2009-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XMLSourceModelAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -29,9 +29,9 @@
@Override
public Object buildSourceInputObjects(GraphInformations graphInfo,
- SmooksResourceListType listType, IFile sourceFile)
+ SmooksResourceListType listType, IFile sourceFile , Object viewer)
throws InvocationTargetException {
UIUtils.checkSelector(listType);
- return super.buildSourceInputObjects(graphInfo, listType, sourceFile);
+ return super.buildSourceInputObjects(graphInfo, listType, sourceFile,viewer);
}
}
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-01-02 21:58:26 UTC (rev 12871)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2009-01-04 08:27:31 UTC (rev 12872)
@@ -3,14 +3,45 @@
*/
package org.jboss.tools.smooks.xml2xml;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
+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;
import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
import org.jboss.tools.smooks.analyzer.SmooksAnalyzerException;
+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;
+import org.jboss.tools.smooks.xml.model.TagList;
+import org.jboss.tools.smooks.xml.model.TagObject;
+import org.jboss.tools.smooks.xml.model.TagPropertyObject;
+import org.jboss.tools.smooks.xml.model.XMLObjectAnalyzer;
+import org.jboss.tools.smooks.xml.ui.XMLPropertiesSection;
+import org.jboss.tools.smooks.xml2java.analyzer.AbstractXMLModelAnalyzer;
/**
* @author dart
@@ -18,6 +49,10 @@
*/
public class XML2XMLAnalyzer extends AbstractAnalyzer {
+ private static final String XSL = "xsl";
+
+ private List<AbstractXMLObject> xmlUsedList = new ArrayList<AbstractXMLObject>();
+
/*
* (non-Javadoc)
*
@@ -30,12 +65,203 @@
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
- Shell shell = context.getShell();
- MessageDialog.openWarning(shell, Messages.getString("XML2XMLAnalyzer.WarningDlgTitle"), //$NON-NLS-1$
- Messages.getString("XML2XMLAnalyzer.XML2XMLGenerateErrorMessage")); //$NON-NLS-1$
+ 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)
+ .getChildren();
+ 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("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)
*
@@ -47,9 +273,386 @@
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType, Object sourceObject,
Object targetObject) {
- throw new RuntimeException(Messages.getString("XML2XMLAnalyzer.XML2XMLParseErrorMessage")); //$NON-NLS-1$
+ TagList sourceList = null;
+ TagList targetList = null;
+ PropertyChangeListener[] listeners = null;
+ if (sourceObject instanceof TagList && targetObject instanceof TagList) {
+ sourceList = (TagList) sourceObject;
+ targetList = (TagList) targetObject;
+ List<TagObject> child = targetList.getRootTagList();
+ List<TagObject> temp = new ArrayList(child);
+ listeners = targetList.getPropertyChangeListeners();
+ for (Iterator iterator = temp.iterator(); iterator.hasNext();) {
+ TagObject tagObject = (TagObject) iterator.next();
+ targetList.removeRootTag(tagObject);
+ }
+ temp.clear();
+ temp = null;
+ } else {
+ return null;
+ }
+ MappingResourceConfigList mappingList = new MappingResourceConfigList();
+ List<AbstractResourceConfig> resourceList = listType
+ .getAbstractResourceConfig();
+ for (Iterator<AbstractResourceConfig> iterator = resourceList
+ .iterator(); iterator.hasNext();) {
+ AbstractResourceConfig abstractResourceConfig = (AbstractResourceConfig) iterator
+ .next();
+ if (abstractResourceConfig instanceof ResourceConfigType) {
+ ResourceConfigType resourceConfig = (ResourceConfigType) abstractResourceConfig;
+ ResourceType resource = resourceConfig.getResource();
+ if (resource != null) {
+ if (XSL.equals(resource.getType())) {
+ mappingList.getGraphRenderResourceConfigList().add(
+ resourceConfig);
+ processResourceConfigToRender(listType, sourceList,
+ targetList, mappingList, resourceConfig);
+ }
+ }
+ }
+ }
+ removeXSLElements(targetList, new String[] { "xsl-value-of" });
+ if (listeners != null) {
+ List<TagObject> tagList = targetList.getRootTagList();
+ for (Iterator iterator = tagList.iterator(); iterator.hasNext();) {
+ TagObject tagObject = (TagObject) iterator.next();
+ for (int i = 0; i < listeners.length; i++) {
+ PropertyChangeListener listener = listeners[i];
+ AbstractXMLModelAnalyzer.hookNodes(tagObject, listener);
+ }
+ }
+ }
+ return mappingList;
}
+ private void removeXSLElements(AbstractXMLObject tagList,
+ String[] xslElementNames) {
+ if (tagList instanceof TagList) {
+ List<TagObject> tags = ((TagList) tagList).getRootTagList();
+ List<TagObject> tempTags = new ArrayList<TagObject>(tags);
+ for (Iterator<TagObject> iterator = tempTags.iterator(); iterator
+ .hasNext();) {
+ TagObject tagObject = (TagObject) iterator.next();
+ removeXSLElements(tagObject, xslElementNames);
+ }
+ tempTags.clear();
+ tempTags = null;
+ }
+
+ String name = ((AbstractXMLObject) tagList).getName();
+ if (isXSLElements(name, xslElementNames)) {
+ if (tagList instanceof TagObject) {
+ Object parent = ((TagObject) tagList).getParent();
+ if (parent instanceof TagObject) {
+ ((TagObject) parent).removeChildTag((TagObject) tagList);
+ }
+ if (parent instanceof TagList) {
+ ((TagList) parent).removeRootTag((TagObject) tagList);
+ }
+ }
+ if (tagList instanceof TagPropertyObject) {
+ Object parent = ((TagObject) tagList).getParent();
+ if (parent instanceof TagObject) {
+ ((TagObject) parent)
+ .removeProperty((TagPropertyObject) tagList);
+ }
+ }
+ } else {
+ if (tagList instanceof TagObject) {
+ List<AbstractXMLObject> tags = ((TagObject) tagList)
+ .getChildren();
+ List<AbstractXMLObject> tempTags = new ArrayList<AbstractXMLObject>(
+ tags);
+ for (Iterator<AbstractXMLObject> iterator = tempTags.iterator(); iterator
+ .hasNext();) {
+ AbstractXMLObject tagObject = (AbstractXMLObject) iterator
+ .next();
+ removeXSLElements(tagObject, xslElementNames);
+ }
+ tempTags.clear();
+ tempTags = null;
+
+ List<TagPropertyObject> tagps = ((TagObject) tagList)
+ .getProperties();
+ List<TagPropertyObject> tempTagps = new ArrayList<TagPropertyObject>(
+ tagps);
+ for (Iterator<TagPropertyObject> iterator = tempTagps
+ .iterator(); iterator.hasNext();) {
+ TagPropertyObject tagObject = (TagPropertyObject) iterator
+ .next();
+ removeXSLElements(tagObject, xslElementNames);
+ }
+ tempTagps.clear();
+ tempTagps = null;
+ }
+ }
+ }
+
+ private boolean isXSLElements(String name, String[] xslElementNames) {
+ if (xslElementNames == null)
+ return false;
+ for (int i = 0; i < xslElementNames.length; i++) {
+ String n = xslElementNames[i];
+ if (n.equals(name))
+ return true;
+ }
+ return false;
+ }
+
+ private void processResourceConfigToRender(SmooksResourceListType listType,
+ TagList sourceList, TagList targetList,
+ MappingResourceConfigList mappingList,
+ ResourceConfigType resourceConfig) {
+ AbstractXMLObject sourceNode = findSourceObjectFromSelector(
+ resourceConfig, sourceList);
+ if (sourceNode != null) {
+ if (sourceNode instanceof TagObject) {
+ AbstractXMLObject targetNode = findTargetObjectFromCDATA(resourceConfig);
+ targetList.addRootTag((TagObject) targetNode);
+ if (targetNode != null) {
+ if (isXMLObjectUsed(targetNode)) {
+ return;
+ }
+ MappingModel mapping = new MappingModel(sourceNode,
+ targetNode);
+ mapping.getProperties().add(
+ new PropertyModel(
+ XMLPropertiesSection.MAPPING_TYPE,
+ XMLPropertiesSection.MAPPING));
+ mappingList.getMappingModelList().add(mapping);
+ setXMLObjectUsed(sourceNode);
+ setXMLObjectUsed(targetNode);
+ processCDATA(resourceConfig, mappingList, sourceList,
+ targetNode, sourceNode);
+ }
+ }
+ }
+ }
+
+ private void processCDATA(ResourceConfigType resourceConfig,
+ MappingResourceConfigList mappingList, TagList sourceList,
+ AbstractXMLObject targetNode, AbstractXMLObject mappingSource) {
+ if (resourceConfig != null) {
+ ResourceType resource = resourceConfig.getResource();
+ if (resource != null) {
+ processCDATA(resource.getCDATAValue(), mappingList, sourceList,
+ targetNode, mappingSource);
+ }
+ }
+ }
+
+ private void processCDATA(String cdata,
+ MappingResourceConfigList mappingList, TagList sourceList,
+ AbstractXMLObject targetNode, AbstractXMLObject mappingSource) {
+ if (cdata == null)
+ return;
+ cdata = cdata.trim();
+ cdata = transformCDATA(cdata);
+ handleXSLNode(targetNode, mappingSource, mappingList);
+ }
+
+ private void handleXSLNode(AbstractXMLObject node,
+ AbstractXMLObject mappingNode, MappingResourceConfigList mappingList) {
+ if ("xsl-value-of".equals(node.getName())) {
+ if (node instanceof TagObject) {
+ List<TagPropertyObject> propertyList = ((TagObject) node)
+ .getProperties();
+ for (Iterator iterator = propertyList.iterator(); iterator
+ .hasNext();) {
+ TagPropertyObject tagPropertyObject = (TagPropertyObject) iterator
+ .next();
+ if ("select".equals(tagPropertyObject.getName())) {
+ String selectValue = tagPropertyObject.getValue();
+ AbstractXMLObject sourceNode = findSourceNodeFromXSLSelect(
+ selectValue, mappingNode);
+ if (sourceNode != null) {
+ AbstractXMLObject targetNode = node.getParent();
+ if (targetNode != null) {
+ if (isXMLObjectUsed(targetNode))
+ return;
+ MappingModel mapping = new MappingModel(
+ sourceNode, targetNode);
+ setXMLObjectUsed(sourceNode);
+ setXMLObjectUsed(targetNode);
+ mapping
+ .getProperties()
+ .add(
+ new PropertyModel(
+ XMLPropertiesSection.MAPPING_TYPE,
+ XMLPropertiesSection.BINDING));
+ mappingList.getMappingModelList().add(mapping);
+ }
+ }
+ }
+ }
+ }
+ } else {
+ if (node instanceof TagObject) {
+ List<AbstractXMLObject> children = ((TagObject) node)
+ .getChildren();
+ for (Iterator iterator = children.iterator(); iterator
+ .hasNext();) {
+ AbstractXMLObject abstractXMLObject = (AbstractXMLObject) iterator
+ .next();
+ handleXSLNode(abstractXMLObject, mappingNode, mappingList);
+ }
+ }
+ }
+ }
+
+ private AbstractXMLObject findSourceNodeFromXSLSelect(String selectValue,
+ AbstractXMLObject mappingNode) {
+ String[] names = new String[] {};
+ if (selectValue == null)
+ return null;
+ selectValue = selectValue.trim();
+ if (selectValue.startsWith(".")) {
+ selectValue = selectValue.substring(1);
+ }
+ if (selectValue.startsWith("/"))
+ selectValue = selectValue.substring(1);
+ names = selectValue.split("/");
+ return this.findTheXMLObjectFromNameArray(names, mappingNode);
+ }
+
+ private AbstractXMLObject findTargetObjectFromCDATA(
+ ResourceConfigType resourceConfig) {
+ if (resourceConfig != null) {
+ ResourceType resource = resourceConfig.getResource();
+ if (resource != null) {
+ return findTargetObjectFromCDATA(resource.getCDATAValue());
+ }
+ }
+ return null;
+ }
+
+ private AbstractXMLObject findTargetObjectFromCDATA(String cdata) {
+ if (cdata == null)
+ return null;
+ cdata = cdata.trim();
+ cdata = transformCDATA(cdata);
+ XMLObjectAnalyzer analyzer = new XMLObjectAnalyzer();
+ try {
+ TagObject list = analyzer.analyzeFregment(new ByteArrayInputStream(
+ cdata.getBytes()), null);
+ return list;
+ } catch (DocumentException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+
+ }
+
+ private String transformCDATA(String cdata) {
+ cdata = cdata.replace(":", "-");
+ return cdata;
+ }
+
+ private AbstractXMLObject findSourceObjectFromSelector(
+ ResourceConfigType resourceConfig, TagList sourceTagList) {
+ String selector = resourceConfig.getSelector();
+ if (selector == null)
+ return null;
+ selector = selector.trim();
+ return findSourceObjectFromSelector(selector, sourceTagList);
+ }
+
+ private AbstractXMLObject findSourceObjectFromSelector(String selector,
+ 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;
+ }
+
+ private AbstractXMLObject findTheXMLObjectFromNameArray(String[] names,
+ AbstractXMLObject firstNode) {
+ if (names != null) {
+ AbstractXMLObject node = firstNode;
+ for (int i = 0; i < names.length; i++) {
+ String name = names[i].trim();
+ if (name.length() == 0)
+ continue;
+ node = findTheXMLNode(name, node);
+ }
+ return node;
+ }
+ return null;
+ }
+
+ private AbstractXMLObject findTheXMLNode(String name,
+ AbstractXMLObject xmlObject) {
+ if (xmlObject == null)
+ return null;
+ if (name.startsWith("@")) {
+ String tempName = name.substring(1);
+ if (tempName.equals(xmlObject.getName())) {
+ return xmlObject;
+ }
+ if (xmlObject instanceof TagObject) {
+ List<TagPropertyObject> children = ((TagObject) xmlObject)
+ .getProperties();
+ for (Iterator iterator = children.iterator(); iterator
+ .hasNext();) {
+ TagPropertyObject abstractXMLObject = (TagPropertyObject) iterator
+ .next();
+ if (tempName.equals(abstractXMLObject.getName())) {
+ return abstractXMLObject;
+ }
+ }
+ }
+ } else {
+ if (name.equals(xmlObject.getName())) {
+ return xmlObject;
+ }
+ if (xmlObject instanceof TagObject) {
+ List<AbstractXMLObject> children = ((TagObject) xmlObject)
+ .getChildren();
+ for (Iterator iterator = children.iterator(); iterator
+ .hasNext();) {
+ AbstractXMLObject abstractXMLObject = (AbstractXMLObject) iterator
+ .next();
+ AbstractXMLObject child = findTheXMLNode(name,
+ abstractXMLObject);
+ if (child != null)
+ return child;
+ }
+ }
+ }
+ return null;
+ }
+
+ private void setXMLObjectUsed(AbstractXMLObject xmlObject) {
+ xmlUsedList.add(xmlObject);
+ }
+
+ private boolean isXMLObjectUsed(AbstractXMLObject xmlObject) {
+ return xmlUsedList.indexOf(xmlObject) != -1;
+ }
+
public DesignTimeAnalyzeResult[] analyzeGraphModel(
SmooksConfigurationFileGenerateContext context) {
// TODO Auto-generated method stub
15 years, 3 months