New Jexer TUI now working (still needs work)
[jvcard.git] / src / be / nikiroo / jvcard / tui / windows / TuiBrowserWindow.java
index 55cc4aa6b3dea79b74e1094ab50b5a52b58c0172..827f7b9f2a2f2559d31bd767b2b0e001e45330ea 100644 (file)
@@ -1,45 +1,30 @@
 package be.nikiroo.jvcard.tui.windows;
 
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import jexer.TAction;
 import jexer.TApplication;
-import jexer.TKeypress;
 import jexer.TTable;
-import jexer.TWindow;
-import jexer.event.TKeypressEvent;
 import jexer.event.TResizeEvent;
 import be.nikiroo.jvcard.tui.panes.MainContent;
 
-public abstract class TuiBrowserWindow extends TWindow {
-       private TApplication app;
+public abstract class TuiBrowserWindow extends TuiBasicWindow {
        private TTable table;
        private boolean showHeader;
-       private Map<TKeypress, TAction> keyBindings;
 
        public TuiBrowserWindow(TApplication app, String title, boolean showHeaders) {
-               super(app, title, 10, 10);
+               super(app, title);
 
-               this.app = app;
                this.showHeader = showHeaders;
 
-               table = new TTable(this, 0, 0, getWidth(), getHeight(), new TAction() {
-                       @Override
-                       public void DO() {
-                               onAction(table.getSelectedLine(), table.getSelectedColumn());
-                       }
-               }, null);
-
-               keyBindings = new HashMap<TKeypress, TAction>();
-
-               // TODO: fullscreen selection?
-
-               // TODO: auto-maximize on FS, auto-resize on maximize
-               // setFullscreen(true);
-               maximize();
-               onResize(null);
+               table = new TTable(this, 0, 0, getWidth() - 2, getHeight() - 2,
+                               new TAction() {
+                                       @Override
+                                       public void DO() {
+                                               onAction(table.getSelectedLine(),
+                                                               table.getSelectedColumn());
+                                       }
+                               }, null);
        }
 
        /**
@@ -67,10 +52,6 @@ public abstract class TuiBrowserWindow extends TWindow {
                                table.getNumberOfColumns() - 1));
        }
 
-       public void addKeyBinding(TKeypress key, TAction action) {
-               keyBindings.put(key, action);
-       }
-
        /**
         * Return the number of items in this {@link MainContent}, or -1 if this
         * {@link MainContent} is not countable.
@@ -81,13 +62,6 @@ public abstract class TuiBrowserWindow extends TWindow {
                return table.getNumberOfLines();
        }
 
-       /**
-        * Close the window.
-        */
-       public void close() {
-               app.closeWindow(this);
-       }
-
        /**
         * An item has been selected.
         * 
@@ -103,17 +77,11 @@ public abstract class TuiBrowserWindow extends TWindow {
        @Override
        public void onResize(TResizeEvent resize) {
                super.onResize(resize);
-               table.setWidth(getWidth());
-               table.setHeight(getHeight());
-               table.reflow();
-       }
-
-       @Override
-       public void onKeypress(TKeypressEvent keypress) {
-               if (keyBindings.containsKey(keypress.getKey())) {
-                       keyBindings.get(keypress.getKey()).DO();
-               } else {
-                       super.onKeypress(keypress);
+               // Will be NULL at creation time in super()
+               if (table != null) {
+                       table.setWidth(getWidth() - 2);
+                       table.setHeight(getHeight() - 2);
+                       table.reflow();
                }
        }
 }