X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2Fpanes%2FContactDetailsRaw.java;h=97fede0af7022a6c6b76ac0f56fd768ccb452a23;hb=aecb3399b756d2ba04223bc6f553999fce73f9fb;hp=a81cec8dbc393e85b8473da2bbb0818b03915545;hpb=176a83279a5aafb7e44cc7c34bf78f0bc35225fe;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/tui/panes/ContactDetailsRaw.java b/src/be/nikiroo/jvcard/tui/panes/ContactDetailsRaw.java index a81cec8..97fede0 100644 --- a/src/be/nikiroo/jvcard/tui/panes/ContactDetailsRaw.java +++ b/src/be/nikiroo/jvcard/tui/panes/ContactDetailsRaw.java @@ -6,12 +6,12 @@ import java.util.List; import be.nikiroo.jvcard.Contact; import be.nikiroo.jvcard.Data; import be.nikiroo.jvcard.TypeInfo; -import be.nikiroo.jvcard.i18n.Trans; +import be.nikiroo.jvcard.launcher.Main; +import be.nikiroo.jvcard.resources.StringUtils; +import be.nikiroo.jvcard.resources.Trans; import be.nikiroo.jvcard.tui.KeyAction; import be.nikiroo.jvcard.tui.KeyAction.DataType; import be.nikiroo.jvcard.tui.KeyAction.Mode; -import be.nikiroo.jvcard.tui.StringUtils; -import be.nikiroo.jvcard.tui.UiColors; import be.nikiroo.jvcard.tui.UiColors.Element; import com.googlecode.lanterna.input.KeyType; @@ -61,7 +61,7 @@ public class ContactDetailsRaw extends MainContentList { public String getDefaultAnswer() { Data data = getData(); if (data != null) { - return data.getValue(); + return data.getValue().replaceAll("\n", "\\\\n"); } return null; @@ -71,7 +71,7 @@ public class ContactDetailsRaw extends MainContentList { public String callback(String answer) { Data data = getData(); if (data != null) { - data.setValue(answer); + data.setValue(answer.replaceAll("\\\\n", "\n")); return null; } @@ -117,19 +117,27 @@ public class ContactDetailsRaw extends MainContentList { @Override public String getQuestion() { // TODO i18n - return "new data (xx = yy): "; + return "new data (xx.group = yy): "; } @Override public String callback(String answer) { - if (answer.length() > 0 && answer.contains("=")) { - String[] tab = answer.split("="); - Data data = new Data(null, tab[0].trim(), tab[1].trim(), - null); + int indexEq = answer.indexOf('='); + if (indexEq >= 0) { + String name = answer.substring(0, indexEq).trim(); + String value = answer.substring(indexEq + 1).trim(); + String group = null; + + int indexDt = name.indexOf('.'); + if (indexDt >= 0) { + group = name.substring(indexDt + 1).trim(); + name = name.substring(0, indexDt).trim(); + } + + Data data = new Data(null, name, value, group); getContact().add(data); addItem("x"); } - return null; } }); @@ -169,7 +177,7 @@ public class ContactDetailsRaw extends MainContentList { Data data = getData(); if (data != null) { if (!answer.equals(previous)) { - data.setTypes(stringToTypes(answer)); + data.replaceListContent(stringToTypes(answer)); } return null; } @@ -289,7 +297,7 @@ public class ContactDetailsRaw extends MainContentList { StringBuilder valueBuilder = new StringBuilder(" "); if (!extMode) { - valueBuilder.append(data.getValue()); + valueBuilder.append(data.getValue().replaceAll("\n", "\\\\n")); if (data.getGroup() != null && data.getGroup().length() > 0) { valueBuilder.append("("); valueBuilder.append(data.getGroup()); @@ -306,8 +314,8 @@ public class ContactDetailsRaw extends MainContentList { value = valueBuilder.toString(); - name = StringUtils.sanitize(name, UiColors.getInstance().isUnicode()); - value = StringUtils.sanitize(value, UiColors.getInstance().isUnicode()); + name = StringUtils.sanitize(name, Main.isUnicode()); + value = StringUtils.sanitize(value, Main.isUnicode()); name = StringUtils.padString(name, SIZE_COL_1); group = StringUtils.padString(group, SIZE_COL_2_OPT); @@ -354,8 +362,7 @@ public class ContactDetailsRaw extends MainContentList { if (builder == null) builder = new StringBuilder(); - for (int indexType = 0; indexType < data.size(); indexType++) { - TypeInfo type = data.get(indexType); + for (TypeInfo type : data) { if (builder.length() > 1) builder.append(", "); builder.append(type.getName().replaceAll(",", "\\,"));