diff --git a/plugin/src/org/pandawarrior/androidXMLConverter/GUI.form b/plugin/src/org/pandawarrior/androidXMLConverter/GUI.form index a936658..493e9e2 100644 --- a/plugin/src/org/pandawarrior/androidXMLConverter/GUI.form +++ b/plugin/src/org/pandawarrior/androidXMLConverter/GUI.form @@ -12,7 +12,7 @@ - + diff --git a/plugin/src/org/pandawarrior/androidXMLConverter/GUI.java b/plugin/src/org/pandawarrior/androidXMLConverter/GUI.java index 2376497..f1f1357 100644 --- a/plugin/src/org/pandawarrior/androidXMLConverter/GUI.java +++ b/plugin/src/org/pandawarrior/androidXMLConverter/GUI.java @@ -38,10 +38,11 @@ public class GUI extends DialogWrapper { private JRadioButton arraysXmlRadioButton; private String currentFolder; private String selected; + private final static String ERROR_MSG1 = "Error! Your csv file might have a data that is empty. use 'null' or ' ' to replace it."; public GUI(Project project, String initialFolder) { super(project, true); this.setTitle("Android Parser"); - this.setSize(450, 300); + this.setSize(480, 300); this.setResizable(true); // setContentPane(rootPane); // setVisible(true); @@ -64,13 +65,19 @@ public void actionPerformed(ActionEvent e) { xcOKButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - String folder = xcReadField.getText(); - String csv = xcWriteField.getText(); - readXML(folder, csv); - xcReadField.setText(""); - xcWriteField.setText(""); - xcLabel.setText("SUCCESS!"); - xcLabel.setForeground(JBColor.GREEN); + try { + String folder = xcReadField.getText(); + String csv = xcWriteField.getText(); + readXML(folder, csv); + xcReadField.setText(""); + xcWriteField.setText(""); + xcLabel.setText("SUCCESS!"); + xcLabel.setForeground(JBColor.GREEN); + }catch (ArrayIndexOutOfBoundsException e1){ + xcLabel.setText(ERROR_MSG1); + xcLabel.setForeground(JBColor.RED); + } + } }); cxReadBtn.addActionListener(new ActionListener() { @@ -88,13 +95,19 @@ public void actionPerformed(ActionEvent e) { cxOKButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - String csv = cxReadField.getText(); - String folder = cxWriteField.getText(); - writeXML(folder, csv); - cxReadField.setText(""); - cxWriteField.setText(""); - cxLabel.setText("SUCCESS!"); - cxLabel.setForeground(JBColor.GREEN); + try { + String csv = cxReadField.getText(); + String folder = cxWriteField.getText(); + writeXML(folder, csv); + cxReadField.setText(""); + cxWriteField.setText(""); + cxLabel.setText("SUCCESS!"); + cxLabel.setForeground(JBColor.GREEN); + } catch (ArrayIndexOutOfBoundsException e1){ + cxLabel.setText(ERROR_MSG1); + cxLabel.setForeground(JBColor.RED); + } + } }); stringsXmlRadioButton.setSelected(true); @@ -160,7 +173,7 @@ private String chooseCSV() { } } - private void writeXML(final String folder, final String csv){ + private void writeXML(final String folder, final String csv) throws ArrayIndexOutOfBoundsException{ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { @@ -176,7 +189,7 @@ public void run() { } - private void readXML(final String folder, final String csv){ + private void readXML(final String folder, final String csv) throws ArrayIndexOutOfBoundsException{ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { diff --git a/xml_csv_parse/src/main/groovy/org/pandawarrior/WriteXml.groovy b/xml_csv_parse/src/main/groovy/org/pandawarrior/WriteXml.groovy index 7a0a02d..8430aa7 100644 --- a/xml_csv_parse/src/main/groovy/org/pandawarrior/WriteXml.groovy +++ b/xml_csv_parse/src/main/groovy/org/pandawarrior/WriteXml.groovy @@ -131,6 +131,7 @@ class WriteXml { def xml = new MarkupBuilder(stringWriter) def mainDictValue = it.value def fileName = it.key + def rowName String dir = "${destination}/res/${fileName}/" File file = new File(dir, "${type}.xml") File folder = new File(dir) @@ -138,18 +139,20 @@ class WriteXml { if (!folder.exists()) { folder.mkdirs() } + rowName = type == ARRAY_FILE ? "string-array" : type + xml.resources { mainDictValue.each { def key = it.key def value = it.value.collect() if (fileName.equals("values") && transDict[key].equals("false")) { - "${type}"(name: key, translatable: transDict[key]) { + "${rowName}"(name: key, translatable: transDict[key]) { value.each { item(it) } } } else if (transDict[key].equals("true")) { - "${type}"(name: key) { + "${rowName}"(name: key) { value.each { if (!it.equals("null") || !it.equals(" ")) { item(it) diff --git a/xml_csv_parse/src/test/groovy/org/pandawarrior/ReadXmlTest.groovy b/xml_csv_parse/src/test/groovy/org/pandawarrior/ReadXmlTest.groovy deleted file mode 100644 index f309c0f..0000000 --- a/xml_csv_parse/src/test/groovy/org/pandawarrior/ReadXmlTest.groovy +++ /dev/null @@ -1,51 +0,0 @@ -package org.pandawarrior - -/** - * Created by jt on 5/26/15. - */ -class ReadXmlTest extends GroovyTestCase { - static String XmlDir = "/home/jt/Dev/tableapp-restaurant-bookings/tableapp/src/main/res" - static String PluralsDestination = "/home/jt/Desktop/plurals.csv" - static String ArraysDestination = "/home/jt/Desktop/arrays.csv" - static String StringsDestination = "/home/jt/Desktop/" - def xml - ReadXml readXml - @Override - void setUp() { - super.setUp(); - readXml = new ReadXml(); - xml = readXml.getXmlFromFolder(XmlDir, ReadXml.STRINGS_PATTERN) - } - - void testGetArrays(){ -// println "ArrayMap: " + readXml.getArrayMap(xml) - } - - void testGetTranslatableArrays(){ -// def translatableMap = readXml.getTranslatableArray(xml) -// println "TranlatableMap" + translatableMap - } - - void testGetArrayHeader(){ - def arrayHeader = readXml.getHeaderList(xml) - assert arrayHeader == ["name", "translatable", "values", "values-zh-rTW", "values-th", "values-ja", "values-zh-rCN"] - } - - void testGetNameList(){ -// def nameList = readXml.getArrayNameList(xml) -// println "NameList: " + nameList - } - - void testGetArrayValueList(){ - def translatableMap = readXml.getTranslatableArray(xml, ReadXml.STRING_ARRAY) - def arrayMap = readXml.getArrayMap(xml, ReadXml.STRING_ARRAY) - def nameList = readXml.getArrayNameList(xml, ReadXml.STRING_ARRAY) - def valueList = readXml.getValueList(arrayMap, nameList, translatableMap) - println "Array Value List: " + readXml.getArrayValueList(arrayMap, nameList, translatableMap) - } - - void testParseString() - { - ReadXml.parseAll(XmlDir, StringsDestination) - } -}