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.top;
19
20 import java.util.ArrayList;
21 import java.util.List;
22
23 import org.apache.commons.lang3.StringUtils;
24 import org.apache.hadoop.hbase.classification.InterfaceAudience;
25 import org.apache.hadoop.hbase.hbtop.RecordFilter;
26 import org.apache.hadoop.hbase.hbtop.screen.AbstractScreenView;
27 import org.apache.hadoop.hbase.hbtop.screen.Screen;
28 import org.apache.hadoop.hbase.hbtop.screen.ScreenView;
29 import org.apache.hadoop.hbase.hbtop.terminal.KeyPress;
30 import org.apache.hadoop.hbase.hbtop.terminal.Terminal;
31
32
33
34
35
36
37 @InterfaceAudience.Private
38 public class FilterDisplayModeScreenView extends AbstractScreenView {
39
40 private final int row;
41 private final FilterDisplayModeScreenPresenter filterDisplayModeScreenPresenter;
42
43 public FilterDisplayModeScreenView(Screen screen, Terminal terminal, int row,
44 List<RecordFilter> filters, ScreenView nextScreenView) {
45 super(screen, terminal);
46 this.row = row;
47 this.filterDisplayModeScreenPresenter =
48 new FilterDisplayModeScreenPresenter(this, filters, nextScreenView);
49 }
50
51 @Override
52 public void init() {
53 filterDisplayModeScreenPresenter.init();
54 }
55
56 @Override
57 public ScreenView handleKeyPress(KeyPress keyPress) {
58 if (keyPress.getType() == KeyPress.Type.Enter) {
59 return filterDisplayModeScreenPresenter.returnToNextScreen();
60 }
61 return this;
62 }
63
64 public void showFilters(List<RecordFilter> filters) {
65 String filtersString = "none";
66 if (!filters.isEmpty()) {
67 List<String> filterStrings = new ArrayList<>();
68 for (RecordFilter filter : filters) {
69 filterStrings.add(String.format("'%s'", filter));
70 }
71 filtersString = StringUtils.join(filterStrings, " + ");
72 }
73
74 getTerminalPrinter(row).startBold().print("<Enter> to resume, filters: " + filtersString)
75 .stopBold().endOfLine();
76 }
77 }