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;
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;
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
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();
}
}