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)
- }
-}