update to more upstream-y jexer lib, fix library
[fanfix.git] / src / be / nikiroo / fanfix / reader / tui / TuiReaderStoryWindow.java
index e4587e755917c0b2489fa1a32ce34dc1debb90db..01db6e2d7b3309043055698779a765d2b4b74945 100644 (file)
@@ -12,9 +12,11 @@ import jexer.TLabel;
 import jexer.TText;
 import jexer.TWindow;
 import jexer.event.TResizeEvent;
+import jexer.event.TResizeEvent.Type;
 import be.nikiroo.fanfix.data.Chapter;
 import be.nikiroo.fanfix.data.MetaData;
 import be.nikiroo.fanfix.data.Paragraph;
+import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
 import be.nikiroo.fanfix.data.Story;
 import be.nikiroo.fanfix.library.BasicLibrary;
 
@@ -89,10 +91,10 @@ class TuiReaderStoryWindow extends TWindow {
        public void onResize(TResizeEvent resize) {
                super.onResize(resize);
 
-               // Resize the text field
-               textField.setWidth(resize.getWidth() - 2);
-               textField.setHeight(resize.getHeight() - 2);
-               textField.reflow();
+               // Resize the text field TODO: why setW/setH/reflow not enough for the
+               // scrollbars?
+               textField.onResize(new TResizeEvent(Type.WIDGET, resize.getWidth() - 2,
+                               resize.getHeight() - 2));
 
                // -3 because 0-based and 2 for borders
                int row = getHeight() - 3;
@@ -133,7 +135,10 @@ class TuiReaderStoryWindow extends TWindow {
                        String name;
                        if (chapter == 0) {
                                chap = getStory().getMeta().getResume();
-                               name = String.format(" %s", chap.getName());
+                               if (chap != null)
+                                       name = String.format(" %s", chap.getName());
+                               else
+                                       name = "[No RESUME]";
                        } else {
                                chap = getStory().getChapters().get(chapter - 1);
                                name = String
@@ -148,17 +153,26 @@ class TuiReaderStoryWindow extends TWindow {
 
                        StringBuilder builder = new StringBuilder();
                        // TODO: i18n
-                       String c = String.format("Chapter %d: %s", chapter, chap.getName());
+                       String c = String.format("Chapter %d: %s", chapter,
+                                       chap == null ? "[No RESUME]" : chap.getName());
                        builder.append(c).append("\n");
                        for (int i = 0; i < c.length(); i++) {
                                builder.append("═");
                        }
                        builder.append("\n\n");
-                       for (Paragraph para : chap) {
-                               builder.append(para.getContent()).append("\n\n");
+                       if (chap != null) {
+                               for (Paragraph para : chap) {
+                                       if (para.getType() == ParagraphType.BREAK) {
+                                               builder.append("\n");
+                                       }
+                                       builder.append(para.getContent()).append("\n");
+                                       if (para.getType() == ParagraphType.BREAK) {
+                                               builder.append("\n");
+                                       }
+                               }
                        }
                        textField.setText(builder.toString());
-                       textField.reflow();
+                       textField.reflowData();
                        textField.toTop();
                }
        }