Move TSizeConstraint into new package
[fanfix.git] / src / be / nikiroo / fanfix / reader / tui / TuiReaderMainWindow.java
index c10317167189e53256a6c6cae8d83cc75cbfe6f1..cbca857d01fc79770bfb04de9b35b96f1b224878 100644 (file)
@@ -23,6 +23,7 @@ import be.nikiroo.fanfix.data.MetaData;
 import be.nikiroo.fanfix.library.BasicLibrary;
 import be.nikiroo.fanfix.output.BasicOutput.OutputType;
 import be.nikiroo.fanfix.reader.Reader;
+import be.nikiroo.jexer.TSizeConstraint;
 
 /**
  * The library window, that will list all the (filtered) stories available in
@@ -50,7 +51,7 @@ class TuiReaderMainWindow extends TWindow {
 
        private List<TSizeConstraint> sizeConstraints = new ArrayList<TSizeConstraint>();
 
-       // TODO: because no way to find out the current index!!
+       // The 2 comboboxes used to select by source/author
        private TComboBox selectTargetBox;
        private TComboBox selectBox;
 
@@ -72,7 +73,7 @@ class TuiReaderMainWindow extends TWindow {
 
                addList();
                addSearch();
-               addSelect(); // last so we can see the drop down over the list
+               addSelect();
 
                TStatusBar statusBar = reader.setStatusBar(this, "Library");
                statusBar.addShortcutKeypress(TKeypress.kbCtrlF, CMD_SEARCH, "Search");
@@ -153,13 +154,10 @@ class TuiReaderMainWindow extends TWindow {
                        @Override
                        public void DO() {
                                String smode = selectBox.getText();
-                               Mode mode;
                                boolean showTarget;
                                if (smode == null || smode.equals("(show all)")) {
-                                       mode = null;
                                        showTarget = false;
                                } else if (smode.equals("Sources")) {
-                                       mode = Mode.SOURCE;
                                        selectTargets.clear();
                                        selectTargets.add("(show all)");
                                        for (String source : reader.getLibrary().getSources()) {
@@ -167,7 +165,6 @@ class TuiReaderMainWindow extends TWindow {
                                        }
                                        showTarget = true;
                                } else {
-                                       mode = Mode.AUTHOR;
                                        selectTargets.clear();
                                        selectTargets.add("(show all)");
                                        for (String author : reader.getLibrary().getAuthors()) {
@@ -184,26 +181,28 @@ class TuiReaderMainWindow extends TWindow {
                                }
 
                                selectTargetBox.setText(selectTargets.get(0));
-                               setMode(mode, null);
+                               if (showTarget) {
+                                       TuiReaderMainWindow.this.activate(selectTargetBox);
+                               } else {
+                                       TuiReaderMainWindow.this.activate(list);
+                               }
                        }
                };
 
                selectBox = addComboBox(0, 0, 10, selects, 0, -1, onSelect);
-               selectBox.setReadOnly(true);
 
                selectTargetBox = addComboBox(0, 0, 0, selectTargets, 0, -1,
                                new TAction() {
                                        @Override
                                        public void DO() {
-                                               // TODO: detect (show all)
-                                               if (selectTargetBox.getText().equals("(show all)")) {
+                                               if (selectTargetBox.getText().equals(
+                                                               selectTargets.get(0))) {
                                                        setMode(mode, null);
                                                } else {
                                                        setMode(mode, selectTargetBox.getText());
                                                }
                                        }
                                });
-               selectTargetBox.setReadOnly(true);
 
                // Set defaults
                onSelect.DO();
@@ -284,6 +283,9 @@ class TuiReaderMainWindow extends TWindow {
                }
 
                list.setList(listItems);
+               if (listItems.size() > 0) {
+                       list.setSelectedIndex(0);
+               }
        }
 
        public MetaData getSelectedMeta() {