Commit | Line | Data |
---|---|---|
c1873e56 NR |
1 | package be.nikiroo.fanfix.reader; |
2 | ||
3 | import jexer.TApplication; | |
4 | import jexer.TText; | |
5 | import jexer.TWindow; | |
6 | import jexer.event.TResizeEvent; | |
7 | import be.nikiroo.fanfix.Instance; | |
8 | import be.nikiroo.fanfix.data.Chapter; | |
9 | import be.nikiroo.fanfix.data.MetaData; | |
10 | import be.nikiroo.fanfix.data.Paragraph; | |
11 | import be.nikiroo.fanfix.data.Story; | |
12 | ||
13 | public class TuiReaderStoryWindow extends TWindow { | |
14 | private MetaData meta; | |
15 | private Story story; | |
16 | private TText textField; | |
17 | ||
18 | public TuiReaderStoryWindow(TApplication app, MetaData meta) { | |
19 | super(app, desc(meta), 0, 0, 60, 18, CENTERED | RESIZABLE); | |
20 | this.meta = meta; | |
21 | ||
22 | // /TODO: status bar with info, buttons to change chapter << < Chapter 0 | |
23 | // : xxx.. > >> (max size for name = getWith() - X) | |
24 | ||
25 | // TODO: show all meta info before | |
26 | ||
27 | Chapter resume = getStory().getMeta().getResume(); | |
28 | StringBuilder text = new StringBuilder(); | |
29 | if (resume != null) { | |
30 | // TODO: why does \n not work but \n\n do? bug in jexer? | |
31 | text.append("Resume:\n\n "); // -> to status bar | |
32 | for (Paragraph para : resume) { | |
33 | text.append(para.getContent()).append("\n\n "); | |
34 | } | |
35 | } | |
36 | textField = addText(text.toString(), 0, 0, getWidth(), getHeight()); | |
37 | } | |
38 | ||
39 | @Override | |
40 | public void onResize(TResizeEvent resize) { | |
41 | super.onResize(resize); | |
42 | ||
43 | // Resize the text field | |
44 | textField.setWidth(resize.getWidth()); | |
45 | textField.setHeight(resize.getHeight()); | |
46 | textField.reflow(); | |
47 | } | |
48 | ||
49 | private Story getStory() { | |
50 | if (story == null) { | |
51 | // TODO: progress bar | |
52 | story = Instance.getLibrary().getStory(meta.getLuid(), null); | |
53 | } | |
54 | return story; | |
55 | } | |
56 | ||
57 | private static String desc(MetaData meta) { | |
58 | return String.format("%s: %s", meta.getLuid(), meta.getTitle()); | |
59 | } | |
60 | } |