X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Ftui%2FTuiReaderApplication.java;h=8cd5c0b90ce99ed820ba16725e45fb9ced3530ad;hb=cd6b47c9288524cde80df6e90843293b2fe0677d;hp=b85bb8612768a30480942ccf760d6cb5baf9d449;hpb=e0fb1417b679a2f3cb0fef4937e79b211f1ce3c4;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/tui/TuiReaderApplication.java b/src/be/nikiroo/fanfix/reader/tui/TuiReaderApplication.java index b85bb86..8cd5c0b 100644 --- a/src/be/nikiroo/fanfix/reader/tui/TuiReaderApplication.java +++ b/src/be/nikiroo/fanfix/reader/tui/TuiReaderApplication.java @@ -10,9 +10,12 @@ import jexer.TApplication; import jexer.TCommand; import jexer.TKeypress; import jexer.TMessageBox; +import jexer.TMessageBox.Result; +import jexer.TMessageBox.Type; import jexer.TStatusBar; import jexer.TWidget; import jexer.TWindow; +import jexer.event.TCommandEvent; import jexer.event.TMenuEvent; import jexer.menu.TMenu; import be.nikiroo.fanfix.Instance; @@ -21,6 +24,7 @@ import be.nikiroo.fanfix.data.Story; import be.nikiroo.fanfix.library.BasicLibrary; import be.nikiroo.fanfix.reader.BasicReader; import be.nikiroo.fanfix.reader.Reader; +import be.nikiroo.fanfix.reader.tui.TuiReaderMainWindow.Mode; import be.nikiroo.utils.Progress; /** @@ -36,15 +40,15 @@ class TuiReaderApplication extends TApplication implements Reader { public static final int MENU_IMPORT_URL = 1026; public static final int MENU_IMPORT_FILE = 1027; public static final int MENU_EXPORT = 1028; - public static final int MENU_LIBRARY = 1029; - public static final int MENU_EXIT = 1030; + public static final int MENU_DELETE = 1029; + public static final int MENU_LIBRARY = 1030; + public static final int MENU_EXIT = 1031; public static final TCommand CMD_EXIT = new TCommand(MENU_EXIT) { }; private Reader reader; private TuiReaderMainWindow main; - private String source; // start reading if meta present public TuiReaderApplication(Reader reader, BackendType backend) @@ -64,7 +68,7 @@ class TuiReaderApplication extends TApplication implements Reader { init(reader); showMain(); - setSource(source); + main.setMode(Mode.SOURCE, source); } @Override @@ -173,12 +177,6 @@ class TuiReaderApplication extends TApplication implements Reader { } } - private void setSource(String source) { - this.source = source; - showMain(); - main.setSource(source); - } - private void init(Reader reader) { this.reader = reader; @@ -187,8 +185,9 @@ class TuiReaderApplication extends TApplication implements Reader { // Add the menus TODO: i18n TMenu fileMenu = addMenu("&File"); - fileMenu.addItem(MENU_OPEN, "&Open"); + fileMenu.addItem(MENU_OPEN, "&Open..."); fileMenu.addItem(MENU_EXPORT, "&Save as..."); + fileMenu.addItem(MENU_DELETE, "&Delete..."); // TODO: Move to... fileMenu.addSeparator(); fileMenu.addItem(MENU_IMPORT_URL, "Import &URL..."); @@ -210,6 +209,15 @@ class TuiReaderApplication extends TApplication implements Reader { getBackend().setTitle("Fanfix"); } + @Override + protected boolean onCommand(TCommandEvent command) { + if (command.getCmd().equals(TuiReaderMainWindow.CMD_SEARCH)) { + messageBox("title", "caption"); + return true; + } + return super.onCommand(command); + } + @Override protected boolean onMenu(TMenuEvent menu) { // TODO: i18n @@ -230,6 +238,35 @@ class TuiReaderApplication extends TApplication implements Reader { "Import error", e); } + return true; + case MENU_DELETE: + String luid = null; + String story = null; + MetaData meta = null; + if (main != null) { + meta = main.getSelectedMeta(); + } + if (meta != null) { + luid = meta.getLuid(); + story = luid + ": " + meta.getTitle(); + } + + // TODO: i18n + TMessageBox mbox = messageBox("Delete story", "Delete story \"" + + story + "\"", Type.OKCANCEL); + if (mbox.getResult() == Result.OK) { + try { + reader.getLibrary().delete(luid); + if (main != null) { + main.refreshStories(); + } + } catch (IOException e) { + // TODO: i18n + error("Fail to delete the story: \"" + story + "\"", + "Error", e); + } + } + return true; case MENU_IMPORT_URL: String clipboard = ""; @@ -276,7 +313,6 @@ class TuiReaderApplication extends TApplication implements Reader { return true; case MENU_LIBRARY: showMain(); - setSource(source); return true; }