Author: DartPeng
Date: 2008-11-10 02:15:12 -0500 (Mon, 10 Nov 2008)
New Revision: 11622
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/javabean/analyzer/JavaBeanAnalyzer.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/utils/UIUtils.java
Log:
JBIDE-3142
Add WST xml source editor
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 2008-11-09
00:29:36 UTC (rev 11621)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF 2008-11-10
07:15:12 UTC (rev 11622)
@@ -22,7 +22,8 @@
org.eclipse.emf.edit.ui,
org.eclipse.xsd.edit,
org.jboss.tools.smooks.core,
- org.jboss.tools.common.model.ui
+ org.jboss.tools.common.model.ui,
+ org.eclipse.wst.xml.ui;bundle-version="1.0.401"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: .,
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml 2008-11-09 00:29:36 UTC (rev
11621)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml 2008-11-10 07:15:12 UTC (rev
11622)
@@ -10,7 +10,65 @@
class = "org.jboss.tools.smooks.graphical.GraphicalPackage"
genModel = "model/graphical.genmodel" />
</extension>
-
+ <extension
+ point="org.eclipse.wst.sse.ui.adapterFactoryDescription">
+ <adapterFactoryDescription
+ class="org.eclipse.wst.xml.ui.internal.registry.AdapterFactoryProviderForXML">
+ <contentType id="org.eclipse.core.runtime.xml" />
+ <contentType id="org.jboss.tools.smooks.ui.smooks.contentType" />
+ </adapterFactoryDescription>
+ </extension>
+ <extension point="org.eclipse.wst.sse.ui.editorConfiguration">
+ <sourceViewerConfiguration
+ class="org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML"
+ target="org.eclipse.core.runtime.xml,
org.jboss.tools.smooks.ui.smooks.contentType" />
+ <contentOutlineConfiguration
+ class="org.eclipse.wst.xml.ui.views.contentoutline.XMLContentOutlineConfiguration"
+ target="org.eclipse.core.runtime.xml,
org.jboss.tools.smooks.ui.smooks.contentType" />
+ <propertySheetConfiguration
+ class="org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration"
+ target="org.eclipse.core.runtime.xml,
org.jboss.tools.smooks.ui.smooks.contentType" />
+ <documentationTextHover
+
class="org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor"
+ target="org.eclipse.wst.xml.XML_DEFAULT">
+ </documentationTextHover>
+ <doubleClickStrategy
+
class="org.eclipse.wst.xml.ui.internal.doubleclick.XMLDoubleClickStrategy"
+ target="org.eclipse.wst.xml.XML_DEFAULT">
+ </doubleClickStrategy>
+ <provisionalConfiguration
+ type="sourceeditingtexttools"
+ class="org.eclipse.wst.xml.ui.internal.provisional.XMLSourceEditingTextTools"
+ target="org.eclipse.core.runtime.xml,
org.jboss.tools.smooks.ui.smooks.contentType" />
+ <provisionalConfiguration
+ type="characterpairmatcher"
+ class="org.eclipse.wst.xml.ui.internal.text.XMLDocumentRegionEdgeMatcher"
+ target="org.eclipse.core.runtime.xml,
org.jboss.tools.smooks.ui.smooks.contentType" />
+ <provisionalConfiguration
+ type="structuredtextfoldingprovider"
+ class="org.eclipse.wst.xml.ui.internal.projection.StructuredTextFoldingProviderXML"
+ target="org.eclipse.core.runtime.xml,
org.jboss.tools.smooks.ui.smooks.contentType" />
+ <provisionalConfiguration
+ type="org.eclipse.jface.text.quickassist.IQuickAssistProcessor"
+ class="org.eclipse.wst.xml.ui.internal.correction.XMLQuickAssistProcessor"
+ target="org.eclipse.wst.xml.XML_DEFAULT" />
+ <provisionalConfiguration
+ type="autoeditstrategy"
+ class="org.eclipse.wst.xml.ui.internal.autoedit.StructuredAutoEditStrategyXML"
+ target="org.eclipse.wst.xml.XML_DEFAULT" />
+ <provisionalDefinition
+ type="preferencepages"
+ value="org.eclipse.wst.xml.ui.preferences.xml.xml,
org.eclipse.wst.sse.ui.preferences.xml.source,
org.eclipse.wst.sse.ui.preferences.xml.templates,
org.eclipse.wst.sse.ui.preferences.xml.colors"
+ target="org.eclipse.core.runtime.xml,
org.jboss.tools.smooks.ui.smooks.contentType" />
+ <provisionalDefinition
+ type="spellingregions"
+ value="XML_COMMENT_TEXT, XML_CONTENT, XML_DEFAULT"
+ target="org.eclipse.core.runtime.xml,
org.jboss.tools.smooks.ui.smooks.contentType" />
+ <provisionalDefinition
+ type="activecontexts"
+ value="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.navigation,
org.eclipse.wst.xml.cleanup, org.eclipse.wst.xml.comments, org.eclipse.wst.xml.selection,
org.eclipse.wst.xml.dependencies, org.eclipse.wst.xml.grammar, org.eclipse.wst.xml.expand,
org.eclipse.wst.xml.occurrences"
+ target="org.eclipse.core.runtime.xml" />
+ </extension>
<extension
point="org.eclipse.ui.editors">
<editor
@@ -19,6 +77,10 @@
icon="icons/sample.gif"
class="org.jboss.tools.smooks.ui.editors.SmooksFormEditor"
id="org.jboss.tools.smooks.ui.editors.SmooksFormEditor">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.core.runtime.xml" />
+ <contentTypeBinding
+ contentTypeId="org.jboss.tools.smooks.ui.smooks.contentType" />
</editor>
</extension>
<extension
@@ -197,4 +259,14 @@
class="org.jboss.tools.smooks.ui.SmooksListenerRegister">
</startup>
</extension>
+ <extension
+ point="org.eclipse.core.contenttype.contentTypes">
+ <content-type
+ base-type="org.eclipse.core.runtime.xml"
+ file-extensions="smooks"
+ id="org.jboss.tools.smooks.ui.smooks.contentType"
+ name="Smooks Configuration File"
+ priority="normal">
+ </content-type>
+ </extension>
</plugin>
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-11-09
00:29:36 UTC (rev 11621)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-11-10
07:15:12 UTC (rev 11622)
@@ -10,7 +10,6 @@
******************************************************************************/
package org.jboss.tools.smooks.javabean.analyzer;
-import java.awt.event.InvocationEvent;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
@@ -22,10 +21,7 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.common.command.BasicCommandStack;
import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.ExtendedMetaData;
-import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.xml.type.AnyType;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
@@ -34,7 +30,6 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
-import org.jboss.tools.smooks.analyzer.CompositeResolveCommand;
import org.jboss.tools.smooks.analyzer.DesignTimeAnalyzeResult;
import org.jboss.tools.smooks.analyzer.IMappingAnalyzer;
import org.jboss.tools.smooks.analyzer.ISourceModelAnalyzer;
@@ -55,12 +50,10 @@
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.model.provider.SmooksItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.util.SmooksModelUtils;
-import org.jboss.tools.smooks.ui.SmooksUIActivator;
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.TreeItemRelationModel;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.jboss.tools.smooks.utils.ProjectClassLoader;
@@ -474,9 +467,10 @@
}
if (!(sourceObject instanceof JavaBeanModel)
|| !(targetObject instanceof JavaBeanModel)) {
-// throw new RuntimeException(
-// "[JavaBeanAnalyzer]Can't load the source/target data from Smooks
configuration file.");
- return MappingResourceConfigList.createEmptyList();
+ // throw new RuntimeException(
+ // "[JavaBeanAnalyzer]Can't load the source/target data from Smooks
configuration file."
+ // );
+ return MappingResourceConfigList.createEmptyList();
}
MappingResourceConfigList resourceConfigList = new MappingResourceConfigList();
JavaBeanModel source = (JavaBeanModel) sourceObject;
@@ -487,7 +481,13 @@
ResourceConfigType rc = (ResourceConfigType) iterator.next();
ResourceType rt = rc.getResource();
// find the first BeanPopulator resource config , this is the root.
- if (rt != null && BEANPOPULATOR.equals(rt.getValue())) {
+ String resourceClazz = null;
+ if (rt != null) {
+ resourceClazz = rt.getValue();
+ }
+ if (resourceClazz != null)
+ resourceClazz = resourceClazz.trim();
+ if (rt != null && BEANPOPULATOR.equals(resourceClazz)) {
String sourceName = source.getName();
Class sourceClazz = source.getBeanClass();
if (sourceClazz != null) {
@@ -551,9 +551,10 @@
if (childTargetModel == null) {
// TODO if can't find the child node , throw exception
// MODIFY by Dart 2008.11.07
- throw new RuntimeException("[JavaBeanAnalyzer]There isn't any child property
named \""
- + property + "\" of \"" + target.getName()
- + "\" JavaBean model");
+ throw new RuntimeException(
+ "[JavaBeanAnalyzer]There isn't any child property named \""
+ + property + "\" of \"" + target.getName()
+ + "\" JavaBean model");
}
if (isReferenceSelector(selector)) {
ResourceConfigType rc = this
@@ -590,25 +591,29 @@
String parentName = parentModel.getName();
Class clazz = parentModel.getBeanClass();
JavaBeanModel current = parentModel;
- if (clazz != null){
+ if (clazz != null) {
parentName = clazz.getName();
- }else{
+ } else {
// TODO if can't find the class, throw exception
// MODIFY by Dart 08.11.07
- throw new RuntimeException("[JavaBeanAnalyzer]JavaBean \"" +
parentModel.getName()+ "\" can't load its class.");
+ throw new RuntimeException("[JavaBeanAnalyzer]JavaBean \""
+ + parentModel.getName() + "\" can't load its class.");
}
if (s != null) {
for (int i = 0; i < s.length; i++) {
String childName = s[i];
if (childName.equals(parentName))
continue;
- JavaBeanModel child = findTheChildJavaBeanModel(childName, current);
- if (child == null){
+ JavaBeanModel child = findTheChildJavaBeanModel(childName,
+ current);
+ if (child == null) {
// TODO if can't find the child node , throw exception
// MODIFY by Dart 2008.11.07
- throw new RuntimeException("[JavaBeanAnalyzer]There isn't any child
property named \""
- + childName + "\" of \"" + parentModel.getName()
- + "\" JavaBean model");
+ throw new RuntimeException(
+ "[JavaBeanAnalyzer]There isn't any child property named \""
+ + childName + "\" of \""
+ + parentModel.getName()
+ + "\" JavaBean model");
}
current = child;
}
@@ -654,6 +659,8 @@
if (resourceType == null)
continue;
String resource = resourceType.getValue();
+ if (resource != null)
+ resource = resource.trim();
if (BEANPOPULATOR.equals(resource)) {
// create root beanmodel
rootClassName = rc.getSelector();
@@ -757,6 +764,8 @@
if (resourceType == null)
continue;
String resource = resourceType.getValue();
+ if (resource != null)
+ resource = resource.trim();
if (BEANPOPULATOR.equals(resource)) {
// create root beanmodel
current = rc;
@@ -835,6 +844,10 @@
JavaBeanModel model = this.findTheChildJavaBeanModel(property,
parentModel);
if (model == null) {
+ // TODO if the model can't be found , throw exception
+ if (true)
+ throw new RuntimeException("Can't find the \"" + property
+ + "\" from \"" + parentModel.getName() + "\"
model");
model = new JavaBeanModel(null, property);
parentModel.addProperty(model);
model.setError(Messages.getString("JavaBeanAnalyzer.DontExist"));
//$NON-NLS-1$
@@ -844,8 +857,14 @@
selector = selector.substring(2, selector.length() - 1);
ResourceConfigType resourceConfig = findResourceConfigTypeWithSelector(
selector, listType);
- model.setBeanClassString(SmooksModelUtils.getParmaText(
- SmooksModelUtils.BEAN_CLASS, resourceConfig));
+ if (resourceConfig == 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 beanClassText = SmooksModelUtils.getParmaText(
+ SmooksModelUtils.BEAN_CLASS, resourceConfig);
+ model.setBeanClassString(beanClassText);
if (resourceConfig != null) {
this.buildChildrenOfTargetInputModel(listType, model, false,
false, resourceConfig, classLoader);
@@ -914,6 +933,9 @@
protected void analyzeBindingSelector(String selector,
JavaBeanModel currentModel, SmooksResourceListType listType,
ClassLoader classLoader) {
+ if (selector != null) {
+ selector = selector.trim();
+ }
if (selector.startsWith(COMPLEX_PRIX_START)
&& selector.endsWith(COMPLEX_PRIX_END)) {
// should get the bean properties
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 2008-11-09
00:29:36 UTC (rev 11621)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2008-11-10
07:15:12 UTC (rev 11622)
@@ -24,16 +24,17 @@
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
import org.jboss.tools.smooks.analyzer.NormalSmooksModelBuilder;
import org.jboss.tools.smooks.analyzer.NormalSmooksModelPackage;
@@ -52,8 +53,10 @@
public class SmooksFormEditor extends FormEditor implements
ITabbedPropertySheetPageContributor {
- SmooksGraphicalFormPage graphicalPage = null;
+ private StructuredTextEditor xmlTextEditor;
+ private SmooksGraphicalFormPage graphicalPage = null;
+
public SmooksGraphicalFormPage getGraphicalPage() {
return graphicalPage;
}
@@ -92,25 +95,39 @@
return forceDirty || super.isDirty();
}
+ private void createGraphicalEditor() throws PartInitException {
+ graphicalPage = new SmooksGraphicalFormPage(this, "graph",
"Mapping");
+ int index = this.addPage(this.graphicalPage);
+ this.setPageText(index, "Graph");
+ }
+
+ private void createConfigurationEditor() throws PartInitException {
+ normalPage = new SmooksNormalContentEditFormPage(this, "configuration",
+ "Configuration", null);
+ int index = this.addPage(normalPage);
+ setPageText(index, "Configuration");
+ // Set a default NormalPacakge to Normal Page
+ MappingResourceConfigList mappingResourceConfig = graphicalPage
+ .getMappingResourceConfigList();
+ if (mappingResourceConfig != null) {
+ refreshNormalPage(mappingResourceConfig
+ .getRelationgResourceConfigList());
+ }
+ }
+
+ private void createXMLTextEditor() throws PartInitException {
+ this.xmlTextEditor = new StructuredTextEditor();
+ xmlTextEditor.setEditorPart(this);
+ int index = this.addPage(xmlTextEditor, getEditorInput());
+ this.setPageText(index, "Source");
+ }
+
@Override
protected void addPages() {
-
try {
- graphicalPage = new SmooksGraphicalFormPage(this, "graph",
- "Mapping");
- int index = this.addPage(this.graphicalPage);
- this.setPageText(index, "Graph");
- normalPage = new SmooksNormalContentEditFormPage(this,
- "configuration", "Configuration", null);
- index = this.addPage(normalPage);
- setPageText(index, "Configuration");
- // Set a default NormalPacakge to Normal Page
- MappingResourceConfigList mappingResourceConfig = graphicalPage
- .getMappingResourceConfigList();
- if (mappingResourceConfig != null) {
- refreshNormalPage(mappingResourceConfig
- .getRelationgResourceConfigList());
- }
+ createGraphicalEditor();
+ createConfigurationEditor();
+ createXMLTextEditor();
if (onlyShowTextEditor) {
removeGraphicalFormPage();
}
@@ -247,12 +264,25 @@
// TODO Auto-generated method stub
return false;
}
+
+ @Override
+ protected IEditorSite createSite(IEditorPart editor) {
+ return super.createSite(editor);
+ }
+
public Object getAdapter(Class adapter) {
- if (adapter == IPropertySheetPage.class) {
+ if(adapter == IPropertySheetPage.class){
+ System.out.println();
+ }
+ if (adapter == IPropertySheetPage.class && this.getActiveEditor() ==
graphicalPage) {
tabbedPropertySheetPage = new TabbedPropertySheetPage(this);
return tabbedPropertySheetPage;
}
+ if (adapter == IContentOutlinePage.class && this.getActiveEditor() ==
xmlTextEditor){
+ return super.getAdapter(adapter);
+ }else{
+ }
return super.getAdapter(adapter);
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java 2008-11-09
00:29:36 UTC (rev 11621)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java 2008-11-10
07:15:12 UTC (rev 11622)
@@ -54,7 +54,7 @@
*/
public class UIUtils {
- public static final String[] SELECTORE_SPLITER = new String[] { ":",
"\\",
+ public static final String[] SELECTORE_SPLITER = new String[] { "\\",
"/" };
public static FillLayout createFillLayout(int marginW, int marginH) {