import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
+import org.mozilla.javascript.edu.emory.mathcs.backport.java.util.Arrays;
import org.tizen.webuibuilder.ui.views.databinding.model.BindingData;
import com.google.gson.Gson;
private static Gson normalGson;
private Text textPath;
+ private CCombo typeCombo;
+
+ private static String[] comboItems;
static{
+ comboItems = new String[]{ "JSON", "XML" };
normalGson = new GsonBuilder().serializeNulls().create();
}
dataModel.setJsonData( normalGson.toJson(root) );
dataModel.setStaticFilePath( textPath.getText() );
+ dataModel.setSourceType( typeCombo.getText() );
+
return dataModel;
}
settingComposite.setLayout(layout);
+
+ Button loadButton = new Button( settingComposite, SWT.PUSH );
+ loadButton.setText( "L" );
+ loadButton.setToolTipText( "Load" );
+
+ FormData data = new FormData( 25, 25 );
+ data.bottom = new FormAttachment( 100, -5 );
+ data.right = new FormAttachment( 100, -5 );
+
+ loadButton.setLayoutData( data );
+
+ loadButton.addSelectionListener( new SelectionAdapter() {
+ @Override
+ public void widgetSelected( SelectionEvent e ) {
+
+ IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ IFile editorFile = (IFile)workbenchPage.getActiveEditor().getEditorInput().getAdapter(IFile.class);
+ IPath path = new Path( textPath.getText() );
+
+ IFile file = editorFile.getProject().getFile(path);
+
+ try {
+ JsonObject json = null;
+
+ if( typeCombo.getSelectionIndex() == 0 ){
+ json = Helper.readJsonFromStream( file.getContents() );
+ }else{
+ json = Helper.getJsonFromXML( Helper.streamToString( file.getContents() ) );
+ }
+
+ if( json != null ){
+ Helper.makeTreeItem( json, parentDataTree, null, false);
+ }else{
+ parentDataTree.removeAll();
+ }
+ } catch (CoreException e1) {
+ parentDataTree.removeAll();
+ e1.printStackTrace();
+ }
+ }
+ } );
+
Label label = new Label(settingComposite, SWT.NONE);
label.setText( "Path" );
- FormData data = new FormData();
+ data = new FormData();
data.top = new FormAttachment(0, 0);
data.left = new FormAttachment(0, 0);
label.setLayoutData(data);
- textPath = new Text(settingComposite, SWT.SINGLE | SWT.BORDER);
- textPath.setEnabled(false);
-
- data = new FormData();
- data.top = new FormAttachment(label, 0);
- data.left = new FormAttachment(10, 0);
- data.right = new FormAttachment(90, 0);
- textPath.setLayoutData(data);
-
Button button = new Button(settingComposite, SWT.PUSH );
data = new FormData(20,20);
- data.top = new FormAttachment(label, 0);
- data.left = new FormAttachment(textPath, 5);
- data.right = new FormAttachment(100, -5);
+ data.top = new FormAttachment(0, 0);
+ data.right = new FormAttachment(loadButton, -3);
button.setLayoutData(data);
button.setText( "I" );
button.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e) {
IFile file = Helper.getProjectfile();
-
if(file != null ){
-
textPath.setText( file.getProjectRelativePath().toPortableString() );
-
- try {
- JsonObject json = Helper.readJsonFromStream( file.getContents() );
-
- if( json != null ){
- Helper.makeTreeItem( json, parentDataTree, null, false);
- }else{
- parentDataTree.removeAll();
- }
- } catch (CoreException e1) {
- parentDataTree.removeAll();
- e1.printStackTrace();
- }
}
}
});
+
+ textPath = new Text(settingComposite, SWT.SINGLE | SWT.BORDER);
+ textPath.setEnabled(false);
+
+ data = new FormData();
+ data.top = new FormAttachment(0, 0);
+ data.left = new FormAttachment(label, 5);
+ data.right = new FormAttachment(button, -5);
+ textPath.setLayoutData(data);
+
+ Label typelabel = new Label( settingComposite, SWT.NONE );
+ typelabel.setText( "Type" );
+
+ data = new FormData();
+ data.top = new FormAttachment(label, 10);
+ data.left = new FormAttachment(0, 0);
+
+ typelabel.setLayoutData(data);
+
+ typeCombo = new CCombo( settingComposite, SWT.SINGLE | SWT.BORDER | SWT.FLAT | SWT.READ_ONLY );
+ typeCombo.setItems( comboItems );
+ typeCombo.setEditable( false );
+ typeCombo.select( 0 );
+
+ data = new FormData();
+ data.top = new FormAttachment(label, 10);
+ data.left = new FormAttachment(typelabel, 5);
+ data.right = new FormAttachment(loadButton, -3);
+ typeCombo.setLayoutData(data);
+
}
@Override
@Override
public void loadData(BindingData dataModel) {
+
+ parentDataTree.removeAll();
+
textPath.setText( dataModel.getStaticFilePath() );
+ typeCombo.select( Arrays.asList( comboItems ).indexOf( dataModel.getSourceType() ) );
+
IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IFile editorFile = (IFile)workbenchPage.getActiveEditor().getEditorInput().getAdapter(IFile.class);
IPath path = new Path( dataModel.getStaticFilePath() );
if( file != null){
try {
- JsonObject json = Helper.readJsonFromStream( file.getContents() );
+
+ JsonObject json;
+
+ if(typeCombo.getSelectionIndex() == 0 ){
+ json = Helper.readJsonFromStream( file.getContents() );
+ }else{
+ json = Helper.getJsonFromXML( Helper.streamToString( file.getContents() ) );
+ }
if( json != null ){
Helper.makeTreeItem( json, parentDataTree, null, false);
- }else{
- parentDataTree.removeAll();
}
} catch (CoreException e) {
- parentDataTree.removeAll();
e.printStackTrace();
}
}
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.StringReader;
+import java.io.StringWriter;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.TreeEditor;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
private static final String xmlConvertTextPrifix = "";
private static final String xmlConvertTextName = "text";
- private static Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
-
+ private static Gson gson;
+ private static DocumentBuilderFactory dbf;
+ private static Transformer transformer;
+
+ static{
+
+ gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
+
+ dbf = DocumentBuilderFactory.newInstance();
+
+ try {
+ transformer = TransformerFactory.newInstance().newTransformer();
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ } catch ( TransformerConfigurationException e ) {
+ e.printStackTrace();
+ } catch ( TransformerFactoryConfigurationError e ) {
+ e.printStackTrace();
+ }
+ }
public static String callURL( String url, String method, TableItem[] items ) {
BufferedReader br = null;
OutputStreamWriter writer = null;
indexItem.setExpanded( true );
} else {
makeTreeItem( array.get( i ), tree, item, includeIndex );
+ item.setExpanded( true );
break;
}
}
type = "String";
careteTreeItem( treeItem, entry.getKey(), jp.getAsString(), type );
+ if ( includeIndex )
+ Helper.addComboInTreeItem(treeItem, type);
} else if ( entry.getValue().isJsonObject() ) {
careteTreeItem( treeItem, entry.getKey(), null, "Object" );
+
+ if ( includeIndex )
+ Helper.addComboInTreeItem(treeItem, "Object");
+
makeTreeItem( entry.getValue(), tree, treeItem, includeIndex );
} else if ( entry.getValue().isJsonArray() ) {
careteTreeItem( treeItem, entry.getKey(), null, "Array" );
+
+ if ( includeIndex )
+ Helper.addComboInTreeItem(treeItem, "Array");
+
makeTreeItem( entry.getValue(), tree, treeItem, includeIndex );
} else if ( entry.getValue().isJsonNull() ) {
careteTreeItem( treeItem, entry.getKey(), null, "undefined" );
+
+ if ( includeIndex )
+ Helper.addComboInTreeItem(treeItem, "String");
+
makeTreeItem( entry.getValue(), tree, treeItem, includeIndex );
+
}
treeItem.setExpanded( true );
}
}
if ( item.getParent().getColumnCount() > 0 ) {
- Helper.careteTreeItem( new TreeItem( item, 0 ), null, jp.getAsString(), type );
+ TreeItem primitiveItem = new TreeItem( item, 0 );
+ Helper.careteTreeItem( primitiveItem, null, jp.getAsString(), type );
+
+ if ( includeIndex )
+ Helper.addComboInTreeItem(primitiveItem, type);
+
+ item.setExpanded( true );
}
}
}
}
public static JsonObject getJsonFromXML( String xml ) {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+
+ Document doc = parseXML( xml );
+
+ JsonObject root = new JsonObject();
+ if ( doc != null ) {
+ NodeList nodeList = doc.getChildNodes();
+ parseNodeList( root, nodeList );
+ }
+
+ return root;
+ }
+
+ public static Document parseXML( String xml ){
DocumentBuilder db;
Document doc = null;
try {
} catch ( ParserConfigurationException e ) {
e.printStackTrace();
} catch ( SAXException e ) {
- e.printStackTrace();
+// e.printStackTrace();
} catch ( IOException e ) {
e.printStackTrace();
}
-
- JsonObject root = new JsonObject();
-
- if ( doc != null ) {
- NodeList nodeList = doc.getChildNodes();
- parseNodeList( root, nodeList );
- }
-
- return root;
+
+ return doc;
}
-
+
/**
* @param json
* @param nodeList
}
return result;
}
+
+ public static CCombo addComboInTreeItem(TreeItem item, String data) {
+
+ TreeEditor treeEditor = new TreeEditor( item.getParent() );
+ treeEditor.horizontalAlignment = SWT.CENTER;
+ treeEditor.verticalAlignment = SWT.CENTER;
+ treeEditor.grabHorizontal = true;
+ treeEditor.grabVertical = true;
+
+ CCombo combo = new CCombo( item.getParent(), SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
+ treeEditor.setEditor(combo, item, 2);
+ final String[] comboItems = { "String", "Number", "Boolean", "Object", "Array" };
+ combo.setItems(comboItems);
+ combo.select( Arrays.asList(comboItems).indexOf(data) );
+ combo.setData( "parentItem", item );
+
+ item.setData("TREEEDITORFORCOMBO", treeEditor);
+
+ combo.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ CCombo combo = (CCombo) e.getSource();
+ TreeItem parentItem = (TreeItem) combo.getData("parentItem");
+ String selectedText = comboItems[combo.getSelectionIndex()];
+
+ if( selectedText.equals("Object") || selectedText.equals("Array") ){
+ parentItem.setText(1, "");
+ }
+
+ parentItem.setText(2, selectedText);
+ }
+ });
+ return combo;
+ }
+
+ public static String streamToString( InputStream is ){
+ StringBuilder sb = new StringBuilder();
+
+ BufferedReader br = null;
+ String line = null;
+
+ try {
+ br = new BufferedReader( new InputStreamReader( is ) );
+
+ while( ( line = br.readLine() ) != null ){
+ sb.append( line );
+ }
+
+ br.close();
+ is.close();
+ } catch ( IOException e ) {
+ e.printStackTrace();
+ }finally{
+ if( br != null ){ try { br.close(); } catch ( IOException e ) { e.printStackTrace(); } }
+ if( is != null ){ try { is.close(); } catch ( IOException e ) { e.printStackTrace(); } }
+ }
+
+ return sb.toString();
+ }
+
+ public static String getStringFromDocument(Document dom, boolean indented) {
+ String signedContent = null;
+
+ if( !indented ){
+ dom.normalize();
+ dom.normalizeDocument();
+ }
+
+ try {
+ StringWriter sw = new StringWriter();
+ DOMSource domSource = new DOMSource(dom);
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ transformer.setOutputProperty(OutputKeys.INDENT, indented ? "yes" : "no");
+ transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", indented ? "2" : "0" );
+ transformer.transform(domSource, new StreamResult(sw));
+ sw.flush();
+ signedContent = sw.toString();
+ } catch (TransformerException e) {
+ e.printStackTrace();
+ }
+
+ return signedContent;
+ }
public static IFile getProjectfile() {
import java.util.Map;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.custom.TreeEditor;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.swt.widgets.TreeItem;
-import org.tizen.webuibuilder.ui.views.databinding.DataBindingDnDManager;
import org.tizen.webuibuilder.ui.views.databinding.model.BindingData;
import org.tizen.webuibuilder.ui.views.databinding.model.BindingObject;
import org.tizen.webuibuilder.ui.views.databinding.model.TreeItemData;
dataModel.setModelType( dataTypeCombo.getText() );
dataModel.setUpdateOnStartup( updateOnStartUp.getSelection() );
dataModel.setSourceName( dataSourceTreeItem.getText() );
- dataModel.setItemName( dataModel.getSourceName() );
TreeItemData treeItemData = (TreeItemData) dataSourceTreeItem.getData( "TREEITEMDATA" );
if (treeItemData == null) {
}
});
- DataBindingDnDManager.addDragAndDropListenerToTree(dialogTree);
+// DataBindingDnDManager.addDragAndDropListenerToTree(dialogTree);
}
private Group makeSettingGroup( Group settingGroup ) {
return settingGroup;
}
- private CCombo addComboInTreeItem(TreeItem item, String data) {
- TreeEditor treeEditor = new TreeEditor(dialogTree);
- CCombo combo = new CCombo(dialogTree, SWT.SINGLE | SWT.BORDER | SWT.FLAT | SWT.READ_ONLY);
- String[] comboItems = { "String", "Number", "Boolean", "Object", "Array" };
- combo.setItems(comboItems);
- combo.select( Arrays.asList(comboItems).indexOf(data) );
- combo.pack();
-
- combo.setData( "parentItem", item );
-
- treeEditor.minimumWidth = dialogTree.getColumn(2).getWidth()-1;
- treeEditor.horizontalAlignment = SWT.CENTER;
- treeEditor.setEditor(combo, item, 2);
-
- item.setData("TREEEDITORFORCOMBO", treeEditor);
-
- combo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- CCombo combo = (CCombo) e.getSource();
- TreeItem parentItem = (TreeItem) combo.getData("parentItem");
- String[] comboItems = { "String", "Number", "Boolean", "Object", "Array" };
- String selectedText = comboItems[combo.getSelectionIndex()];
-
- if( selectedText.equals("Object") || selectedText.equals("Array") ){
- parentItem.setText(1, "");
- }
-
- parentItem.setText(2, selectedText);
- }
- });
-
- return combo;
- }
-
private void addItem() {
TreeItem parentItem = null;
item.setData("TREEITEMDATA", treeItemData);
if( !type.equals("Index") )
- addComboInTreeItem(item, "String");
+ Helper.addComboInTreeItem(item, "String");
dialogTree.showItem(item);
editor.dispose();
selectedItem.setData("TREEEDITORFORCOMBO", null );
selectedItem.dispose();
- addComboInTreeItem(targetItem, type );
+ Helper.addComboInTreeItem(targetItem, type );
}
if( !selectedItem.isDisposed() )
selectedItem.dispose();
-// int columnCount = dialogTree.getColumnCount();
-// String[] str = new String[columnCount];
-// TreeItemData data = (TreeItemData) dialogTree.getSelection()[0].getData( "TREEITEMDATA" );
-//
-// for (int i = 0; i < columnCount; i++) {
-// str[i] = dialogTree.getSelection()[0].getText(i);
-// }
-//
-// TreeItem item;
-//
-// if (option) {
-// item = moveItemToUp(dialogTree.getSelection()[0], false);
-// } else {
-// item = moveItemToBottom(dialogTree.getSelection()[0], false);
-// }
-//
-// DataBindingDnDManager.setChildItems(item, dialogTree.getSelection()[0].getItems());
-//
-// dialogTree.getSelection()[0].dispose();
-// item.setText(str);
-// item.setData( "TREEITEMDATA", data);
-// dialogTree.select(item);
-
if( currentSubPage instanceof StaticSubPage ){
staticSubPage.updateJsonFromTree();
}
}
}
-
-// private TreeItem moveItemToBottom(TreeItem selectedItem, boolean downToChild) {
-// TreeItem parentItem = selectedItem.getParentItem();
-// TreeItem item;
-//
-// if (parentItem == null) {
-// int index = dialogTree.indexOf(selectedItem);
-// int itemCount = dialogTree.getItemCount();
-//
-// if (index == itemCount - 1) {
-// if (downToChild) {
-// item = new TreeItem(dialogTree, SWT.NONE, index + 1);
-// } else {
-// item = new TreeItem(dialogTree, SWT.NONE, index);
-// }
-//
-// } else {
-// if (dialogTree.getItem(index + 1).getExpanded()) {
-// item = new TreeItem(dialogTree.getItem(index + 1), SWT.NONE, 0);
-// } else {
-// if (downToChild) {
-// item = new TreeItem(dialogTree, SWT.NONE, index + 1);
-// } else {
-// item = new TreeItem(dialogTree, SWT.NONE, index + 2);
-// }
-// }
-// }
-// } else {
-// int index = parentItem.indexOf(selectedItem);
-// int itemCount = parentItem.getItemCount();
-//
-// if (index == itemCount - 1) {
-// if (downToChild) {
-// item = new TreeItem(parentItem, SWT.NONE, index + 1);
-// } else {
-// item = moveItemToBottom(parentItem, true);
-// }
-// } else {
-// if (parentItem.getItem(index + 1).getExpanded()) {
-// item = new TreeItem(parentItem.getItem(index + 1), SWT.NONE, 0);
-// } else {
-// if (downToChild) {
-// item = new TreeItem(parentItem, SWT.NONE, index + 1);
-// } else {
-// item = new TreeItem(parentItem, SWT.NONE, index + 2);
-// }
-// }
-// }
-//
-// }
-// return item;
-// }
-//
-// private TreeItem moveItemToUp(TreeItem selectedItem, boolean upToParent) {
-// TreeItem parentItem = selectedItem.getParentItem();
-// TreeItem item;
-//
-// if (parentItem == null) {
-// int index = dialogTree.indexOf(selectedItem);
-//
-// if (index == 0) {
-// item = new TreeItem(dialogTree, SWT.NONE, index);
-// } else {
-// if (dialogTree.getItem(index - 1).getExpanded()) {
-// int itemCount = dialogTree.getItem(index - 1).getItemCount();
-// item = new TreeItem(dialogTree.getItem(index - 1), SWT.NONE, itemCount);
-// } else {
-// if (upToParent) {
-// item = new TreeItem(dialogTree, SWT.NONE, index);
-// } else {
-// item = new TreeItem(dialogTree, SWT.NONE, index - 1);
-// }
-// }
-// }
-// } else {
-// int index = parentItem.indexOf(selectedItem);
-//
-// if (index == 0) {
-// if (upToParent) {
-// item = new TreeItem(parentItem, SWT.NONE, index);
-// } else {
-// item = moveItemToUp(parentItem, true);
-// }
-// } else {
-// if (parentItem.getItem(index - 1).getExpanded()) {
-// int itemCount = parentItem.getItem(index - 1).getItemCount();
-// item = new TreeItem(parentItem.getItem(index - 1), SWT.NONE, itemCount);
-// } else {
-// if (upToParent) {
-// item = new TreeItem(parentItem, SWT.NONE, index);
-// } else {
-// item = new TreeItem(parentItem, SWT.NONE, index - 1);
-// }
-// }
-// }
-// }
-// return item;
-// }
}
import java.util.Map;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.internal.WorkbenchPage;
import org.eclipse.ui.internal.registry.EditorDescriptor;
import org.eclipse.wst.jsdt.internal.ui.javaeditor.CompilationUnitEditor;
+import org.mozilla.javascript.edu.emory.mathcs.backport.java.util.Arrays;
import org.tizen.webuibuilder.ui.editor.MemoryEditorInput;
import org.tizen.webuibuilder.ui.editor.PageDesigner;
import org.tizen.webuibuilder.ui.views.databinding.model.BindingData;
+import org.w3c.dom.Document;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
private Composite dataComposite;
private StyledText staticSourceStyledText;
+ private CCombo typeCombo;
+
private String jsonFile;
- private String jsonString;
private static Gson prettyGson;
private static Gson normalGson;
+ private static String[] comboItems;
+
static{
+ comboItems = new String[]{ "JSON", "XML" };
prettyGson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
normalGson = new GsonBuilder().serializeNulls().create();
}
Helper.makeJsonFromTree( item, root);
}
- dataModel.setJsonData( normalGson.toJson(root) );
+ dataModel.setJsonData( staticSourceStyledText.getText() );
dataModel.setStaticFilePath(jsonFile);
+ dataModel.setSourceType( typeCombo.getText() );
return dataModel;
}
formatButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
- JsonObject jo = prettyGson.fromJson(staticSourceStyledText.getText(), JsonObject.class);
- staticSourceStyledText.setText( prettyGson.toJson(jo) );
+ if(typeCombo.getSelectionIndex() == 0 ){
+ JsonObject jo = prettyGson.fromJson(staticSourceStyledText.getText(), JsonObject.class);
+ staticSourceStyledText.setData( "editing", true );
+ staticSourceStyledText.setText( prettyGson.toJson(jo) );
+ staticSourceStyledText.setData( "editing", false );
+ }else{
+ Document doc = Helper.parseXML( staticSourceStyledText.getText() );
+
+ if( doc == null )
+ return;
+
+ staticSourceStyledText.setData( "editing", true );
+ staticSourceStyledText.setText( Helper.getStringFromDocument( doc, true ) );
+ staticSourceStyledText.setData( "editing", false );
+ }
}
});
compactButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
- JsonObject jo = normalGson.fromJson(staticSourceStyledText.getText(), JsonObject.class);
- staticSourceStyledText.setText( normalGson.toJson(jo) );
+ if(typeCombo.getSelectionIndex() == 0 ){
+ JsonObject jo = normalGson.fromJson(staticSourceStyledText.getText(), JsonObject.class);
+ staticSourceStyledText.setData( "editing", true );
+ staticSourceStyledText.setText( normalGson.toJson(jo) );
+ staticSourceStyledText.setData( "editing", false );
+ }else{
+ staticSourceStyledText.setData( "editing", true );
+ staticSourceStyledText.setText( staticSourceStyledText.getText().replaceAll(">\\s*<", "><") );
+ staticSourceStyledText.setData( "editing", false );
+ }
}
});
+ Label typelabel = new Label( subSettingComposite, SWT.NONE );
+ typelabel.setText( "Type" );
+
+ data = new FormData();
+ data.top = new FormAttachment(2, 0);
+ data.left = new FormAttachment(compactButton, 10);
+
+ typelabel.setLayoutData(data);
+
+ typeCombo = new CCombo( subSettingComposite, SWT.SINGLE | SWT.BORDER | SWT.FLAT | SWT.READ_ONLY );
+ typeCombo.setItems( comboItems );
+ typeCombo.setEditable( false );
+ typeCombo.select( 0 );
+
+ data = new FormData();
+ data.top = new FormAttachment(2, 0);
+ data.left = new FormAttachment(typelabel, 5);
+
+ typeCombo.setLayoutData(data);
+
Button openFileButton = new Button(subSettingComposite, SWT.PUSH);
openFileButton.setText("O");
openFileButton.setToolTipText( "Open" );
}
try {
- JsonObject json = Helper.readJsonFromStream( new FileInputStream( new File( jsonFile ) ) );
for( Control control : parentDataTree.getChildren() ){
control.dispose();
}
+
parentDataTree.removeAll();
- if (json != null) {
- jsonString = prettyGson.toJson( json );
- staticSourceStyledText.setText( jsonString );
- }else{
- jsonString = "";
- staticSourceStyledText.setText( "" );
- }
+ staticSourceStyledText.setText( Helper.streamToString( new FileInputStream( new File( jsonFile ) ) ) );
} catch (FileNotFoundException e) {
e.printStackTrace();
staticSourceStyledText = editor.getViewer().getTextWidget();
+ staticSourceStyledText.setData( "editing", false );
+
staticSourceStyledText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
+ String inputText = staticSourceStyledText.getText();
+
if( staticSourceStyledText.getData( "editing" ) != null && (Boolean) staticSourceStyledText.getData( "editing" ) )
return;
+ if( inputText.trim().length() == 0 ){
+ for ( Control control : parentDataTree.getChildren() ) {
+ control.dispose();
+ }
+ parentDataTree.removeAll();
+ return;
+ }
+
JsonObject json = null;
try{
- json = normalGson.fromJson(staticSourceStyledText.getText(), JsonObject.class);
+
+ if(typeCombo.getSelectionIndex() == 0 )
+ json = normalGson.fromJson(inputText, JsonObject.class);
+ else
+ json = Helper.getJsonFromXML( inputText );
+
}catch(Exception ex){}
if(json != null){
@Override
public void loadData(BindingData dataModel) {
- JsonObject json = prettyGson.fromJson(dataModel.getJsonData(), JsonObject.class );
-
- if( json != null )
- staticSourceStyledText.setText( prettyGson.toJson(json) );
jsonFile = dataModel.getStaticFilePath();
+
+ if( dataModel.getSourceType() != null)
+ typeCombo.select( Arrays.asList( comboItems ).indexOf( dataModel.getSourceType() ) );
+
+ if( dataModel.getJsonData() != null )
+ staticSourceStyledText.setText( dataModel.getJsonData() );
}
public Composite getDataComposite() {