f5e966581a6dbffb6026fe088c3d1a6246491e21
[fanfix.git] / src / jexer / TLabel.java
1 /*
2 * Jexer - Java Text User Interface
3 *
4 * The MIT License (MIT)
5 *
6 * Copyright (C) 2016 Kevin Lamonte
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the "Software"),
10 * to deal in the Software without restriction, including without limitation
11 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 * and/or sell copies of the Software, and to permit persons to whom the
13 * Software is furnished to do so, subject to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 * DEALINGS IN THE SOFTWARE.
25 *
26 * @author Kevin Lamonte [kevin.lamonte@gmail.com]
27 * @version 1
28 */
29 package jexer;
30
31 import jexer.bits.CellAttributes;
32
33 /**
34 * TLabel implements a simple label.
35 */
36 public final class TLabel extends TWidget {
37
38 /**
39 * Label text.
40 */
41 private String label = "";
42
43 /**
44 * Get label text.
45 *
46 * @return label text
47 */
48 public String getLabel() {
49 return label;
50 }
51
52 /**
53 * Set label text.
54 *
55 * @param label new label text
56 */
57 public void setLabel(final String label) {
58 this.label = label;
59 }
60
61 /**
62 * Label color.
63 */
64 private String colorKey;
65
66 /**
67 * Public constructor, using the default "tlabel" for colorKey.
68 *
69 * @param parent parent widget
70 * @param text label on the screen
71 * @param x column relative to parent
72 * @param y row relative to parent
73 */
74 public TLabel(final TWidget parent, final String text, final int x,
75 final int y) {
76
77 this(parent, text, x, y, "tlabel");
78 }
79
80 /**
81 * Public constructor.
82 *
83 * @param parent parent widget
84 * @param text label on the screen
85 * @param x column relative to parent
86 * @param y row relative to parent
87 * @param colorKey ColorTheme key color to use for foreground text
88 */
89 public TLabel(final TWidget parent, final String text, final int x,
90 final int y, final String colorKey) {
91
92 // Set parent and window
93 super(parent, false, x, y, text.length(), 1);
94
95 this.label = text;
96 this.colorKey = colorKey;
97 }
98
99 /**
100 * Draw a static label.
101 */
102 @Override public void draw() {
103 // Setup my color
104 CellAttributes color = new CellAttributes();
105 color.setTo(getTheme().getColor(colorKey));
106 CellAttributes background = getWindow().getBackground();
107 color.setBackColor(background.getBackColor());
108
109 getScreen().putStringXY(0, 0, label, color);
110 }
111
112 }