X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2FMainWindow.java;h=d7cb80d8b2e624ad2b6453914c0ff13a1e878b1f;hb=5ad0e17e7fea1c602cb2638a006424af9c7e33e8;hp=8dc860dcb3f75212de68187a778cc183e94bc888;hpb=f720df72028ac616d569d4584e3684cd7134105d;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/tui/MainWindow.java b/src/be/nikiroo/jvcard/tui/MainWindow.java index 8dc860d..d7cb80d 100644 --- a/src/be/nikiroo/jvcard/tui/MainWindow.java +++ b/src/be/nikiroo/jvcard/tui/MainWindow.java @@ -1,12 +1,14 @@ package be.nikiroo.jvcard.tui; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import be.nikiroo.jvcard.i18n.Trans; -import be.nikiroo.jvcard.i18n.Trans.StringId; +import be.nikiroo.jvcard.launcher.Main; +import be.nikiroo.jvcard.resources.StringUtils; +import be.nikiroo.jvcard.resources.Trans.StringId; import be.nikiroo.jvcard.tui.KeyAction.Mode; import be.nikiroo.jvcard.tui.UiColors.Element; import be.nikiroo.jvcard.tui.panes.ContactDetails; @@ -220,6 +222,16 @@ public class MainWindow extends BasicWindow { if (contentStack.size() > 0) prev = contentStack.remove(contentStack.size() - 1); + if (prev != null) { + try { + String mess = prev.wakeup(); + if (mess != null) + setMessage(mess, false); + } catch (IOException e) { + setMessage(e.getMessage(), true); + } + } + pushContent(prev); return removed; @@ -408,8 +420,7 @@ public class MainWindow extends BasicWindow { if (title.length() > 0) { prefix = prefix + ": "; - title = StringUtils.sanitize(title, UiColors.getInstance() - .isUnicode()); + title = StringUtils.sanitize(title, Main.isUnicode()); } String countStr = ""; @@ -497,12 +508,12 @@ public class MainWindow extends BasicWindow { actionPanel.removeAllComponents(); for (KeyAction action : this.actions) { - String trans = " " + action.getStringId().trans() + " "; + String trans = " " + Main.trans(action.getStringId()) + " "; if (" ".equals(trans)) continue; - String keyTrans = Trans.getInstance().trans(action.getKey()); + String keyTrans = KeyAction.trans(action.getKey()); Panel kPane = new Panel(); LinearLayout layout = new LinearLayout(Direction.HORIZONTAL); @@ -610,6 +621,12 @@ public class MainWindow extends BasicWindow { handled = true; + action.getObject(); // see {@link KeyAction#getMessage()} + String mess = action.getMessage(); + if (mess != null) { + setMessage(mess, action.isError()); + } + if (action.onAction()) { handleAction(action, null); } @@ -658,6 +675,10 @@ public class MainWindow extends BasicWindow { case CONTACT_LIST: if (action.getCard() != null) { pushContent(new ContactList(action.getCard())); + } else if (action.getObject() != null + && action.getObject() instanceof MainContent) { + MainContent mergeContent = (MainContent) action.getObject(); + pushContent(mergeContent); } break; case CONTACT_DETAILS: