/**
* Jexer - Java Text User Interface
*
- * Version: $Id$
- *
- * Author: Kevin Lamonte, <a href="mailto:kevin.lamonte@gmail.com">kevin.lamonte@gmail.com</a>
- *
* License: LGPLv3 or later
*
- * Copyright: This module is licensed under the GNU Lesser General
- * Public License Version 3. Please see the file "COPYING" in this
- * directory for more information about the GNU Lesser General Public
- * License Version 3.
+ * This module is licensed under the GNU Lesser General Public License
+ * Version 3. Please see the file "COPYING" in this directory for more
+ * information about the GNU Lesser General Public License Version 3.
*
* Copyright (C) 2015 Kevin Lamonte
*
* http://www.gnu.org/licenses/, or write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
+ *
+ * @author Kevin Lamonte [kevin.lamonte@gmail.com]
+ * @version 1
*/
package jexer.bits;
public class CellAttributes {
/**
- * Bold
+ * Bold attribute.
+ */
+ private boolean bold;
+
+ /**
+ * Getter for bold.
+ *
+ * @return bold value
+ */
+ public final boolean getBold() {
+ return bold;
+ }
+
+ /**
+ * Setter for bold.
+ *
+ * @param bold new bold value
+ */
+ public final void setBold(final boolean bold) {
+ this.bold = bold;
+ }
+
+ /**
+ * Blink attribute.
+ */
+ private boolean blink;
+
+ /**
+ * Getter for blink.
+ *
+ * @return blink value
+ */
+ public final boolean getBlink() {
+ return blink;
+ }
+
+ /**
+ * Setter for blink.
+ *
+ * @param blink new blink value
+ */
+ public final void setBlink(final boolean blink) {
+ this.blink = blink;
+ }
+
+ /**
+ * Reverse attribute.
+ */
+ private boolean reverse;
+
+ /**
+ * Getter for reverse.
+ *
+ * @return reverse value
+ */
+ public final boolean getReverse() {
+ return reverse;
+ }
+
+ /**
+ * Setter for reverse.
+ *
+ * @param reverse new reverse value
+ */
+ public final void setReverse(final boolean reverse) {
+ this.reverse = reverse;
+ }
+
+ /**
+ * Underline attribute.
*/
- public boolean bold;
+ private boolean underline;
/**
- * Blink
+ * Getter for underline.
+ *
+ * @return underline value
*/
- public boolean blink;
+ public final boolean getUnderline() {
+ return underline;
+ }
/**
- * Reverse
+ * Setter for underline.
+ *
+ * @param underline new underline value
*/
- public boolean reverse;
+ public final void setUnderline(final boolean underline) {
+ this.underline = underline;
+ }
/**
- * Underline
+ * Protected attribute.
*/
- public boolean underline;
+ private boolean protect;
/**
- * Protected
+ * Getter for protect.
+ *
+ * @return protect value
*/
- public boolean protect;
+ public final boolean getProtect() {
+ return protect;
+ }
+
+ /**
+ * Setter for protect.
+ *
+ * @param protect new protect value
+ */
+ public final void setProtect(final boolean protect) {
+ this.protect = protect;
+ }
/**
* Foreground color. Color.WHITE, Color.RED, etc.
*/
- public Color foreColor;
+ private Color foreColor;
+
+ /**
+ * Getter for foreColor.
+ *
+ * @return foreColor value
+ */
+ public final Color getForeColor() {
+ return foreColor;
+ }
+
+ /**
+ * Setter for foreColor.
+ *
+ * @param foreColor new foreColor value
+ */
+ public final void setForeColor(final Color foreColor) {
+ this.foreColor = foreColor;
+ }
/**
* Background color. Color.WHITE, Color.RED, etc.
*/
- public Color backColor;
+ private Color backColor;
+
+ /**
+ * Getter for backColor.
+ *
+ * @return backColor value
+ */
+ public final Color getBackColor() {
+ return backColor;
+ }
+
+ /**
+ * Setter for backColor.
+ *
+ * @param backColor new backColor value
+ */
+ public final void setBackColor(final Color backColor) {
+ this.backColor = backColor;
+ }
/**
- * Set to default not-bold, white foreground on black background.
+ * Set to default: white foreground on black background, no
+ * bold/underline/blink/rever/protect.
*/
public void reset() {
- bold = false;
- blink = false;
- reverse = false;
- protect = false;
- underline = false;
- foreColor = Color.WHITE;
- backColor = Color.BLACK;
+ bold = false;
+ blink = false;
+ reverse = false;
+ underline = false;
+ protect = false;
+ foreColor = Color.WHITE;
+ backColor = Color.BLACK;
}
/**
- * Public constructor
+ * Public constructor sets default values of the cell to white-on-black,
+ * no bold/blink/reverse/underline/protect.
+ *
+ * @see #reset()
*/
public CellAttributes() {
- reset();
+ reset();
}
/**
- * Comparison. All fields must match to return true.
+ * Comparison check. All fields must match to return true.
+ *
+ * @param rhs another CellAttributes instance
+ * @return true if all fields are equal
*/
@Override
- public boolean equals(Object rhs) {
- if (!(rhs instanceof CellAttributes)) {
- return false;
- }
+ public boolean equals(final Object rhs) {
+ if (!(rhs instanceof CellAttributes)) {
+ return false;
+ }
- CellAttributes that = (CellAttributes)rhs;
- return ((bold == that.bold) &&
- (blink == that.blink) &&
- (reverse == that.reverse) &&
- (underline == that.underline) &&
- (protect == that.protect) &&
- (foreColor == that.foreColor) &&
- (backColor == that.backColor));
+ CellAttributes that = (CellAttributes) rhs;
+ return ((bold == that.bold)
+ && (blink == that.blink)
+ && (reverse == that.reverse)
+ && (underline == that.underline)
+ && (protect == that.protect)
+ && (foreColor == that.foreColor)
+ && (backColor == that.backColor));
}
/**
- * Set my field values to that's field
+ * Set my field values to that's field.
+ *
+ * @param rhs another CellAttributes instance
*/
public void setTo(Object rhs) {
- CellAttributes that = (CellAttributes)rhs;
-
- this.bold = that.bold;
- this.blink = that.blink;
- this.reverse = that.reverse;
- this.underline = that.underline;
- this.protect = that.protect;
- this.foreColor = that.foreColor;
- this.backColor = that.backColor;
- }
-
- /**
- * Convert enum to string
- *
- * @param color Color.RED, Color.BLUE, etc.
- * @return "red", "blue", etc.
- */
- static public String stringFromColor(Color color) {
- if (color.equals(Color.BLACK)) {
- return "black";
- } else if (color.equals(Color.WHITE)) {
- return "white";
- } else if (color.equals(Color.RED)) {
- return "red";
- } else if (color.equals(Color.CYAN)) {
- return "cyan";
- } else if (color.equals(Color.GREEN)) {
- return "green";
- } else if (color.equals(Color.MAGENTA)) {
- return "magenta";
- } else if (color.equals(Color.BLUE)) {
- return "blue";
- } else if (color.equals(Color.YELLOW)) {
- return "yellow";
- }
- throw new IllegalArgumentException("Invalid Color value: " +
- color.value);
- }
-
- /**
- * Convert string to enum
- *
- * @param color "red", "blue", etc.
- * @return Color.RED, Color.BLUE, etc.
- */
- static public Color colorFromString(String color) {
- switch (color.toLowerCase()) {
- case "black":
- return Color.BLACK;
- case "white":
- return Color.WHITE;
- case "red":
- return Color.RED;
- case "cyan":
- return Color.CYAN;
- case "green":
- return Color.GREEN;
- case "magenta":
- return Color.MAGENTA;
- case "blue":
- return Color.BLUE;
- case "yellow":
- return Color.YELLOW;
- case "brown":
- return Color.YELLOW;
- default:
- // Let unknown strings become white
- return Color.WHITE;
- }
- }
-
- /**
- * Make human-readable description of this CellAttributes
+ CellAttributes that = (CellAttributes) rhs;
+
+ this.bold = that.bold;
+ this.blink = that.blink;
+ this.reverse = that.reverse;
+ this.underline = that.underline;
+ this.protect = that.protect;
+ this.foreColor = that.foreColor;
+ this.backColor = that.backColor;
+ }
+
+ /**
+ * Make human-readable description of this CellAttributes.
+ *
+ * @return displayable String
*/
@Override
public String toString() {
- return String.format("%s%s on %s",
- bold ? "bold " : "",
- stringFromColor(foreColor),
- stringFromColor(backColor));
+ if (bold) {
+ return String.format("bold %s on %s",
+ foreColor, backColor);
+ } else {
+ return String.format("%s on %s", foreColor, backColor);
+ }
}
}
-