X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2Fpanes%2FContactList.java;h=a68efa249c6c502d4f6b071ef21d35b870ee00ff;hb=9b8cb729d5105f34eb4b1e5975166c6c5f867fa2;hp=ae1a65b2ee52ed54bc788d26614677aa67250bb1;hpb=2a96e7b2cf3f155cccc633272b2f547ffd8f4672;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/tui/panes/ContactList.java b/src/be/nikiroo/jvcard/tui/panes/ContactList.java index ae1a65b..a68efa2 100644 --- a/src/be/nikiroo/jvcard/tui/panes/ContactList.java +++ b/src/be/nikiroo/jvcard/tui/panes/ContactList.java @@ -6,9 +6,11 @@ import java.util.List; import be.nikiroo.jvcard.Card; import be.nikiroo.jvcard.Contact; -import be.nikiroo.jvcard.i18n.Trans; +import be.nikiroo.jvcard.Data; +import be.nikiroo.jvcard.launcher.Main; +import be.nikiroo.jvcard.resources.Bundles; +import be.nikiroo.jvcard.resources.Trans; import be.nikiroo.jvcard.tui.KeyAction; -import be.nikiroo.jvcard.tui.UiColors; import be.nikiroo.jvcard.tui.KeyAction.DataType; import be.nikiroo.jvcard.tui.KeyAction.Mode; import be.nikiroo.jvcard.tui.UiColors.Element; @@ -20,14 +22,18 @@ public class ContactList extends MainContentList { private List contacts; private String filter; - private List formats = new LinkedList(); - private int selectedFormat = -1; - private String format = ""; + private List formats; + private int selectedFormat; + private String format; public ContactList(Card card) { - // TODO: should get that in an INI file - formats.add("NICKNAME@3|FN@+|EMAIL@30"); - formats.add("FN@+|EMAIL@40"); + formats = new LinkedList(); + for (String format : Bundles.getBundle("display") + .getString("CONTACT_LIST_FORMAT").split(",")) { + formats.add(format); + } + + selectedFormat = -1; switchFormat(); setCard(card); @@ -48,12 +54,11 @@ public class ContactList extends MainContentList { this.contacts = new LinkedList(); if (card != null) { - for (int i = 0; i < card.size(); i++) { - Contact c = card.get(i); + for (Contact c : card) { if (filter == null || c.toString(format).toLowerCase() .contains(filter.toLowerCase())) { - addItem("[contact line]"); + addItem("x"); contacts.add(c); } } @@ -86,12 +91,29 @@ public class ContactList extends MainContentList { public List getKeyBindings() { List actions = new LinkedList(); - // TODO add - actions.add(new KeyAction(Mode.CONTACT_DETAILS_RAW, 'e', - Trans.StringId.KEY_ACTION_EDIT_CONTACT) { + // TODO ui + actions.add(new KeyAction(Mode.ASK_USER, 'a', + Trans.StringId.KEY_ACTION_ADD) { @Override public Object getObject() { - return getSelectedContact(); + return card; + } + + @Override + public String getQuestion() { + return Main.trans(Trans.StringId.ASK_USER_CONTACT_NAME); + } + + @Override + public String callback(String answer) { + if (answer.length() > 0) { + List datas = new LinkedList(); + datas.add(new Data(null, "FN", answer, null)); + getCard().add(new Contact(datas)); + addItem("x"); + } + + return null; } }); actions.add(new KeyAction(Mode.ASK_USER_KEY, 'd', @@ -103,8 +125,12 @@ public class ContactList extends MainContentList { @Override public String getQuestion() { - // TODO i18n - return "Delete contact? [Y/N]"; + Contact contact = getSelectedContact(); + String contactName = "null"; + if (contact != null) + contactName = "" + contact.getPreferredDataValue("FN"); + + return Main.trans(Trans.StringId.CONFIRM_USER_DELETE_CONTACT, contactName); } @Override @@ -112,11 +138,16 @@ public class ContactList extends MainContentList { if (answer.equalsIgnoreCase("y")) { Contact contact = getSelectedContact(); if (contact != null && contact.delete()) { + removeItem("x"); return null; } - // TODO i18n - return "Cannot delete contact"; + String contactName = "null"; + if (contact != null) + contactName = "" + contact.getPreferredDataValue("FN"); + + return Main.trans(Trans.StringId.ERR_CANNOT_DELETE_CONTACT, + contactName); } return null; @@ -231,7 +262,7 @@ public class ContactList extends MainContentList { width -= 2; // dirty mark space String[] array = contact.toStringArray(format, getSeparator(), " ", - width, UiColors.getInstance().isUnicode()); + width, Main.isUnicode()); if (contact.isDirty()) { parts.add(new TextPart(" ", el));