PMD code sweep, #6 don't add MyWindow twice to MyApplication
[fanfix.git] / src / jexer / TLabel.java
1 /*
2 * Jexer - Java Text User Interface
3 *
4 * The MIT License (MIT)
5 *
6 * Copyright (C) 2017 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 // Variables --------------------------------------------------------------
40 // ------------------------------------------------------------------------
41
42 /**
43 * Label text.
44 */
45 private String label = "";
46
47 /**
48 * Label color.
49 */
50 private String colorKey;
51
52 // ------------------------------------------------------------------------
53 // Constructors -----------------------------------------------------------
54 // ------------------------------------------------------------------------
55
56 /**
57 * Public constructor, using the default "tlabel" for colorKey.
58 *
59 * @param parent parent widget
60 * @param text label on the screen
61 * @param x column relative to parent
62 * @param y row relative to parent
63 */
64 public TLabel(final TWidget parent, final String text, final int x,
65 final int y) {
66
67 this(parent, text, x, y, "tlabel");
68 }
69
70 /**
71 * Public constructor.
72 *
73 * @param parent parent widget
74 * @param text label on the screen
75 * @param x column relative to parent
76 * @param y row relative to parent
77 * @param colorKey ColorTheme key color to use for foreground text
78 */
79 public TLabel(final TWidget parent, final String text, final int x,
80 final int y, final String colorKey) {
81
82 // Set parent and window
83 super(parent, false, x, y, text.length(), 1);
84
85 this.label = text;
86 this.colorKey = colorKey;
87 }
88
89 // ------------------------------------------------------------------------
90 // TWidget ----------------------------------------------------------------
91 // ------------------------------------------------------------------------
92
93 /**
94 * Draw a static label.
95 */
96 @Override
97 public void draw() {
98 // Setup my color
99 CellAttributes color = new CellAttributes();
100 color.setTo(getTheme().getColor(colorKey));
101 CellAttributes background = getWindow().getBackground();
102 color.setBackColor(background.getBackColor());
103
104 getScreen().putStringXY(0, 0, label, color);
105 }
106
107 // ------------------------------------------------------------------------
108 // TLabel -----------------------------------------------------------------
109 // ------------------------------------------------------------------------
110
111 /**
112 * Get label text.
113 *
114 * @return label text
115 */
116 public String getLabel() {
117 return label;
118 }
119
120 /**
121 * Set label text.
122 *
123 * @param label new label text
124 */
125 public void setLabel(final String label) {
126 this.label = label;
127 }
128
129 }