X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Ftui%2FTuiReaderMainWindow.java;h=b54d2cb695e45f87baf1ef70f9cf66aa01684a5b;hb=11758a0f1c8c84aaba28fea5b7d9baf4c8dc7cbd;hp=0fccfafaaab717fc33726be4c49aaaba41bf3210;hpb=16a81ef7656c5c692fb831927e75edde25dd77a0;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/tui/TuiReaderMainWindow.java b/src/be/nikiroo/fanfix/reader/tui/TuiReaderMainWindow.java index 0fccfaf..b54d2cb 100644 --- a/src/be/nikiroo/fanfix/reader/tui/TuiReaderMainWindow.java +++ b/src/be/nikiroo/fanfix/reader/tui/TuiReaderMainWindow.java @@ -2,14 +2,14 @@ package be.nikiroo.fanfix.reader.tui; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import jexer.TAction; -import jexer.TCommand; import jexer.TFileOpenBox.Type; -import jexer.TKeypress; import jexer.TList; import jexer.TWindow; +import jexer.event.TCommandEvent; import jexer.event.TMenuEvent; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.data.MetaData; @@ -39,16 +39,32 @@ class TuiReaderMainWindow extends TWindow { public TuiReaderMainWindow(TuiReaderApplication reader) { // Construct a demo window. X and Y don't matter because it will be // centred on screen. - super(reader, "Library", 0, 0, 60, 18, CENTERED | RESIZABLE - | UNCLOSABLE); + super(reader, "Library", 0, 0, 60, 18, CENTERED | RESIZABLE); this.reader = reader; - maximize(); - listKeys = new ArrayList(); listItems = new ArrayList(); - list = addList(listItems, 0, 0, getWidth(), getHeight(), new TAction() { + + // TODO size + onResize + + + + addLabel("Search: ", 5, 3); + addField(15, 3, 5, true); + + addLabel("Sort by: ", 5, 1); + // -1 = no default index (0 means first,...) 1=height when visible, null + // = action + List data = Arrays.asList("(show all)", "Source", "Name", "Author"); + // must be last so to be able to draw over the rest + // TODO: make it so we cannot add manual entries + // TODO: how to select the item via keyboard? why double-click via mouse? + addComboBox(15, 1, 12, + data, 0, Math.min(data.size()+1,getHeight()-1-1), + null); + + list = addList(listItems, 0, 7, getWidth(), getHeight(), new TAction() { @Override public void DO() { MetaData meta = getSelectedMeta(); @@ -59,8 +75,7 @@ class TuiReaderMainWindow extends TWindow { }); // TODO: add the current "source/type" or filter - statusBar = newStatusBar("Library"); - statusBar.addShortcutKeypress(TKeypress.kbF10, TCommand.cmExit, "Exit"); + reader.setStatusBar(this, "Library"); // TODO: remove when not used anymore @@ -87,6 +102,12 @@ class TuiReaderMainWindow extends TWindow { // root.addChild("child 2").addChild("sub child"); } + @Override + public void onClose() { + setVisible(false); + super.onClose(); + } + /** * Change the source filter and display all stories matching this source. * @@ -160,6 +181,16 @@ class TuiReaderMainWindow extends TWindow { return String.format("%5s: %s", meta.getLuid(), meta.getTitle()); } + @Override + public void onCommand(TCommandEvent command) { + if (command.getCmd().equals(TuiReaderApplication.CMD_EXIT)) { + TuiReaderApplication.close(this); + } else { + // Handle our own event if needed here + super.onCommand(command); + } + } + @Override public void onMenu(TMenuEvent menu) { MetaData meta = getSelectedMeta();