X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2Fpanes%2FContactList.java;fp=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2Fpanes%2FContactList.java;h=370aba7cd5adf2e98177ef2d8cc86701c250c15d;hb=0b0b2b0ff1f5e21f7b0feb955b4b54855fb3d508;hp=7bb15dc6a048bd5277216f88b14d752f00c78de2;hpb=9c8baf0c360173b864683176c567757429c4fb12;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/tui/panes/ContactList.java b/src/be/nikiroo/jvcard/tui/panes/ContactList.java index 7bb15dc..370aba7 100644 --- a/src/be/nikiroo/jvcard/tui/panes/ContactList.java +++ b/src/be/nikiroo/jvcard/tui/panes/ContactList.java @@ -4,13 +4,13 @@ import java.util.LinkedList; import java.util.List; import be.nikiroo.jvcard.Card; +import be.nikiroo.jvcard.Contact; import be.nikiroo.jvcard.i18n.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; -import be.nikiroo.jvcard.tui.panes.MainContentList.TextPart; import com.googlecode.lanterna.input.KeyType; @@ -55,8 +55,10 @@ public class ContactList extends MainContentList { @Override public String getExitWarning() { if (card != null && card.isDirty()) { - return "Some of your contact information is not saved"; + //TODO: save? [y/n] instead + return "Some of your contact information is not saved; ignore? [Y/N]"; } + return null; } @@ -65,6 +67,17 @@ public class ContactList extends MainContentList { List actions = new LinkedList(); // TODO del, save... + // TODO: remove + actions.add(new KeyAction(Mode.NONE, 'd', Trans.StringId.DUMMY) { + @Override + public boolean onAction() { + //TODO dummy action + int index = getSelectedIndex(); + Contact c = card.getContacts().get(index); + c.updateFrom(c); + return false; + } + }); actions.add(new KeyAction(Mode.CONTACT_DETAILS, 'e', Trans.StringId.KEY_ACTION_EDIT_CONTACT) { @Override @@ -105,34 +118,43 @@ public class ContactList extends MainContentList { @Override public String getTitle() { - // TODO Auto-generated method stub + if (card != null) { + return card.getName(); + } + return null; } @Override protected List getLabel(int index, int width, boolean selected, boolean focused) { - List parts = new LinkedList(); + Contact c = card.getContacts().get(index); Element el = (focused && selected) ? Element.CONTACT_LINE_SELECTED : Element.CONTACT_LINE; Element elSep = (focused && selected) ? Element.CONTACT_LINE_SEPARATOR_SELECTED : Element.CONTACT_LINE_SEPARATOR; + Element elDirty = (focused && selected) ? Element.CONTACT_LINE_DIRTY_SELECTED + : Element.CONTACT_LINE_DIRTY; - // TODO: width/separator to check - String separator = " ┃ "; - width -= (format.split("\\|").length + 1) * separator.length(); - String[] array = card.getContacts().get(index).toStringArray(format, - width); + width -= 2; // dirty mark space // we could use: " ", "┃", "│"... - for (String str : array) { - parts.add(new TextPart(str, el)); - parts.add(new TextPart(separator, elSep)); + String[] array = c.toStringArray(format, "┃", " ", width); + + List parts = new LinkedList(); + if (c.isDirty()) { + parts.add(new TextPart(" ", el)); + parts.add(new TextPart("*", elDirty)); + } else { + parts.add(new TextPart(" ", elSep)); } - if (parts.size() > 0) - parts.remove(parts.get(parts.size() - 1)); + boolean separator = false; + for (String str : array) { + parts.add(new TextPart(str, (separator ? elSep : el))); + separator = !separator; + } return parts; }