X-Git-Url: http://git.nikiroo.be/?p=jvcard.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2Fpanes%2FContactList.java;h=73c6a84c65e8de094dbdb2afffd8b01277180986;hp=078d38e89438a038c33d92513a34b5b4d521f6ae;hb=7da41ecd30228908bf2afcd07ff7943ab59d4c01;hpb=ae22c2473f7203b8713dec1c1de532c312000d1e diff --git a/src/be/nikiroo/jvcard/tui/panes/ContactList.java b/src/be/nikiroo/jvcard/tui/panes/ContactList.java index 078d38e..73c6a84 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,17 +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) { - super(UiColors.Element.CONTACT_LINE, - UiColors.Element.CONTACT_LINE_SELECTED); + formats = new LinkedList(); + for (String format : Bundles.getBundle("display") + .getString("CONTACT_LIST_FORMAT").split(",")) { + formats.add(format); + } - // TODO: should get that in an INI file - formats.add("NICKNAME@3|FN@+|EMAIL@30"); - formats.add("FN@+|EMAIL@40"); + selectedFormat = -1; switchFormat(); setCard(card); @@ -51,12 +54,11 @@ public class ContactList extends MainContentList { this.contacts = new LinkedList(); if (card != null) { - for (int i = 0; i < card.getContacts().size(); i++) { - Contact c = card.getContacts().get(i); + for (Contact c : card) { if (filter == null || c.toString(format).toLowerCase() .contains(filter.toLowerCase())) { - addItem("[contact line]"); + addItem("x"); contacts.add(c); } } @@ -89,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.DUMMY) { @Override public Object getObject() { - return getSelectedContact(); + return card; + } + + @Override + public String getQuestion() { + // TODO i18n + return "new 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', @@ -115,6 +134,7 @@ public class ContactList extends MainContentList { if (answer.equalsIgnoreCase("y")) { Contact contact = getSelectedContact(); if (contact != null && contact.delete()) { + removeItem("x"); return null; } @@ -234,7 +254,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));