JBoss Tools SVN: r19788 - in trunk/maven/plugins: org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: snjeza
Date: 2010-01-17 18:33:54 -0500 (Sun, 17 Jan 2010)
New Revision: 19788
Modified:
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/Messages.java
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDataModelProvider.java
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/messages.properties
trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/Messages.java
trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/project/facet/MavenFacetInstallPage.java
trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/messages.properties
Log:
https://jira.jboss.org/jira/browse/JBIDE-5656 Empty Artifact Id when Maven Integration is added before project name
Modified: trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java 2010-01-17 18:36:40 UTC (rev 19787)
+++ trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java 2010-01-17 23:33:54 UTC (rev 19788)
@@ -210,8 +210,8 @@
}
boolean hasMavenNature = MavenCoreActivator.addMavenNature(project, monitor);
-
- if (!hasMavenNature) {
+ boolean hasJavaNature = project.hasNature(JavaCore.NATURE_ID);
+ if (!hasMavenNature && hasJavaNature) {
IClasspathAttribute attribute = JavaCore.newClasspathAttribute(
MavenCoreActivator.OWNER_PROJECT_FACETS_ATTR,
IJBossMavenConstants.M2_FACET_ID);
@@ -240,11 +240,15 @@
description.setNatureIds(newNatures);
project.setDescription(description, monitor);
}
- IJavaProject javaProject = JavaCore.create(project);
- IClasspathContainer mavenContainer = BuildPathManager.getMaven2ClasspathContainer(javaProject);
- if (mavenContainer == null) {
- IPath path = new Path(BuildPathManager.CONTAINER_ID);
- setContainerPath(monitor, javaProject, path);
+ boolean hasJavaNature = project.hasNature(JavaCore.NATURE_ID);
+ if (hasJavaNature) {
+ IJavaProject javaProject = JavaCore.create(project);
+ IClasspathContainer mavenContainer = BuildPathManager
+ .getMaven2ClasspathContainer(javaProject);
+ if (mavenContainer == null) {
+ IPath path = new Path(BuildPathManager.CONTAINER_ID);
+ setContainerPath(monitor, javaProject, path);
+ }
}
return hasMavenNature;
}
Modified: trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/Messages.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/Messages.java 2010-01-17 18:36:40 UTC (rev 19787)
+++ trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/Messages.java 2010-01-17 23:33:54 UTC (rev 19788)
@@ -5,6 +5,11 @@
public class Messages extends NLS {
private static final String BUNDLE_NAME = "org.jboss.tools.maven.core.messages"; //$NON-NLS-1$
public static String MavenFacetInstallDelegate_Internal_Error_creating_JBoss_Maven_Facet;
+ public static String MavenFacetInstallPage_The_artifactId_field_is_required;
+ public static String MavenFacetInstallPage_The_groupId_field_is_required;
+ public static String MavenFacetInstallPage_The_packaging_field_is_required;
+ public static String MavenFacetInstallPage_The_version_field_is_required;
+
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
Modified: trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDataModelProvider.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDataModelProvider.java 2010-01-17 18:36:40 UTC (rev 19787)
+++ trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDataModelProvider.java 2010-01-17 23:33:54 UTC (rev 19788)
@@ -12,8 +12,11 @@
import java.util.Set;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.wst.common.componentcore.datamodel.FacetInstallDataModelProvider;
import org.jboss.tools.maven.core.IJBossMavenConstants;
+import org.jboss.tools.maven.core.MavenCoreActivator;
import org.jboss.tools.maven.core.Messages;
/**
@@ -73,4 +76,35 @@
return propertyNames;
}
+ @Override
+ public IStatus validate(String propertyName) {
+ IStatus status = OK_STATUS;
+ if(propertyName.equals(IJBossMavenConstants.GROUP_ID)){
+ String groupId = getStringProperty(IJBossMavenConstants.GROUP_ID);
+ if (groupId == null || groupId.trim().length() <= 0) {
+ status = new Status(IStatus.ERROR, MavenCoreActivator.PLUGIN_ID , Messages.MavenFacetInstallPage_The_groupId_field_is_required);
+ }
+ }
+ if(propertyName.equals(IJBossMavenConstants.ARTIFACT_ID)){
+ String groupId = getStringProperty(IJBossMavenConstants.ARTIFACT_ID);
+ if (groupId == null || groupId.trim().length() <= 0) {
+ status = new Status(IStatus.ERROR, MavenCoreActivator.PLUGIN_ID , Messages.MavenFacetInstallPage_The_artifactId_field_is_required);
+ }
+ }
+ if(propertyName.equals(IJBossMavenConstants.VERSION)){
+ String groupId = getStringProperty(IJBossMavenConstants.VERSION);
+ if (groupId == null || groupId.trim().length() <= 0) {
+ status = new Status(IStatus.ERROR, MavenCoreActivator.PLUGIN_ID , Messages.MavenFacetInstallPage_The_version_field_is_required);
+ }
+ }
+ if(propertyName.equals(IJBossMavenConstants.PACKAGING)){
+ String groupId = getStringProperty(IJBossMavenConstants.PACKAGING);
+ if (groupId == null || groupId.trim().length() <= 0) {
+ status = new Status(IStatus.ERROR, MavenCoreActivator.PLUGIN_ID , Messages.MavenFacetInstallPage_The_packaging_field_is_required);
+ }
+ }
+ return status;
+ }
+
+
}
Modified: trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/messages.properties
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/messages.properties 2010-01-17 18:36:40 UTC (rev 19787)
+++ trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/messages.properties 2010-01-17 23:33:54 UTC (rev 19788)
@@ -1 +1,6 @@
MavenFacetInstallDelegate_Internal_Error_creating_JBoss_Maven_Facet=Internal Error creating JBoss Maven Facet. Missing configuration
+MavenFacetInstallPage_The_artifactId_field_is_required=The artifactId field is required.
+MavenFacetInstallPage_The_groupId_field_is_required=The groupId field is required.
+MavenFacetInstallPage_The_packaging_field_is_required=The packaging field is required.
+MavenFacetInstallPage_The_version_field_is_required=The version field is required.
+
Modified: trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/Messages.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/Messages.java 2010-01-17 18:36:40 UTC (rev 19787)
+++ trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/Messages.java 2010-01-17 23:33:54 UTC (rev 19788)
@@ -14,10 +14,6 @@
public static String MavenFacetInstallPage_Packaging;
public static String MavenFacetInstallPage_Remove_WTP_Classpath_containers;
public static String MavenFacetInstallPage_Seam_Maven_version;
- public static String MavenFacetInstallPage_The_artifactId_field_is_required;
- public static String MavenFacetInstallPage_The_groupId_field_is_required;
- public static String MavenFacetInstallPage_The_packaging_field_is_required;
- public static String MavenFacetInstallPage_The_version_field_is_required;
public static String MavenFacetInstallPage_Version;
public static String MavenUserLibraryProviderInstallPanel_Add;
public static String MavenUserLibraryProviderInstallPanel_Are_you_sure_you_want_to_remove_the_artifact;
Modified: trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/project/facet/MavenFacetInstallPage.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/project/facet/MavenFacetInstallPage.java 2010-01-17 18:36:40 UTC (rev 19787)
+++ trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/project/facet/MavenFacetInstallPage.java 2010-01-17 23:33:54 UTC (rev 19788)
@@ -23,8 +23,10 @@
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelListener;
import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage;
import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
import org.eclipse.wst.common.project.facet.core.IProjectFacet;
@@ -172,25 +174,22 @@
description.setEditable(false);
packaging.setEnabled(false);
}
- validatePage();
+ getDataModel().addListener(new IDataModelListener() {
+
+ public void propertyChanged(DataModelEvent event) {
+ String propertyName = event.getPropertyName();
+ if (IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME.equals(propertyName)) {
+ String projectName = getDataModel().getStringProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME);
+ if (projectName != null) {
+ artifactId.setText(projectName);
+ }
+ }
+ }
+ });
+
return composite;
}
- @Override
- protected void validatePage() {
- setErrorMessage(null);
- if (groupId.getText().trim().length() <= 0) {
- setErrorMessage(Messages.MavenFacetInstallPage_The_groupId_field_is_required);
- } else if (artifactId.getText().trim().length() <= 0) {
- setErrorMessage(Messages.MavenFacetInstallPage_The_artifactId_field_is_required);
- } else if (version.getText().trim().length() <= 0) {
- setErrorMessage(Messages.MavenFacetInstallPage_The_version_field_is_required);
- } else if (packaging.getText().trim().length() <= 0) {
- setErrorMessage(Messages.MavenFacetInstallPage_The_packaging_field_is_required);
- }
-
- }
-
private Text createField(Composite composite, String labelText,String property) {
Label label = new Label(composite, SWT.NONE);
label.setText(labelText);
@@ -203,7 +202,10 @@
@Override
protected String[] getValidationPropertyNames() {
- return new String[0];
+ return new String[] { IJBossMavenConstants.GROUP_ID,
+ IJBossMavenConstants.ARTIFACT_ID,
+ IJBossMavenConstants.VERSION,
+ IJBossMavenConstants.PACKAGING };
}
public void setConfig(Object config) {
Modified: trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/messages.properties
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/messages.properties 2010-01-17 18:36:40 UTC (rev 19787)
+++ trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/messages.properties 2010-01-17 23:33:54 UTC (rev 19788)
@@ -8,13 +8,9 @@
MavenFacetInstallPage_Packaging=Packaging:
MavenFacetInstallPage_Remove_WTP_Classpath_containers=Remove WTP Classpath containers
MavenFacetInstallPage_Seam_Maven_version=Seam Maven version:
-MavenFacetInstallPage_The_artifactId_field_is_required=The artifactId field is required.
-MavenFacetInstallPage_The_groupId_field_is_required=The groupId field is required.
-MavenFacetInstallPage_The_packaging_field_is_required=The packaging field is required.
-MavenFacetInstallPage_The_version_field_is_required=The version field is required.
MavenFacetInstallPage_Version=Version:
MavenUserLibraryProviderInstallPanel_Add=Add
-MavenUserLibraryProviderInstallPanel_Are_you_sure_you_want_to_remove_the_artifact=Are you sure you want to remove the \'{0}\:{1} artifact?
+MavenUserLibraryProviderInstallPanel_Are_you_sure_you_want_to_remove_the_artifact=Are you sure you want to remove the '{0}\:{1} artifact?
MavenUserLibraryProviderInstallPanel_ArtifactId=ArtifactId
MavenUserLibraryProviderInstallPanel_Dependencies=Dependencies:
MavenUserLibraryProviderInstallPanel_Exclusions=Exclusions:
15 years, 11 months
JBoss Tools SVN: r19787 - in trunk/smooks/plugins: org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template and 6 other directories.
by jbosstools-commits@lists.jboss.org
Author: tfennelly
Date: 2010-01-17 13:36:40 -0500 (Sun, 17 Jan 2010)
New Revision: 19787
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XMLTemplateCreationWizardPage.java
Removed:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizardPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerXMLTemplateCreationWizardPage.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/ModelBuilder.java
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/AbstractFileSelectionWizardPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/Messages.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizard.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/messages.properties
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerAttrModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerModelAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateModelLabelProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateXMLModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/IFreemarkerTemplateModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/javamapping/JavaBeanChildGraphModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateContentGraphModelProviderImpl.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerTemplateGraphicalEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/TemplateWizardSelectionPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerXMLTemplateCreationWizard.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/messages.properties
Log:
https://jira.jboss.org/jira/browse/JBIDE-5245
Create FreeMarker Template builder for generating XML messages (from an XML Sample)
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/ModelBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/ModelBuilder.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/ModelBuilder.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -195,6 +195,12 @@
return Integer.parseInt(maxOccurs);
}
+
+ public static boolean isCollection(Element element) {
+ int maxOccurs = getMaxOccurs(element);
+
+ return (maxOccurs > 1 || maxOccurs == -1);
+ }
public static void setElementType(Element element, ElementType type) {
element.setAttributeNS(NAMESPACE, "smk:elementType", type.toString()); //$NON-NLS-1$
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -300,8 +300,7 @@
while (nextNode != null) {
if (nextNode.getNodeType() == Node.ELEMENT_NODE) {
- int maxOccurs = ModelBuilder.getMaxOccurs((Element) nextNode);
- if (maxOccurs > 1 || maxOccurs == -1) {
+ if(ModelBuilder.isCollection((Element) nextNode)) {
return (Element) nextNode;
}
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/AbstractFileSelectionWizardPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/AbstractFileSelectionWizardPage.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/AbstractFileSelectionWizardPage.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -436,7 +436,7 @@
String text = this.fileText.getText();
String error = null;
if (text == null || "".equals(text)) //$NON-NLS-1$
- error = "File's name can be null"; //$NON-NLS-1$
+ error = "File name cannot be null"; //$NON-NLS-1$
// File tempFile = new File(text);
// if(!tempFile.exists()){
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/Messages.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/Messages.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/Messages.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -6,12 +6,12 @@
private static final String BUNDLE_NAME = "org.jboss.tools.smooks.configuration.editors.xml.messages"; //$NON-NLS-1$
public static String XMLStructuredDataWizard_Window_Title;
public static String XSDStructuredDataWizard_WizardTitle;
- public static String XSDStructuredDataWizardPage_Button_Load;
- public static String XSDStructuredDataWizardPage_Error_Must_Click_Load;
- public static String XSDStructuredDataWizardPage_Error_Must_Select_Root;
- public static String XSDStructuredDataWizardPage_Label_Select_Root;
- public static String XSDStructuredDataWizardPage_page_description;
- public static String XSDStructuredDataWizardPage_Page_Title;
+ public static String XMLTemplateCreationWizardPage_Button_Load;
+ public static String XMLTemplateCreationWizardPage_Error_Must_Click_Load;
+ public static String XMLTemplateCreationWizardPage_Error_Must_Select_Root;
+ public static String XMLTemplateCreationWizardPage_Label_Select_Root;
+ public static String XMLTemplateCreationWizardPage_page_description;
+ public static String XMLTemplateCreationWizardPage_Page_Title;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
Copied: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XMLTemplateCreationWizardPage.java (from rev 19785, trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizardPage.java)
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XMLTemplateCreationWizardPage.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XMLTemplateCreationWizardPage.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -0,0 +1,361 @@
+/*******************************************************************************
+ * 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.configuration.editors.xml;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.swt.SWT;
+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.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
+import org.jboss.tools.smooks.templating.model.ModelBuilderException;
+import org.jboss.tools.smooks.templating.model.xml.XSDModelBuilder;
+import org.jboss.tools.smooks10.model.smooks.util.SmooksModelUtils;
+import org.xml.sax.SAXException;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class XMLTemplateCreationWizardPage extends AbstractFileSelectionWizardPage {
+
+ private Throwable parsingError = null;
+
+ protected Combo createFromDropdown = null;
+
+ protected CheckboxTableViewer tableViewer = null;
+ protected Label tableViewerLabel;
+
+ private boolean fireEvent = true;
+
+ private String rootElementName = null;
+
+ protected Button loadXSDButton;
+
+ private TemplateSourceType templateSourceType = TemplateSourceType.xsd;
+
+ public static enum TemplateSourceType {
+ // Template from XML Schema
+ xsd,
+ // Template from an XML Sample
+ xml
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.jboss.tools.smooks.configuration.editors.xml.
+ * AbstractFileSelectionWizardPage#loadedTheObject(java.lang.String)
+ */
+ @Override
+ protected Object loadedTheObject(String path) throws Exception {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public XMLTemplateCreationWizardPage(String pageName) {
+ super(pageName, new String[] { "xsd" }); //$NON-NLS-1$
+ this.setTitle(Messages.XMLTemplateCreationWizardPage_Page_Title);
+ this.setDescription(Messages.XMLTemplateCreationWizardPage_page_description);
+
+ this.templateSourceType = TemplateSourceType.xsd;
+ }
+
+ public TemplateSourceType getTemplateSourceType() {
+ return templateSourceType;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.jboss.tools.smooks.configuration.editors.xml.
+ * AbstractFileSelectionWizardPage#changeWizardPageStatus()
+ */
+ @Override
+ protected void changeWizardPageStatus() {
+ super.changeWizardPageStatus();
+ String errorMessage = this.getErrorMessage();
+ if (errorMessage == null && templateSourceType == TemplateSourceType.xsd) {
+
+ if (reasourceLoaded) {
+ if (tableViewer.getCheckedElements() == null || tableViewer.getCheckedElements().length == 0) {
+ errorMessage = Messages.XMLTemplateCreationWizardPage_Error_Must_Select_Root;
+ }
+ } else {
+ errorMessage = Messages.XMLTemplateCreationWizardPage_Error_Must_Click_Load;
+ }
+ if(parsingError != null){
+ errorMessage = parsingError.getLocalizedMessage();
+ }
+ setErrorMessage(errorMessage);
+ setPageComplete(errorMessage == null);
+ }
+ }
+
+ /**
+ * @return the rootElementName
+ */
+ public String getRootElementName() {
+ return rootElementName;
+ }
+
+ /**
+ * @param rootElementName
+ * the rootElementName to set
+ */
+ public void setRootElementName(String rootElementName) {
+ this.rootElementName = rootElementName;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.jboss.tools.smooks.configuration.editors.xml.
+ * AbstractFileSelectionWizardPage
+ * #createFilePathText(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected Text createFilePathText(Composite parent) {
+ fileTextComposite = new Composite(parent, SWT.NONE);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.grabExcessHorizontalSpace = true;
+ fileTextComposite.setLayoutData(gd);
+ GridLayout xsdtgl = new GridLayout();
+ xsdtgl.marginWidth = 0;
+ xsdtgl.marginHeight = 0;
+ xsdtgl.numColumns = 2;
+ fileTextComposite.setLayout(xsdtgl);
+
+ final Text fileText = new Text(fileTextComposite, SWT.BORDER);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ fileText.setLayoutData(gd);
+ fileText.addModifyListener(new ModifyListener() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.
+ * swt.events.ModifyEvent)
+ */
+ public void modifyText(ModifyEvent e) {
+ reasourceLoaded = false;
+ if (tableViewer != null) {
+ tableViewer.setInput(Collections.emptyList());
+ }
+ }
+
+ });
+ gd.grabExcessHorizontalSpace = true;
+
+ loadXSDButton = new Button(fileTextComposite, SWT.NONE);
+ loadXSDButton.setText(Messages.XMLTemplateCreationWizardPage_Button_Load);
+ loadXSDButton.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ super.widgetSelected(e);
+ parsingError = null;
+ reasourceLoaded = false;
+ if (fileText.getText() == null || fileText.getText().length() == 0) {
+ changeWizardPageStatus();
+ return;
+ }
+
+ List<String> list;
+ try {
+ list = loadElement(fileText.getText());
+ if (list == null || list.isEmpty()) {
+ setErrorMessage("Can't get the elements in the XSD file.");
+ } else {
+ tableViewer.setInput(list);
+ reasourceLoaded = true;
+ }
+ } catch (InvocationTargetException e1) {
+ parsingError = e1.getTargetException();
+ while(parsingError instanceof InvocationTargetException){
+ parsingError = ((InvocationTargetException)parsingError).getTargetException();
+ }
+ } catch (IOException e1) {
+ parsingError = e1;
+ } catch (ModelBuilderException e1) {
+ parsingError = e1;
+ }
+ changeWizardPageStatus();
+ }
+
+ });
+ return fileText;
+ }
+
+ private List<String> loadElement(String path) throws InvocationTargetException, IOException, ModelBuilderException {
+ List<String> elements = new ArrayList<String>();
+ if (path == null)
+ return null;
+ String pp = path.toLowerCase();
+ if (pp.endsWith(".wsdl")) { //$NON-NLS-1$
+ try {
+ List<XSDElementDeclaration> xsdDec = WSDLObjectAnalyzer.loadAllElement(path);
+ for (Iterator<?> iterator = xsdDec.iterator(); iterator.hasNext();) {
+ XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) iterator.next();
+ elements.add(xsdElementDeclaration.getAliasName());
+ }
+ } catch (ParserConfigurationException e) {
+ throw new InvocationTargetException(e);
+ } catch (SAXException e) {
+ throw new InvocationTargetException(e);
+ }
+ }
+ String file = null;
+ file = SmooksUIUtils.parseFilePath(path);
+ XSDModelBuilder xsdModelBuilder = new XSDModelBuilder(URI.createFileURI(file));
+ Set<String> elementNames = xsdModelBuilder.getRootElementNames();
+ Iterator<String> it = elementNames.iterator();
+ while (it.hasNext()) {
+ String name = it.next();
+ elements.add(name);
+ }
+ return elements;
+ }
+
+ public void createControl(Composite parent) {
+ Composite mainComposite = new Composite(parent, SWT.NONE);
+ GridLayout gl = new GridLayout();
+ mainComposite.setLayout(gl);
+ GridData gd = new GridData(GridData.FILL_BOTH);
+ mainComposite.setLayoutData(gd);
+
+ Label fileTypeLabel = new Label(mainComposite, SWT.NONE);
+ fileTypeLabel.setText("Create Template From:");
+
+ createFromDropdown = new Combo(mainComposite, SWT.READ_ONLY | SWT.BORDER);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ initCombo(createFromDropdown);
+ createFromDropdown.setLayoutData(gd);
+ createFromDropdown.select(0);
+
+ createFromDropdown.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ updateTemplateSourceType();
+ }
+ });
+
+ Label separator = new Label(mainComposite, SWT.SEPARATOR | SWT.HORIZONTAL);
+ separator.setLayoutData(gd);
+
+ super.createControl(mainComposite);
+
+ mainComposite = (Composite) getControl();
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ tableViewerLabel = new Label(mainComposite, SWT.NONE);
+ tableViewerLabel.setLayoutData(gd);
+ tableViewerLabel.setText(Messages.XMLTemplateCreationWizardPage_Label_Select_Root);
+ tableViewer = CheckboxTableViewer.newCheckList(mainComposite, SWT.BORDER);
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.heightHint = 250;
+ tableViewer.getControl().setLayoutData(gd);
+
+ tableViewer.setContentProvider(new XSDListContentProvider());
+ tableViewer.setLabelProvider(new XSDListLabelProvider());
+ tableViewer.addCheckStateListener(new ICheckStateListener() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged
+ * (org.eclipse.jface.viewers.CheckStateChangedEvent)
+ */
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ if (!fireEvent)
+ return;
+ rootElementName = null;
+ fireEvent = false;
+ tableViewer.setAllChecked(false);
+ if (event.getChecked()) {
+ tableViewer.setChecked(event.getElement(), true);
+ Object checkElement = event.getElement();
+ if (checkElement instanceof String) {
+ rootElementName = (String) checkElement;
+ }
+ }
+ fireEvent = true;
+ changeWizardPageStatus();
+ }
+
+ });
+
+ this.setControl(mainComposite);
+ }
+
+ public Combo getCombo() {
+ return createFromDropdown;
+ }
+
+ protected void updateTemplateSourceType() {
+ switch (createFromDropdown.getSelectionIndex()) {
+ case 0 :
+ templateSourceType = TemplateSourceType.xsd;
+ break;
+ case 1 :
+ templateSourceType = TemplateSourceType.xml;
+ break;
+ default :
+ throw new IllegalStateException("Unexpected XML Template source selection. Code must be updated to accomodate new source type.");
+ }
+
+ // Table should only be visible for XSD template sources...
+ tableViewer.getTable().setVisible(templateSourceType == TemplateSourceType.xsd);
+ tableViewerLabel.setVisible(templateSourceType == TemplateSourceType.xsd);
+ loadXSDButton.setEnabled(templateSourceType == TemplateSourceType.xsd);
+
+ // Reset the file browse filter...
+ setFileExtensionNames(new String[] {templateSourceType.toString()});
+ }
+
+ private void initCombo(Combo combo2) {
+ combo2.add("XSD");
+ combo2.add("Sample XML");
+ }
+
+ public String getInputType(){
+ if(createFromDropdown.getSelectionIndex() == 0){
+ return SmooksModelUtils.KEY_XML_FILE_TYPE_XSD;
+ }
+ if(createFromDropdown.getSelectionIndex() == 1){
+ return SmooksModelUtils.KEY_XML_FILE_TYPE_XML;
+ }
+ return null;
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XMLTemplateCreationWizardPage.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizard.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizard.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizard.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -33,7 +33,7 @@
@Override
protected AbstractFileSelectionWizardPage createAbstractFileSelectionWizardPage() {
// TODO Auto-generated method stub
- return new XSDStructuredDataWizardPage("XSD"); //$NON-NLS-1$
+ return new XMLTemplateCreationWizardPage("XSD"); //$NON-NLS-1$
}
/* (non-Javadoc)
@@ -48,7 +48,7 @@
*/
public Properties getProperties() {
Properties pro = new Properties();
- pro.setProperty("rootElement", ((XSDStructuredDataWizardPage)page).getRootElementName()); //$NON-NLS-1$
+ pro.setProperty("rootElement", ((XMLTemplateCreationWizardPage)page).getRootElementName()); //$NON-NLS-1$
return pro;
}
Deleted: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizardPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizardPage.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/XSDStructuredDataWizardPage.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -1,283 +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.configuration.editors.xml;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-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.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
-import org.jboss.tools.smooks.templating.model.ModelBuilderException;
-import org.jboss.tools.smooks.templating.model.xml.XSDModelBuilder;
-import org.xml.sax.SAXException;
-
-/**
- * @author Dart (dpeng(a)redhat.com)
- *
- */
-public class XSDStructuredDataWizardPage extends AbstractFileSelectionWizardPage {
-
- private Throwable parsingError = null;
-
- protected CheckboxTableViewer tableViewer = null;
-
- private boolean fireEvent = true;
-
- private String rootElementName = null;
-
- protected Button loadXSDButton;
-
- /*
- * (non-Javadoc)
- *
- * @seeorg.jboss.tools.smooks.configuration.editors.xml.
- * AbstractFileSelectionWizardPage#loadedTheObject(java.lang.String)
- */
- @Override
- protected Object loadedTheObject(String path) throws Exception {
- // TODO Auto-generated method stub
- return null;
- }
-
- public XSDStructuredDataWizardPage(String pageName, boolean multiSelect, Object[] initSelections,
- List<ViewerFilter> filters) {
- super(pageName, multiSelect, initSelections, filters);
- this.setTitle(Messages.XSDStructuredDataWizardPage_Page_Title);
- this.setDescription(Messages.XSDStructuredDataWizardPage_page_description);
- }
-
- public XSDStructuredDataWizardPage(String pageName) {
- super(pageName, new String[] { "xsd", "wsdl" }); //$NON-NLS-1$ //$NON-NLS-2$
- this.setTitle(Messages.XSDStructuredDataWizardPage_Page_Title);
- this.setDescription(Messages.XSDStructuredDataWizardPage_page_description);
- }
-
- /*
- * (non-Javadoc)
- *
- * @seeorg.jboss.tools.smooks.configuration.editors.xml.
- * AbstractFileSelectionWizardPage#changeWizardPageStatus()
- */
- @Override
- protected void changeWizardPageStatus() {
- super.changeWizardPageStatus();
- String errorMessage = this.getErrorMessage();
- if (errorMessage == null) {
-
- if (reasourceLoaded) {
- if (tableViewer.getCheckedElements() == null || tableViewer.getCheckedElements().length == 0) {
- errorMessage = Messages.XSDStructuredDataWizardPage_Error_Must_Select_Root;
- }
- } else {
- errorMessage = Messages.XSDStructuredDataWizardPage_Error_Must_Click_Load;
- }
- if(parsingError != null){
- errorMessage = parsingError.getLocalizedMessage();
- }
- setErrorMessage(errorMessage);
- setPageComplete(errorMessage == null);
- }
- }
-
- /**
- * @return the rootElementName
- */
- public String getRootElementName() {
- return rootElementName;
- }
-
- /**
- * @param rootElementName
- * the rootElementName to set
- */
- public void setRootElementName(String rootElementName) {
- this.rootElementName = rootElementName;
- }
-
- /*
- * (non-Javadoc)
- *
- * @seeorg.jboss.tools.smooks.configuration.editors.xml.
- * AbstractFileSelectionWizardPage
- * #createFilePathText(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected Text createFilePathText(Composite parent) {
- fileTextComposite = new Composite(parent, SWT.NONE);
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.grabExcessHorizontalSpace = true;
- fileTextComposite.setLayoutData(gd);
- GridLayout xsdtgl = new GridLayout();
- xsdtgl.marginWidth = 0;
- xsdtgl.marginHeight = 0;
- xsdtgl.numColumns = 2;
- fileTextComposite.setLayout(xsdtgl);
-
- final Text fileText = new Text(fileTextComposite, SWT.BORDER);
- gd = new GridData(GridData.FILL_HORIZONTAL);
- fileText.setLayoutData(gd);
- fileText.addModifyListener(new ModifyListener() {
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.
- * swt.events.ModifyEvent)
- */
- public void modifyText(ModifyEvent e) {
- reasourceLoaded = false;
- if (tableViewer != null) {
- tableViewer.setInput(Collections.emptyList());
- }
- }
-
- });
- gd.grabExcessHorizontalSpace = true;
-
- loadXSDButton = new Button(fileTextComposite, SWT.NONE);
- loadXSDButton.setText(Messages.XSDStructuredDataWizardPage_Button_Load);
- loadXSDButton.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- super.widgetSelected(e);
- parsingError = null;
- reasourceLoaded = false;
- if (fileText.getText() == null || fileText.getText().length() == 0) {
- changeWizardPageStatus();
- return;
- }
-
- List<String> list;
- try {
- list = loadElement(fileText.getText());
- if (list == null || list.isEmpty()) {
- setErrorMessage("Can't get the elements in the XSD file.");
- } else {
- tableViewer.setInput(list);
- reasourceLoaded = true;
- }
- } catch (InvocationTargetException e1) {
- parsingError = e1.getTargetException();
- while(parsingError instanceof InvocationTargetException){
- parsingError = ((InvocationTargetException)parsingError).getTargetException();
- }
- } catch (IOException e1) {
- parsingError = e1;
- } catch (ModelBuilderException e1) {
- parsingError = e1;
- }
- changeWizardPageStatus();
- }
-
- });
- return fileText;
- }
-
- private List<String> loadElement(String path) throws InvocationTargetException, IOException, ModelBuilderException {
- List<String> elements = new ArrayList<String>();
- if (path == null)
- return null;
- String pp = path.toLowerCase();
- if (pp.endsWith(".wsdl")) { //$NON-NLS-1$
- try {
- List<XSDElementDeclaration> xsdDec = WSDLObjectAnalyzer.loadAllElement(path);
- for (Iterator<?> iterator = xsdDec.iterator(); iterator.hasNext();) {
- XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) iterator.next();
- elements.add(xsdElementDeclaration.getAliasName());
- }
- } catch (ParserConfigurationException e) {
- throw new InvocationTargetException(e);
- } catch (SAXException e) {
- throw new InvocationTargetException(e);
- }
- }
- String file = null;
- file = SmooksUIUtils.parseFilePath(path);
- XSDModelBuilder xsdModelBuilder = new XSDModelBuilder(URI.createFileURI(file));
- Set<String> elementNames = xsdModelBuilder.getRootElementNames();
- Iterator<String> it = elementNames.iterator();
- while (it.hasNext()) {
- String name = it.next();
- elements.add(name);
- }
- return elements;
- }
-
- public void createControl(Composite parent) {
- super.createControl(parent);
- Composite mainComposite = (Composite) getControl();
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- Label label = new Label(mainComposite, SWT.NONE);
- label.setLayoutData(gd);
- label.setText(Messages.XSDStructuredDataWizardPage_Label_Select_Root);
- tableViewer = CheckboxTableViewer.newCheckList(mainComposite, SWT.BORDER);
- gd = new GridData(GridData.FILL_BOTH);
- gd.heightHint = 250;
- tableViewer.getControl().setLayoutData(gd);
-
- tableViewer.setContentProvider(new XSDListContentProvider());
- tableViewer.setLabelProvider(new XSDListLabelProvider());
- tableViewer.addCheckStateListener(new ICheckStateListener() {
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged
- * (org.eclipse.jface.viewers.CheckStateChangedEvent)
- */
- public void checkStateChanged(CheckStateChangedEvent event) {
- if (!fireEvent)
- return;
- rootElementName = null;
- fireEvent = false;
- tableViewer.setAllChecked(false);
- if (event.getChecked()) {
- tableViewer.setChecked(event.getElement(), true);
- Object checkElement = event.getElement();
- if (checkElement instanceof String) {
- rootElementName = (String) checkElement;
- }
- }
- fireEvent = true;
- changeWizardPageStatus();
- }
-
- });
-
- }
-
-}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/messages.properties
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/messages.properties 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/xml/messages.properties 2010-01-17 18:36:40 UTC (rev 19787)
@@ -1,8 +1,8 @@
XMLStructuredDataWizard_Window_Title=XML File Input Data Wizard
-XSDStructuredDataWizard_WizardTitle=XSD/WSDL Input Data Wizard
-XSDStructuredDataWizardPage_Button_Load=Load
-XSDStructuredDataWizardPage_Error_Must_Click_Load=The elements of XSD file should click the 'Load' button to load.
-XSDStructuredDataWizardPage_Error_Must_Select_Root=Must select a root element.
-XSDStructuredDataWizardPage_Label_Select_Root=Select root element
-XSDStructuredDataWizardPage_page_description=Select a XSD file to be the input data
-XSDStructuredDataWizardPage_Page_Title=XSD Input Data Selection
+XSDStructuredDataWizard_WizardTitle=Apply XML Template
+XMLTemplateCreationWizardPage_Button_Load=Load
+XMLTemplateCreationWizardPage_Error_Must_Click_Load=Press 'Load' button to load XSD root element names.
+XMLTemplateCreationWizardPage_Error_Must_Select_Root=Must select a root element.
+XMLTemplateCreationWizardPage_Label_Select_Root=Select root element
+XMLTemplateCreationWizardPage_page_description=Select template generation source
+XMLTemplateCreationWizardPage_Page_Title=Apply XML Template
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerAttrModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerAttrModel.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerAttrModel.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -15,6 +15,7 @@
import org.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject;
import org.jboss.tools.smooks.configuration.editors.xml.TagPropertyObject;
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
import org.jboss.tools.smooks.templating.template.Mapping;
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
import org.w3c.dom.Attr;
@@ -45,13 +46,7 @@
public boolean isRequired() {
Attr element = this.getReferenceAttibute();
if (element != null) {
- String value = element.getValue();
- if (value != null) {
- value = value.trim();
- }
- if (FreemarkerModelAnalyzer.REQUIRED.equals(value)) {
- return true;
- }
+ return ModelBuilder.isRequired(element);
}
return false;
}
@@ -79,4 +74,7 @@
return false;
}
+ public Node getModelNode() {
+ return getReferenceAttibute();
+ }
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerModelAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerModelAnalyzer.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerModelAnalyzer.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -24,6 +24,7 @@
import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
import org.jboss.tools.smooks.configuration.editors.xml.TagPropertyObject;
import org.jboss.tools.smooks.configuration.editors.xml.XMLUtils;
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -38,22 +39,6 @@
*/
public class FreemarkerModelAnalyzer {
- public static final String SPECIAL_ELEMENT_UIR = "http://www.jboss.org/xsd/tools/smooks";
-
- private static final String[] SPECIAL_ELEMENT_NAMES = new String[] { "compositor" };
-
- public static final String MAXOCCURS = "maxOccurs";
-
- public static final String TYPE = "type";
-
- public static final String HIDDEN = "hidden";
-
- public static final String MINOCCURS = "minOccurs";
-
- public static final String REQUIRED = "#required";
-
- private static final String[] SPECIAL_ATTR_NAMES = new String[] { MAXOCCURS, MINOCCURS, "elementType", TYPE ,HIDDEN };
-
public TagList analyze(String xmlFilePath, String[] ignoreNodeNames,
Class<? extends AbstractXMLObject> tagObjectClass) throws ParserConfigurationException, SAXException,
IOException {
@@ -135,7 +120,7 @@
if (element != null) {
Node parentNode = element.getParentNode();
if (parentNode instanceof Element) {
- if (isCompositorElement((Element) parentNode)) {
+ if (ModelBuilder.isCompositor(parentNode)) {
return true;
}
}
@@ -143,32 +128,13 @@
return false;
}
- public static boolean isCompositorElement(Element element) {
- if (element != null) {
- String uri = element.getNamespaceURI();
- String name = element.getLocalName();
- if (name == null) {
- name = element.getNodeName();
- }
- if (SPECIAL_ELEMENT_UIR.equals(uri)) {
- for (int i = 0; i < SPECIAL_ELEMENT_NAMES.length; i++) {
- String sen = SPECIAL_ELEMENT_NAMES[i];
- if(sen.equals(name)){
- return true;
- }
- }
- }
- }
- return false;
- }
-
protected TagObject parseElement(Element element, TagObject parentTag, String[] ignoreNodeNames,
Class<? extends AbstractXMLObject> tagObjectClass) {
if (isIgnoreNode(element, ignoreNodeNames))
return null;
boolean canAdd = false;
TagObject tag = null;
- if (isCompositorElement(element)) {
+ if (ModelBuilder.isCompositor(element)) {
tag = parentTag;
} else {
tag = getChildTagByName(element.getNodeName(), parentTag, ignoreNodeNames);
@@ -227,15 +193,6 @@
return false;
}
- private boolean isSpecailPropertyName(String attrName) {
- for (int i = 0; i < SPECIAL_ATTR_NAMES.length; i++) {
- String name = SPECIAL_ATTR_NAMES[i];
- if (name.equals(attrName))
- return true;
- }
- return false;
- }
-
protected void fillProperties(Element element, TagObject tag, String[] ignoreNodeNames) {
NamedNodeMap attrMap = element.getAttributes();
@@ -249,13 +206,12 @@
if (localName == null) {
localName = name;
}
- String value = attr.getValue();
- String uri = attr.getNamespaceURI();
- if (SPECIAL_ELEMENT_UIR.equals(uri)) {
- if (isSpecailPropertyName(localName)) {
- continue;
- }
+
+ if(ModelBuilder.isInReservedNamespace(attr)) {
+ continue;
}
+
+ String value = attr.getValue();
if (isIgnoreNode(localName, ignoreNodeNames))
continue;
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateModelLabelProvider.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateModelLabelProvider.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateModelLabelProvider.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -15,7 +15,9 @@
import org.jboss.tools.smooks.configuration.SmooksConfigurationActivator;
import org.jboss.tools.smooks.configuration.editors.GraphicsConstants;
import org.jboss.tools.smooks.configuration.editors.xml.XMLStructuredDataLabelProvider;
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
/**
* @author Dart
@@ -37,8 +39,11 @@
if (FreemarkerModelAnalyzer.isChoiceElement(e)) {
return imageRegistry.get(GraphicsConstants.IMAGE_XSL_SORT);
}
+ Node modelNode = ((FreemarkerTemplateXMLModel) element).getModelNode();
if (((FreemarkerTemplateXMLModel) element).isManyOccurs()) {
- return imageRegistry.get(GraphicsConstants.IMAGE_XSL_FOREACH);
+ if(modelNode instanceof Element && ModelBuilder.getEnforceCollectionSubMappingRules((Element) modelNode)) {
+ return imageRegistry.get(GraphicsConstants.IMAGE_XSL_FOREACH);
+ }
}
}
return super.getImage(element);
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateXMLModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateXMLModel.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/FreemarkerTemplateXMLModel.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -17,11 +17,10 @@
import org.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject;
import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
import org.jboss.tools.smooks.configuration.editors.xml.TagPropertyObject;
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
import org.jboss.tools.smooks.templating.template.Mapping;
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
-import org.w3c.dom.Attr;
import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
/**
@@ -67,29 +66,7 @@
return false;
}
if (element != null) {
- NamedNodeMap nodeMap = element.getAttributes();
- for (int i = 0; i < nodeMap.getLength(); i++) {
- Attr attr = (Attr) nodeMap.item(i);
- if (attr != null) {
- if (FreemarkerModelAnalyzer.SPECIAL_ELEMENT_UIR.equals(attr.getNamespaceURI())) {
- String name = attr.getLocalName();
- if (name == null) {
- name = attr.getNodeName();
- }
- if (FreemarkerModelAnalyzer.MINOCCURS.equals(name)) {
- String value = attr.getValue();
- try {
- int intValue = Integer.parseInt(value);
- if (intValue > 0) {
- return true;
- }
- } catch (Exception e) {
- return false;
- }
- }
- }
- }
- }
+ return ModelBuilder.isRequired(element);
}
return false;
}
@@ -97,29 +74,7 @@
public boolean isManyOccurs() {
Element refElement = this.getReferenceElement();
if (refElement != null) {
- NamedNodeMap nodeMap = refElement.getAttributes();
- for (int i = 0; i < nodeMap.getLength(); i++) {
- Attr attr = (Attr) nodeMap.item(i);
- if (attr != null) {
- if (FreemarkerModelAnalyzer.SPECIAL_ELEMENT_UIR.equals(attr.getNamespaceURI())) {
- String name = attr.getLocalName();
- if (name == null) {
- name = attr.getNodeName();
- }
- if (FreemarkerModelAnalyzer.MAXOCCURS.equals(name)) {
- String value = attr.getValue();
- try {
- int intValue = Integer.parseInt(value);
- if (intValue == -1 || intValue > 1) {
- return true;
- }
- } catch (Exception e) {
- return false;
- }
- }
- }
- }
- }
+ return ModelBuilder.isCollection(refElement);
}
return false;
}
@@ -192,6 +147,10 @@
// }
// return false;
}
+
+ public Node getModelNode() {
+ return getReferenceElement();
+ }
private FreemarkerTemplateXMLModel localBrotherModel(Node refNode) {
AbstractXMLObject parent = this.getParent();
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/IFreemarkerTemplateModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/IFreemarkerTemplateModel.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/freemarker/IFreemarkerTemplateModel.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -11,6 +11,7 @@
package org.jboss.tools.smooks.graphical.editors.model.freemarker;
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
+import org.w3c.dom.Node;
/**
* @author Dart
@@ -19,5 +20,6 @@
public interface IFreemarkerTemplateModel {
public boolean isRequired();
public boolean isManyOccurs();
+ public Node getModelNode();
public boolean isHidden(TemplateBuilder builder);
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/javamapping/JavaBeanChildGraphModel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/javamapping/JavaBeanChildGraphModel.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/javamapping/JavaBeanChildGraphModel.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -34,7 +34,10 @@
import org.jboss.tools.smooks.graphical.editors.model.freemarker.IFreemarkerTemplateModel;
import org.jboss.tools.smooks.graphical.editors.template.SmooksFreemarkerTemplateGraphicalEditor;
import org.jboss.tools.smooks.model.javabean12.ValueType;
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
/**
* @author Dart
@@ -149,8 +152,14 @@
while (pgm != null && pgm instanceof FreemarkerTemplateNodeGraphicalModel) {
Object pd = ((FreemarkerTemplateNodeGraphicalModel) pgm).getData();
if (pd instanceof IFreemarkerTemplateModel) {
- if (((IFreemarkerTemplateModel) pd).isManyOccurs() && pgm.getTargetConnections().isEmpty()) {
- return false;
+ IFreemarkerTemplateModel iFreemarkerTemplateModel = (IFreemarkerTemplateModel) pd;
+ if (iFreemarkerTemplateModel.isManyOccurs() && pgm.getTargetConnections().isEmpty()) {
+ Node modelNode = iFreemarkerTemplateModel.getModelNode();
+ if(modelNode instanceof Element) {
+ return !ModelBuilder.getEnforceCollectionSubMappingRules((Element) modelNode);
+ } else {
+ return false;
+ }
}
}
pgm = pgm.getParent();
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateContentGraphModelProviderImpl.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateContentGraphModelProviderImpl.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateContentGraphModelProviderImpl.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -33,8 +33,10 @@
import org.jboss.tools.smooks.graphical.editors.model.freemarker.FreemarkerTemplateXMLModel;
import org.jboss.tools.smooks.graphical.editors.model.freemarker.FreemarkerXMLNodeGraphicalModel;
import org.jboss.tools.smooks.model.freemarker.Freemarker;
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
import org.jboss.tools.smooks.templating.model.ModelBuilderException;
import org.jboss.tools.smooks.templating.model.csv.CSVModelBuilder;
+import org.jboss.tools.smooks.templating.model.xml.XMLSampleModelBuilder;
import org.jboss.tools.smooks.templating.model.xml.XSDModelBuilder;
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
import org.jboss.tools.smooks.templating.template.csv.CSVFreeMarkerTemplateBuilder;
@@ -144,16 +146,23 @@
String fileType = SmooksModelUtils.getFreemarkerXMLFileType(freemarker);
String filePath = SmooksModelUtils.getFreemarkerXMLFilePath(freemarker);
String rootName = SmooksModelUtils.getFreemarkerXMLRootName(freemarker);
+ String newFilePath = SmooksUIUtils.parseFilePath(filePath);
+ ModelBuilder builder;
+
if (SmooksModelUtils.KEY_XML_FILE_TYPE_XSD.equals(fileType)) {
- String newFilePath = SmooksUIUtils.parseFilePath(filePath);
- XSDModelBuilder builder = new XSDModelBuilder(URI.createFileURI(newFilePath));
- builder.setRootElementName(rootName);
- try {
- templateBuilder = new XMLFreeMarkerTemplateBuilder(builder, contents);
- } catch (Exception e) {
- templateBuilder = new XMLFreeMarkerTemplateBuilder(builder);
- }
+ builder = new XSDModelBuilder(URI.createFileURI(newFilePath));
+ ((XSDModelBuilder)builder).setRootElementName(rootName);
+ } else if (SmooksModelUtils.KEY_XML_FILE_TYPE_XML.equals(fileType)) {
+ builder = new XMLSampleModelBuilder(URI.createFileURI(newFilePath));
+ } else {
+ throw new IOException("Unable to process XML template type '" + fileType + "'.");
}
+
+ try {
+ templateBuilder = new XMLFreeMarkerTemplateBuilder(builder, contents);
+ } catch (Exception e) {
+ templateBuilder = new XMLFreeMarkerTemplateBuilder(builder);
+ }
}
}
return templateBuilder;
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerTemplateGraphicalEditor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerTemplateGraphicalEditor.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerTemplateGraphicalEditor.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -29,8 +29,11 @@
import org.jboss.tools.smooks.graphical.editors.model.freemarker.FreemarkerTemplateGraphicalModel;
import org.jboss.tools.smooks.graphical.editors.model.freemarker.IFreemarkerTemplateModel;
import org.jboss.tools.smooks.model.freemarker.Freemarker;
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
import org.jboss.tools.smooks.templating.template.TemplateBuilder;
import org.jboss.tools.smooks10.model.smooks.util.SmooksModelUtils;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
/**
* @author Dart
@@ -93,18 +96,18 @@
Object data = abstractSmooksGraphicalModel.getData();
if (data instanceof IFreemarkerTemplateModel) {
AbstractSmooksGraphicalModel requiredCollectionLinkParent = parentIsRequriedCollectionNode(abstractSmooksGraphicalModel);
- if (requiredCollectionLinkParent != null) {
+ if (requiredCollectionLinkParent != null && enforceCollectionSubMappingRules(abstractSmooksGraphicalModel)) {
AbstractXMLObject parentNode = (AbstractXMLObject) requiredCollectionLinkParent.getData();
abstractSmooksGraphicalModel.addMessage("Its parent node '" + parentNode.getName()
+ "' should be connected first.");
abstractSmooksGraphicalModel.setSeverity(IValidatableModel.ERROR);
}
if (isRequiredNode(abstractSmooksGraphicalModel)) {
- abstractSmooksGraphicalModel.addMessage("This node must be linked with source node");
+ abstractSmooksGraphicalModel.addMessage("This node must be linked to a Source data node");
abstractSmooksGraphicalModel.setSeverity(IValidatableModel.ERROR);
}
if (isRequiredCollectionNode(abstractSmooksGraphicalModel)) {
- abstractSmooksGraphicalModel.addMessage("This node must be linked with collection java node");
+ abstractSmooksGraphicalModel.addMessage("This node must be linked to a Source Collection node");
abstractSmooksGraphicalModel.setSeverity(IValidatableModel.ERROR);
}
}
@@ -148,13 +151,24 @@
if (data instanceof IFreemarkerTemplateModel) {
if (((IFreemarkerTemplateModel) data).isManyOccurs()) {
if (abstractSmooksGraphicalModel.getTargetConnections().isEmpty()) {
- return true;
+ return enforceCollectionSubMappingRules(abstractSmooksGraphicalModel);
}
}
}
return false;
}
+ public static boolean enforceCollectionSubMappingRules(AbstractSmooksGraphicalModel abstractSmooksGraphicalModel) {
+ Object data = abstractSmooksGraphicalModel.getData();
+ if (data instanceof IFreemarkerTemplateModel) {
+ Node modelNode = ((IFreemarkerTemplateModel) data).getModelNode();
+ if(modelNode instanceof Element) {
+ return ModelBuilder.getEnforceCollectionSubMappingRules((Element) modelNode);
+ }
+ }
+ return true;
+ }
+
/*
* (non-Javadoc)
*
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/TemplateWizardSelectionPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/TemplateWizardSelectionPage.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/TemplateWizardSelectionPage.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -113,8 +113,8 @@
}
private void initInputTypeCombo(Combo combo) {
- for (Iterator<?> iterator = this.registedWizard.iterator(); iterator.hasNext();) {
- TemplateMessageTypeWizardNode type = (TemplateMessageTypeWizardNode) iterator.next();
+ for(int i = 0; i < registedWizard.size(); i++) {
+ TemplateMessageTypeWizardNode type = registedWizard.get(i);
combo.add(type.getName());
}
}
@@ -142,18 +142,17 @@
super(pageName);
setDescription("Choose \"Message Type\" ."); //$NON-NLS-1$
setTitle("Message Type Selection"); //$NON-NLS-1$
+
TemplateMessageTypeWizardNode csvTypeNode = new TemplateMessageTypeWizardNode();
csvTypeNode.setName(Messages.TemplateWizardSelectionPage_CSV_Node);
-// node.setDescription("CSV");
csvTypeNode.setWizard(new FreemarkerCSVTemplateCreationWizard());
- registedWizard.add(csvTypeNode);
TemplateMessageTypeWizardNode xmlTypeNode = new TemplateMessageTypeWizardNode();
xmlTypeNode.setName(Messages.TemplateWizardSelectionPage_XML_Node);
-// node.setDescription("CSV");
xmlTypeNode.setWizard(new FreemarkerXMLTemplateCreationWizard());
registedWizard.add(xmlTypeNode);
+ registedWizard.add(csvTypeNode);
}
public void activeSelectionWizard() {
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerXMLTemplateCreationWizard.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerXMLTemplateCreationWizard.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerXMLTemplateCreationWizard.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.smooks.graphical.wizard.freemarker;
+import org.jboss.tools.smooks.configuration.editors.xml.XMLTemplateCreationWizardPage;
import org.jboss.tools.smooks10.model.smooks.util.SmooksModelUtils;
/**
@@ -18,7 +19,7 @@
*/
public class FreemarkerXMLTemplateCreationWizard extends AbstractFreemarkerTemplateWizard {
- private FreemarkerXMLTemplateCreationWizardPage page;
+ private XMLTemplateCreationWizardPage page;
private String filePath;
private String rootElementName;
private String xmlInputFileType;
@@ -36,7 +37,7 @@
@Override
public void addPages() {
if (page == null) {
- page = new FreemarkerXMLTemplateCreationWizardPage("XML"); //$NON-NLS-1$
+ page = new XMLTemplateCreationWizardPage("XML"); //$NON-NLS-1$
}
this.addPage(page);
super.addPages();
Deleted: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerXMLTemplateCreationWizardPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerXMLTemplateCreationWizardPage.java 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerXMLTemplateCreationWizardPage.java 2010-01-17 18:36:40 UTC (rev 19787)
@@ -1,126 +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.graphical.wizard.freemarker;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.jboss.tools.smooks.configuration.editors.xml.XSDStructuredDataWizardPage;
-import org.jboss.tools.smooks10.model.smooks.util.SmooksModelUtils;
-
-/**
- * @author Dart
- *
- */
-public class FreemarkerXMLTemplateCreationWizardPage extends XSDStructuredDataWizardPage {
-
- private Combo combo = null;
-
- public FreemarkerXMLTemplateCreationWizardPage(String pageName, boolean multiSelect, Object[] initSelections,
- List<ViewerFilter> filters) {
- super(pageName, multiSelect, initSelections, filters);
- }
-
- public FreemarkerXMLTemplateCreationWizardPage(String pageName) {
- super(pageName);
- this.setTitle("Create XML template model");
- this.setDescription("Create XML template model.");
-// this.fileExtensionNames = new String[]{"xml"};
- }
-
- public String getInputType(){
- if(combo.getSelectionIndex() == 0){
- return SmooksModelUtils.KEY_XML_FILE_TYPE_XSD;
- }
- if(combo.getSelectionIndex() == 1){
- return SmooksModelUtils.KEY_XML_FILE_TYPE_XML;
- }
- return null;
- }
-
- /**
- * @return the combo
- */
- public Combo getCombo() {
- return combo;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets
- * .Composite)
- */
- public void createControl(Composite parent) {
- Composite mainComposite = new Composite(parent, SWT.NONE);
- GridLayout gl = new GridLayout();
- mainComposite.setLayout(gl);
- GridData gd = new GridData(GridData.FILL_BOTH);
- mainComposite.setLayoutData(gd);
-
- Label fileTypeLabel = new Label(mainComposite, SWT.NONE);
- fileTypeLabel.setText("XML Template File Type:");
-
- combo = new Combo(mainComposite, SWT.READ_ONLY | SWT.BORDER);
- gd = new GridData(GridData.FILL_HORIZONTAL);
- initCombo(combo);
- combo.setLayoutData(gd);
- combo.select(0);
-
- combo.addSelectionListener(new SelectionAdapter() {
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
- * .swt.events.SelectionEvent)
- */
- @Override
- public void widgetSelected(SelectionEvent e) {
- updateWizardPage();
- }
- });
-
- Label separator = new Label(mainComposite, SWT.SEPARATOR | SWT.HORIZONTAL);
- separator.setLayoutData(gd);
-
- super.createControl(mainComposite);
-
- this.setControl(mainComposite);
- }
-
- protected void updateWizardPage() {
- int index = combo.getSelectionIndex();
- if(index == 0){
- loadXSDButton.setEnabled(true);
- this.tableViewer.getTable().setEnabled(true);
- }
- if(index == 1){
- loadXSDButton.setEnabled(false);
- this.tableViewer.getTable().setEnabled(false);
- }
- }
-
- private void initCombo(Combo combo2) {
- combo2.add("Load from XSD file");
-// combo2.add("Load from XML Simple File");
- }
-
-}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/messages.properties
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/messages.properties 2010-01-17 09:06:10 UTC (rev 19786)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/messages.properties 2010-01-17 18:36:40 UTC (rev 19787)
@@ -5,7 +5,7 @@
#FreemarkerCSVCreationWizardPage_FieldEmptyErrorMessage=Fields can't be null
FreemarkerCSVCreationWizardPage_FieldsGroupText=Fields
FreemarkerCSVCreationWizardPage_QuoteCharLabel=Quote Character \:
-FreemarkerCSVCreationWizardPage_IncludeFieldNamesLabel=Include Field Names \:
+FreemarkerCSVCreationWizardPage_IncludeFieldNamesLabel=Output Field Names \:
FreemarkerCSVCreationWizardPage_QuoteEmptyErrorMessage=Quote can't be null
#FreemarkerCSVCreationWizardPage_RemoveFieldButtonLabel=Remove
FreemarkerCSVCreationWizardPage_SeperatorCharLabel=Separator Character \:
15 years, 11 months
JBoss Tools SVN: r19786 - in trunk/smooks: plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/xml and 4 other directories.
by jbosstools-commits@lists.jboss.org
Author: tfennelly
Date: 2010-01-17 04:06:10 -0500 (Sun, 17 Jan 2010)
New Revision: 19786
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/xml/XMLSampleModelBuilder.java
trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLSample_XMLFreeMarkerTemplateBuilderTest.java
trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XSD_XMLFreeMarkerTemplateBuilderTest.java
trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/expected/order-status-expected-01.xml
trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/expected/order-status-expected-02.xml
trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/order-status-01.xml
Removed:
trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilderTest.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/ModelBuilder.java
trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java
trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/TestUtil.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-5245
Templating API parts of Create FreeMarker Template builder for generating XML messages (from an XML Sample). Need to integrate into editor now.
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/ModelBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/ModelBuilder.java 2010-01-15 22:44:22 UTC (rev 19785)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/ModelBuilder.java 2010-01-17 09:06:10 UTC (rev 19786)
@@ -163,7 +163,7 @@
return builder.newDocument();
}
- protected void setMinMax(Element element, int minOccurs, int maxOccurs) {
+ public static void setMinMax(Element element, int minOccurs, int maxOccurs) {
element.setAttributeNS(NAMESPACE, "smk:minOccurs", Integer.toString(minOccurs)); //$NON-NLS-1$
element.setAttributeNS(NAMESPACE, "smk:maxOccurs", Integer.toString(maxOccurs)); //$NON-NLS-1$
}
@@ -234,4 +234,33 @@
}
return false;
}
+
+ /**
+ * Turn on/off enforcement of collection sub-mapping rules.
+ * <p/>
+ * If turned on, the collection mapping must be made on the model collection element (having maxOccurs > 1)
+ * before mappings can be made on sub elements.
+ *
+ * @param element The model element.
+ * @param enforce True if enforcement is to be turned on, otherwise false.
+ */
+ public static void setEnforceCollectionSubMappingRules(Element element, boolean enforce) {
+ element.setAttributeNS(NAMESPACE, "smk:enforceCollectionSubMappingRules", Boolean.toString(enforce)); //$NON-NLS-1$
+ }
+
+ /**
+ * Is collection sub-mapping rules turned on for the supplied model element.
+ * @param element The model element.
+ * @return True if enforcement is turned on, otherwise false.
+ * @see #setEnforceCollectionSubMappingRules(Element, boolean)
+ */
+ public static boolean getEnforceCollectionSubMappingRules(Element element) {
+ String enforce = element.getAttributeNS(NAMESPACE, "enforceCollectionSubMappingRules"); //$NON-NLS-1$
+
+ if(enforce == null || enforce.length() == 0) {
+ return true;
+ }
+
+ return !enforce.equals("false"); //$NON-NLS-1$
+ }
}
Added: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/xml/XMLSampleModelBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/xml/XMLSampleModelBuilder.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/xml/XMLSampleModelBuilder.java 2010-01-17 09:06:10 UTC (rev 19786)
@@ -0,0 +1,207 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.tools.smooks.templating.model.xml;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.emf.common.util.URI;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+import org.jboss.tools.smooks.templating.model.ModelBuilder;
+import org.jboss.tools.smooks.templating.model.ModelBuilderException;
+import org.jboss.tools.smooks.templating.template.xml.XMLFreeMarkerTemplateBuilder;
+import org.milyn.xml.DomUtils;
+
+/**
+ * XML Model Builder from an XML Sample.
+ * <p/>
+ * The generated model can then be used by the {@link XMLFreeMarkerTemplateBuilder}.
+ *
+ * @author <a href="mailto:tom.fennelly@jboss.com">tom.fennelly(a)jboss.com</a>
+ */
+public class XMLSampleModelBuilder extends ModelBuilder {
+
+ private static DocumentBuilder docBuilder;
+ private Document model;
+
+ static {
+ DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
+ docBuilderFactory.setNamespaceAware(true);
+ try {
+ docBuilder = docBuilderFactory.newDocumentBuilder();
+ } catch (ParserConfigurationException e) {
+ throw new RuntimeException("Unexpectd XML exception. Unable to create DocumentBuilder instance.", e);
+ }
+ }
+
+ public XMLSampleModelBuilder(URI xmlSampleURI) throws IOException, ModelBuilderException {
+ Assert.isNotNull(xmlSampleURI, "Null 'xmlSampleURI' arg in method call.");
+
+ File xmlSampleFile = new File(xmlSampleURI.toFileString());
+
+ if(!xmlSampleFile.exists()) {
+ throw new IOException("XML Sample '" + xmlSampleFile.getAbsolutePath() + "' not found."); //$NON-NLS-1$
+ } else if(!xmlSampleFile.isFile()) {
+ throw new IOException("XML Sample '" + xmlSampleFile.getAbsolutePath() + "' is not a normal file. Might be a directory etc."); //$NON-NLS-1$
+ }
+
+ try {
+ model = docBuilder.parse(xmlSampleFile);
+ } catch (SAXException e) {
+ throw new ModelBuilderException("Error parsing XML Sample file.", e); //$NON-NLS-1$
+ }
+
+ Element documentElement = model.getDocumentElement();
+
+ trimNonModelNodes(documentElement);
+ configureModelElementTypes(documentElement);
+ configureModelElementCardinality(documentElement);
+ registerNamepsaces(documentElement);
+ }
+
+ private void trimNonModelNodes(Element element) {
+ NodeList children = element.getChildNodes();
+ List<Node> removeableChildren = new ArrayList<Node>();
+
+ for(int i = 0; i < children.getLength(); i++) {
+ Node child = children.item(i);
+
+ if(child.getNodeType() == Node.ELEMENT_NODE) {
+ trimNonModelNodes((Element) child);
+ } else {
+ removeableChildren.add(child);
+ }
+ }
+
+ for(Node child : removeableChildren) {
+ element.removeChild(child);
+ }
+ }
+
+ private void configureModelElementTypes(Element element) {
+ NodeList children = element.getChildNodes();
+ int childCount = children.getLength();
+
+ if(childCount > 0) {
+ // Has child elements, therefore it's a "complex" element type...
+ ModelBuilder.setElementType(element, ElementType.complex);
+
+ for(int i = 0; i < childCount; i++) {
+ Node child = children.item(i);
+
+ if(child.getNodeType() == Node.ELEMENT_NODE) {
+ configureModelElementTypes((Element) child);
+ } else {
+ throw new IllegalStateException("The configureModelElementTypes method can only be called after the model has been trimed of non-model Nodes. Call trimNonModelNodes() before calling configureModelElementTypes().");
+ }
+ }
+ } else {
+ // Has no child elements, therefore it's a "simple" element type...
+ ModelBuilder.setElementType(element, ElementType.simple);
+ }
+ }
+
+ private void configureModelElementCardinality(Element element) {
+ NodeList children = element.getChildNodes();
+ List<Node> removeableChildren = new ArrayList<Node>();
+ int childCount = children.getLength();
+
+ Map<String, Element> childElementByNames = new HashMap<String, Element>();
+ for(int i = 0; i < childCount; i++) {
+ Node child = children.item(i);
+
+ if(child.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElement = (Element) child;
+ String elementName = DomUtils.getName(childElement) + ":" + childElement.getNamespaceURI(); // Yes, namespace can be null, but that's OK.
+ Element earlierOccurance = childElementByNames.get(elementName);
+
+ // Mark every element as being optional and possibly being multiple...
+ ModelBuilder.setMinMax(childElement, 0, -1);
+
+ if(earlierOccurance != null) {
+ // According to the sample XML, this element is definitely a
+ // collection item because it exists more than once, so lets mark it
+ // such that sub mappings on this element require this collection to be mapped beforehand...
+ ModelBuilder.setEnforceCollectionSubMappingRules(earlierOccurance, true);
+ // And remove the duplicates...
+ removeableChildren.add(childElement);
+ } else {
+ // We've no way of knowing whether or not this element is a collection
+ // item or not, so lets not enforce the collection sub mapping rules...
+ ModelBuilder.setEnforceCollectionSubMappingRules(childElement, false);
+ }
+
+ configureModelElementCardinality(childElement);
+ } else {
+ throw new IllegalStateException("The configureModelElementTypes method can only be called after the model has been trimed of non-model Nodes. Call trimNonModelNodes() before calling configureModelElementTypes().");
+ }
+ }
+
+ for(Node child : removeableChildren) {
+ element.removeChild(child);
+ }
+ }
+
+ private void registerNamepsaces(Element element) {
+ NamedNodeMap attributes = element.getAttributes();
+
+ for(int i = 0; i < attributes.getLength(); i++) {
+ registerNamespace(attributes.item(i));
+ }
+
+ NodeList children = element.getChildNodes();
+ for(int i = 0; i < children.getLength(); i++) {
+ Node child = children.item(i);
+ if(child.getNodeType() == Node.ELEMENT_NODE) {
+ registerNamespace(child);
+ registerNamepsaces((Element) child);
+ }
+ }
+ }
+
+ private void registerNamespace(Node node) {
+ String nsPrefix = node.getPrefix();
+ String nsURI = node.getNamespaceURI();
+
+ if(nsPrefix != null && nsURI != null) {
+ getNamespaces().setProperty(nsPrefix, nsURI);
+ }
+ }
+
+ public Document buildModel() throws ModelBuilderException {
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/model/xml/XMLSampleModelBuilder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java 2010-01-15 22:44:22 UTC (rev 19785)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.templating/src/org/jboss/tools/smooks/templating/template/TemplateBuilder.java 2010-01-17 09:06:10 UTC (rev 19786)
@@ -279,7 +279,7 @@
Element collectionElement = getNearestCollectionElement(mappingNode);
if (collectionElement != null) {
CollectionMapping parentCollectionMapping = getCollectionMapping(collectionElement);
- if (parentCollectionMapping == null) {
+ if (parentCollectionMapping == null && ModelBuilder.getEnforceCollectionSubMappingRules(collectionElement)) {
throw new UnmappedCollectionNodeException(collectionElement);
}
}
Modified: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/TestUtil.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/TestUtil.java 2010-01-15 22:44:22 UTC (rev 19785)
+++ trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/TestUtil.java 2010-01-17 09:06:10 UTC (rev 19786)
@@ -33,6 +33,7 @@
import org.custommonkey.xmlunit.XMLUnit;
import org.eclipse.emf.common.util.URI;
import org.jboss.tools.smooks.templating.model.ModelBuilderException;
+import org.jboss.tools.smooks.templating.model.xml.XMLSampleModelBuilder;
import org.jboss.tools.smooks.templating.model.xml.XSDModelBuilder;
import org.jboss.tools.smooks.templating.template.xml.XMLFreeMarkerTemplateBuilder;
import org.milyn.io.StreamUtils;
@@ -87,4 +88,14 @@
modelBuilder.setRootElementName(rootElementName);
return new XMLFreeMarkerTemplateBuilder(modelBuilder);
}
+
+ public static TemplateBuilder createXMLSampleFreeMarkerTemplateBuilder(File xmlSampleFile) throws IOException, ModelBuilderException {
+ if(!xmlSampleFile.exists()) {
+ throw new RuntimeException("Unknown: " + xmlSampleFile.getAbsolutePath());
+ }
+
+ URI fileURI = URI.createFileURI(xmlSampleFile.getCanonicalFile().toString());
+
+ return new XMLFreeMarkerTemplateBuilder(new XMLSampleModelBuilder(fileURI));
+ }
}
Deleted: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilderTest.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilderTest.java 2010-01-15 22:44:22 UTC (rev 19785)
+++ trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilderTest.java 2010-01-17 09:06:10 UTC (rev 19786)
@@ -1,279 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.tools.smooks.templating.template.xml;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.xpath.XPathExpressionException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.emf.common.util.URI;
-import org.jboss.tools.smooks.templating.model.ModelBuilderException;
-import org.jboss.tools.smooks.templating.model.xml.XSDModelBuilder;
-import org.jboss.tools.smooks.templating.template.Mapping;
-import org.jboss.tools.smooks.templating.template.TemplateBuilder;
-import org.jboss.tools.smooks.templating.template.TestUtil;
-import org.jboss.tools.smooks.templating.template.exception.TemplateBuilderException;
-import org.jboss.tools.smooks.templating.template.exception.UnmappedCollectionNodeException;
-import org.milyn.util.FreeMarkerTemplate;
-import org.milyn.xml.XmlUtil;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-/**
- * @author <a href="mailto:tom.fennelly@jboss.com">tom.fennelly(a)jboss.com</a>
- */
-public class XMLFreeMarkerTemplateBuilderTest extends TestCase {
-
- public void test_SimplePerson_01() throws IOException, ParserConfigurationException, TemplateBuilderException,
- SAXException, ModelBuilderException {
- TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
- "src/org/jboss/tools/smooks/templating/template/xml/simple-person.xsd"), "person");
- String theTemplate = builder.buildTemplate();
-
- TestUtil.assertXMLEquals(theTemplate, "expected/simple-person-01.xml", getClass());
-
- // Now, test that we can parse the template ....
- XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
- assertEquals(theTemplate, builder2.buildTemplate());
- }
-
- public void test_SimplePerson_02() throws IOException, ParserConfigurationException, TemplateBuilderException,
- SAXException, ModelBuilderException, XPathExpressionException {
- TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
- "src/org/jboss/tools/smooks/templating/template/xml/simple-person.xsd"), "person");
-
- builder.addValueMapping("male", builder.getModelNode("ns0:person/name/smk:compositor/male"));
- builder.addValueMapping("firstName", builder.getModelNode("ns0:person/name/@first"));
- builder.addValueMapping("lastName", builder.getModelNode("ns0:person/name/@last"));
- builder.addValueMapping("address", builder.getModelNode("ns0:person/address"));
- builder.addValueMapping("age", builder.getModelNode("ns0:person/age"));
-
- Map javaCtx = createPersonObj("Tom", "Fennelly", "Ireland", 21);
- String template = builder.buildTemplate();
- // System.out.println(template);
- FreeMarkerTemplate freemarker = new FreeMarkerTemplate(template);
- String templateRes = freemarker.apply(javaCtx);
-
- TestUtil.assertXMLEquals(templateRes, "expected/simple-person-02.xml", getClass());
- TestUtil.validate(builder, templateRes);
-
- // Now, test that we can parse the template and extract the mappings
- // from it....
- XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), template);
- assertEquals(5, builder2.getMappings().size());
- assertEquals(template, builder2.buildTemplate());
- }
-
- public void test_people_01() throws IOException, ParserConfigurationException, TemplateBuilderException,
- SAXException, ModelBuilderException, XPathExpressionException {
- TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
- "src/org/jboss/tools/smooks/templating/template/xml/people.xsd"), "people");
-
- // Try adding a value mapping before adding the collection mapping.
- // Should get an exception...
- try {
- builder.addValueMapping("personObj.firtName", builder.getModelNode("ns0:people/person/name/@first"));
- fail("Expected UnmappedCollectionNodeException");
- } catch (UnmappedCollectionNodeException e) {
- assertEquals("Unmapped collection node 'person'.", e.getMessage());
- }
- }
-
- public void test_people_02() throws IOException, ParserConfigurationException, TemplateBuilderException,
- SAXException, ModelBuilderException, XPathExpressionException {
- TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
- "src/org/jboss/tools/smooks/templating/template/xml/people.xsd"), "people");
-
- builder.addCollectionMapping("people", (Element) builder.getModelNode("ns0:people/person"), "personObj");
- builder.addValueMapping("personObj.male", builder.getModelNode("ns0:people/person/name/smk:compositor/male"));
- builder.addValueMapping("personObj.firstName", builder.getModelNode("ns0:people/person/name/@first"));
- builder.addValueMapping("personObj.lastName", builder.getModelNode("ns0:people/person/name/@last"));
- builder.addValueMapping("personObj.address", builder.getModelNode("ns0:people/person/address"));
- builder.addValueMapping("personObj.age", builder.getModelNode("ns0:people/person/age"));
-
- assertEquals(6, builder.getMappings().size());
-
- Map javaCtx = new HashMap();
- List people = new ArrayList();
- people.add(createPersonObj("Tom", "Fennelly", "Ireland", 6));
- people.add(createPersonObj("Mike", "Fennelly", "Ireland", 5));
- javaCtx.put("people", people);
-
- String template = builder.buildTemplate();
-
- FreeMarkerTemplate freemarker = new FreeMarkerTemplate(template);
- String templateRes = freemarker.apply(javaCtx);
-
- TestUtil.assertXMLEquals(templateRes, "expected/people-01.xml", getClass());
-
- // Now, test that we can parse the template and extract the mappings
- // from it....
- XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), template);
- assertEquals(6, builder2.getMappings().size());
- assertEquals(template, builder2.buildTemplate());
- }
-
- public void test_elementname() throws IOException, ModelBuilderException {
- File xsdFile = new File("src/org/jboss/tools/smooks/templating/template/xml/smooks1_0.xsd");
- URI uri = URI.createFileURI(xsdFile.getCanonicalFile().toString());
- XSDModelBuilder builder = new XSDModelBuilder(uri);
- builder.setRootElementName("smooks-resource-list");
- XMLFreeMarkerTemplateBuilder templateBuilder = new XMLFreeMarkerTemplateBuilder(builder);
- Document document = templateBuilder.getModel();
-
- StringWriter writer = new StringWriter();
- XmlUtil.serialize(document, true, writer);
- System.out.println(writer);
- //checkNodeName(document.getDocumentElement());
- }
-
- private void checkNodeName(Node node) {
- if (node instanceof Element) {
- assertNotNull(((Element)node).getTagName());
- }
- System.out.println(node.getNodeName());
- assertTrue(node.getNodeName().indexOf("null") == -1);
- NodeList nodeList = node.getChildNodes();
- int length = nodeList.getLength();
- for (int i = 0; i < length; i++) {
- checkNodeName(nodeList.item(i));
- }
- }
-
- public void test_creature_01() throws IOException, ParserConfigurationException, TemplateBuilderException,
- SAXException, ModelBuilderException, XPathExpressionException {
- TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
- "src/org/jboss/tools/smooks/templating/template/xml/creature.xsd"), "creature");
-
- Mapping mapping = builder.addValueMapping("dog", builder.getModelNode("ns0:creature/smk:compositor/dog/@name"));
-
- // The mapping onto the <dog> node should result in the <person> and
- // <cat> nodes being hidden...
- assertEquals(2, mapping.getHideNodes().size());
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person"), mapping.getHideNodes().get(0));
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/cat"), mapping.getHideNodes().get(1));
-
- String theTemplate = builder.buildTemplate();
- TestUtil.assertXMLEquals(theTemplate, "expected/creature-01.xml", getClass());
- TestUtil.validate(builder, theTemplate);
-
- // Now, test that we can parse the template and extract the mappings
- // from it....
- XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
- assertEquals(theTemplate, builder2.buildTemplate());
-
- // ========================================================
-
- // Remove the <dog> mapping... should reshow the <person> and <cat>
- // nodes...
- List<Node> showNodes = builder.removeMapping(mapping);
- assertEquals(2, showNodes.size());
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person"), showNodes.get(0));
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/cat"), showNodes.get(1));
-
- mapping = builder.addValueMapping("cat", builder.getModelNode("ns0:creature/smk:compositor/cat"));
-
- // The mapping onto the <cat> node should result in the <person> and
- // <dog> nodes being hidden...
- assertEquals(2, mapping.getHideNodes().size());
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/dog"), mapping.getHideNodes().get(0));
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person"), mapping.getHideNodes().get(1));
-
- theTemplate = builder.buildTemplate();
- TestUtil.assertXMLEquals(theTemplate, "expected/creature-02.xml", getClass());
- TestUtil.validate(builder, theTemplate);
-
- // Now, test that we can parse the template and extract the mappings
- // from it....
- builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
- assertEquals(theTemplate, builder2.buildTemplate());
-
- // ========================================================
-
- // Remove the <cat> mapping... should reshow the <person> and <dog>
- // nodes...
- showNodes = builder.removeMapping(mapping);
- assertEquals(2, showNodes.size());
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/dog"), showNodes.get(0));
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person"), showNodes.get(1));
-
- // Map the person... there are nested choice compositors on this one...
- mapping = builder.addValueMapping("male", builder
- .getModelNode("ns0:creature/smk:compositor/person/name/smk:compositor/male"));
- builder.addValueMapping("firstName", builder.getModelNode("ns0:creature/smk:compositor/person/name/@first"));
- builder.addValueMapping("lastName", builder.getModelNode("ns0:creature/smk:compositor/person/name/@last"));
- builder.addValueMapping("address", builder.getModelNode("ns0:creature/smk:compositor/person/address"));
- builder.addValueMapping("age", builder.getModelNode("ns0:creature/smk:compositor/person/age"));
-
- // The mapping onto the <person> node should result in the <female>,
- // <dog> and <cat> nodes being hidden...
- assertEquals(3, mapping.getHideNodes().size());
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person/name/smk:compositor/female"), mapping
- .getHideNodes().get(0));
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/dog"), mapping.getHideNodes().get(1));
- assertEquals(builder.getModelNode("ns0:creature/smk:compositor/cat"), mapping.getHideNodes().get(2));
-
- theTemplate = builder.buildTemplate();
- TestUtil.assertXMLEquals(theTemplate, "expected/creature-03.xml", getClass());
-
- // Now, test that we can parse the template and extract the mappings
- // from it....
- builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
- assertEquals(theTemplate, builder2.buildTemplate());
- }
-
- // public void test_OrderStatusRequest() throws IOException,
- // ParserConfigurationException, ModelBuilderException, SAXException,
- // TemplateBuilderException {
- // TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new
- // File("resources/xcbl40/schema/org/xcbl/path_delim/schemas/xcbl/v4_0/ordermanagement/v1_0/ordermanagement.xsd"),
- // "OrderStatusResult");
- // String theTemplate = builder.buildTemplate();
- //
- // TestUtil.assertXMLEquals(theTemplate, "expected/order-status-01.xml",
- // getClass());
- // }
-
- private Map createPersonObj(String first, String last, String address, int age) {
- Map javaCtx = new HashMap();
- javaCtx.put("male", true);
- javaCtx.put("firstName", first);
- javaCtx.put("lastName", last);
- javaCtx.put("address", address);
- javaCtx.put("age", age);
- return javaCtx;
- }
-
- private void printModel(TemplateBuilder builder) {
- System.out.println(XmlUtil.serialize(builder.getModel(), true));
- }
-}
Added: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLSample_XMLFreeMarkerTemplateBuilderTest.java
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLSample_XMLFreeMarkerTemplateBuilderTest.java (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLSample_XMLFreeMarkerTemplateBuilderTest.java 2010-01-17 09:06:10 UTC (rev 19786)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.tools.smooks.templating.template.xml;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.xpath.XPathExpressionException;
+
+import junit.framework.TestCase;
+
+import org.jboss.tools.smooks.templating.model.ModelBuilderException;
+import org.jboss.tools.smooks.templating.template.TemplateBuilder;
+import org.jboss.tools.smooks.templating.template.TestUtil;
+import org.jboss.tools.smooks.templating.template.exception.TemplateBuilderException;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.xml.sax.SAXException;
+
+/**
+ * @author <a href="mailto:tom.fennelly@jboss.com">tom.fennelly(a)jboss.com</a>
+ */
+public class XMLSample_XMLFreeMarkerTemplateBuilderTest extends TestCase {
+
+ public void test_XML_Order_01() throws IOException, ParserConfigurationException, TemplateBuilderException, SAXException, ModelBuilderException, XPathExpressionException {
+ TemplateBuilder builder = TestUtil.createXMLSampleFreeMarkerTemplateBuilder(new File("src/org/jboss/tools/smooks/templating/template/xml/order-status-01.xml"));
+
+ Node identNode = builder.getModelNode("ns0:OrderStatusResult/ns0:OrderStatusResultHeader/ns0:BuyerParty/ns1:PartyID/ns1:Ident");
+ builder.addValueMapping("order.status.id", identNode);
+
+ String theTemplate = builder.buildTemplate();
+
+// System.out.println(theTemplate);
+ TestUtil.assertXMLEquals(theTemplate, "expected/order-status-expected-01.xml", getClass());
+
+ // Now, test that we can parse the template ....
+ XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
+ assertEquals(theTemplate, builder2.buildTemplate());
+ }
+
+ public void test_XML_Order_02() throws IOException, ParserConfigurationException, TemplateBuilderException, SAXException, ModelBuilderException, XPathExpressionException {
+ TemplateBuilder builder = TestUtil.createXMLSampleFreeMarkerTemplateBuilder(new File("src/org/jboss/tools/smooks/templating/template/xml/order-status-01.xml"));
+
+ Node identNode = builder.getModelNode("ns0:OrderStatusResult/ns0:OrderStatusResultHeader/ns0:BuyerParty/ns1:PartyID/ns1:Ident");
+ Element resultStatusCollectionNode = (Element) builder.getModelNode("ns0:OrderStatusResult/ns0:ListOfOrderStatusResultDetail/ns0:OrderStatusResultDetail");
+ Node buyerRefNumberNode = builder.getModelNode("ns0:OrderStatusResult/ns0:ListOfOrderStatusResultDetail/ns0:OrderStatusResultDetail/ns0:OrderStatusResultReference/ns0:BuyerReferenceNumber");
+
+ builder.addValueMapping("order.status.id", identNode);
+ builder.addCollectionMapping("order.orderItemsStatusList", resultStatusCollectionNode, "itemStatus");
+ builder.addValueMapping("itemStatus.buyerRefNumber", buyerRefNumberNode);
+
+ String theTemplate = builder.buildTemplate();
+
+// System.out.println(theTemplate);
+ TestUtil.assertEquals(theTemplate, "expected/order-status-expected-02.xml", getClass());
+
+ // Now, test that we can parse the template ....
+ XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
+ assertEquals(theTemplate, builder2.buildTemplate());
+ }
+}
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLSample_XMLFreeMarkerTemplateBuilderTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XSD_XMLFreeMarkerTemplateBuilderTest.java (from rev 19766, trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XMLFreeMarkerTemplateBuilderTest.java)
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XSD_XMLFreeMarkerTemplateBuilderTest.java (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XSD_XMLFreeMarkerTemplateBuilderTest.java 2010-01-17 09:06:10 UTC (rev 19786)
@@ -0,0 +1,279 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.tools.smooks.templating.template.xml;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.xpath.XPathExpressionException;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.URI;
+import org.jboss.tools.smooks.templating.model.ModelBuilderException;
+import org.jboss.tools.smooks.templating.model.xml.XSDModelBuilder;
+import org.jboss.tools.smooks.templating.template.Mapping;
+import org.jboss.tools.smooks.templating.template.TemplateBuilder;
+import org.jboss.tools.smooks.templating.template.TestUtil;
+import org.jboss.tools.smooks.templating.template.exception.TemplateBuilderException;
+import org.jboss.tools.smooks.templating.template.exception.UnmappedCollectionNodeException;
+import org.milyn.util.FreeMarkerTemplate;
+import org.milyn.xml.XmlUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+/**
+ * @author <a href="mailto:tom.fennelly@jboss.com">tom.fennelly(a)jboss.com</a>
+ */
+public class XSD_XMLFreeMarkerTemplateBuilderTest extends TestCase {
+
+ public void test_SimplePerson_01() throws IOException, ParserConfigurationException, TemplateBuilderException,
+ SAXException, ModelBuilderException {
+ TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
+ "src/org/jboss/tools/smooks/templating/template/xml/simple-person.xsd"), "person");
+ String theTemplate = builder.buildTemplate();
+
+ TestUtil.assertXMLEquals(theTemplate, "expected/simple-person-01.xml", getClass());
+
+ // Now, test that we can parse the template ....
+ XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
+ assertEquals(theTemplate, builder2.buildTemplate());
+ }
+
+ public void test_SimplePerson_02() throws IOException, ParserConfigurationException, TemplateBuilderException,
+ SAXException, ModelBuilderException, XPathExpressionException {
+ TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
+ "src/org/jboss/tools/smooks/templating/template/xml/simple-person.xsd"), "person");
+
+ builder.addValueMapping("male", builder.getModelNode("ns0:person/name/smk:compositor/male"));
+ builder.addValueMapping("firstName", builder.getModelNode("ns0:person/name/@first"));
+ builder.addValueMapping("lastName", builder.getModelNode("ns0:person/name/@last"));
+ builder.addValueMapping("address", builder.getModelNode("ns0:person/address"));
+ builder.addValueMapping("age", builder.getModelNode("ns0:person/age"));
+
+ Map javaCtx = createPersonObj("Tom", "Fennelly", "Ireland", 21);
+ String template = builder.buildTemplate();
+ // System.out.println(template);
+ FreeMarkerTemplate freemarker = new FreeMarkerTemplate(template);
+ String templateRes = freemarker.apply(javaCtx);
+
+ TestUtil.assertXMLEquals(templateRes, "expected/simple-person-02.xml", getClass());
+ TestUtil.validate(builder, templateRes);
+
+ // Now, test that we can parse the template and extract the mappings
+ // from it....
+ XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), template);
+ assertEquals(5, builder2.getMappings().size());
+ assertEquals(template, builder2.buildTemplate());
+ }
+
+ public void test_people_01() throws IOException, ParserConfigurationException, TemplateBuilderException,
+ SAXException, ModelBuilderException, XPathExpressionException {
+ TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
+ "src/org/jboss/tools/smooks/templating/template/xml/people.xsd"), "people");
+
+ // Try adding a value mapping before adding the collection mapping.
+ // Should get an exception...
+ try {
+ builder.addValueMapping("personObj.firtName", builder.getModelNode("ns0:people/person/name/@first"));
+ fail("Expected UnmappedCollectionNodeException");
+ } catch (UnmappedCollectionNodeException e) {
+ assertEquals("Unmapped collection node 'person'.", e.getMessage());
+ }
+ }
+
+ public void test_people_02() throws IOException, ParserConfigurationException, TemplateBuilderException,
+ SAXException, ModelBuilderException, XPathExpressionException {
+ TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
+ "src/org/jboss/tools/smooks/templating/template/xml/people.xsd"), "people");
+
+ builder.addCollectionMapping("people", (Element) builder.getModelNode("ns0:people/person"), "personObj");
+ builder.addValueMapping("personObj.male", builder.getModelNode("ns0:people/person/name/smk:compositor/male"));
+ builder.addValueMapping("personObj.firstName", builder.getModelNode("ns0:people/person/name/@first"));
+ builder.addValueMapping("personObj.lastName", builder.getModelNode("ns0:people/person/name/@last"));
+ builder.addValueMapping("personObj.address", builder.getModelNode("ns0:people/person/address"));
+ builder.addValueMapping("personObj.age", builder.getModelNode("ns0:people/person/age"));
+
+ assertEquals(6, builder.getMappings().size());
+
+ Map javaCtx = new HashMap();
+ List people = new ArrayList();
+ people.add(createPersonObj("Tom", "Fennelly", "Ireland", 6));
+ people.add(createPersonObj("Mike", "Fennelly", "Ireland", 5));
+ javaCtx.put("people", people);
+
+ String template = builder.buildTemplate();
+
+ FreeMarkerTemplate freemarker = new FreeMarkerTemplate(template);
+ String templateRes = freemarker.apply(javaCtx);
+
+ TestUtil.assertXMLEquals(templateRes, "expected/people-01.xml", getClass());
+
+ // Now, test that we can parse the template and extract the mappings
+ // from it....
+ XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), template);
+ assertEquals(6, builder2.getMappings().size());
+ assertEquals(template, builder2.buildTemplate());
+ }
+
+ public void test_elementname() throws IOException, ModelBuilderException {
+ File xsdFile = new File("src/org/jboss/tools/smooks/templating/template/xml/smooks1_0.xsd");
+ URI uri = URI.createFileURI(xsdFile.getCanonicalFile().toString());
+ XSDModelBuilder builder = new XSDModelBuilder(uri);
+ builder.setRootElementName("smooks-resource-list");
+ XMLFreeMarkerTemplateBuilder templateBuilder = new XMLFreeMarkerTemplateBuilder(builder);
+ Document document = templateBuilder.getModel();
+
+ StringWriter writer = new StringWriter();
+ XmlUtil.serialize(document, true, writer);
+ System.out.println(writer);
+ //checkNodeName(document.getDocumentElement());
+ }
+
+ private void checkNodeName(Node node) {
+ if (node instanceof Element) {
+ assertNotNull(((Element)node).getTagName());
+ }
+ System.out.println(node.getNodeName());
+ assertTrue(node.getNodeName().indexOf("null") == -1);
+ NodeList nodeList = node.getChildNodes();
+ int length = nodeList.getLength();
+ for (int i = 0; i < length; i++) {
+ checkNodeName(nodeList.item(i));
+ }
+ }
+
+ public void test_creature_01() throws IOException, ParserConfigurationException, TemplateBuilderException,
+ SAXException, ModelBuilderException, XPathExpressionException {
+ TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new File(
+ "src/org/jboss/tools/smooks/templating/template/xml/creature.xsd"), "creature");
+
+ Mapping mapping = builder.addValueMapping("dog", builder.getModelNode("ns0:creature/smk:compositor/dog/@name"));
+
+ // The mapping onto the <dog> node should result in the <person> and
+ // <cat> nodes being hidden...
+ assertEquals(2, mapping.getHideNodes().size());
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person"), mapping.getHideNodes().get(0));
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/cat"), mapping.getHideNodes().get(1));
+
+ String theTemplate = builder.buildTemplate();
+ TestUtil.assertXMLEquals(theTemplate, "expected/creature-01.xml", getClass());
+ TestUtil.validate(builder, theTemplate);
+
+ // Now, test that we can parse the template and extract the mappings
+ // from it....
+ XMLFreeMarkerTemplateBuilder builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
+ assertEquals(theTemplate, builder2.buildTemplate());
+
+ // ========================================================
+
+ // Remove the <dog> mapping... should reshow the <person> and <cat>
+ // nodes...
+ List<Node> showNodes = builder.removeMapping(mapping);
+ assertEquals(2, showNodes.size());
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person"), showNodes.get(0));
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/cat"), showNodes.get(1));
+
+ mapping = builder.addValueMapping("cat", builder.getModelNode("ns0:creature/smk:compositor/cat"));
+
+ // The mapping onto the <cat> node should result in the <person> and
+ // <dog> nodes being hidden...
+ assertEquals(2, mapping.getHideNodes().size());
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/dog"), mapping.getHideNodes().get(0));
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person"), mapping.getHideNodes().get(1));
+
+ theTemplate = builder.buildTemplate();
+ TestUtil.assertXMLEquals(theTemplate, "expected/creature-02.xml", getClass());
+ TestUtil.validate(builder, theTemplate);
+
+ // Now, test that we can parse the template and extract the mappings
+ // from it....
+ builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
+ assertEquals(theTemplate, builder2.buildTemplate());
+
+ // ========================================================
+
+ // Remove the <cat> mapping... should reshow the <person> and <dog>
+ // nodes...
+ showNodes = builder.removeMapping(mapping);
+ assertEquals(2, showNodes.size());
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/dog"), showNodes.get(0));
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person"), showNodes.get(1));
+
+ // Map the person... there are nested choice compositors on this one...
+ mapping = builder.addValueMapping("male", builder
+ .getModelNode("ns0:creature/smk:compositor/person/name/smk:compositor/male"));
+ builder.addValueMapping("firstName", builder.getModelNode("ns0:creature/smk:compositor/person/name/@first"));
+ builder.addValueMapping("lastName", builder.getModelNode("ns0:creature/smk:compositor/person/name/@last"));
+ builder.addValueMapping("address", builder.getModelNode("ns0:creature/smk:compositor/person/address"));
+ builder.addValueMapping("age", builder.getModelNode("ns0:creature/smk:compositor/person/age"));
+
+ // The mapping onto the <person> node should result in the <female>,
+ // <dog> and <cat> nodes being hidden...
+ assertEquals(3, mapping.getHideNodes().size());
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/person/name/smk:compositor/female"), mapping
+ .getHideNodes().get(0));
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/dog"), mapping.getHideNodes().get(1));
+ assertEquals(builder.getModelNode("ns0:creature/smk:compositor/cat"), mapping.getHideNodes().get(2));
+
+ theTemplate = builder.buildTemplate();
+ TestUtil.assertXMLEquals(theTemplate, "expected/creature-03.xml", getClass());
+
+ // Now, test that we can parse the template and extract the mappings
+ // from it....
+ builder2 = new XMLFreeMarkerTemplateBuilder(builder.getModelBuilder(), theTemplate);
+ assertEquals(theTemplate, builder2.buildTemplate());
+ }
+
+ // public void test_OrderStatusRequest() throws IOException,
+ // ParserConfigurationException, ModelBuilderException, SAXException,
+ // TemplateBuilderException {
+ // TemplateBuilder builder = TestUtil.createXSDFreeMarkerTemplateBuilder(new
+ // File("resources/xcbl40/schema/org/xcbl/path_delim/schemas/xcbl/v4_0/ordermanagement/v1_0/ordermanagement.xsd"),
+ // "OrderStatusResult");
+ // String theTemplate = builder.buildTemplate();
+ //
+ // TestUtil.assertXMLEquals(theTemplate, "expected/order-status-01.xml",
+ // getClass());
+ // }
+
+ private Map createPersonObj(String first, String last, String address, int age) {
+ Map javaCtx = new HashMap();
+ javaCtx.put("male", true);
+ javaCtx.put("firstName", first);
+ javaCtx.put("lastName", last);
+ javaCtx.put("address", address);
+ javaCtx.put("age", age);
+ return javaCtx;
+ }
+
+ private void printModel(TemplateBuilder builder) {
+ System.out.println(XmlUtil.serialize(builder.getModel(), true));
+ }
+}
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/XSD_XMLFreeMarkerTemplateBuilderTest.java
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/expected/order-status-expected-01.xml
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/expected/order-status-expected-01.xml (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/expected/order-status-expected-01.xml 2010-01-17 09:06:10 UTC (rev 19786)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ns0:OrderStatusResult xmlns:ns0="rrn:org.xcbl:schemas/xcbl/v4_0/ordermanagement/v1_0/ordermanagement.xsd">
+ <ns0:OrderStatusResultHeader>
+ <ns0:BuyerParty>
+ <ns1:PartyID xmlns:ns1="rrn:org.xcbl:schemas/xcbl/v4_0/core/core.xsd">
+ <ns1:Ident>${order.status.id?string}</ns1:Ident>
+ </ns1:PartyID>
+ </ns0:BuyerParty>
+ </ns0:OrderStatusResultHeader>
+</ns0:OrderStatusResult>
\ No newline at end of file
Added: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/expected/order-status-expected-02.xml
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/expected/order-status-expected-02.xml (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/expected/order-status-expected-02.xml 2010-01-17 09:06:10 UTC (rev 19786)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ns0:OrderStatusResult xmlns:ns0="rrn:org.xcbl:schemas/xcbl/v4_0/ordermanagement/v1_0/ordermanagement.xsd">
+ <ns0:OrderStatusResultHeader>
+ <ns0:BuyerParty>
+ <ns1:PartyID xmlns:ns1="rrn:org.xcbl:schemas/xcbl/v4_0/core/core.xsd">
+ <ns1:Ident>${order.status.id?string}</ns1:Ident>
+ </ns1:PartyID>
+ </ns0:BuyerParty>
+ </ns0:OrderStatusResultHeader>
+ <ns0:ListOfOrderStatusResultDetail>
+ <#list order.orderItemsStatusList as itemStatus>
+ <ns0:OrderStatusResultDetail>
+ <ns0:OrderStatusResultReference>
+ <ns0:BuyerReferenceNumber>${itemStatus.buyerRefNumber?string}</ns0:BuyerReferenceNumber>
+ </ns0:OrderStatusResultReference>
+ </ns0:OrderStatusResultDetail>
+ </#list>
+ </ns0:ListOfOrderStatusResultDetail>
+</ns0:OrderStatusResult>
\ No newline at end of file
Added: trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/order-status-01.xml
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/order-status-01.xml (rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.templating.test/src/org/jboss/tools/smooks/templating/template/xml/order-status-01.xml 2010-01-17 09:06:10 UTC (rev 19786)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ns0:OrderStatusResult xmlns:ns0="rrn:org.xcbl:schemas/xcbl/v4_0/ordermanagement/v1_0/ordermanagement.xsd">
+ <ns0:OrderStatusResultHeader>
+ <ns0:OrderStatusID></ns0:OrderStatusID>
+ <ns0:BuyerParty>
+ <ns1:PartyID xmlns:ns1="rrn:org.xcbl:schemas/xcbl/v4_0/core/core.xsd">
+ <ns1:Ident></ns1:Ident>
+ </ns1:PartyID>
+ </ns0:BuyerParty>
+ </ns0:OrderStatusResultHeader>
+ <ns0:ListOfOrderStatusResultDetail>
+ <ns0:OrderStatusResultDetail>
+ <ns0:OrderStatusResultReference>
+ <ns0:BuyerReferenceNumber></ns0:BuyerReferenceNumber>
+ </ns0:OrderStatusResultReference>
+ </ns0:OrderStatusResultDetail>
+ </ns0:ListOfOrderStatusResultDetail>
+</ns0:OrderStatusResult>
\ No newline at end of file
15 years, 12 months
JBoss Tools SVN: r19785 - trunk/as/tests/org.jboss.ide.eclipse.as.ui.test/src/org/jboss/ide/eclipse/as/ui/wizards/test.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2010-01-15 17:44:22 -0500 (Fri, 15 Jan 2010)
New Revision: 19785
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.ui.test/src/org/jboss/ide/eclipse/as/ui/wizards/test/NewServerWizardTest.java
Log:
fix for NulPointerException in JBossAS UI tests
Modified: trunk/as/tests/org.jboss.ide.eclipse.as.ui.test/src/org/jboss/ide/eclipse/as/ui/wizards/test/NewServerWizardTest.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.ui.test/src/org/jboss/ide/eclipse/as/ui/wizards/test/NewServerWizardTest.java 2010-01-15 19:42:54 UTC (rev 19784)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.ui.test/src/org/jboss/ide/eclipse/as/ui/wizards/test/NewServerWizardTest.java 2010-01-15 22:44:22 UTC (rev 19785)
@@ -119,9 +119,11 @@
public void logging(IStatus status, String plugin) {
StringWriter out = new StringWriter();
out.append(status.getMessage()).append('\n');
- status.getException().printStackTrace(new PrintWriter(out));
- if(out.toString().contains(JBossServerWizardFragment.class.getName())) {
- fail(out.toString());
+ if(status.getException()!=null) {
+ status.getException().printStackTrace(new PrintWriter(out));
+ if(out.toString().contains(JBossServerWizardFragment.class.getName())) {
+ fail(out.toString());
+ }
}
}
}
15 years, 12 months
JBoss Tools SVN: r19784 - trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/properties.
by jbosstools-commits@lists.jboss.org
Author: koen.aers(a)jboss.com
Date: 2010-01-15 14:42:54 -0500 (Fri, 15 Jan 2010)
New Revision: 19784
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/properties/NamedElementConfigurationComposite.java
Log:
jBPM Property view doesn't reflect GPD changes and can also overwrite them (JBIDE-5528)
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/properties/NamedElementConfigurationComposite.java
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/properties/NamedElementConfigurationComposite.java 2010-01-15 18:17:03 UTC (rev 19783)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/properties/NamedElementConfigurationComposite.java 2010-01-15 19:42:54 UTC (rev 19784)
@@ -1,5 +1,8 @@
package org.jbpm.gd.common.properties;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.layout.FormAttachment;
@@ -10,7 +13,7 @@
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.jbpm.gd.common.model.NamedElement;
-public class NamedElementConfigurationComposite implements FocusListener {
+public class NamedElementConfigurationComposite implements FocusListener, PropertyChangeListener {
public static NamedElementConfigurationComposite create(TabbedPropertySheetWidgetFactory widgetFactory, Composite parent) {
NamedElementConfigurationComposite result = new NamedElementConfigurationComposite();
@@ -32,21 +35,25 @@
public void setNamedElement(NamedElement namedElement) {
if (this.namedElement == namedElement) return;
- unhookSelectionListener();
+ unhookListeners();
clearControls();
this.namedElement = namedElement;
- if (namedElement != null) {
- updateControls();
- hookSelectionListener();
- }
+ updateControls();
+ hookListeners();
}
- private void hookSelectionListener() {
+ private void hookListeners() {
nameText.addFocusListener(this);
+ if (namedElement != null) {
+ namedElement.addPropertyChangeListener(this);
+ }
}
- private void unhookSelectionListener() {
+ private void unhookListeners() {
nameText.removeFocusListener(this);
+ if (namedElement != null) {
+ namedElement.removePropertyChangeListener(this);
+ }
}
private void clearControls() {
@@ -54,8 +61,10 @@
}
private void updateControls() {
- String name = namedElement.getName();
- nameText.setText(name == null ? "" : name);
+ if (namedElement != null) {
+ String name = namedElement.getName();
+ nameText.setText(name == null ? "" : name);
+ }
}
private void create() {
@@ -97,4 +106,9 @@
}
}
+ public void propertyChange(PropertyChangeEvent evt) {
+ if ("name".equals(evt.getPropertyName())) {
+ nameText.setText(evt.getNewValue() != null ? (String)evt.getNewValue() : "");
+ }
+ }
}
15 years, 12 months
JBoss Tools SVN: r19783 - in trunk: jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/pages and 8 other directories.
by jbosstools-commits@lists.jboss.org
Author: mareshkau
Date: 2010-01-15 13:17:03 -0500 (Fri, 15 Jan 2010)
New Revision: 19783
Added:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/pages/JBIDE/
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/pages/JBIDE/5639/
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/pages/JBIDE/5639/messageResolutionTest.jsp
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/MessageResolutionInPreviewTabTest.java
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/WEB-INF/faces-config.xml
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditor.java
trunk/jst/plugins/org.jboss.tools.jst.text.ext/plugin.xml
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/bundle/BundleMap.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaPreview.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-5639 , message resolution has been resolved on Preview
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/WEB-INF/faces-config.xml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/WEB-INF/faces-config.xml 2010-01-15 17:39:41 UTC (rev 19782)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/WEB-INF/faces-config.xml 2010-01-15 18:17:03 UTC (rev 19783)
@@ -1,30 +1,32 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xi="http://www.w3.org/2001/XInclude"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
- <managed-bean>
- <description>User Name Bean</description>
- <managed-bean-name>user</managed-bean-name>
- <managed-bean-class>demo.User</managed-bean-class>
- <managed-bean-scope>session</managed-bean-scope>
- <managed-property>
- <property-name>name</property-name>
- <property-class>java.lang.String</property-class>
- <value/>
- </managed-property>
- </managed-bean>
- <navigation-rule>
- <from-view-id>/pages/inputUserName.jsp</from-view-id>
- <navigation-case>
- <from-outcome>hello</from-outcome>
- <to-view-id>/pages/hello.jsp</to-view-id>
- </navigation-case>
- </navigation-rule>
- <application>
- <locale-config>
- <default-locale>de</default-locale>
- </locale-config>
- </application>
- <factory/>
- <lifecycle/>
-</faces-config>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
+ <managed-bean>
+ <description>User Name Bean</description>
+ <managed-bean-name>user</managed-bean-name>
+ <managed-bean-class>demo.User</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>name</property-name>
+ <property-class>java.lang.String</property-class>
+ <value/>
+ </managed-property>
+ </managed-bean>
+ <navigation-rule>
+ <from-view-id>/pages/inputUserName.jsp</from-view-id>
+ <navigation-case>
+ <from-outcome>hello</from-outcome>
+ <to-view-id>/pages/hello.jsp</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+ <application>
+ <resource-bundle>
+ <base-name>demo.Messages</base-name>
+ <var>msg</var>
+ </resource-bundle>
+ <locale-config>
+ <default-locale>de</default-locale>
+ </locale-config>
+ </application>
+</faces-config>
Added: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/pages/JBIDE/5639/messageResolutionTest.jsp
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/pages/JBIDE/5639/messageResolutionTest.jsp (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/i18nTest/WebContent/pages/JBIDE/5639/messageResolutionTest.jsp 2010-01-15 18:17:03 UTC (rev 19783)
@@ -0,0 +1,4 @@
+#{msg.hello_message}
+
+
+
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java 2010-01-15 17:39:41 UTC (rev 19782)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java 2010-01-15 18:17:03 UTC (rev 19783)
@@ -67,6 +67,7 @@
import org.jboss.tools.jsf.vpe.jsf.test.jbide.JBIDE4509Test;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.JBIDE4510Test;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.JBIDE4534Test;
+import org.jboss.tools.jsf.vpe.jsf.test.jbide.MessageResolutionInPreviewTabTest;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.OpenOnInJarPackageFragment_JBIDE5682;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.OpenOnJsf20Test_JBIDE5382;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.TaglibXMLUnformatedDTD_JBIDE5642;
@@ -190,6 +191,7 @@
suite.addTestSuite(TestOpenOnForXhtmlFiles_JBIDE5577.class);
suite.addTestSuite(TaglibXMLUnformatedDTD_JBIDE5642.class);
suite.addTestSuite(OpenOnInJarPackageFragment_JBIDE5682.class);
+ suite.addTestSuite(MessageResolutionInPreviewTabTest.class);
// $JUnit-END$
// added by Max Areshkau
Added: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/MessageResolutionInPreviewTabTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/MessageResolutionInPreviewTabTest.java (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/MessageResolutionInPreviewTabTest.java 2010-01-15 18:17:03 UTC (rev 19783)
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jsf.vpe.jsf.test.jbide;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.part.FileEditorInput;
+import org.jboss.tools.jsf.vpe.jsf.test.JsfAllTests;
+import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor;
+import org.jboss.tools.vpe.editor.mozilla.MozillaPreview;
+import org.jboss.tools.vpe.ui.test.TestUtil;
+import org.jboss.tools.vpe.ui.test.VpeTest;
+import org.mozilla.interfaces.nsIDOMElement;
+
+/**
+ * https://jira.jboss.org/jira/browse/JBIDE-5639
+ *
+ * @author mareshkau
+ *
+ */
+public class MessageResolutionInPreviewTabTest extends VpeTest {
+
+ public MessageResolutionInPreviewTabTest(String name) {
+ super(name);
+ }
+
+ public void testMessageResolutionInPreviewTab() throws Throwable {
+ setException(null);
+ IFile file = (IFile) TestUtil.getComponentPath("JBIDE/5639/messageResolutionTest.jsp", //$NON-NLS-1$
+ JsfAllTests.IMPORT_I18N_PROJECT_NAME);
+ IEditorInput input = new FileEditorInput(file);
+ assertNotNull("Editor input is null", input); //$NON-NLS-1$
+ // open and get editor
+ JSPMultiPageEditor part = openEditor(input);
+ part.pageChange(part.getPreviewIndex());
+ part.setPreviewIndex(2);
+
+ MozillaPreview mozillaPreview = (MozillaPreview) part.getVisualEditor().getPreviewWebBrowser();
+ //here we wait for preview initialization, but it's should be less then 1 second
+ long end = System.currentTimeMillis()+1000;
+ while(mozillaPreview.getContentArea()==null) {
+ if (!Display.getCurrent().readAndDispatch()) {
+ Display.getCurrent().sleep();
+ assertEquals("The preview initialization to long", true, end>System.currentTimeMillis()); //$NON-NLS-1$
+ }
+ }
+ nsIDOMElement contentArea = mozillaPreview.getContentArea();
+ assertEquals("The Message Should be from resource bundles","Guten Tag!",contentArea.getFirstChild().getFirstChild().getNodeValue().trim()); //$NON-NLS-1$ //$NON-NLS-2$
+ if(getException()!=null) {
+ throw getException();
+ }
+ }
+
+}
Modified: trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditor.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditor.java 2010-01-15 17:39:41 UTC (rev 19782)
+++ trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditor.java 2010-01-15 18:17:03 UTC (rev 19783)
@@ -204,6 +204,7 @@
}
}
+ @Override
public void pageChange(int newPageIndex) {
selectedPageIndex = newPageIndex;
if (visualEditor != null) {
@@ -214,7 +215,7 @@
visualEditor.setVisualMode(IVisualEditor.VISUALSOURCE_MODE);
} else if (newPageIndex == sourceIndex)
visualEditor.setVisualMode(IVisualEditor.SOURCE_MODE);
- else if (newPageIndex == previewIndex) {
+ else if (newPageIndex == getPreviewIndex()) {
if (visualEditor.getPreviewWebBrowser() == null) {
visualEditor.createPreviewBrowser();
}
@@ -476,8 +477,8 @@
// Add tab contain default web-browser
try {
if (visualEditor != null) {
- previewIndex = addPage(visualEditor, getEditorInput());
- setPageText(previewIndex,
+ setPreviewIndex(addPage(visualEditor, getEditorInput()));
+ setPageText(getPreviewIndex(),
JSPEditorMessages.JSPMultiPageEditor_TabLabel_Preview);
setPartName(visualEditor.getTitle());
}
@@ -800,6 +801,20 @@
JspEditorPlugin.getPluginLog().logError(e);
}
}
+
+ /**
+ * @return the previewIndex
+ */
+ public int getPreviewIndex() {
+ return previewIndex;
+ }
+
+ /**
+ * @param previewIndex the previewIndex to set
+ */
+ public void setPreviewIndex(int previewIndex) {
+ this.previewIndex = previewIndex;
+ }
}
Modified: trunk/jst/plugins/org.jboss.tools.jst.text.ext/plugin.xml
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.text.ext/plugin.xml 2010-01-15 17:39:41 UTC (rev 19782)
+++ trunk/jst/plugins/org.jboss.tools.jst.text.ext/plugin.xml 2010-01-15 18:17:03 UTC (rev 19783)
@@ -47,7 +47,9 @@
<axis path="/facelet-taglib/tag/handler-class">
</axis>
<axis path="/facelet-taglib/library-class">
- </axis>
+ </axis>
+ <axis path="/facelet-taglib/attribute/type" >
+ </axis>
</partitionType>
</contentType>
</hyperlinkPartitioner>
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/bundle/BundleMap.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/bundle/BundleMap.java 2010-01-15 17:39:41 UTC (rev 19782)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/bundle/BundleMap.java 2010-01-15 18:17:03 UTC (rev 19783)
@@ -70,7 +70,7 @@
private BundleEntry[] bundles = new BundleEntry[0];
private Map<String,UsedKey> usedKeys = new HashMap<String,UsedKey>();
- boolean isShowBundleUsageAsEL = JspEditorPlugin.getDefault().getPreferenceStore().getBoolean(
+ boolean showBundleUsageAsEL = JspEditorPlugin.getDefault().getPreferenceStore().getBoolean(
IVpePreferencesPage.SHOW_RESOURCE_BUNDLES_USAGE_AS_EL);
XModelTreeListener modelListener = new ML();
@@ -141,7 +141,7 @@
}
public boolean isShowBundleUsageAsEL() {
- return isShowBundleUsageAsEL;
+ return showBundleUsageAsEL;
}
private static final String[] JSF_PROJECT_NATURES = {
@@ -398,7 +398,7 @@
}
public String getBundleValue(String name){
- if(isShowBundleUsageAsEL) {
+ if(showBundleUsageAsEL) {
return name;
}
List<ELInstance> is = parseJSFExpression(name);
@@ -506,8 +506,8 @@
}
public void updateShowBundleUsageAsEL(boolean showBundlesAsEL) {
- if(isShowBundleUsageAsEL != showBundlesAsEL) {
- isShowBundleUsageAsEL = showBundlesAsEL;
+ if(showBundleUsageAsEL != showBundlesAsEL) {
+ showBundleUsageAsEL = showBundlesAsEL;
refresh();
}
}
@@ -574,4 +574,11 @@
}
+ /**
+ * @param showBundleUsageAsEL the showBundleUsageAsEL to set
+ */
+ public void setShowBundleUsageAsEL(boolean showBundleUsageAsEL) {
+ this.showBundleUsageAsEL = showBundleUsageAsEL;
+ }
+
}
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaPreview.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaPreview.java 2010-01-15 17:39:41 UTC (rev 19782)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaPreview.java 2010-01-15 18:17:03 UTC (rev 19783)
@@ -120,6 +120,10 @@
public void buildDom() {
BundleMap bundle = new BundleMap();
bundle.init(getSourceEditor());
+ //Fix for https://jira.jboss.org/jira/browse/JBIDE-5639 - mareshkau
+ // in preview should be closer to view in browser. So all
+ // bundles should be showed as messages, no as el.
+ bundle.setShowBundleUsageAsEL(false);
setPageContext(new VpePageContext(bundle, getEditPart()));
15 years, 12 months
JBoss Tools SVN: r19782 - in trunk: jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: yzhishko
Date: 2010-01-15 12:39:41 -0500 (Fri, 15 Jan 2010)
New Revision: 19782
Added:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/OpenOnInJarPackageFragment_JBIDE5682.java
Modified:
trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools/common/text/ext/hyperlink/ClassHyperlink.java
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/JBIDE4509Test.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/OpenOnUtil.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-5682 - fixed
Modified: trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools/common/text/ext/hyperlink/ClassHyperlink.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools/common/text/ext/hyperlink/ClassHyperlink.java 2010-01-15 17:01:55 UTC (rev 19781)
+++ trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools/common/text/ext/hyperlink/ClassHyperlink.java 2010-01-15 17:39:41 UTC (rev 19782)
@@ -36,6 +36,7 @@
import org.eclipse.jdt.internal.core.JarEntryFile;
import org.eclipse.jdt.internal.core.JarEntryResource;
import org.eclipse.jdt.internal.core.JarPackageFragmentRoot;
+import org.eclipse.jdt.internal.core.PackageFragment;
import org.eclipse.jdt.internal.ui.javaeditor.JarEntryEditorInput;
import org.eclipse.jdt.ui.JavaUI;
import org.eclipse.jface.text.BadLocationException;
@@ -155,6 +156,9 @@
while( parent instanceof JarEntryResource) {
parent = ((JarEntryResource)parent).getParent();
}
+ while (parent instanceof PackageFragment) {
+ parent = ((PackageFragment)parent).getParent();
+ }
if( (parent instanceof JarPackageFragmentRoot) &&
(((JarPackageFragmentRoot)parent).getParent() instanceof IJavaProject)) {
return searchForClass(((IJavaProject) ((JarPackageFragmentRoot)parent).getParent()), className);
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java 2010-01-15 17:01:55 UTC (rev 19781)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java 2010-01-15 17:39:41 UTC (rev 19782)
@@ -67,6 +67,7 @@
import org.jboss.tools.jsf.vpe.jsf.test.jbide.JBIDE4509Test;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.JBIDE4510Test;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.JBIDE4534Test;
+import org.jboss.tools.jsf.vpe.jsf.test.jbide.OpenOnInJarPackageFragment_JBIDE5682;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.OpenOnJsf20Test_JBIDE5382;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.TaglibXMLUnformatedDTD_JBIDE5642;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.TestFViewLocaleAttribute_JBIDE5218;
@@ -188,6 +189,7 @@
suite.addTestSuite(TestFViewLocaleAttribute_JBIDE5218.class);
suite.addTestSuite(TestOpenOnForXhtmlFiles_JBIDE5577.class);
suite.addTestSuite(TaglibXMLUnformatedDTD_JBIDE5642.class);
+ suite.addTestSuite(OpenOnInJarPackageFragment_JBIDE5682.class);
// $JUnit-END$
// added by Max Areshkau
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/JBIDE4509Test.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/JBIDE4509Test.java 2010-01-15 17:01:55 UTC (rev 19781)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/JBIDE4509Test.java 2010-01-15 17:39:41 UTC (rev 19782)
@@ -43,6 +43,7 @@
import org.jboss.tools.common.text.ext.hyperlink.AbstractHyperlink;
import org.jboss.tools.jsf.vpe.jsf.test.JsfAllTests;
import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor;
+import org.jboss.tools.vpe.ui.test.OpenOnUtil;
import org.jboss.tools.vpe.ui.test.TestUtil;
import org.jboss.tools.vpe.ui.test.VpeTest;
@@ -61,7 +62,7 @@
JsfAllTests.IMPORT_CUSTOM_FACELETS_PROJECT);
IFile file = (IFile) project.findMember("WebContent/tags/facelets.taglib.xml"); //$NON-NLS-1$
IEditorInput editorInput = new FileEditorInput(file);
- JBIDE4509Test.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 12, 17, "paginator.xhtml"); //$NON-NLS-1$
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 12, 17, "paginator.xhtml"); //$NON-NLS-1$
}
@@ -82,7 +83,7 @@
JsfAllTests.IMPORT_CUSTOM_FACELETS_PROJECT);
IFile file = (IFile) project.findMember("WebContent/tags/facelets.taglib.xml"); //$NON-NLS-1$
IEditorInput editorInput = new FileEditorInput(file);
- JBIDE4509Test.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 31, 37, "FaceletFunctions.java"); //$NON-NLS-1$
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 31, 37, "FaceletFunctions.java"); //$NON-NLS-1$
}
//test for <function-class>
@@ -91,7 +92,7 @@
JsfAllTests.IMPORT_JBIDE3247_PROJECT_NAME);
IFile file = (IFile) project.findMember("WebContent/WEB-INF/test.taglib.xml"); //$NON-NLS-1$
IEditorInput editorInput = new FileEditorInput(file);
- JBIDE4509Test.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 6, 25, "CoreLibrary.java"); //$NON-NLS-1$
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 6, 25, "CoreLibrary.java"); //$NON-NLS-1$
}
//test for <function-class>
public void testJBIDE4638OpenOnForHandlerClass() throws Throwable{
@@ -99,7 +100,7 @@
JsfAllTests.IMPORT_CUSTOM_FACELETS_PROJECT);
IFile file = (IFile) project.findMember("WebContent/tags/facelets.taglib.xml"); //$NON-NLS-1$
IEditorInput editorInput = new FileEditorInput(file);
- JBIDE4509Test.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 22, 23, "IfHandler.java"); //$NON-NLS-1$
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 22, 23, "IfHandler.java"); //$NON-NLS-1$
}
//test for <handler-class> in tag
public void testJBIDE4638OpenOnForHandlerClassWithTagAxis() throws Throwable{
@@ -107,17 +108,17 @@
JsfAllTests.IMPORT_CUSTOM_FACELETS_PROJECT);
IFile file = (IFile) project.findMember("WebContent/tags/facelets.taglib.xml"); //$NON-NLS-1$
IEditorInput editorInput = new FileEditorInput(file);
- JBIDE4509Test.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 36, 29, "IfHandler.java"); //$NON-NLS-1$
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 36, 29, "IfHandler.java"); //$NON-NLS-1$
}
//test for https://jira.jboss.org/jira/browse/JBIDE-4635
public void testJBIDE4635OpenOn() throws Throwable{
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(JsfAllTests.IMPORT_JBIDE3247_PROJECT_NAME);
IFile file = (IFile) project.findMember("WebContent/pages/index.xhtml"); //$NON-NLS-1$
IEditorInput editorInput = new FileEditorInput(file);
- JBIDE4509Test.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 11, 11, "mareshkau.taglib.xml"); //$NON-NLS-1$
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 11, 11, "mareshkau.taglib.xml"); //$NON-NLS-1$
IEditorPart activeEditor = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
- JBIDE4509Test.checkOpenOnInEditor(activeEditor.getEditorInput(),getEditorId(activeEditor.getEditorInput().getName()),
+ OpenOnUtil.checkOpenOnInEditor(activeEditor.getEditorInput(),getEditorId(activeEditor.getEditorInput().getName()),
8,23,"echo.xhtml"); //$NON-NLS-1$
}
@@ -127,7 +128,7 @@
project.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
IFile file = (IFile) project.findMember("WebContent/pages/JBIDE/5015/login.xhtml"); //$NON-NLS-1$
IEditorInput editorInput = new FileEditorInput(file);
- JBIDE4509Test.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 15, 17, "loginPanel.xhtml"); //$NON-NLS-1$
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 15, 17, "loginPanel.xhtml"); //$NON-NLS-1$
}
//test for https://jira.jboss.org/jira/browse/JBIDE-5099
@@ -136,7 +137,7 @@
project.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
IFile file = (IFile) project.findMember("WebContent/pages/JBIDE/5015/login.xhtml"); //$NON-NLS-1$
IEditorInput editorInput = new FileEditorInput(file);
- JBIDE4509Test.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 14, 16, "echo.xhtml"); //$NON-NLS-1$
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(file.getName()), 14, 16, "echo.xhtml"); //$NON-NLS-1$
}
/**
* Function for checking openOn functionality in jar file;
@@ -150,80 +151,25 @@
*
* @author mareshkau
*/
+ @SuppressWarnings("restriction")
private static final void checkOpenOnFromJarFile(final String jarFilePath,final String jarEntryPath,
final int line, final int position,final String expectedResult) throws Throwable {
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(
JsfAllTests.IMPORT_JBIDE3247_PROJECT_NAME);
IJavaProject javaProject = JavaCore.create(project);
- IFile jarArchive = (IFile) project.findMember(jarFilePath); //$NON-NLS-1$
+ IFile jarArchive = (IFile) project.findMember(jarFilePath);
IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(jarArchive);
JarPackageFragmentRoot jarRoot = (JarPackageFragmentRoot) root;
- JarEntryFile fileInJar = new JarEntryFile(jarEntryPath); //$NON-NLS-1$s
+ JarEntryFile fileInJar = new JarEntryFile(jarEntryPath);
fileInJar.setParent(jarRoot);
JarEntryEditorInput jarEditorInput = new JarEntryEditorInput(fileInJar);
- JBIDE4509Test.checkOpenOnInEditor(jarEditorInput, getEditorId(fileInJar.getName()),line, position,
+ OpenOnUtil.checkOpenOnInEditor(jarEditorInput, getEditorId(fileInJar.getName()),line, position,
expectedResult);
}
- /**
- * Function for checking openOn functionality
- *
- * @param editorInput
- * @param editorId
- * @param lineNumber
- * @param lineOffset
- * @param openedOnFileName
- * @throws Throwable
- *
- * @author mareshkau
- */
- private static final void checkOpenOnInEditor(IEditorInput editorInput,String editorId,int lineNumber, int lineOffset, String openedOnFileName) throws Throwable {
- IEditorPart editorPart = PlatformUI
- .getWorkbench().getActiveWorkbenchWindow().getActivePage()
- .openEditor(editorInput, editorId);
- StructuredTextEditor textEditor = null;
- if(editorPart instanceof MultiPageEditorPart){
- IEditorPart[] editorParts = ((MultiPageEditorPart)editorPart).findEditors(editorInput);
- ((MultiPageEditorPart)editorPart).setActiveEditor(editorParts[0]);
- textEditor = (StructuredTextEditor) editorParts[0];
- } else if(editorPart instanceof JSPMultiPageEditor) {
- textEditor = ((JSPMultiPageEditor)editorPart).getSourceEditor();
- } else if(editorPart instanceof EditorPartWrapper) {
- IEditorPart[] editorParts = ((MultiPageEditorPart)((EditorPartWrapper)editorPart).getEditor()).findEditors(editorInput);
- ((MultiPageEditorPart)((EditorPartWrapper)editorPart).getEditor()).setActiveEditor(editorParts[1]);
- textEditor = (StructuredTextEditor) editorParts[1];
- }
- int openOnPosition = TestUtil.getLinePositionOffcet(textEditor
- .getTextViewer(),lineNumber, lineOffset);
- // hack to get hyperlinks detectors, no other was have been founded
- Method method = AbstractTextEditor.class
- .getDeclaredMethod("getSourceViewerConfiguration"); //$NON-NLS-1$
- method.setAccessible(true);
- SourceViewerConfiguration sourceViewerConfiguration = (SourceViewerConfiguration) method
- .invoke(textEditor);
- IHyperlinkDetector[] hyperlinkDetectors = sourceViewerConfiguration
- .getHyperlinkDetectors(textEditor.getTextViewer());
- for (IHyperlinkDetector iHyperlinkDetector : hyperlinkDetectors) {
- IHyperlink[] hyperLinks = iHyperlinkDetector.detectHyperlinks(
- textEditor.getTextViewer(), new Region(openOnPosition, 0),
- false);
- if (hyperLinks != null && hyperLinks.length > 0
- && hyperLinks[0] instanceof AbstractHyperlink) {
- AbstractHyperlink abstractHyperlink = (AbstractHyperlink) hyperLinks[0];
- abstractHyperlink.open();
- break;
- }
- }
- IEditorPart activeEditor = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage().getActiveEditor();
- assertEquals(
- "Active page should be ", openedOnFileName, activeEditor.getEditorInput().getName()); //$NON-NLS-1$
-
- }
-
private static final String getEditorId(String filename) {
IWorkbench workbench = PlatformUI.getWorkbench();
IEditorRegistry editorRegistry = workbench.getEditorRegistry();
Added: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/OpenOnInJarPackageFragment_JBIDE5682.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/OpenOnInJarPackageFragment_JBIDE5682.java (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/OpenOnInJarPackageFragment_JBIDE5682.java 2010-01-15 17:39:41 UTC (rev 19782)
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.test.jbide;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.internal.core.JarEntryFile;
+import org.eclipse.jdt.internal.core.JarPackageFragmentRoot;
+import org.eclipse.jdt.internal.core.PackageFragment;
+import org.eclipse.jdt.internal.ui.javaeditor.JarEntryEditorInput;
+import org.eclipse.ui.IEditorDescriptor;
+import org.eclipse.ui.IEditorRegistry;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.editors.text.EditorsUI;
+import org.jboss.tools.jsf.vpe.jsf.test.JsfAllTests;
+import org.jboss.tools.vpe.ui.test.OpenOnUtil;
+import org.jboss.tools.vpe.ui.test.VpeTest;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("restriction")
+public class OpenOnInJarPackageFragment_JBIDE5682 extends VpeTest {
+
+ private static final String JAR_LIB_PATH = "WebContent/WEB-INF/lib/jsf-impl-2.0.1-SNAPSHOT.jar"; //$NON-NLS-1$
+ private static final String TEST_FILE = "jstl-core.taglib.xml"; //$NON-NLS-1$
+ private static final String[] FRAGMENT_PATH = new String[] { "com", "sun", //$NON-NLS-1$ //$NON-NLS-2$
+ "faces", "metadata", "taglib" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+ public OpenOnInJarPackageFragment_JBIDE5682(String name) {
+ super(name);
+ }
+
+ public void testOpenOnInJarPackageFragment() throws Throwable {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(
+ JsfAllTests.IMPORT_JSF_20_PROJECT_NAME);
+ IJavaProject javaProject = JavaCore.create(project);
+ IPackageFragmentRoot fragmentRoot = javaProject
+ .getPackageFragmentRoot(javaProject.getPath().toString() + "/" //$NON-NLS-1$
+ + JAR_LIB_PATH);
+ JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) fragmentRoot;
+ JarEntryFile fileInJar = new JarEntryFile(TEST_FILE);
+ PackageFragment fragment = jarPackageFragmentRoot
+ .getPackageFragment(FRAGMENT_PATH);
+ fileInJar.setParent(fragment);
+ JarEntryEditorInput editorInput = new JarEntryEditorInput(fileInJar);
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(fileInJar
+ .getName()), 78, 44, "IfHandler.class"); //$NON-NLS-1$
+ }
+
+ private final String getEditorId(String filename) {
+ IWorkbench workbench = PlatformUI.getWorkbench();
+ IEditorRegistry editorRegistry = workbench.getEditorRegistry();
+ IEditorDescriptor descriptor = editorRegistry
+ .getDefaultEditor(filename);
+ if (descriptor != null)
+ return descriptor.getId();
+ return EditorsUI.DEFAULT_TEXT_EDITOR_ID;
+ }
+
+}
Modified: trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/OpenOnUtil.java
===================================================================
--- trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/OpenOnUtil.java 2010-01-15 17:01:55 UTC (rev 19781)
+++ trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/OpenOnUtil.java 2010-01-15 17:39:41 UTC (rev 19782)
@@ -11,14 +11,20 @@
package org.jboss.tools.vpe.ui.test;
import java.lang.reflect.Method;
-
+import static junit.framework.Assert.assertEquals;
import org.eclipse.jface.text.Region;
import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.MultiPageEditorPart;
import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.jboss.tools.common.model.ui.editor.EditorPartWrapper;
import org.jboss.tools.common.text.ext.hyperlink.AbstractHyperlink;
+import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor;
/**
* @author Sergey Dzmitrovich
@@ -58,5 +64,62 @@
}
}
+
+ /**
+ * Function for checking openOn functionality
+ *
+ * @param editorInput
+ * @param editorId
+ * @param lineNumber
+ * @param lineOffset
+ * @param openedOnFileName
+ * @throws Throwable
+ *
+ * @author mareshkau
+ */
+
+ public static final void checkOpenOnInEditor(IEditorInput editorInput,String editorId,int lineNumber, int lineOffset, String openedOnFileName) throws Throwable {
+ IEditorPart editorPart = PlatformUI
+ .getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .openEditor(editorInput, editorId);
+ StructuredTextEditor textEditor = null;
+ if(editorPart instanceof MultiPageEditorPart){
+ IEditorPart[] editorParts = ((MultiPageEditorPart)editorPart).findEditors(editorInput);
+ ((MultiPageEditorPart)editorPart).setActiveEditor(editorParts[0]);
+ textEditor = (StructuredTextEditor) editorParts[0];
+ } else if(editorPart instanceof JSPMultiPageEditor) {
+ textEditor = ((JSPMultiPageEditor)editorPart).getSourceEditor();
+ } else if(editorPart instanceof EditorPartWrapper) {
+ IEditorPart[] editorParts = ((MultiPageEditorPart)((EditorPartWrapper)editorPart).getEditor()).findEditors(editorInput);
+ ((MultiPageEditorPart)((EditorPartWrapper)editorPart).getEditor()).setActiveEditor(editorParts[1]);
+ textEditor = (StructuredTextEditor) editorParts[1];
+ }
+ int openOnPosition = TestUtil.getLinePositionOffcet(textEditor
+ .getTextViewer(),lineNumber, lineOffset);
+ // hack to get hyperlinks detectors, no other was have been founded
+ Method method = AbstractTextEditor.class
+ .getDeclaredMethod("getSourceViewerConfiguration"); //$NON-NLS-1$
+ method.setAccessible(true);
+ SourceViewerConfiguration sourceViewerConfiguration = (SourceViewerConfiguration) method
+ .invoke(textEditor);
+ IHyperlinkDetector[] hyperlinkDetectors = sourceViewerConfiguration
+ .getHyperlinkDetectors(textEditor.getTextViewer());
+ for (IHyperlinkDetector iHyperlinkDetector : hyperlinkDetectors) {
+ IHyperlink[] hyperLinks = iHyperlinkDetector.detectHyperlinks(
+ textEditor.getTextViewer(), new Region(openOnPosition, 0),
+ false);
+ if (hyperLinks != null && hyperLinks.length > 0
+ && hyperLinks[0] instanceof AbstractHyperlink) {
+ AbstractHyperlink abstractHyperlink = (AbstractHyperlink) hyperLinks[0];
+ abstractHyperlink.open();
+ break;
+ }
+ }
+ IEditorPart activeEditor = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+ assertEquals(
+ "Active page should be ", openedOnFileName, activeEditor.getEditorInput().getName()); //$NON-NLS-1$
+ }
+
}
15 years, 12 months
JBoss Tools SVN: r19781 - trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/preferences.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2010-01-15 12:01:55 -0500 (Fri, 15 Jan 2010)
New Revision: 19781
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/preferences/CDIPreferencesMessages.properties
Log:
https://jira.jboss.org/jira/browse/JBIDE-5683
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/preferences/CDIPreferencesMessages.properties
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/preferences/CDIPreferencesMessages.properties 2010-01-15 16:29:11 UTC (rev 19780)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/preferences/CDIPreferencesMessages.properties 2010-01-15 17:01:55 UTC (rev 19781)
@@ -57,20 +57,20 @@
##Member
CDIValidatorConfigurationBlock_section_member=Members
-CDIValidatorConfigurationBlock_pb_producerAnnotatedInject_label=Producer annotated inject:
+CDIValidatorConfigurationBlock_pb_producerAnnotatedInject_label=Producer is annotated @Inject:
CDIValidatorConfigurationBlock_pb_producerParameterIllegallyAnnotated_label=Producer parameter illegally annotated:
-CDIValidatorConfigurationBlock_pb_observerAnnotatedInject_label=Observer annotated inject:
+CDIValidatorConfigurationBlock_pb_observerAnnotatedInject_label=Observer is annotated @Inject:
CDIValidatorConfigurationBlock_pb_observerParameterIllegallyAnnotated_label=Observer parameter illegally annotated:
CDIValidatorConfigurationBlock_pb_illegalProducerMethodInSessionBean_label=Illegal producer method in Session Bean:
CDIValidatorConfigurationBlock_pb_multipleDisposingParameters_label=Multiple disposing parameters:
-CDIValidatorConfigurationBlock_pb_disposerAnnotatedInject_label=Disposer annotated inject:
+CDIValidatorConfigurationBlock_pb_disposerAnnotatedInject_label=Disposer is annotated @Inject:
CDIValidatorConfigurationBlock_pb_illegalDisposerInSessionBean_label=Illegal disposer in Session Bean:
CDIValidatorConfigurationBlock_pb_noProducerMatchingDisposer_label=No producer matching disposer:
CDIValidatorConfigurationBlock_pb_multipleDisposersForProducer_label=Multiple disposers for producer:
CDIValidatorConfigurationBlock_pb_illegalProducerFieldInSessionBean_label=Illegal producer field in Session Bean:
CDIValidatorConfigurationBlock_pb_multipleInjectionConstructors_label=Multiple injection constructors:
CDIValidatorConfigurationBlock_pb_constructorParameterIllegallyAnnotated_label=Constructor parameter illegally annotated:
-CDIValidatorConfigurationBlock_pb_genericMethodAnnotatedInject_label=Generic method annotated inject:
+CDIValidatorConfigurationBlock_pb_genericMethodAnnotatedInject_label=Generic method is annotated @Inject:
CDIValidatorConfigurationBlock_pb_multipleObservingParameters_label=Multiple observing parameterts:
CDIValidatorConfigurationBlock_pb_illegalObserverInSessionBean_label=Illegal observer in Session Bean:
CDIValidatorConfigurationBlock_pb_illegalConditionalObserver_label=Illegal conditional observer:
@@ -79,8 +79,8 @@
CDIValidatorConfigurationBlock_section_interceptor_and_decorator=Interceptors & Decorators
CDIValidatorConfigurationBlock_pb_bothInterceptorAndDecorator_label=Both @Interceptor and @Decorator used:
CDIValidatorConfigurationBlock_pb_sessionBeanAnnotatedInterceptorOrDecorator_label=Session bean annotated @Interceptor or @Decorator:
-CDIValidatorConfigurationBlock_pb_producerInInterceptorOrDecorator_label=Producer in interceptor or decorator:
-CDIValidatorConfigurationBlock_pb_disposerInInterceptorOrDecorator_label=Disposer in interceptor or decorator:
+CDIValidatorConfigurationBlock_pb_producerInInterceptorOrDecorator_label=Interceptor or decorator has a field annotated @Produces:
+CDIValidatorConfigurationBlock_pb_disposerInInterceptorOrDecorator_label=Interceptor or decorator has a method annotated @Disposes:
CDIValidatorConfigurationBlock_pb_multipleDelegate_label=Multiple delegate:
CDIValidatorConfigurationBlock_pb_missingDelegate_label=Missing delegate:
CDIValidatorConfigurationBlock_pb_illegalInjectionPointDelegate_label=Illegal injection point delegate:
@@ -89,19 +89,19 @@
CDIValidatorConfigurationBlock_pb_illegalLifecycleCallbackInterceptorBinding_label=Illegal lifecycle callback interceptor binding:
CDIValidatorConfigurationBlock_pb_illegalInterceptorBindingMethod_label=Illegal interceptor binding method:
CDIValidatorConfigurationBlock_pb_conflictingInterceptorBindings_label=Conflicting interceptor binding:
-CDIValidatorConfigurationBlock_pb_observerInInterceptorOrDecorator_label=Observer in Interceptor or decorator:
-CDIValidatorConfigurationBlock_pb_interceptorOrDecoratorIsAlternative_label=Interceptor or decorator is alternative:
+CDIValidatorConfigurationBlock_pb_observerInInterceptorOrDecorator_label=Interceptor or decorator has a method annotated @Disposes:
+CDIValidatorConfigurationBlock_pb_interceptorOrDecoratorIsAlternative_label=Interceptor or decorator is an alternative:
CDIValidatorConfigurationBlock_pb_missingInterceptorBinding_label=Missing interceptor binding:
##Specializing
CDIValidatorConfigurationBlock_section_specializing=Specializing
CDIValidatorConfigurationBlock_pb_illegalSpecializingManagedBean_label=Illegal Specializing Managed Bean:
-CDIValidatorConfigurationBlock_pb_illegalSpecializingSessionBean_label=Illegal specializing Session Bean:
+CDIValidatorConfigurationBlock_pb_illegalSpecializingSessionBean_label=Illegal Specializing Session Bean:
CDIValidatorConfigurationBlock_pb_illegalSpecializingProducer_label=Illegal Specializing producer:
-CDIValidatorConfigurationBlock_pb_missingTypeInSpecializingBean_label=Missing type in specializing Bean:
-CDIValidatorConfigurationBlock_pb_conflictingNameInSpecializingBean_label=Conflicting name in specializing Bean:
-CDIValidatorConfigurationBlock_pb_interceptorAnnotatedSpecializes_label=Interceptor annotated specializes:
-CDIValidatorConfigurationBlock_pb_decoratorAnnotatedSpecializes_label=Decorator annotated specializes:
+CDIValidatorConfigurationBlock_pb_missingTypeInSpecializingBean_label=Missing type in Specializing Bean:
+CDIValidatorConfigurationBlock_pb_conflictingNameInSpecializingBean_label=Conflicting name in Specializing Bean:
+CDIValidatorConfigurationBlock_pb_interceptorAnnotatedSpecializes_label=Interceptor annotated @Specializes:
+CDIValidatorConfigurationBlock_pb_decoratorAnnotatedSpecializes_label=Decorator annotated @Specializes:
##Miscellaneous
CDIValidatorConfigurationBlock_section_miscellaneous=Miscellaneous
15 years, 12 months
JBoss Tools SVN: r19780 - in trunk/hibernatetools/plugins: org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: vyemialyanchyk
Date: 2010-01-15 11:29:11 -0500 (Fri, 15 Jan 2010)
New Revision: 19780
Added:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/utils/FileUtils.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingPreviewPage.java
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingFilePage.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingFileWizard.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-5408 - fixed
Added: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/utils/FileUtils.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/utils/FileUtils.java (rev 0)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/utils/FileUtils.java 2010-01-15 16:29:11 UTC (rev 19780)
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.eclipse.console.utils;
+
+import java.io.File;
+
+/**
+ *
+ * @author vitali
+ */
+public class FileUtils {
+
+ /**
+ * Delete the whole directory
+ * @param path
+ */
+ public static boolean delete(File path) {
+ boolean res = true, tmp = true;
+ if (path.exists()) {
+ File[] files = path.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].isDirectory()) {
+ tmp = delete(files[i]);;
+ } else {
+ tmp = deleteFile(files[i]);
+ }
+ res = res && tmp;
+ }
+ }
+ tmp = deleteFile(path);
+ res = res && tmp;
+ return res;
+ }
+
+ /**
+ * Delete single file
+ * @param file
+ */
+ public static boolean deleteFile(File file) {
+ boolean res = false;
+ if (file.exists()) {
+ if (file.delete()) {
+ res = true;
+ }
+ }
+ return res;
+ }
+}
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingFilePage.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingFilePage.java 2010-01-15 16:22:20 UTC (rev 19779)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingFilePage.java 2010-01-15 16:29:11 UTC (rev 19780)
@@ -94,7 +94,7 @@
viewer.setInput(null);
sc.setMinSize(container.computeSize(SWT.DEFAULT, SWT.DEFAULT));
- setControl(container);
+ setControl(sc);
}
public void setInput(Map<IJavaProject, Collection<EntityInfo>> project_infos){
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingFileWizard.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingFileWizard.java 2010-01-15 16:22:20 UTC (rev 19779)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingFileWizard.java 2010-01-15 16:29:11 UTC (rev 19780)
@@ -31,6 +31,7 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
@@ -66,6 +67,7 @@
import org.hibernate.eclipse.console.HibernateConsoleMessages;
import org.hibernate.eclipse.console.HibernateConsolePlugin;
import org.hibernate.eclipse.console.utils.EclipseImages;
+import org.hibernate.eclipse.console.utils.FileUtils;
import org.hibernate.eclipse.jdt.ui.internal.JdtUiMessages;
import org.hibernate.eclipse.jdt.ui.internal.jpa.collect.AllEntitiesInfoCollector;
import org.hibernate.eclipse.jdt.ui.internal.jpa.common.EntityInfo;
@@ -98,6 +100,8 @@
private WizardNewFileCreationPage cPage;
private NewHibernateMappingFilePage page2 = null;
+
+ private NewHibernateMappingPreviewPage previewPage = null;
public NewHibernateMappingFileWizard(){
setDefaultPageImageDescriptor(EclipseImages.getImageDescriptor(ImageConstants.NEW_WIZARD) );
@@ -122,13 +126,15 @@
cPage.setTitle( JdtUiMessages.NewHibernateMappingFileWizard_create_hibernate_xml_mapping_file );
cPage.setDescription( JdtUiMessages.NewHibernateMappingFileWizard_create_empty_xml_mapping_file );
cPage.setFileName("hibernate.hbm.xml"); //$NON-NLS-1$
- addPage( cPage );
+ addPage(cPage);
page2 = new NewHibernateMappingFilePage(false);
page2.setTitle(JdtUiMessages.NewHibernateMappingFilePage_hibernate_xml_mapping_file);
page2.setMessage(JdtUiMessages.NewHibernateMappingFilePage_this_wizard_creates, IMessageProvider.WARNING);
-
addPage(page2);
+
+ previewPage = new NewHibernateMappingPreviewPage();
+ addPage(previewPage);
}
@Override
@@ -150,9 +156,12 @@
}
public void handlePageChanging(PageChangingEvent event) {
- if (event.getTargetPage() == page2){
+ if (event.getTargetPage() == page2) {
updateCompilationUnits();
page2.setInput(project_infos);
+ } else if (event.getTargetPage() == previewPage) {
+ Map<IJavaProject, IPath> places2Gen = getPlaces2Gen();
+ previewPage.setPlaces2Gen(places2Gen);
}
}
@@ -229,7 +238,8 @@
@SuppressWarnings("unchecked")
@Override
protected void exportPOJO(Map additionalContext, POJOClass element) {
- File outputdir4File = getOutputDirectory();
+ File outputdir4FileOld = getOutputDirectory();
+ File outputdir4FileNew = outputdir4FileOld;
String fullyQualifiedName = element.getQualifiedDeclarationName();
ICompilationUnit icu = Utils.findCompilationUnit(proj, fullyQualifiedName);
if (icu != null) {
@@ -244,16 +254,79 @@
resource = resource.getParent();
}
if (resource != null) {
- outputdir4File = resource.getLocation().toFile();
+ final IPath projPath = proj.getResource().getLocation();
+ IPath place2Gen = projPath.append(".settings"); //$NON-NLS-1$
+ place2Gen = place2Gen.append(NewHibernateMappingPreviewPage.HIBERNATE_NEW_HBM_XML_FOLDER_NAME);
+ //
+ IPath tmpPath = resource.getLocation();
+ tmpPath = tmpPath.makeRelativeTo(projPath);
+ place2Gen = place2Gen.append(tmpPath);
+ outputdir4FileNew = place2Gen.toFile();
}
}
- setOutputDirectory(outputdir4File);
+ if (!outputdir4FileNew.exists()) {
+ outputdir4FileNew.mkdirs();
+ }
+ setOutputDirectory(outputdir4FileNew);
super.exportPOJO(additionalContext, element);
+ setOutputDirectory(outputdir4FileOld);
}
}
+ protected Map<IJavaProject, IPath> getPlaces2Gen() {
+ updateCompilationUnits();
+ Map<IJavaProject, Configuration> configs = createConfigurations();
+ Map<IJavaProject, IPath> places2Gen = new HashMap<IJavaProject, IPath>();
+ for (Entry<IJavaProject, Configuration> entry : configs.entrySet()) {
+ Configuration config = entry.getValue();
+ HibernateMappingGlobalSettings hmgs = new HibernateMappingGlobalSettings();
+
+ final IPath projPath = entry.getKey().getProject().getLocation();
+ IPath place2Gen = projPath.append(".settings"); //$NON-NLS-1$
+ place2Gen = place2Gen.append(NewHibernateMappingPreviewPage.HIBERNATE_NEW_HBM_XML_FOLDER_NAME);
+ places2Gen.put(entry.getKey(), place2Gen);
+
+ File folder2Gen = new File(place2Gen.toOSString());
+ FileUtils.delete(folder2Gen); // cleanup folder before gen info
+ if (!folder2Gen.exists()) {
+ folder2Gen.mkdirs();
+ }
+ HibernateMappingExporter2 hce = new HibernateMappingExporter2(
+ entry.getKey(), config, folder2Gen);
+
+ hce.setGlobalSettings(hmgs);
+ //hce.setForEach("entity");
+ //hce.setFilePattern(file.getName());
+ try {
+ hce.start();
+ } catch (Exception e){
+ e.getCause().printStackTrace();
+ }
+ }
+ return places2Gen;
+ }
+
+ protected void cleanUpGenFolders() {
+ Set<IJavaProject> projs = previewPage.getJavaProjects();
+ for (IJavaProject proj : projs) {
+ // cleanup gen folder
+ final IPath projPath = proj.getProject().getLocation();
+ IPath place2Gen = projPath.append(".settings"); //$NON-NLS-1$
+ place2Gen = place2Gen.append(NewHibernateMappingPreviewPage.HIBERNATE_NEW_HBM_XML_FOLDER_NAME);
+ File folder2Gen = new File(place2Gen.toOSString());
+ FileUtils.delete(folder2Gen);
+ }
+ }
+
@Override
+ public boolean performCancel() {
+ cleanUpGenFolders();
+ return super.performCancel();
+ }
+
+ @Override
public boolean performFinish() {
+ boolean res = true;
if (page0.getSelection().isEmpty()){
final IFile file = cPage.createNewFile();
IRunnableWithProgress op = new IRunnableWithProgress() {
@@ -270,59 +343,35 @@
try {
getContainer().run(true, false, op);
} catch (InterruptedException e) {
- return false;
+ res = false;
} catch (InvocationTargetException e) {
Throwable realException = e.getTargetException();
HibernateConsolePlugin.getDefault().showError(getShell(), HibernateConsoleMessages.NewReverseEngineeringFileWizard_error, realException);
- return false;
+ res = false;
}
- return true;
+ cleanUpGenFolders();
} else {
- updateCompilationUnits();
- Map<IJavaProject, Configuration> configs = createConfigurations();
- for (Entry<IJavaProject, Configuration> entry : configs.entrySet()) {
- Configuration config = entry.getValue();
- HibernateMappingGlobalSettings hmgs = new HibernateMappingGlobalSettings();
-
-
+ previewPage.performFinish();
+ // refresh
+ Set<IJavaProject> projs = previewPage.getJavaProjects();
+ for (IJavaProject proj : projs) {
try {
- /* IResource container = entry.getKey().getPackageFragmentRoots().length > 0
- ? entry.getKey().getPackageFragmentRoots()[0].getResource()
- : entry.getKey().getResource();
-
- IPath temp_path = entry.getKey().getProject().getLocation().append(".settings").append("org.hibernate_tools.temp");
-
- IFolder temp_folder = entry.getKey().getProject().getFolder(new Path(".settings/org.hibernate_tools.temp"));
- */
-
- IPackageFragmentRoot[] pfRoots = entry.getKey().getPackageFragmentRoots();
- IResource container = pfRoots.length > 0 ? pfRoots[0].getResource() : entry.getKey().getResource();
-
- HibernateMappingExporter2 hce = new HibernateMappingExporter2(
- entry.getKey(), config, container.getLocation().toFile());
-
- hce.setGlobalSettings(hmgs);
- //hce.setForEach("entity");
- //hce.setFilePattern(file.getName());
- try {
- hce.start();
- } catch (Exception e){
- e.getCause().printStackTrace();
- }
+ IPackageFragmentRoot[] pfRoots = proj.getPackageFragmentRoots();
for (int i = 0; i < pfRoots.length; i++) {
- container = pfRoots[i].getResource();
+ IResource container = pfRoots[i].getResource();
if (container != null && container.getType() != IResource.FILE) {
container.refreshLocal(IResource.DEPTH_INFINITE, null);
}
}
- } catch (JavaModelException e1) {
- HibernateConsolePlugin.getDefault().log(e1);
+ } catch (JavaModelException e) {
+ HibernateConsolePlugin.getDefault().log(e);
} catch (CoreException e) {
HibernateConsolePlugin.getDefault().log(e);
}
}
- return true;
+ cleanUpGenFolders();
}
+ return res;
}
/**
@@ -472,30 +521,30 @@
project_infos.clear();
selection = page0.getSelection();
processDepth = page0.getProcessDepth();
- try {
- getContainer().run(false, false, new IRunnableWithProgress() {
+ try {
+ getContainer().run(false, false, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor)
- throws InvocationTargetException,
- InterruptedException {
- monitor.beginTask(JdtUiMessages.NewHibernateMappingFileWizard_look_for_dependent_cu, selection.size() + 1);
- Iterator<?> it = selection.iterator();
- int done = 1;
- while (it.hasNext()) {
- Object obj = it.next();
- processJavaElements(obj, processDepth);
- monitor.worked(done++);
- }
- initEntitiesInfo();
- monitor.worked(1);
- monitor.done();
+ public void run(IProgressMonitor monitor)
+ throws InvocationTargetException,
+ InterruptedException {
+ monitor.beginTask(JdtUiMessages.NewHibernateMappingFileWizard_look_for_dependent_cu, selection.size() + 1);
+ Iterator<?> it = selection.iterator();
+ int done = 1;
+ while (it.hasNext()) {
+ Object obj = it.next();
+ processJavaElements(obj, processDepth);
+ monitor.worked(done++);
}
- });
- } catch (InvocationTargetException e) {
- HibernateConsolePlugin.getDefault().log(e);
- } catch (InterruptedException e) {
- HibernateConsolePlugin.getDefault().log(e);
- }
+ initEntitiesInfo();
+ monitor.worked(1);
+ monitor.done();
+ }
+ });
+ } catch (InvocationTargetException e) {
+ HibernateConsolePlugin.getDefault().log(e);
+ } catch (InterruptedException e) {
+ HibernateConsolePlugin.getDefault().log(e);
+ }
}
}
Added: trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingPreviewPage.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingPreviewPage.java (rev 0)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.jdt.ui/src/org/hibernate/eclipse/jdt/ui/wizards/NewHibernateMappingPreviewPage.java 2010-01-15 16:29:11 UTC (rev 19780)
@@ -0,0 +1,303 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.eclipse.jdt.ui.wizards;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import org.eclipse.core.filebuffers.FileBuffers;
+import org.eclipse.core.filebuffers.ITextFileBuffer;
+import org.eclipse.core.filebuffers.ITextFileBufferManager;
+import org.eclipse.core.filebuffers.LocationKind;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceVisitor;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.internal.corext.refactoring.nls.changes.CreateTextFileChange;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.CompositeChange;
+import org.eclipse.ltk.core.refactoring.TextFileChange;
+import org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage;
+import org.eclipse.text.edits.MalformedTreeException;
+import org.eclipse.text.edits.ReplaceEdit;
+import org.eclipse.text.edits.TextEdit;
+import org.hibernate.eclipse.console.HibernateConsolePlugin;
+
+/**
+ * Preview wizard page for new hibernate mappings.
+ *
+ * @author Vitali Yemialyanchyk
+ */
+@SuppressWarnings("restriction")
+public class NewHibernateMappingPreviewPage extends PreviewWizardPage {
+
+ public static final String HIBERNATE_NEW_HBM_XML_FOLDER_NAME = "hibernateNewHbmXml"; //$NON-NLS-1$
+
+ protected Map<IJavaProject, IPath> places2Gen;
+ protected Set<IPath> paths2Disconnect = new HashSet<IPath>();
+
+ public NewHibernateMappingPreviewPage() {
+ super(true);
+ }
+
+ @Override
+ public void dispose() {
+ performDisconnect();
+ super.dispose();
+ }
+
+ public void setPlaces2Gen(Map<IJavaProject, IPath> places2Gen) {
+ this.places2Gen = places2Gen;
+ updateChanges();
+ }
+
+ public Set<IJavaProject> getJavaProjects() {
+ if (places2Gen == null) {
+ return new HashSet<IJavaProject>();
+ }
+ return places2Gen.keySet();
+ }
+
+ protected void performDisconnect() {
+ final ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
+ for (IPath filePathTo_Show : paths2Disconnect) {
+ try {
+ bufferManager.disconnect(filePathTo_Show, LocationKind.IFILE, null);
+ } catch (CoreException e) {
+ HibernateConsolePlugin.getDefault().logErrorMessage("CoreException: ", e); //$NON-NLS-1$
+ }
+ }
+ paths2Disconnect.clear();
+ }
+
+ protected void performCommit() {
+ final CompositeChange cc = (CompositeChange)getChange();
+ if (cc == null) {
+ return;
+ }
+ final ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
+ Change[] changes = cc.getChildren();
+ for (int i = 0; i < changes.length; i++) {
+ Change change = changes[i];
+ if (!(change instanceof TextFileChange)) {
+ continue;
+ }
+ TextFileChange tfc = (TextFileChange)change;
+ if (tfc.isEnabled() && tfc.getEdit() != null) {
+ IPath path = new Path(tfc.getName());
+ ITextFileBuffer textFileBuffer = bufferManager.getTextFileBuffer(path, LocationKind.IFILE);
+ IDocument document = textFileBuffer.getDocument();
+ try {
+ tfc.getEdit().apply(document);
+ } catch (MalformedTreeException e) {
+ HibernateConsolePlugin.getDefault().logErrorMessage("MalformedTreeException: ", e); //$NON-NLS-1$
+ } catch (BadLocationException e) {
+ HibernateConsolePlugin.getDefault().logErrorMessage("BadLocationException: ", e); //$NON-NLS-1$
+ }
+ try {
+ // commit changes to underlying file
+ textFileBuffer.commit(null, true);
+ } catch (CoreException e) {
+ HibernateConsolePlugin.getDefault().logErrorMessage("CoreException: ", e); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+
+ /**
+ * The function reads file content into the string.
+ * @param fileSrc
+ * @return
+ */
+ protected String readInto(File fileSrc) {
+ FileInputStream fis = null;
+ BufferedInputStream bis = null;
+ StringBuilder str = new StringBuilder();
+ try {
+ fis = new FileInputStream(fileSrc);
+ bis = new BufferedInputStream(fis);
+ byte[] buff = new byte[1<<14];
+ while (true) {
+ int n = -1;
+ try {
+ n = bis.read(buff);
+ } catch (IOException e) {
+ HibernateConsolePlugin.getDefault().log(e);
+ }
+ if (n == -1) {
+ break;
+ }
+ str.append(new String(buff, 0, n));
+ }
+ } catch (FileNotFoundException e) {
+ HibernateConsolePlugin.getDefault().log(e);
+ } finally {
+ if (bis != null) {
+ try {
+ bis.close();
+ } catch (IOException e) {}
+ }
+ if (fis != null) {
+ try {
+ fis.close();
+ } catch (IOException e) {}
+ }
+ }
+ return str.toString();
+ }
+
+ /**
+ * Try to create one change according with input file (fileSrc).
+ * In case of success change be added into cc and returns true.
+ * @param cc
+ * @param proj
+ * @param fileSrc
+ * @return
+ */
+ protected boolean updateOneChange(final CompositeChange cc, final IJavaProject proj, File fileSrc) {
+ if (!fileSrc.exists()) {
+ return false;
+ }
+ if (fileSrc.isDirectory()) {
+ return false;
+ }
+ final IPath basePath = proj.getResource().getParent().getLocation();
+ final IPath projPath = proj.getResource().getLocation();
+ final IPath place2Gen = projPath.append(".settings").append(HIBERNATE_NEW_HBM_XML_FOLDER_NAME); //$NON-NLS-1$
+ IPath filePathFrom = new Path(fileSrc.getPath());
+ IPath filePathTo = filePathFrom.makeRelativeTo(place2Gen);
+ filePathTo = projPath.append(filePathTo);
+ final IPath filePathTo_Show = filePathTo.makeRelativeTo(basePath);
+ File fileOrig = filePathTo.toFile();
+ if (fileOrig.exists()) {
+ final IPath filePathTo_Proj = filePathTo.makeRelativeTo(projPath);
+ class ResHolder {
+ public IResource res2Update = null;
+ }
+ final ResHolder res2UpdateHolder = new ResHolder();
+ IResourceVisitor visitor = new IResourceVisitor() {
+
+ public boolean visit(IResource resource) throws CoreException {
+ if (resource.getProjectRelativePath().equals(filePathTo_Proj)) {
+ res2UpdateHolder.res2Update = resource;
+ return false;
+ }
+ if (resource.getProjectRelativePath().isPrefixOf(filePathTo_Proj)) {
+ return true;
+ }
+ return false;
+ }
+
+ };
+ try {
+ proj.getResource().accept(visitor);
+ } catch (CoreException e1) {
+ //ignore
+ }
+ if (res2UpdateHolder.res2Update != null) {
+ final ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
+ ITextFileBuffer textFileBuffer = bufferManager.getTextFileBuffer(filePathTo_Show, LocationKind.IFILE);
+ if (textFileBuffer == null) {
+ try {
+ bufferManager.connect(filePathTo_Show, LocationKind.IFILE, null);
+ paths2Disconnect.add(filePathTo_Show);
+ } catch (CoreException e) {
+ HibernateConsolePlugin.getDefault().logErrorMessage("CoreException: ", e); //$NON-NLS-1$
+ }
+ textFileBuffer = bufferManager.getTextFileBuffer(filePathTo_Show, LocationKind.IFILE);
+ }
+ if (textFileBuffer != null) {
+ IDocument documentChange = textFileBuffer.getDocument();
+ //
+ String str = readInto(fileSrc);
+ TextEdit textEdit = new ReplaceEdit(0, documentChange.getLength(), str.toString());
+ //
+ TextFileChange change = new TextFileChange(filePathTo_Show.toString(),
+ (IFile)res2UpdateHolder.res2Update);
+ change.setSaveMode(TextFileChange.LEAVE_DIRTY);
+ change.setEdit(textEdit);
+ cc.add(change);
+ }
+ }
+ } else {
+ String str = readInto(fileSrc);
+ CreateTextFileChange change = new CreateTextFileChange(filePathTo_Show, str.toString(), null, "hbm.xml"); //$NON-NLS-1$
+ cc.add(change);
+ }
+ return true;
+ }
+
+ /**
+ * Try to create changes according with all files in the input directory (dir).
+ * Changes be added into cc.
+ * @param cc
+ * @param proj
+ * @param dir
+ */
+ protected void updateChanges(final CompositeChange cc, final IJavaProject proj, File dir) {
+ if (!dir.exists()) {
+ return;
+ }
+ if (!dir.isDirectory()) {
+ updateOneChange(cc, proj, dir);
+ return;
+ }
+ File[] files = dir.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].isDirectory()) {
+ updateChanges(cc, proj, files[i]);
+ } else {
+ updateOneChange(cc, proj, files[i]);
+ }
+ }
+ }
+
+ protected void updateChanges() {
+ performDisconnect();
+ final CompositeChange cc = new CompositeChange(""); //$NON-NLS-1$
+ for (Entry<IJavaProject, IPath> entry : places2Gen.entrySet()) {
+ updateChanges(cc, entry.getKey(), entry.getValue().toFile());
+ }
+ cc.markAsSynthetic();
+ setChange(cc);
+ }
+
+ /**
+ * Apply changes.
+ */
+ @Override
+ public boolean performFinish() {
+ if (getChange() == null) {
+ return false;
+ }
+ performCommit();
+ try {
+ getChange().perform(new NullProgressMonitor());
+ } catch (CoreException e) {
+ HibernateConsolePlugin.getDefault().logErrorMessage("CoreException: ", e); //$NON-NLS-1$
+ }
+ performDisconnect();
+ return true;
+ }
+}
15 years, 12 months
JBoss Tools SVN: r19779 - trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/wizards.
by jbosstools-commits@lists.jboss.org
Author: dmaliarevich
Date: 2010-01-15 11:22:20 -0500 (Fri, 15 Jan 2010)
New Revision: 19779
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/wizards/ImportUnknownTagsTemplatesWizardPage.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-2795, import wizard was commented.
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/wizards/ImportUnknownTagsTemplatesWizardPage.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/wizards/ImportUnknownTagsTemplatesWizardPage.java 2010-01-15 16:17:29 UTC (rev 19778)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/wizards/ImportUnknownTagsTemplatesWizardPage.java 2010-01-15 16:22:20 UTC (rev 19779)
@@ -268,6 +268,10 @@
*/
List<VpeAnyData> currentList = VpeTemplateManager.getInstance().getAnyTemplates();
+ /*
+ * Uploading will add only missing templates.
+ * So here all duplicated templates will be deleted from the tagsList.
+ */
Iterator<VpeAnyData> iterator = tagsList.iterator();
while (iterator.hasNext()) {
VpeAnyData loadedTemplate = (VpeAnyData) iterator.next();
@@ -278,11 +282,17 @@
}
}
/*
- * Store loaded templates to the default auto-templates location.
+ * Add unique templates to the current list.
*/
if (currentList.addAll(tagsList)) {
+ /*
+ * Store loaded templates to the default auto-templates location.
+ */
VpeTemplateManager.getInstance().setAnyTemplates(currentList);
} else {
+ /*
+ * Log error if the operation could not be performed.
+ */
VpePlugin.getDefault().logError(VpeUIMessages.ERROR_ON_IMPORT_TAG_TEMPLATES);
}
return true;
15 years, 12 months