Version 2.0.0: update sources
[jvcard.git] / src / com / googlecode / lanterna / terminal / swing / TerminalEmulatorPalette.java
diff --git a/src/com/googlecode/lanterna/terminal/swing/TerminalEmulatorPalette.java b/src/com/googlecode/lanterna/terminal/swing/TerminalEmulatorPalette.java
deleted file mode 100644 (file)
index efc64dc..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * This file is part of lanterna (http://code.google.com/p/lanterna/).
- *
- * lanterna is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright (C) 2010-2015 Martin
- */
-
-package com.googlecode.lanterna.terminal.swing;
-
-import com.googlecode.lanterna.TextColor;
-import java.awt.Color;
-
-/**
- * This class specifies the palette of colors the terminal will use for the normally available 8 + 1 ANSI colors but
- * also their 'bright' versions with are normally enabled through bold mode. There are several palettes available, all
- * based on popular terminal emulators. All colors are defined in the AWT format.
- * @author Martin
- */
-@SuppressWarnings("WeakerAccess")
-public class TerminalEmulatorPalette {
-    /**
-     * Values taken from gnome-terminal on Ubuntu
-     */
-    public static final TerminalEmulatorPalette GNOME_TERMINAL =
-            new TerminalEmulatorPalette(
-                    new java.awt.Color(211, 215, 207),
-                    new java.awt.Color(238, 238, 236),
-                    new java.awt.Color(46, 52, 54),
-                    new java.awt.Color(46, 52, 54),
-                    new java.awt.Color(85, 87, 83),
-                    new java.awt.Color(204, 0, 0),
-                    new java.awt.Color(239, 41, 41),
-                    new java.awt.Color(78, 154, 6),
-                    new java.awt.Color(138, 226, 52),
-                    new java.awt.Color(196, 160, 0),
-                    new java.awt.Color(252, 233, 79),
-                    new java.awt.Color(52, 101, 164),
-                    new java.awt.Color(114, 159, 207),
-                    new java.awt.Color(117, 80, 123),
-                    new java.awt.Color(173, 127, 168),
-                    new java.awt.Color(6, 152, 154),
-                    new java.awt.Color(52, 226, 226),
-                    new java.awt.Color(211, 215, 207),
-                    new java.awt.Color(238, 238, 236));
-
-    /**
-     * Values taken from <a href="http://en.wikipedia.org/wiki/ANSI_escape_code">
-     * wikipedia</a>, these are supposed to be the standard VGA palette.
-     */
-    public static final TerminalEmulatorPalette STANDARD_VGA =
-            new TerminalEmulatorPalette(
-                    new java.awt.Color(170, 170, 170),
-                    new java.awt.Color(255, 255, 255),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(85, 85, 85),
-                    new java.awt.Color(170, 0, 0),
-                    new java.awt.Color(255, 85, 85),
-                    new java.awt.Color(0, 170, 0),
-                    new java.awt.Color(85, 255, 85),
-                    new java.awt.Color(170, 85, 0),
-                    new java.awt.Color(255, 255, 85),
-                    new java.awt.Color(0, 0, 170),
-                    new java.awt.Color(85, 85, 255),
-                    new java.awt.Color(170, 0, 170),
-                    new java.awt.Color(255, 85, 255),
-                    new java.awt.Color(0, 170, 170),
-                    new java.awt.Color(85, 255, 255),
-                    new java.awt.Color(170, 170, 170),
-                    new java.awt.Color(255, 255, 255));
-
-    /**
-     * Values taken from <a href="http://en.wikipedia.org/wiki/ANSI_escape_code">
-     * wikipedia</a>, these are supposed to be what Windows XP cmd is using.
-     */
-    public static final TerminalEmulatorPalette WINDOWS_XP_COMMAND_PROMPT =
-            new TerminalEmulatorPalette(
-                    new java.awt.Color(192, 192, 192),
-                    new java.awt.Color(255, 255, 255),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(128, 128, 128),
-                    new java.awt.Color(128, 0, 0),
-                    new java.awt.Color(255, 0, 0),
-                    new java.awt.Color(0, 128, 0),
-                    new java.awt.Color(0, 255, 0),
-                    new java.awt.Color(128, 128, 0),
-                    new java.awt.Color(255, 255, 0),
-                    new java.awt.Color(0, 0, 128),
-                    new java.awt.Color(0, 0, 255),
-                    new java.awt.Color(128, 0, 128),
-                    new java.awt.Color(255, 0, 255),
-                    new java.awt.Color(0, 128, 128),
-                    new java.awt.Color(0, 255, 255),
-                    new java.awt.Color(192, 192, 192),
-                    new java.awt.Color(255, 255, 255));
-
-    /**
-     * Values taken from <a href="http://en.wikipedia.org/wiki/ANSI_escape_code">
-     * wikipedia</a>, these are supposed to be what terminal.app on MacOSX is using.
-     */
-    public static final TerminalEmulatorPalette MAC_OS_X_TERMINAL_APP =
-            new TerminalEmulatorPalette(
-                    new java.awt.Color(203, 204, 205),
-                    new java.awt.Color(233, 235, 235),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(129, 131, 131),
-                    new java.awt.Color(194, 54, 33),
-                    new java.awt.Color(252,57,31),
-                    new java.awt.Color(37, 188, 36),
-                    new java.awt.Color(49, 231, 34),
-                    new java.awt.Color(173, 173, 39),
-                    new java.awt.Color(234, 236, 35),
-                    new java.awt.Color(73, 46, 225),
-                    new java.awt.Color(88, 51, 255),
-                    new java.awt.Color(211, 56, 211),
-                    new java.awt.Color(249, 53, 248),
-                    new java.awt.Color(51, 187, 200),
-                    new java.awt.Color(20, 240, 240),
-                    new java.awt.Color(203, 204, 205),
-                    new java.awt.Color(233, 235, 235));
-
-    /**
-     * Values taken from <a href="http://en.wikipedia.org/wiki/ANSI_escape_code">
-     * wikipedia</a>, these are supposed to be what putty is using.
-     */
-    public static final TerminalEmulatorPalette PUTTY =
-            new TerminalEmulatorPalette(
-                    new java.awt.Color(187, 187, 187),
-                    new java.awt.Color(255, 255, 255),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(85, 85, 85),
-                    new java.awt.Color(187, 0, 0),
-                    new java.awt.Color(255, 85, 85),
-                    new java.awt.Color(0, 187, 0),
-                    new java.awt.Color(85, 255, 85),
-                    new java.awt.Color(187, 187, 0),
-                    new java.awt.Color(255, 255, 85),
-                    new java.awt.Color(0, 0, 187),
-                    new java.awt.Color(85, 85, 255),
-                    new java.awt.Color(187, 0, 187),
-                    new java.awt.Color(255, 85, 255),
-                    new java.awt.Color(0, 187, 187),
-                    new java.awt.Color(85, 255, 255),
-                    new java.awt.Color(187, 187, 187),
-                    new java.awt.Color(255, 255, 255));
-
-    /**
-     * Values taken from <a href="http://en.wikipedia.org/wiki/ANSI_escape_code">
-     * wikipedia</a>, these are supposed to be what xterm is using.
-     */
-    public static final TerminalEmulatorPalette XTERM =
-            new TerminalEmulatorPalette(
-                    new java.awt.Color(229, 229, 229),
-                    new java.awt.Color(255, 255, 255),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(0, 0, 0),
-                    new java.awt.Color(127, 127, 127),
-                    new java.awt.Color(205, 0, 0),
-                    new java.awt.Color(255, 0, 0),
-                    new java.awt.Color(0, 205, 0),
-                    new java.awt.Color(0, 255, 0),
-                    new java.awt.Color(205, 205, 0),
-                    new java.awt.Color(255, 255, 0),
-                    new java.awt.Color(0, 0, 238),
-                    new java.awt.Color(92, 92, 255),
-                    new java.awt.Color(205, 0, 205),
-                    new java.awt.Color(255, 0, 255),
-                    new java.awt.Color(0, 205, 205),
-                    new java.awt.Color(0, 255, 255),
-                    new java.awt.Color(229, 229, 229),
-                    new java.awt.Color(255, 255, 255));
-
-    /**
-     * Default colors the SwingTerminal is using if you don't specify anything
-     */
-    public static final TerminalEmulatorPalette DEFAULT = GNOME_TERMINAL;
-
-    private final Color defaultColor;
-    private final Color defaultBrightColor;
-    private final Color defaultBackgroundColor;
-    private final Color normalBlack;
-    private final Color brightBlack;
-    private final Color normalRed;
-    private final Color brightRed;
-    private final Color normalGreen;
-    private final Color brightGreen;
-    private final Color normalYellow;
-    private final Color brightYellow;
-    private final Color normalBlue;
-    private final Color brightBlue;
-    private final Color normalMagenta;
-    private final Color brightMagenta;
-    private final Color normalCyan;
-    private final Color brightCyan;
-    private final Color normalWhite;
-    private final Color brightWhite;
-
-    /**
-     * Creates a new palette with all colors specified up-front
-     * @param defaultColor Default color which no specific color has been selected
-     * @param defaultBrightColor Default color which no specific color has been selected but bold is enabled
-     * @param defaultBackgroundColor Default color to use for the background when no specific color has been selected
-     * @param normalBlack Color for normal black
-     * @param brightBlack Color for bright black
-     * @param normalRed Color for normal red
-     * @param brightRed Color for bright red
-     * @param normalGreen Color for normal green
-     * @param brightGreen Color for bright green
-     * @param normalYellow Color for normal yellow
-     * @param brightYellow Color for bright yellow
-     * @param normalBlue Color for normal blue
-     * @param brightBlue Color for bright blue
-     * @param normalMagenta Color for normal magenta
-     * @param brightMagenta Color for bright magenta
-     * @param normalCyan Color for normal cyan
-     * @param brightCyan Color for bright cyan
-     * @param normalWhite Color for normal white
-     * @param brightWhite Color for bright white
-     */
-    public TerminalEmulatorPalette(
-            Color defaultColor,
-            Color defaultBrightColor,
-            Color defaultBackgroundColor,
-            Color normalBlack,
-            Color brightBlack,
-            Color normalRed,
-            Color brightRed,
-            Color normalGreen,
-            Color brightGreen,
-            Color normalYellow,
-            Color brightYellow,
-            Color normalBlue,
-            Color brightBlue,
-            Color normalMagenta,
-            Color brightMagenta,
-            Color normalCyan,
-            Color brightCyan,
-            Color normalWhite,
-            Color brightWhite) {
-        this.defaultColor = defaultColor;
-        this.defaultBrightColor = defaultBrightColor;
-        this.defaultBackgroundColor = defaultBackgroundColor;
-        this.normalBlack = normalBlack;
-        this.brightBlack = brightBlack;
-        this.normalRed = normalRed;
-        this.brightRed = brightRed;
-        this.normalGreen = normalGreen;
-        this.brightGreen = brightGreen;
-        this.normalYellow = normalYellow;
-        this.brightYellow = brightYellow;
-        this.normalBlue = normalBlue;
-        this.brightBlue = brightBlue;
-        this.normalMagenta = normalMagenta;
-        this.brightMagenta = brightMagenta;
-        this.normalCyan = normalCyan;
-        this.brightCyan = brightCyan;
-        this.normalWhite = normalWhite;
-        this.brightWhite = brightWhite;
-    }
-
-    /**
-     * Returns the AWT color from this palette given an ANSI color and two hints for if we are looking for a background
-     * color and if we want to use the bright version.
-     * @param color Which ANSI color we want to extract
-     * @param isForeground Is this color we extract going to be used as a background color?
-     * @param useBrightTones If true, we should return the bright version of the color
-     * @return AWT color extracted from this palette for the input parameters
-     */
-    public Color get(TextColor.ANSI color, boolean isForeground, boolean useBrightTones) {
-        if(useBrightTones) {
-            switch(color) {
-                case BLACK:
-                    return brightBlack;
-                case BLUE:
-                    return brightBlue;
-                case CYAN:
-                    return brightCyan;
-                case DEFAULT:
-                    return isForeground ? defaultBrightColor : defaultBackgroundColor;
-                case GREEN:
-                    return brightGreen;
-                case MAGENTA:
-                    return brightMagenta;
-                case RED:
-                    return brightRed;
-                case WHITE:
-                    return brightWhite;
-                case YELLOW:
-                    return brightYellow;
-            }
-        }
-        else {
-            switch(color) {
-                case BLACK:
-                    return normalBlack;
-                case BLUE:
-                    return normalBlue;
-                case CYAN:
-                    return normalCyan;
-                case DEFAULT:
-                    return isForeground ? defaultColor : defaultBackgroundColor;
-                case GREEN:
-                    return normalGreen;
-                case MAGENTA:
-                    return normalMagenta;
-                case RED:
-                    return normalRed;
-                case WHITE:
-                    return normalWhite;
-                case YELLOW:
-                    return normalYellow;
-            }
-        }
-        throw new IllegalArgumentException("Unknown text color " + color);
-    }
-
-    @SuppressWarnings({"SimplifiableIfStatement", "ConstantConditions"})
-    @Override
-    public boolean equals(Object obj) {
-        if(obj == null) {
-            return false;
-        }
-        if(getClass() != obj.getClass()) {
-            return false;
-        }
-        final TerminalEmulatorPalette other = (TerminalEmulatorPalette) obj;
-        if(this.defaultColor != other.defaultColor && (this.defaultColor == null || !this.defaultColor.equals(other.defaultColor))) {
-            return false;
-        }
-        if(this.defaultBrightColor != other.defaultBrightColor && (this.defaultBrightColor == null || !this.defaultBrightColor.equals(other.defaultBrightColor))) {
-            return false;
-        }
-        if(this.defaultBackgroundColor != other.defaultBackgroundColor && (this.defaultBackgroundColor == null || !this.defaultBackgroundColor.equals(other.defaultBackgroundColor))) {
-            return false;
-        }
-        if(this.normalBlack != other.normalBlack && (this.normalBlack == null || !this.normalBlack.equals(other.normalBlack))) {
-            return false;
-        }
-        if(this.brightBlack != other.brightBlack && (this.brightBlack == null || !this.brightBlack.equals(other.brightBlack))) {
-            return false;
-        }
-        if(this.normalRed != other.normalRed && (this.normalRed == null || !this.normalRed.equals(other.normalRed))) {
-            return false;
-        }
-        if(this.brightRed != other.brightRed && (this.brightRed == null || !this.brightRed.equals(other.brightRed))) {
-            return false;
-        }
-        if(this.normalGreen != other.normalGreen && (this.normalGreen == null || !this.normalGreen.equals(other.normalGreen))) {
-            return false;
-        }
-        if(this.brightGreen != other.brightGreen && (this.brightGreen == null || !this.brightGreen.equals(other.brightGreen))) {
-            return false;
-        }
-        if(this.normalYellow != other.normalYellow && (this.normalYellow == null || !this.normalYellow.equals(other.normalYellow))) {
-            return false;
-        }
-        if(this.brightYellow != other.brightYellow && (this.brightYellow == null || !this.brightYellow.equals(other.brightYellow))) {
-            return false;
-        }
-        if(this.normalBlue != other.normalBlue && (this.normalBlue == null || !this.normalBlue.equals(other.normalBlue))) {
-            return false;
-        }
-        if(this.brightBlue != other.brightBlue && (this.brightBlue == null || !this.brightBlue.equals(other.brightBlue))) {
-            return false;
-        }
-        if(this.normalMagenta != other.normalMagenta && (this.normalMagenta == null || !this.normalMagenta.equals(other.normalMagenta))) {
-            return false;
-        }
-        if(this.brightMagenta != other.brightMagenta && (this.brightMagenta == null || !this.brightMagenta.equals(other.brightMagenta))) {
-            return false;
-        }
-        if(this.normalCyan != other.normalCyan && (this.normalCyan == null || !this.normalCyan.equals(other.normalCyan))) {
-            return false;
-        }
-        if(this.brightCyan != other.brightCyan && (this.brightCyan == null || !this.brightCyan.equals(other.brightCyan))) {
-            return false;
-        }
-        if(this.normalWhite != other.normalWhite && (this.normalWhite == null || !this.normalWhite.equals(other.normalWhite))) {
-            return false;
-        }
-        return !(this.brightWhite != other.brightWhite && (this.brightWhite == null || !this.brightWhite.equals(other.brightWhite)));
-    }
-
-    @SuppressWarnings("ConstantConditions")
-    @Override
-    public int hashCode() {
-        int hash = 5;
-        hash = 47 * hash + (this.defaultColor != null ? this.defaultColor.hashCode() : 0);
-        hash = 47 * hash + (this.defaultBrightColor != null ? this.defaultBrightColor.hashCode() : 0);
-        hash = 47 * hash + (this.defaultBackgroundColor != null ? this.defaultBackgroundColor.hashCode() : 0);
-        hash = 47 * hash + (this.normalBlack != null ? this.normalBlack.hashCode() : 0);
-        hash = 47 * hash + (this.brightBlack != null ? this.brightBlack.hashCode() : 0);
-        hash = 47 * hash + (this.normalRed != null ? this.normalRed.hashCode() : 0);
-        hash = 47 * hash + (this.brightRed != null ? this.brightRed.hashCode() : 0);
-        hash = 47 * hash + (this.normalGreen != null ? this.normalGreen.hashCode() : 0);
-        hash = 47 * hash + (this.brightGreen != null ? this.brightGreen.hashCode() : 0);
-        hash = 47 * hash + (this.normalYellow != null ? this.normalYellow.hashCode() : 0);
-        hash = 47 * hash + (this.brightYellow != null ? this.brightYellow.hashCode() : 0);
-        hash = 47 * hash + (this.normalBlue != null ? this.normalBlue.hashCode() : 0);
-        hash = 47 * hash + (this.brightBlue != null ? this.brightBlue.hashCode() : 0);
-        hash = 47 * hash + (this.normalMagenta != null ? this.normalMagenta.hashCode() : 0);
-        hash = 47 * hash + (this.brightMagenta != null ? this.brightMagenta.hashCode() : 0);
-        hash = 47 * hash + (this.normalCyan != null ? this.normalCyan.hashCode() : 0);
-        hash = 47 * hash + (this.brightCyan != null ? this.brightCyan.hashCode() : 0);
-        hash = 47 * hash + (this.normalWhite != null ? this.normalWhite.hashCode() : 0);
-        hash = 47 * hash + (this.brightWhite != null ? this.brightWhite.hashCode() : 0);
-        return hash;
-    }
-
-    @Override
-    public String toString() {
-        return "SwingTerminalPalette{" +
-                "defaultColor=" + defaultColor +
-                ", defaultBrightColor=" + defaultBrightColor +
-                ", defaultBackgroundColor=" + defaultBackgroundColor +
-                ", normalBlack=" + normalBlack +
-                ", brightBlack=" + brightBlack +
-                ", normalRed=" + normalRed +
-                ", brightRed=" + brightRed +
-                ", normalGreen=" + normalGreen +
-                ", brightGreen=" + brightGreen +
-                ", normalYellow=" + normalYellow +
-                ", brightYellow=" + brightYellow +
-                ", normalBlue=" + normalBlue +
-                ", brightBlue=" + brightBlue +
-                ", normalMagenta=" + normalMagenta +
-                ", brightMagenta=" + brightMagenta +
-                ", normalCyan=" + normalCyan +
-                ", brightCyan=" + brightCyan +
-                ", normalWhite=" + normalWhite +
-                ", brightWhite=" + brightWhite + '}';
-    }
-}