1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.hbtop.screen;
19
20 import edu.umd.cs.findbugs.annotations.Nullable;
21 import java.util.Objects;
22
23 import org.apache.hadoop.hbase.classification.InterfaceAudience;
24 import org.apache.hadoop.hbase.hbtop.terminal.KeyPress;
25 import org.apache.hadoop.hbase.hbtop.terminal.Terminal;
26 import org.apache.hadoop.hbase.hbtop.terminal.TerminalPrinter;
27 import org.apache.hadoop.hbase.hbtop.terminal.TerminalSize;
28
29
30
31
32
33 @InterfaceAudience.Private
34 public abstract class AbstractScreenView implements ScreenView {
35
36 private final Screen screen;
37 private final Terminal terminal;
38
39 public AbstractScreenView(Screen screen, Terminal terminal) {
40 this.screen = Objects.requireNonNull(screen);
41 this.terminal = Objects.requireNonNull(terminal);
42 }
43
44 @Override
45 public void init() {
46 }
47
48 @Override
49 public ScreenView handleKeyPress(KeyPress keyPress) {
50 return this;
51 }
52
53 @Override
54 public ScreenView handleTimer() {
55 return this;
56 }
57
58 protected Screen getScreen() {
59 return screen;
60 }
61
62 protected Terminal getTerminal() {
63 return terminal;
64 }
65
66 protected void setTimer(long delay) {
67 screen.setTimer(delay);
68 }
69
70 protected void cancelTimer() {
71 screen.cancelTimer();
72 }
73
74 protected TerminalPrinter getTerminalPrinter(int startRow) {
75 return terminal.getTerminalPrinter(startRow);
76 }
77
78 @Nullable
79 protected TerminalSize getTerminalSize() {
80 return terminal.getSize();
81 }
82
83 @Nullable
84 protected TerminalSize doResizeIfNecessary() {
85 return terminal.doResizeIfNecessary();
86 }
87
88 public void clearTerminal() {
89 terminal.clear();
90 }
91
92 public void refreshTerminal() {
93 terminal.refresh();
94 }
95
96 public void hideCursor() {
97 terminal.hideCursor();
98 }
99
100 public void setCursorPosition(int column, int row) {
101 terminal.setCursorPosition(column, row);
102 }
103 }