Commit | Line | Data |
---|---|---|
fae07ea7 NR |
1 | package be.nikiroo.jvcard.tui.panes; |
2 | ||
3 | import java.util.List; | |
4 | ||
5 | import be.nikiroo.jvcard.tui.KeyAction; | |
6 | ||
7 | import com.googlecode.lanterna.gui2.Direction; | |
8 | import com.googlecode.lanterna.gui2.LinearLayout; | |
9 | import com.googlecode.lanterna.gui2.Panel; | |
10 | ||
11 | /** | |
12 | * This class represents the main content that you can see in this application | |
13 | * (i.e., everything but the title and the actions keys is a {@link Panel} | |
14 | * extended from this class). | |
15 | * | |
16 | * @author niki | |
17 | * | |
18 | */ | |
19 | abstract public class MainContent extends Panel { | |
20 | ||
21 | public MainContent() { | |
22 | super(); | |
23 | } | |
24 | ||
25 | public MainContent(Direction dir) { | |
26 | super(); | |
27 | LinearLayout layout = new LinearLayout(dir); | |
28 | layout.setSpacing(0); | |
29 | setLayoutManager(layout); | |
30 | } | |
31 | ||
fae07ea7 NR |
32 | /** |
33 | * The {@link KeyAction#Mode} that links to this {@link MainContent}. | |
34 | * | |
35 | * @return the linked mode | |
36 | */ | |
37 | abstract public KeyAction.Mode getMode(); | |
38 | ||
39 | /** | |
40 | * The kind of data displayed by this {@link MainContent}. | |
41 | * | |
42 | * @return the kind of data displayed | |
43 | */ | |
44 | abstract public KeyAction.DataType getDataType(); | |
45 | ||
46 | /** | |
47 | * Returns the list of actions and the keys that are bound to it. | |
48 | * | |
49 | * @return the list of actions | |
50 | */ | |
51 | abstract public List<KeyAction> getKeyBindings(); | |
52 | ||
0b0b2b0f NR |
53 | /** |
54 | * The title to display instead of the application name, or NULL for the | |
55 | * default application name. | |
56 | * | |
57 | * @return the title or NULL | |
58 | */ | |
59 | abstract public String getTitle(); | |
60 | ||
61 | /** | |
62 | * Returns an error message ready to be displayed if we should ask something | |
63 | * to the user before exiting. | |
64 | * | |
65 | * @return an error message or NULL | |
66 | */ | |
67 | public String getExitWarning() { | |
68 | return null; | |
69 | } | |
70 | ||
fae07ea7 NR |
71 | /** |
72 | * Move the active cursor (not the text cursor, but the currently active | |
73 | * item). | |
74 | * | |
75 | * @param x | |
76 | * the horizontal move (< 0 for left, > 0 for right) | |
77 | * @param y | |
78 | * the vertical move (< 0 for up, > 0 for down) | |
79 | * | |
80 | * @return the error message to display if any | |
81 | */ | |
0b0b2b0f NR |
82 | public String move(int x, int y) { |
83 | return null; | |
84 | } | |
85 | ||
86 | /** | |
87 | * Return the number of items in this {@link MainContent}, or -1 if this | |
88 | * {@link MainContent} is not countable. | |
89 | * | |
90 | * @return -1 or the number of present items | |
91 | */ | |
92 | public int getCount() { | |
93 | return -1; | |
94 | } | |
fae07ea7 | 95 | } |