Author: DartPeng
Date: 2009-07-02 02:40:38 -0400 (Thu, 02 Jul 2009)
New Revision: 16331
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/actions/AddSmooksResourceAction.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataConfiguraitonWizardPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataPathWizardPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataWizard.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/wizard/IStructuredDataSelectionWizard.java
Log:
JBIDE-4540
Control the number of JSON reader in smooks config file.
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/actions/AddSmooksResourceAction.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/actions/AddSmooksResourceAction.java 2009-07-02
06:38:51 UTC (rev 16330)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/actions/AddSmooksResourceAction.java 2009-07-02
06:40:38 UTC (rev 16331)
@@ -10,18 +10,25 @@
******************************************************************************/
package org.jboss.tools.smooks.configuration.actions;
+import java.util.Collection;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.command.CreateChildCommand;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.edit.ui.action.CreateChildAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
+import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
import org.jboss.tools.smooks.model.smooks.AbstractReader;
+import org.jboss.tools.smooks.model.smooks.SmooksResourceListType;
/**
* @author Dart (dpeng(a)redhat.com)
- *
+ *
*/
public class AddSmooksResourceAction extends CreateChildAction {
@@ -47,20 +54,48 @@
public void setDescriptor(Object descriptor) {
this.descriptor = descriptor;
}
-
- protected void resetActionText(){
- if(descriptor instanceof CommandParameter){
- CommandParameter parameter = (CommandParameter)descriptor;
- if(parameter.getValue() != null){
+
+ protected boolean canCreateReaderCommand(AbstractReader value, SmooksResourceListType
resourceList) {
+ return !SmooksUIUtils.hasReaderAlready(value.getClass(), resourceList);
+ }
+
+ @Override
+ protected Command createActionCommand(EditingDomain editingDomain, Collection<?>
collection) {
+ if (collection.size() == 1) {
+ Object obj = collection.iterator().next();
+ SmooksResourceListType listType = null;
+ if (obj instanceof EObject) {
+ listType = SmooksUIUtils.getSmooks11ResourceListType((EObject) obj);
+ }
+ if (descriptor != null && descriptor instanceof CommandParameter) {
+ CommandParameter parameter = (CommandParameter) descriptor;
+ if (parameter.getValue() != null) {
+ Object value = AdapterFactoryEditingDomain.unwrap(parameter.getValue());
+ if (value instanceof AbstractReader) {
+ if (!canCreateReaderCommand((AbstractReader) value, listType)) {
+ return CreateChildCommand.create(editingDomain, null,
+ descriptor, collection);
+ }
+ }
+ }
+ }
+ }
+ return super.createActionCommand(editingDomain, collection);
+ }
+
+ protected void resetActionText() {
+ if (descriptor instanceof CommandParameter) {
+ CommandParameter parameter = (CommandParameter) descriptor;
+ if (parameter.getValue() != null) {
Object value = AdapterFactoryEditingDomain.unwrap(parameter.getValue());
- if(value instanceof AbstractReader){
-// if(value instanceof JsonReader){
-// setText("JSON Reader");
-// }
-//
-// if(value instanceof ReaderType){
-// setText("Custome Reader");
-// }
+ if (value instanceof AbstractReader) {
+ // if(value instanceof JsonReader){
+ // setText("JSON Reader");
+ // }
+ //
+ // if(value instanceof ReaderType){
+ // setText("Custome Reader");
+ // }
}
}
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataConfiguraitonWizardPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataConfiguraitonWizardPage.java 2009-07-02
06:38:51 UTC (rev 16330)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataConfiguraitonWizardPage.java 2009-07-02
06:40:38 UTC (rev 16331)
@@ -35,10 +35,15 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
+import org.jboss.tools.smooks.model.json.JsonReader;
+import org.jboss.tools.smooks.model.json.impl.JsonReaderImpl;
+import org.jboss.tools.smooks.model.smooks.SmooksResourceListType;
/**
* @author Dart (dpeng(a)redhat.com)
@@ -86,7 +91,31 @@
protected boolean createJsonReader = true;
+ private Button newReaderConfigButton;
+
+ private Button useAvailableReaderConfigButton;
+
+ private SmooksResourceListType resourceList;
+
+ private boolean hasReader = false;
+
+ private boolean useAvailabelReader = false;
+
+ private Composite configComposite;
+
+ private Composite keyMapComposite;
+
+
+
private void initValue() {
+ hasReader = false;
+ if (SmooksUIUtils.hasReaderAlready(JsonReaderImpl.class, resourceList)
+ || SmooksUIUtils.hasReaderAlready(JsonReader.class, resourceList)) {
+ hasReader = true;
+ }
+
+ useAvailabelReader= false;
+
rootName = null;
createJsonReader = true;
@@ -106,6 +135,11 @@
keyValueList = new ArrayList<KeyValueModel>();
}
+ if (hasReader) {
+ useAvailabelReader = true;
+ createJsonReader = false;
+ }
+
}
/*
@@ -126,53 +160,85 @@
gd.grabExcessVerticalSpace = true;
mainComposite.setLayoutData(gd);
+ Composite radioButtonComposite = new Composite(mainComposite, SWT.NONE);
gd = new GridData(GridData.FILL_HORIZONTAL);
- Label rootnameLabel = new Label(mainComposite, SWT.NONE);
+ gd.horizontalSpan = 2;
+ radioButtonComposite.setLayoutData(gd);
+
+ GridLayout rgl = new GridLayout();
+ rgl.numColumns = 2;
+ rgl.marginHeight = 0;
+ rgl.marginWidth = 0;
+ radioButtonComposite.setLayout(rgl);
+
+ Composite spaceComposite = new Composite(mainComposite, SWT.NONE);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ gd.heightHint = 20;
+ spaceComposite.setLayoutData(gd);
+
+ newReaderConfigButton = new Button(radioButtonComposite, SWT.RADIO);
+ newReaderConfigButton.setText("Create new JSON reader configurations");
+ newReaderConfigButton.setSelection(true);
+
+ useAvailableReaderConfigButton = new Button(radioButtonComposite, SWT.RADIO);
+ useAvailableReaderConfigButton.setText("Use available JSON reader
configurations");
+
+ configComposite = new Composite(mainComposite, SWT.NONE);
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.horizontalSpan = 2;
+ configComposite.setLayoutData(gd);
+
+ GridLayout cgl = new GridLayout();
+ cgl.marginHeight = 0;
+ cgl.marginWidth = 0;
+ cgl.numColumns = 2;
+ configComposite.setLayout(cgl);
+
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ Label rootnameLabel = new Label(configComposite, SWT.NONE);
rootnameLabel.setText("Root Element Name");
- rootNameText = new Text(mainComposite, SWT.BORDER);
+ rootNameText = new Text(configComposite, SWT.BORDER);
rootNameText.setLayoutData(gd);
- Label arrayElementNameLabel = new Label(mainComposite, SWT.NONE);
+ Label arrayElementNameLabel = new Label(configComposite, SWT.NONE);
arrayElementNameLabel.setText("Array Element Name");
- arrayElementNameText = new Text(mainComposite, SWT.BORDER);
+ arrayElementNameText = new Text(configComposite, SWT.BORDER);
arrayElementNameText.setLayoutData(gd);
arrayElementNameText.setText(arrayElementName);
- Label keyWhitspaceReplacementLabel = new Label(mainComposite, SWT.NONE);
+ Label keyWhitspaceReplacementLabel = new Label(configComposite, SWT.NONE);
keyWhitspaceReplacementLabel.setText("Space Replacement");
- keyWhitspaceReplacementText = new Text(mainComposite, SWT.BORDER);
+ keyWhitspaceReplacementText = new Text(configComposite, SWT.BORDER);
keyWhitspaceReplacementText.setLayoutData(gd);
if (keyWhitspaceReplacement == null) {
keyWhitspaceReplacement = "";
}
keyWhitspaceReplacementText.setText(keyWhitspaceReplacement);
- Label keyPrefixOnNumeric = new Label(mainComposite, SWT.NONE);
+ Label keyPrefixOnNumeric = new Label(configComposite, SWT.NONE);
keyPrefixOnNumeric.setText("Prefix On Numeric");
- keyPrefixOnNumericText = new Text(mainComposite, SWT.BORDER);
+ keyPrefixOnNumericText = new Text(configComposite, SWT.BORDER);
keyPrefixOnNumericText.setLayoutData(gd);
- Label illegalElementNameCharReplacementLabel = new Label(mainComposite,
- SWT.NONE);
- illegalElementNameCharReplacementLabel
- .setText("IllegalChar Replacement");
- illegalElementNameCharReplacementText = new Text(mainComposite,
- SWT.BORDER);
+ Label illegalElementNameCharReplacementLabel = new Label(configComposite, SWT.NONE);
+ illegalElementNameCharReplacementLabel.setText("IllegalChar Replacement");
+ illegalElementNameCharReplacementText = new Text(configComposite, SWT.BORDER);
illegalElementNameCharReplacementText.setLayoutData(gd);
- Label nullValueReplacementlabel = new Label(mainComposite, SWT.NONE);
+ Label nullValueReplacementlabel = new Label(configComposite, SWT.NONE);
nullValueReplacementlabel.setText("NullValue Replacement");
- nullValueReplacementText = new Text(mainComposite, SWT.BORDER);
+ nullValueReplacementText = new Text(configComposite, SWT.BORDER);
nullValueReplacementText.setLayoutData(gd);
nullValueReplacementText.setText(nullValueReplacement);
- Label encodingLabel = new Label(mainComposite, SWT.NONE);
+ Label encodingLabel = new Label(configComposite, SWT.NONE);
encodingLabel.setText("Encoding");
- encodingText = new Text(mainComposite, SWT.BORDER);
+ encodingText = new Text(configComposite, SWT.BORDER);
encodingText.setLayoutData(gd);
encodingText.setText(encoding);
- Label keyMapLabel = new Label(mainComposite, SWT.NONE);
+ Label keyMapLabel = new Label(configComposite, SWT.NONE);
keyMapLabel.setText("Key Map:");
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
@@ -181,7 +247,7 @@
gd = new GridData(GridData.FILL_BOTH);
gd.horizontalSpan = 2;
- Composite keyMapComposite = new Composite(mainComposite, SWT.NONE);
+ keyMapComposite = new Composite(configComposite, SWT.NONE);
keyMapComposite.setLayoutData(gd);
GridLayout kgl = new GridLayout();
@@ -197,14 +263,11 @@
keyMapViewer.setContentProvider(new KeyMapContentProvider());
keyMapViewer.setLabelProvider(new KeyMapLabelProvider());
- CellEditor keyCellEditor = new TextCellEditor(keyMapViewer.getTable(),
- SWT.BORDER);
+ CellEditor keyCellEditor = new TextCellEditor(keyMapViewer.getTable(), SWT.BORDER);
- CellEditor valueCellEditor = new TextCellEditor(
- keyMapViewer.getTable(), SWT.BORDER);
+ CellEditor valueCellEditor = new TextCellEditor(keyMapViewer.getTable(), SWT.BORDER);
- keyMapViewer.setCellEditors(new CellEditor[] { keyCellEditor,
- valueCellEditor });
+ keyMapViewer.setCellEditors(new CellEditor[] { keyCellEditor, valueCellEditor });
keyMapViewer.setColumnProperties(new String[] { "key", "value" });
@@ -261,13 +324,11 @@
}
});
- TableColumn keyColumn = new TableColumn(keyMapViewer.getTable(),
- SWT.BORDER);
+ TableColumn keyColumn = new TableColumn(keyMapViewer.getTable(), SWT.BORDER);
keyColumn.setWidth(150);
keyColumn.setText("Key");
- TableColumn replaceColumn = new TableColumn(keyMapViewer.getTable(),
- SWT.BORDER);
+ TableColumn replaceColumn = new TableColumn(keyMapViewer.getTable(), SWT.BORDER);
replaceColumn.setWidth(150);
replaceColumn.setText("Replace");
@@ -290,20 +351,81 @@
removeButton.setLayoutData(gd);
removeButton.setText("Remove");
- createJsonReaderButton = new Button(mainComposite, SWT.CHECK);
+ createJsonReaderButton = new Button(configComposite, SWT.CHECK);
createJsonReaderButton.setText("Create a JSON Reader");
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
createJsonReaderButton.setLayoutData(gd);
- createJsonReaderButton.setSelection(true);
+ createJsonReaderButton.setSelection(createJsonReader);
+
+ if (hasReader) {
+ createJsonReaderButton.setEnabled(false);
+ newReaderConfigButton.setSelection(false);
+ useAvailableReaderConfigButton.setSelection(true);
+ setConfigCompositeStates(false);
+// configComposite.setEnabled(false);
+ }
hookControls();
changePageStatus();
this.setControl(mainComposite);
}
+
+ private void setConfigCompositeStates(boolean enabled){
+ configComposite.setEnabled(enabled);
+ Control[] controls = configComposite.getChildren();
+ for (int i = 0; i < controls.length; i++) {
+ Control c = controls[i];
+ if(c == createJsonReaderButton){
+ if(hasReader){
+ c.setEnabled(false);
+ continue;
+ }
+ }
+ if(c == keyMapComposite){
+ Control[] cs = ((Composite)c).getChildren();
+ for (int j = 0; j < cs.length; j++) {
+ Control cc = cs[j];
+ cc.setEnabled(enabled);
+ }
+ }
+ c.setEnabled(enabled);
+ }
+ }
private void hookControls() {
+ newReaderConfigButton.addSelectionListener(new SelectionListener() {
+
+ public void widgetSelected(SelectionEvent e) {
+ if (newReaderConfigButton.getSelection()) {
+ useAvailabelReader = false;
+ changePageStatus();
+ setConfigCompositeStates(true);
+ }
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+
+ useAvailableReaderConfigButton.addSelectionListener(new SelectionListener() {
+
+ public void widgetSelected(SelectionEvent e) {
+ if (useAvailableReaderConfigButton.getSelection()) {
+ useAvailabelReader = true;
+ changePageStatus();
+ setConfigCompositeStates(false);
+ }
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+
+ }
+ });
+
addButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
@@ -318,11 +440,9 @@
removeButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
- IStructuredSelection selection = (IStructuredSelection) keyMapViewer
- .getSelection();
+ IStructuredSelection selection = (IStructuredSelection) keyMapViewer.getSelection();
List<?> selections = selection.toList();
- for (Iterator<?> iterator = selections.iterator(); iterator
- .hasNext();) {
+ for (Iterator<?> iterator = selections.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
keyValueList.remove(object);
}
@@ -362,15 +482,13 @@
}
});
- illegalElementNameCharReplacementText
- .addModifyListener(new ModifyListener() {
+ illegalElementNameCharReplacementText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- illegalElementNameCharReplacement = illegalElementNameCharReplacementText
- .getText();
- changePageStatus();
- }
- });
+ public void modifyText(ModifyEvent e) {
+ illegalElementNameCharReplacement = illegalElementNameCharReplacementText.getText();
+ changePageStatus();
+ }
+ });
keyPrefixOnNumericText.addModifyListener(new ModifyListener() {
@@ -407,6 +525,11 @@
private void changePageStatus() {
String error = null;
+ if (useAvailabelReader) {
+ setErrorMessage(null);
+ setPageComplete(true);
+ return;
+ }
rootName = rootNameText.getText();
if (rootName == null || rootName.length() == 0) {
error = "Root Name can't be null";
@@ -431,14 +554,14 @@
setPageComplete(error == null);
}
- public JsonDataConfiguraitonWizardPage(String pageName, String title,
- ImageDescriptor titleImage) {
+ public JsonDataConfiguraitonWizardPage(String pageName, String title, ImageDescriptor
titleImage) {
super(pageName, title, titleImage);
- // TODO Auto-generated constructor stub
}
public JsonDataConfiguraitonWizardPage(String pageName) {
super(pageName);
+ this.setTitle("JSON Reader configurations");
+ this.setDescription("Set the configurations for parsing JSON file.");
}
public String getRootName() {
@@ -477,8 +600,7 @@
return illegalElementNameCharReplacement;
}
- public void setIllegalElementNameCharReplacement(
- String illegalElementNameCharReplacement) {
+ public void setIllegalElementNameCharReplacement(String
illegalElementNameCharReplacement) {
this.illegalElementNameCharReplacement = illegalElementNameCharReplacement;
}
@@ -490,18 +612,37 @@
this.nullValueReplacement = nullValueReplacement;
}
-// public Map<String, String> getKeyMap() {
-// return keyMap;
-// }
-//
-// public void setKeyMap(Map<String, String> keyMap) {
-// this.keyMap = keyMap;
-// }
+ // public Map<String, String> getKeyMap() {
+ // return keyMap;
+ // }
+ //
+ // public void setKeyMap(Map<String, String> keyMap) {
+ // this.keyMap = keyMap;
+ // }
+
+
public String getEncoding() {
return encoding;
}
+
+
+ public boolean isUseAvailabelReader() {
+ return useAvailabelReader;
+ }
+ public void setUseAvailabelReader(boolean useAvailabelReader) {
+ this.useAvailabelReader = useAvailabelReader;
+ }
+
+ public SmooksResourceListType getSmooksResourceList() {
+ return resourceList;
+ }
+
+ public void setSmooksResourceList(SmooksResourceListType resourceList) {
+ this.resourceList = resourceList;
+ }
+
public void setEncoding(String encoding) {
this.encoding = encoding;
}
@@ -522,11 +663,8 @@
this.createJsonReader = createJsonReader;
}
+ private class KeyMapLabelProvider extends LabelProvider implements ITableLabelProvider
{
-
- private class KeyMapLabelProvider extends LabelProvider implements
- ITableLabelProvider {
-
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataPathWizardPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataPathWizardPage.java 2009-07-02
06:38:51 UTC (rev 16330)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataPathWizardPage.java 2009-07-02
06:40:38 UTC (rev 16331)
@@ -28,6 +28,8 @@
public JsonDataPathWizardPage(String pageName, String[] fileExtensionNames) {
super(pageName, fileExtensionNames);
+ this.setTitle("JSON file selection");
+ this.setDescription("Select a JSON data file");
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataWizard.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataWizard.java 2009-07-02
06:38:51 UTC (rev 16330)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/json/JsonDataWizard.java 2009-07-02
06:40:38 UTC (rev 16331)
@@ -16,9 +16,11 @@
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
@@ -39,15 +41,19 @@
* @author Dart (dpeng(a)redhat.com)
*
*/
-public class JsonDataWizard extends Wizard implements
- IStructuredDataSelectionWizard, INewWizard {
+public class JsonDataWizard extends Wizard implements IStructuredDataSelectionWizard,
INewWizard {
private JsonDataPathWizardPage pathPage = null;
private JsonDataConfiguraitonWizardPage configPage = null;
+ private SmooksResourceListType resourceList;
+
+ private EditingDomain editingDomain;
+
public JsonDataWizard() {
super();
+ this.setWindowTitle("JSON Input Data Wizard");
}
public boolean canFinish() {
@@ -67,13 +73,12 @@
public void addPages() {
super.addPages();
if (pathPage == null) {
- pathPage = new JsonDataPathWizardPage("Json Input Data Selection ",
- new String[] {});
+ pathPage = new JsonDataPathWizardPage("Json Input Data Selection ", new
String[] {});
}
if (configPage == null) {
- configPage = new JsonDataConfiguraitonWizardPage(
- "Json data configuration page");
+ configPage = new JsonDataConfiguraitonWizardPage("Json data configuration
page");
+ configPage.setSmooksResourceList(resourceList);
}
this.addPage(pathPage);
this.addPage(configPage);
@@ -86,7 +91,65 @@
*/
@Override
public boolean performFinish() {
- // TODO Auto-generated method stub
+ if(editingDomain == null || resourceList == null){
+ return true;
+ }
+ if (configPage != null && configPage.isCreateJsonReader()) {
+ List<KeyValueModel> keyMapList = configPage.getKeyValueList();
+
+ JsonReader reader = JsonFactory.eINSTANCE.createJsonReader();
+ if (keyMapList != null && !keyMapList.isEmpty()) {
+ KeyMap map = JsonFactory.eINSTANCE.createKeyMap();
+ for (Iterator<?> iterator = keyMapList.iterator(); iterator.hasNext();) {
+ KeyValueModel keyValueModel = (KeyValueModel) iterator.next();
+ String key = keyValueModel.getKey();
+ String value = keyValueModel.getValue();
+ Key k = JsonFactory.eINSTANCE.createKey();
+ k.setFrom(key);
+ k.setTo(value);
+ map.getKey().add(k);
+ }
+ reader.setKeyMap(map);
+ }
+
+ String aen = configPage.getArrayElementName();
+ if (aen != null && aen.length() != 0) {
+ reader.setArrayElementName(aen);
+ }
+
+ String rn = configPage.getRootName();
+ if (rn != null && rn.length() != 0) {
+ reader.setRootName(rn);
+ }
+
+ String encoding = configPage.getEncoding();
+ if (encoding != null && encoding.length() != 0) {
+ reader.setEncoding(encoding);
+ }
+
+ String sr = configPage.getKeyWhitspaceReplacement();
+ if (sr != null && sr.length() != 0) {
+ reader.setKeyWhitspaceReplacement(sr);
+ }
+
+ String pon = configPage.getKeyPrefixOnNumeric();
+ if (pon != null && pon.length() != 0) {
+ reader.setKeyPrefixOnNumeric(pon);
+ }
+
+ String nvr = configPage.getNullValueReplacement();
+ if (nvr != null && nvr.length() != 0) {
+ reader.setNullValueReplacement(nvr);
+ }
+
+ String ier = configPage.getIllegalElementNameCharReplacement();
+ if (ier != null && ier.length() != 0) {
+ reader.setIllegalElementNameCharReplacement(ier);
+ }
+ Command command = AddCommand.create(editingDomain, resourceList,
SmooksPackage.eINSTANCE
+ .getSmooksResourceListType_AbstractReader(), reader);
+ editingDomain.getCommandStack().execute(command);
+ }
return true;
}
@@ -128,15 +191,14 @@
if (configPage != null) {
boolean createJsonReader = configPage.isCreateJsonReader();
-
- if (createJsonReader) {
+ boolean useJsonReader = configPage.isUseAvailabelReader();
+ if (createJsonReader || useJsonReader) {
p.setProperty(JsonInputDataParser.LINK_JSON_READER, "true");
return;
}
List<KeyValueModel> keyMapList = configPage.getKeyValueList();
- for (Iterator<?> iterator = keyMapList.iterator(); iterator
- .hasNext();) {
+ for (Iterator<?> iterator = keyMapList.iterator(); iterator.hasNext();) {
KeyValueModel keyValueModel = (KeyValueModel) iterator.next();
String key = keyValueModel.getKey();
String value = keyValueModel.getValue();
@@ -212,79 +274,21 @@
* org.eclipse.ui.IEditorInput)
*/
public void init(IEditorSite site, IEditorInput input) {
-
- }
-
- public void complate(SmooksMultiFormEditor formEditor) {
- if (configPage != null && configPage.isCreateJsonReader()) {
- List<KeyValueModel> keyMapList = configPage.getKeyValueList();
-
- JsonReader reader = JsonFactory.eINSTANCE.createJsonReader();
- if (keyMapList != null && !keyMapList.isEmpty()) {
- KeyMap map = JsonFactory.eINSTANCE.createKeyMap();
- for (Iterator<?> iterator = keyMapList.iterator(); iterator
- .hasNext();) {
- KeyValueModel keyValueModel = (KeyValueModel) iterator
- .next();
- String key = keyValueModel.getKey();
- String value = keyValueModel.getValue();
- Key k = JsonFactory.eINSTANCE.createKey();
- k.setFrom(key);
- k.setTo(value);
- map.getKey().add(k);
- }
- reader.setKeyMap(map);
- }
-
- String aen = configPage.getArrayElementName();
- if (aen != null && aen.length() != 0) {
- reader.setArrayElementName(aen);
- }
-
- String rn = configPage.getRootName();
- if (rn != null && rn.length() != 0) {
- reader.setRootName(rn);
- }
-
- String encoding = configPage.getEncoding();
- if (encoding != null && encoding.length() != 0) {
- reader.setEncoding(encoding);
- }
-
- String sr = configPage.getKeyWhitspaceReplacement();
- if (sr != null && sr.length() != 0) {
- reader.setKeyWhitspaceReplacement(sr);
- }
-
- String pon = configPage.getKeyPrefixOnNumeric();
- if (pon != null && pon.length() != 0) {
- reader.setKeyPrefixOnNumeric(pon);
- }
-
- String nvr = configPage.getNullValueReplacement();
- if (nvr != null && nvr.length() != 0) {
- reader.setNullValueReplacement(nvr);
- }
-
- String ier = configPage.getIllegalElementNameCharReplacement();
- if (ier != null && ier.length() != 0) {
- reader.setIllegalElementNameCharReplacement(ier);
- }
-
- SmooksResourceListType resourceList = null;
+ IEditorPart editorPart = site.getWorkbenchWindow().getActivePage().findEditor(input);
+ if (editorPart != null && editorPart instanceof SmooksMultiFormEditor) {
+ SmooksMultiFormEditor formEditor = (SmooksMultiFormEditor) editorPart;
Object smooksModel = formEditor.getSmooksModel();
if (smooksModel instanceof DocumentRoot) {
- resourceList = ((DocumentRoot) smooksModel)
- .getSmooksResourceList();
+ resourceList = ((DocumentRoot) smooksModel).getSmooksResourceList();
}
- Command command = AddCommand
- .create(
- formEditor.getEditingDomain(),
- resourceList,
- SmooksPackage.eINSTANCE
- .getSmooksResourceListType_AbstractReader(),
- reader);
- formEditor.getEditingDomain().getCommandStack().execute(command);
+ editingDomain = formEditor.getEditingDomain();
}
+ if(configPage != null){
+ configPage.setSmooksResourceList(resourceList);
+ }
}
+
+ public void complate(SmooksMultiFormEditor formEditor) {
+
+ }
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-07-02
06:38:51 UTC (rev 16330)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-07-02
06:40:38 UTC (rev 16331)
@@ -123,6 +123,7 @@
import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
import
org.jboss.tools.smooks.model.graphics.ext.util.SmooksGraphicsExtResourceFactoryImpl;
import org.jboss.tools.smooks.model.javabean.BindingsType;
+import org.jboss.tools.smooks.model.smooks.AbstractReader;
import org.jboss.tools.smooks.model.smooks.AbstractResourceConfig;
import org.jboss.tools.smooks.model.smooks.ConditionType;
import org.jboss.tools.smooks.model.smooks.SmooksResourceListType;
@@ -2067,4 +2068,16 @@
}
return null;
}
+
+ public static boolean hasReaderAlready(Class<?> readerClass,SmooksResourceListType
resourceList){
+ if(resourceList == null || readerClass == null) return false;
+ List<AbstractReader> readerList = resourceList.getAbstractReader();
+ for (Iterator<?> iterator = readerList.iterator(); iterator.hasNext();) {
+ AbstractReader abstractReader = (AbstractReader) iterator.next();
+ if (abstractReader.getClass() == readerClass) {
+ return true;
+ }
+ }
+ return false;
+ }
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/wizard/IStructuredDataSelectionWizard.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/wizard/IStructuredDataSelectionWizard.java 2009-07-02
06:38:51 UTC (rev 16330)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/wizard/IStructuredDataSelectionWizard.java 2009-07-02
06:40:38 UTC (rev 16331)
@@ -33,6 +33,10 @@
public String getStructuredDataSourcePath();
+ /**
+ * @deprecated
+ * @param formEditor
+ */
public void complate(SmooksMultiFormEditor formEditor);
}