Author: tfennelly
Date: 2010-09-03 07:58:30 -0400 (Fri, 03 Sep 2010)
New Revision: 24689
Removed:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TemplateAppyTaskNode.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks10/model/smooks/util/SmooksModelUtils.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksReaderFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/AddNextTaskNodeAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/AddTaskNodeAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/TaskTypeRules.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/Messages.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/ProcessAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksProcessGraphicalEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/TaskTypeManager.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/messages.properties
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/ProcessFactory.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/ProcessTaskAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TaskType.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TaskTypeImpl.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateGraphicalModelFactory.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerCSVTemplateGraphicalEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerTemplateParametersProvider.java
Log:
https://jira.jboss.org/browse/JBIDE-6990
Allow Template tasks to be added to Input task in process flow
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks10/model/smooks/util/SmooksModelUtils.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks10/model/smooks/util/SmooksModelUtils.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks10/model/smooks/util/SmooksModelUtils.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -44,6 +44,8 @@
public static final String KEY_TEMPLATE_TYPE = "messageType"; //$NON-NLS-1$
+ public static final String TEMPLATE_DATA_PROVIDER_PARAM_NAME =
"templateDataProvider"; //$NON-NLS-1$
+
public static final String FREEMARKER_TEMPLATE_TYPE_CSV = "CSV";
//$NON-NLS-1$
public static final String FREEMARKER_TEMPLATE_TYPE_XML = "XML";
//$NON-NLS-1$
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksReaderFormPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksReaderFormPage.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksReaderFormPage.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -888,20 +888,6 @@
getEditingDomain().getCommandStack().execute(c);
}
}
- // if (command == null)
- // this.inputTypeChanged();
- // SmooksGraphicsExtType ext = getSmooksGraphicsExtType();
- // if (ext != null) {
- // List<ISmooksGraphChangeListener> listeners = ((SmooksGraphicsExtType)
- // ext).getChangeListeners();
- // for (Iterator<?> iterator = listeners.iterator();
- // iterator.hasNext();) {
- // ISmooksGraphChangeListener smooksGraphChangeListener =
- // (ISmooksGraphChangeListener) iterator.next();
- // smooksGraphChangeListener.inputTypeChanged((SmooksGraphicsExtType)
- // ext);
- // }
- // }
}
protected void createInputDataSection(FormToolkit toolkit, Composite parent) {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/AddNextTaskNodeAction.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/AddNextTaskNodeAction.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/AddNextTaskNodeAction.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -11,6 +11,7 @@
package org.jboss.tools.smooks.graphical.actions;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.command.Command;
@@ -53,7 +54,14 @@
protected void addFreemarkerTemplateTask(IWizard currentWizard, SmooksResourceListType
resourceList) {
if (currentWizard instanceof FreemarkerTemplateParametersProvider) {
+ List<TaskType> selectedTask = getCurrentSelectedTask();
+
+ if(selectedTask == null || selectedTask.isEmpty()) {
+ // No node properly selected in the Task Detail panel...
+ return;
+ }
+ TaskType parentTask = selectedTask.get(0);
Freemarker freemarker = FreemarkerFactory.eINSTANCE.createFreemarker();
Map<String, String> parameters = ((FreemarkerTemplateParametersProvider)
currentWizard).getParameters();
@@ -77,15 +85,22 @@
freemarker.getParam().add(param);
}
+ // Add the templateDataProvider param...
+ ParamType param = SmooksFactory.eINSTANCE.createParamType();
+ param.setName(SmooksModelUtils.TEMPLATE_DATA_PROVIDER_PARAM_NAME);
+ param.setStringValue(parentTask.getId());
+ freemarker.getParam().add(param);
+
Command addFreemarkerCommand = AddCommand.create(this.provider.getEditingDomain(),
resourceList,
SmooksPackage.Literals.SMOOKS_RESOURCE_LIST_TYPE__ABSTRACT_RESOURCE_CONFIG_GROUP,
FeatureMapUtil
.createEntry(FreemarkerPackage.Literals.DOCUMENT_ROOT__FREEMARKER, freemarker));
if (addFreemarkerCommand.canExecute()) {
provider.getEditingDomain().getCommandStack().execute(addFreemarkerCommand);
- TaskType parentTask = this.getCurrentSelectedTask().get(0);
- TaskType childTask = ProcessFactory.eINSTANCE.createTemplateTask();
- childTask.addSmooksModel(freemarker);
+ TaskType childTask = ProcessFactory.eINSTANCE.createTaskType();
+
+ childTask.setId(getTaskID());
+ childTask.addTaskResource(freemarker);
childTask.setType(type);
parentTask.addTask(childTask);
}
@@ -97,7 +112,7 @@
super.run();
if (this.provider != null) {
SmooksResourceListType resourceList =
SmooksUIUtils.getSmooks11ResourceListType(provider.getSmooksModel());
- if (taskID.equals(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
+ if (taskID.equals(TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE) ||
taskID.equals(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
// open wizard
TemplateMessageTypeWizard wizard = new TemplateMessageTypeWizard();
WizardDialog dialog = new WizardDialog(editorPart.getSite().getShell(), wizard);
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/AddTaskNodeAction.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/AddTaskNodeAction.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/AddTaskNodeAction.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -9,13 +9,16 @@
protected String taskID = null;
-
protected TaskTypeRules rules = new TaskTypeRules();
public AddTaskNodeAction(String taskID, String text, ISmooksModelProvider provider,
IEditorPart editorPart) {
super(text, provider,editorPart);
this.taskID = taskID;
}
+
+ public String getTaskID() {
+ return taskID;
+ }
@Override
protected void init() {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/TaskTypeRules.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/TaskTypeRules.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/actions/TaskTypeRules.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -49,13 +49,15 @@
// if (!SmooksConstants.TASK_ID_JAVA_MAPPING.equals(taskID))
return false;
}
- if (parentID.equals(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
- if (!TaskTypeManager.TASK_ID_JAVA_MAPPING.equals(currentTask.getId())) {
- return false;
+ if (parentID.equals(TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE) ||
parentID.equals(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
+ if (TaskTypeManager.TASK_ID_INPUT.equals(currentTask.getId())) {
+ return true;
+ } else if (TaskTypeManager.TASK_ID_JAVA_MAPPING.equals(currentTask.getId())) {
+ return true;
}else{
for (Iterator<?> iterator = taskList.iterator(); iterator.hasNext();) {
TaskType taskType = (TaskType) iterator.next();
- if (TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE.equals(taskType.getId())) {
+ if (parentID.equals(taskType.getId())) {
return false;
}
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/Messages.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/Messages.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/Messages.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -18,7 +18,7 @@
public static String SmooksJavaMappingGraphicalEditor_NodeMustLinkWithSource;
public static String SmooksJavaMappingGraphicalEditor_NullLabel;
public static String SmooksJavaMappingGraphicalEditor_WarningMessage1;
- public static String SmooksProcessGraphicalEditor_4;
+ public static String SmooksProcessGraphicalEditor_Validation_No_Java_Mapping;
public static String SmooksProcessGraphicalEditor_AddTaskActionText;
public static String SmooksProcessGraphicalEditor_FormText;
public static String SmooksProcessGraphicalEditor_TaskConfigurationSectionTitle;
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/ProcessAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/ProcessAnalyzer.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/ProcessAnalyzer.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -64,9 +64,7 @@
// for freemarker template
if (abstractResourceConfig instanceof Freemarker) {
- TaskType task = ProcessFactory.eINSTANCE.createTaskType();
- task.setId(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE);
- task.setName(TaskTypeManager.getTaskLabel(task));
+ TaskType task = toTaskType((Freemarker) abstractResourceConfig);
tasks.add(task);
String refid = SmooksModelUtils.getParamValue(((Freemarker)
abstractResourceConfig).getParam(),
@@ -85,11 +83,27 @@
// SmooksModelUtils.addParam(task, idParam);
}
- taskIDs.add(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE);
+ taskIDs.add(task.getId());
}
}
return tasks;
}
+
+ public static TaskType toTaskType(Freemarker freeMarker) {
+ String messageType = SmooksModelUtils.getParamValue(freeMarker.getParam(),
SmooksModelUtils.KEY_TEMPLATE_TYPE);
+ TaskType task = ProcessFactory.eINSTANCE.createTaskType();
+
+ task.setType(messageType);
+ if(SmooksModelUtils.FREEMARKER_TEMPLATE_TYPE_XML.equals(messageType)) {
+ task.setId(TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE);
+ } else if(SmooksModelUtils.FREEMARKER_TEMPLATE_TYPE_CSV.equals(messageType)) {
+ task.setId(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE);
+ }
+ task.setName(TaskTypeManager.getTaskLabel(task));
+ task.addTaskResource(freeMarker);
+
+ return task;
+ }
// private SmooksGraphicsExtType getSmooksGraphicsType(SmooksResourceListType
resouceList) {
// List<AbstractResourceConfig> resourceConfigList =
resouceList.getAbstractResourceConfig();
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksProcessGraphicalEditor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksProcessGraphicalEditor.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksProcessGraphicalEditor.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -99,7 +99,6 @@
import org.jboss.tools.smooks.graphical.editors.process.ProcessType;
import org.jboss.tools.smooks.graphical.editors.process.TaskNodeFigure;
import org.jboss.tools.smooks.graphical.editors.process.TaskType;
-import org.jboss.tools.smooks.graphical.editors.process.TemplateAppyTaskNode;
import
org.jboss.tools.smooks.graphical.editors.template.SmooksFreemarkerCSVTemplateGraphicalEditor;
import
org.jboss.tools.smooks.graphical.editors.template.SmooksFreemarkerTemplateGraphicalEditor;
import org.jboss.tools.smooks.model.freemarker.Freemarker;
@@ -431,10 +430,18 @@
private void generateNextTaskActions(MenuManager addNextTaskMenuManager) {
List<TaskTypeDescriptor> list = TaskTypeManager.getAllTaskList();
+
for (Iterator<?> iterator = list.iterator(); iterator.hasNext();) {
TaskTypeDescriptor taskTypeDescriptor = (TaskTypeDescriptor) iterator.next();
- AddNextTaskNodeAction addNextInputAction = new
AddNextTaskNodeAction(taskTypeDescriptor.getId(),
- taskTypeDescriptor.getLabel(), smooksModelProvider, this);
+
+ if(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE.equals(taskTypeDescriptor.getId()))
{
+ // Bit of a hack to stop adding of the "Apply Template" action multiple
times.
+ // Will have been added for XML, so ignore the CSV... Both actions will trigger
+ // the same wizard anyway....
+ continue;
+ }
+
+ AddNextTaskNodeAction addNextInputAction = new
AddNextTaskNodeAction(taskTypeDescriptor.getId(), taskTypeDescriptor.getLabel(),
smooksModelProvider, this);
this.processPanelActions.add(addNextInputAction);
addNextTaskMenuManager.add(addNextInputAction);
}
@@ -738,40 +745,29 @@
return null;
}
- protected IEditorPart createEditorPart(Object taskID) {
- if (taskID instanceof TemplateAppyTaskNode) {
- String type = ((TemplateAppyTaskNode) taskID).getType();
- SmooksFreemarkerTemplateGraphicalEditor freemarkerPart = new
SmooksFreemarkerCSVTemplateGraphicalEditor(
- smooksModelProvider);
- if (SmooksModelUtils.FREEMARKER_TEMPLATE_TYPE_CSV.equals(type)) {
- freemarkerPart = new
SmooksFreemarkerCSVTemplateGraphicalEditor(smooksModelProvider);
-
- }
- if (SmooksModelUtils.FREEMARKER_TEMPLATE_TYPE_XML.equals(type)) {
- freemarkerPart = new SmooksFreemarkerTemplateGraphicalEditor(smooksModelProvider);
-
- }
- return freemarkerPart;
- }
+ protected IEditorPart createEditorPart(String taskID) {
if (taskID.equals(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
- SmooksFreemarkerTemplateGraphicalEditor freemarkerPart = new
SmooksFreemarkerCSVTemplateGraphicalEditor(
- smooksModelProvider);
- return freemarkerPart;
+ return new SmooksFreemarkerCSVTemplateGraphicalEditor(smooksModelProvider);
}
+ if (taskID.equals(TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE)) {
+ return new SmooksFreemarkerTemplateGraphicalEditor(smooksModelProvider);
+ }
if (taskID.equals(TaskTypeManager.TASK_ID_JAVA_MAPPING)) {
- SmooksJavaMappingGraphicalEditor javaMappingPart = new
SmooksJavaMappingGraphicalEditor(smooksModelProvider);
- return javaMappingPart;
+ return new SmooksJavaMappingGraphicalEditor(smooksModelProvider);
}
-
if (taskID.equals(TaskTypeManager.TASK_ID_INPUT)) {
- SmooksReaderFormPage readerPage = new SmooksReaderFormPage(getEditor(),
"input", "input"); //$NON-NLS-1$ //$NON-NLS-2$
- return readerPage;
+ return new SmooksReaderFormPage(getEditor(), "input", "input");
//$NON-NLS-1$ //$NON-NLS-2$
}
+
return null;
}
+ protected IEditorPart createEditorPart(TaskType taskType) {
+ return createEditorPart(taskType.getId());
+ }
+
protected boolean isSingltonEditor(Object taskID) {
- if (taskID.equals(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
+ if (taskID.equals(TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE) ||
taskID.equals(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
return false;
}
return true;
@@ -874,10 +870,13 @@
}
protected String generateTaskSpecailID(TaskType task) {
- if (task instanceof TemplateAppyTaskNode) {
- if (!((TemplateAppyTaskNode) task).getSmooksModel().isEmpty()
- && ((TemplateAppyTaskNode) task).getSmooksModel().size() == 1) {
- Object freemarker = ((TemplateAppyTaskNode) task).getSmooksModel().get(0);
+ String taskId = task.getId();
+
+ if (taskId.equals(TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE) ||
taskId.equals(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
+ List<AbstractResourceConfig> taskResources = task.getTaskResources();
+ if (!taskResources.isEmpty() && taskResources.size() == 1) {
+ Object freemarker = taskResources.get(0);
+
String taskID = smooksModelIdMap.get(freemarker);
if (taskID == null) {
String tempstamp = String.valueOf(System.currentTimeMillis());
@@ -920,7 +919,7 @@
if (idref != null) {
// idref = id + "_" + idref;
if (getRegisteTaskPage(idref) == null) {
- IEditorPart editor = createEditorPart(finalModel);
+ IEditorPart editor = createEditorPart((TaskType)finalModel);
registeTaskDetailsPage(editor, idref);
}
id = idref;
@@ -1148,9 +1147,11 @@
}
protected void validateTask(TaskType t) {
- if (t == null)
+ if (t == null) {
return;
- final TaskType task = t;
+ }
+
+ final TaskType task = t;
task.setProblemType(IFieldMarker.TYPE_NONE);
task.cleanProblemMessages();
@@ -1205,37 +1206,26 @@
}
}
- if (TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE.equals(id)) {
+ if (TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE.equals(id) ||
TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE.equals(id)) {
+ Freemarker freeMarker = (Freemarker) task.getTaskResources().get(0);
+ String templateDataProvider = SmooksModelUtils.getParamValue(freeMarker.getParam(),
SmooksModelUtils.TEMPLATE_DATA_PROVIDER_PARAM_NAME);
SmooksResourceListType sr = getSmooksResourceListType();
List<AbstractResourceConfig> rcs = sr.getAbstractResourceConfig();
- boolean correct = false;
- boolean multipleTemplate = false;
- int freemarkerCount = 0;
- for (Iterator<?> iterator = rcs.iterator(); iterator.hasNext();) {
- AbstractResourceConfig abstractResourceConfig = (AbstractResourceConfig)
iterator.next();
- if (abstractResourceConfig instanceof BeanType) {
- correct = true;
- // break;
+
+ if(templateDataProvider == null ||
templateDataProvider.trim().equals(TaskTypeManager.TASK_ID_JAVA_MAPPING)) {
+ for (AbstractResourceConfig abstractResourceConfig : rcs) {
+ if (abstractResourceConfig instanceof BeanType) {
+ // Found a Java Mapping... we're ok....
+ return;
+ }
}
- if (abstractResourceConfig instanceof Freemarker) {
- freemarkerCount++;
- }
- if (freemarkerCount > 1) {
- multipleTemplate = true;
- // break;
- }
- if (!correct && multipleTemplate) {
- break;
- }
- }
- if (!correct) {
+
+ // No Java Mappings in the config... warn...
task.setProblemType(IFieldMarker.TYPE_WARINING);
- task.addProblemMessage(Messages.SmooksProcessGraphicalEditor_4);
+ task.addProblemMessage(Messages.SmooksProcessGraphicalEditor_Validation_No_Java_Mapping);
+ } else if(templateDataProvider != null &&
templateDataProvider.trim().equals(TaskTypeManager.TASK_ID_INPUT)) {
+ // TODO:
https://jira.jboss.org/browse/JBIDE-6991
}
- if (multipleTemplate) {
- task.setProblemType(IFieldMarker.TYPE_ERROR);
- task.addProblemMessage(Messages.SmooksProcessGraphicalEditor_ValidationError_MultipleTemplate);
- }
}
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/TaskTypeManager.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/TaskTypeManager.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/TaskTypeManager.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -16,7 +16,6 @@
import org.jboss.tools.smooks.configuration.editors.GraphicsConstants;
import org.jboss.tools.smooks.graphical.editors.process.TaskType;
-import org.jboss.tools.smooks.graphical.editors.process.TemplateAppyTaskNode;
import org.jboss.tools.smooks.model.freemarker.Freemarker;
import org.jboss.tools.smooks.model.javabean12.BeanType;
import org.jboss.tools.smooks.model.smooks.AbstractResourceConfig;
@@ -44,10 +43,10 @@
if (parentId == null)
return null;
if (parentId.equals(TaskTypeManager.TASK_ID_INPUT)) {
- return new String[] { TaskTypeManager.TASK_ID_JAVA_MAPPING };
+ return new String[] { TaskTypeManager.TASK_ID_JAVA_MAPPING,
TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE,
TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE};
}
if (parentId.equals(TaskTypeManager.TASK_ID_JAVA_MAPPING)) {
- return new String[] { TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE };
+ return new String[] { TaskTypeManager.TASK_ID_FREEMARKER_XML_TEMPLATE,
TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE };
}
return null;
}
@@ -64,6 +63,8 @@
GraphicsConstants.IMAGE_INPUT_TASK));
allTaskList.add(new TaskTypeDescriptor(TASK_ID_JAVA_MAPPING,
Messages.TaskTypeManager_JavaMappingTaskLabel,
GraphicsConstants.IMAGE_JAVA_AMPPING_TASK));
+ allTaskList.add(new TaskTypeDescriptor(TASK_ID_FREEMARKER_XML_TEMPLATE,
+ Messages.TaskTypeManager_ApplyTemplateTaskLabel,
GraphicsConstants.IMAGE_APPLY_FREEMARKER_TASK));
allTaskList.add(new TaskTypeDescriptor(TASK_ID_FREEMARKER_CSV_TEMPLATE,
Messages.TaskTypeManager_ApplyTemplateTaskLabel,
GraphicsConstants.IMAGE_APPLY_FREEMARKER_TASK));
}
@@ -81,7 +82,7 @@
if (TASK_ID_JAVA_MAPPING.equals(taskID)) {
elementsType.add(BeanType.class);
}
- if (TASK_ID_FREEMARKER_CSV_TEMPLATE.equals(taskID)) {
+ if (TASK_ID_FREEMARKER_XML_TEMPLATE.equals(taskID) ||
TASK_ID_FREEMARKER_CSV_TEMPLATE.equals(taskID)) {
elementsType.add(Freemarker.class);
}
return elementsType;
@@ -91,11 +92,8 @@
if (task != null) {
String taskId = task.getId();
if (taskId != null) {
- if (taskId.equals(TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
- String messageType = ""; //$NON-NLS-1$
- if (task instanceof TemplateAppyTaskNode) {
- messageType = ((TemplateAppyTaskNode) task).getType();
- }
+ if (taskId.equals(TASK_ID_FREEMARKER_XML_TEMPLATE) ||
taskId.equals(TASK_ID_FREEMARKER_CSV_TEMPLATE)) {
+ String messageType = task.getType();
if (messageType == null)
messageType = ""; //$NON-NLS-1$
if (messageType.length() > 0){
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/messages.properties
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/messages.properties 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/messages.properties 2010-09-03
11:58:30 UTC (rev 24689)
@@ -12,7 +12,7 @@
SmooksJavaMappingGraphicalEditor_NodeMustLinkWithSource=The node must be linked with
input source
SmooksJavaMappingGraphicalEditor_NullLabel=<NULL>
SmooksJavaMappingGraphicalEditor_WarningMessage1=Decoder should be '
-SmooksProcessGraphicalEditor_4=No java mapping has been specified in the Java Mapping
task.
+SmooksProcessGraphicalEditor_Validation_No_Java_Mapping=No java mapping has been
specified in the Java Mapping task.
SmooksProcessGraphicalEditor_ValidationError_MultipleTemplate=Doesn't support
multiple template task.
SmooksProcessGraphicalEditor_AddTaskActionText=Add Task
SmooksProcessGraphicalEditor_FormText=Smooks Processing
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/ProcessFactory.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/ProcessFactory.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/ProcessFactory.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -24,8 +24,4 @@
public ProcessType createProcessType(){
return new ProcessTypeImpl();
}
-
- public TemplateAppyTaskNode createTemplateTask(){
- return new TemplateAppyTaskNode();
- }
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/ProcessTaskAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/ProcessTaskAnalyzer.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/ProcessTaskAnalyzer.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -10,13 +10,17 @@
******************************************************************************/
package org.jboss.tools.smooks.graphical.editors.process;
-import java.util.Iterator;
+import java.util.ArrayList;
import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.jboss.tools.smooks.graphical.editors.ProcessAnalyzer;
import org.jboss.tools.smooks.graphical.editors.TaskTypeManager;
import org.jboss.tools.smooks.model.freemarker.Freemarker;
import org.jboss.tools.smooks.model.javabean12.BeanType;
import org.jboss.tools.smooks.model.smooks.AbstractResourceConfig;
+import org.jboss.tools.smooks.model.smooks.ElementVisitor;
+import org.jboss.tools.smooks.model.smooks.ParamType;
import org.jboss.tools.smooks.model.smooks.SmooksResourceListType;
import org.jboss.tools.smooks10.model.smooks.util.SmooksModelUtils;
@@ -28,8 +32,11 @@
public void analyzeTaskNode(ProcessType process, SmooksResourceListType resourceList) {
process.getTask().clear();
- if (resourceList == null)
+
+ if (resourceList == null) {
return;
+ }
+
// Input task node must be in process:
TaskType inputTask = ProcessFactory.eINSTANCE.createTaskType();
inputTask.setId(TaskTypeManager.TASK_ID_INPUT);
@@ -38,38 +45,71 @@
process.addTask(inputTask);
List<AbstractResourceConfig> resourceConfigList =
resourceList.getAbstractResourceConfig();
+ TaskType javaMappingTask = getJavaMappingTask(resourceConfigList);
+ List<TaskType> templatingTasks = getTemplatingTasks(resourceConfigList);
- // the java mapping is the next task node of input task:
- TaskType javaMappingTask = null;
- for (Iterator<?> iterator = resourceConfigList.iterator(); iterator.hasNext();)
{
- AbstractResourceConfig abstractResourceConfig = (AbstractResourceConfig)
iterator.next();
- if (abstractResourceConfig instanceof BeanType) {
- javaMappingTask = ProcessFactory.eINSTANCE.createTaskType();
- javaMappingTask.setId(TaskTypeManager.TASK_ID_JAVA_MAPPING);
- javaMappingTask.setName(TaskTypeManager.getTaskLabel(javaMappingTask));
- inputTask.addTask(javaMappingTask);
- break;
- }
+ // Connect the Java Mappings task to the input task...
+ if (javaMappingTask != null) {
+ inputTask.addTask(javaMappingTask);
}
- // the apply template is the next task node of java mapping task:
- if (javaMappingTask != null) {
- for (Iterator<?> iterator = resourceConfigList.iterator(); iterator.hasNext();)
{
- AbstractResourceConfig abstractResourceConfig = (AbstractResourceConfig)
iterator.next();
- if (abstractResourceConfig instanceof Freemarker) {
- String messageType = SmooksModelUtils.getParamValue(((Freemarker)
abstractResourceConfig)
- .getParam(), SmooksModelUtils.KEY_TEMPLATE_TYPE);
- if (SmooksModelUtils.FREEMARKER_TEMPLATE_TYPE_CSV.equals(messageType)
- || SmooksModelUtils.FREEMARKER_TEMPLATE_TYPE_XML.equals(messageType)) {
- TemplateAppyTaskNode templateTask = (TemplateAppyTaskNode)
ProcessFactory.eINSTANCE
- .createTemplateTask();
- templateTask.setType(messageType);
- templateTask.addSmooksModel(abstractResourceConfig);
- templateTask.setName(TaskTypeManager.getTaskLabel(templateTask));
- javaMappingTask.addTask(templateTask);
+ // Connect the Templating tasks to the Input and Java Mappings task as appropriate...
+ for(TaskType templatingTask : templatingTasks) {
+ AbstractResourceConfig templatingResource = templatingTask.getTaskResources().get(0);
+
+ if(templatingResource instanceof Freemarker) {
+ Freemarker freemarkerResource = (Freemarker) templatingResource;
+ EList<ParamType> params = freemarkerResource.getParam();
+
+ if(SmooksModelUtils.getParam(params, SmooksModelUtils.KEY_TEMPLATE_TYPE) != null) {
+ ParamType templateDataProvider = SmooksModelUtils.getParam(params,
SmooksModelUtils.TEMPLATE_DATA_PROVIDER_PARAM_NAME);
+
+ if(templateDataProvider == null ||
TaskTypeManager.TASK_ID_JAVA_MAPPING.equals(templateDataProvider.getStringValue())) {
+ if(javaMappingTask != null) {
+ javaMappingTask.addTask(templatingTask);
+ }
+ } else if(templateDataProvider != null &&
TaskTypeManager.TASK_ID_INPUT.equals(templateDataProvider.getStringValue())) {
+ inputTask.addTask(templatingTask);
}
}
}
+ }
+ }
+
+ private TaskType getJavaMappingTask(List<AbstractResourceConfig>
resourceConfigList) {
+ return getTask(BeanType.class, TaskTypeManager.TASK_ID_JAVA_MAPPING,
resourceConfigList);
+ }
+
+ private List<TaskType> getTemplatingTasks(List<AbstractResourceConfig>
resourceConfigList) {
+ List<TaskType> taskList = new ArrayList<TaskType>();
+
+ addFreeMarkerTasks(resourceConfigList, taskList);
+
+ return taskList;
+ }
+
+ private TaskType getTask(Class<? extends ElementVisitor> resourceType, String
taskId, List<AbstractResourceConfig> resourceConfigList) {
+ TaskType task = null;
+
+ for (AbstractResourceConfig abstractResourceConfig : resourceConfigList) {
+ if (resourceType.isInstance(abstractResourceConfig)) {
+ if(task == null) {
+ task = ProcessFactory.eINSTANCE.createTaskType();
+ task.setId(taskId);
+ task.setName(TaskTypeManager.getTaskLabel(task));
+ }
+ task.addTaskResource(abstractResourceConfig);
+ }
}
+
+ return task;
}
+
+ private void addFreeMarkerTasks(List<AbstractResourceConfig> resourceConfigList,
List<TaskType> taskList) {
+ for (AbstractResourceConfig resourceConfig : resourceConfigList) {
+ if (resourceConfig instanceof Freemarker) {
+ taskList.add(ProcessAnalyzer.toTaskType((Freemarker) resourceConfig));
+ }
+ }
+ }
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TaskType.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TaskType.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TaskType.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -10,6 +10,8 @@
import java.beans.PropertyChangeSupport;
import java.util.List;
+import org.jboss.tools.smooks.model.smooks.AbstractResourceConfig;
+
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Task
Type</b></em>'.
@@ -154,10 +156,12 @@
*/
void setType(String value);
- boolean inTheTask(Object smooksModel);
+ boolean inTheTask(AbstractResourceConfig smooksResource);
- void addSmooksModel(Object smooksModel);
+ List<AbstractResourceConfig> getTaskResources();
- void removeSmooksModel(Object smooksModel);
+ void addTaskResource(AbstractResourceConfig smooksResource);
+
+ void removeTaskResource(AbstractResourceConfig smooksResource);
} // TaskType
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TaskTypeImpl.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TaskTypeImpl.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TaskTypeImpl.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -11,6 +11,7 @@
import java.util.List;
import org.jboss.tools.smooks.configuration.editors.IFieldMarker;
+import org.jboss.tools.smooks.model.smooks.AbstractResourceConfig;
/**
* <!-- begin-user-doc --> An implementation of the model object '
@@ -40,7 +41,7 @@
private Object parent;
- private List<Object> smooksModel = null;
+ private List<AbstractResourceConfig> taskResources = null;
private int problemType = IFieldMarker.TYPE_NONE;
@@ -106,14 +107,11 @@
this.parent = parent;
}
- /**
- * @return the smooksModel
- */
- public List<Object> getSmooksModel() {
- if (smooksModel == null) {
- smooksModel = new ArrayList<Object>();
+ public List<AbstractResourceConfig> getTaskResources() {
+ if (taskResources == null) {
+ taskResources = new ArrayList<AbstractResourceConfig>();
}
- return smooksModel;
+ return taskResources;
}
/**
@@ -305,16 +303,19 @@
return result.toString();
}
- public void addSmooksModel(Object smooksModel) {
- getSmooksModel().add(smooksModel);
+ public void addTaskResource(AbstractResourceConfig smooksResource) {
+ getTaskResources().add(smooksResource);
}
- public boolean inTheTask(Object smooksModel) {
- return true;
+ public boolean inTheTask(AbstractResourceConfig smooksResource) {
+ if(taskResources == null) {
+ return false;
+ }
+ return taskResources.contains(smooksResource);
}
- public void removeSmooksModel(Object smooksModel) {
- getSmooksModel().remove(smooksModel);
+ public void removeTaskResource(AbstractResourceConfig smooksResource) {
+ getTaskResources().remove(smooksResource);
}
} // TaskTypeImpl
Deleted:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TemplateAppyTaskNode.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TemplateAppyTaskNode.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/process/TemplateAppyTaskNode.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -1,39 +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.editors.process;
-
-import org.jboss.tools.smooks.graphical.editors.TaskTypeManager;
-
-/**
- * @author Dart
- *
- */
-public class TemplateAppyTaskNode extends TaskTypeImpl {
-
- public TemplateAppyTaskNode() {
- super();
- this.setId(TaskTypeManager.TASK_ID_FREEMARKER_CSV_TEMPLATE);
- this.setName(TaskTypeManager.getTaskLabel(this));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.jboss.tools.smooks.graphical.editors.process.TaskTypeImpl#inTheTask
- * (java.lang.Object)
- */
- @Override
- public boolean inTheTask(Object smooksModel) {
- return this.getSmooksModel().contains(smooksModel);
- }
-
-}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateGraphicalModelFactory.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateGraphicalModelFactory.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/FreemarkerTemplateGraphicalModelFactory.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -69,7 +69,7 @@
if (SmooksModelUtils.FREEMARKER_TEMPLATE_TYPE_XML.equals(messageType)) {
templateLP = new FreemarkerTemplateModelLabelProvider();
}
- if (taskType.inTheTask(model)) {
+ if (taskType.inTheTask((Freemarker)model)) {
graphModel = new FreemarkerTemplateGraphicalModel(model, new
FreemarkerContentProvider(
contentProvider), templateLP, provider);
((TreeContainerModel) graphModel).setHeaderVisable(true);
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerCSVTemplateGraphicalEditor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerCSVTemplateGraphicalEditor.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/template/SmooksFreemarkerCSVTemplateGraphicalEditor.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -53,7 +53,7 @@
if (SmooksModelUtils.KEY_CSV_FIELDS.equals(((ParamType) object).getName())) {
if (parent instanceof Freemarker) {
TaskType task = this.getTaskType();
- if (task != null && task.inTheTask(parent)) {
+ if (task != null && task.inTheTask((Freemarker)parent)) {
autoLayout(true);
break;
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerTemplateParametersProvider.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerTemplateParametersProvider.java 2010-09-03
11:26:52 UTC (rev 24688)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/wizard/freemarker/FreemarkerTemplateParametersProvider.java 2010-09-03
11:58:30 UTC (rev 24689)
@@ -17,6 +17,7 @@
*
*/
public interface FreemarkerTemplateParametersProvider {
+
Map<String,String> getParameters();
String getTemplateType();