X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fio%2FECMA48Screen.java;h=4c3af185db87b929a26aa2447406d75c0000d921;hb=e16dda65585466c8987bd1efd718431450a96605;hp=15dee5019a49e9bd1d8aaadd9af1f2f160980df9;hpb=7b5261bc5b641e0769902f014e3b21f61050b02b;p=nikiroo-utils.git diff --git a/src/jexer/io/ECMA48Screen.java b/src/jexer/io/ECMA48Screen.java index 15dee50..4c3af18 100644 --- a/src/jexer/io/ECMA48Screen.java +++ b/src/jexer/io/ECMA48Screen.java @@ -1,29 +1,27 @@ -/** +/* * Jexer - Java Text User Interface * - * License: LGPLv3 or later - * - * 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. + * The MIT License (MIT) * - * Copyright (C) 2015 Kevin Lamonte + * Copyright (C) 2016 Kevin Lamonte * - * This program 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. + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * - * 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 - * General Public License for more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * 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/, or write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. * * @author Kevin Lamonte [kevin.lamonte@gmail.com] * @version 1 @@ -34,9 +32,10 @@ import jexer.bits.Cell; import jexer.bits.CellAttributes; /** - * This Screen class draws to an xterm/ANSI X3.64/ECMA-48 type terminal. + * This Screen implementation draws to an xterm/ANSI X3.64/ECMA-48 type + * terminal. */ -public class ECMA48Screen extends Screen { +public final class ECMA48Screen extends Screen { /** * Emit debugging to stderr. @@ -91,7 +90,7 @@ public class ECMA48Screen extends Screen { Cell lCell = logical[x][y]; Cell pCell = physical[x][y]; - if ((lCell != pCell) || reallyCleared) { + if (!lCell.equals(pCell) || reallyCleared) { if (debugToStderr) { System.err.printf("\n--\n"); @@ -132,10 +131,10 @@ public class ECMA48Screen extends Screen { // Now emit only the modified attributes if ((lCell.getForeColor() != lastAttr.getForeColor()) && (lCell.getBackColor() != lastAttr.getBackColor()) - && (lCell.getBold() == lastAttr.getBold()) - && (lCell.getReverse() == lastAttr.getReverse()) - && (lCell.getUnderline() == lastAttr.getUnderline()) - && (lCell.getBlink() == lastAttr.getBlink()) + && (lCell.isBold() == lastAttr.isBold()) + && (lCell.isReverse() == lastAttr.isReverse()) + && (lCell.isUnderline() == lastAttr.isUnderline()) + && (lCell.isBlink() == lastAttr.isBlink()) ) { // Both colors changed, attributes the same sb.append(terminal.color(lCell.getForeColor(), @@ -146,27 +145,27 @@ public class ECMA48Screen extends Screen { } } else if ((lCell.getForeColor() != lastAttr.getForeColor()) && (lCell.getBackColor() != lastAttr.getBackColor()) - && (lCell.getBold() != lastAttr.getBold()) - && (lCell.getReverse() != lastAttr.getReverse()) - && (lCell.getUnderline() != lastAttr.getUnderline()) - && (lCell.getBlink() != lastAttr.getBlink()) + && (lCell.isBold() != lastAttr.isBold()) + && (lCell.isReverse() != lastAttr.isReverse()) + && (lCell.isUnderline() != lastAttr.isUnderline()) + && (lCell.isBlink() != lastAttr.isBlink()) ) { // Everything is different sb.append(terminal.color(lCell.getForeColor(), lCell.getBackColor(), - lCell.getBold(), lCell.getReverse(), - lCell.getBlink(), - lCell.getUnderline())); + lCell.isBold(), lCell.isReverse(), + lCell.isBlink(), + lCell.isUnderline())); if (debugToStderr) { System.err.printf("2 Set all attributes\n"); } } else if ((lCell.getForeColor() != lastAttr.getForeColor()) && (lCell.getBackColor() == lastAttr.getBackColor()) - && (lCell.getBold() == lastAttr.getBold()) - && (lCell.getReverse() == lastAttr.getReverse()) - && (lCell.getUnderline() == lastAttr.getUnderline()) - && (lCell.getBlink() == lastAttr.getBlink()) + && (lCell.isBold() == lastAttr.isBold()) + && (lCell.isReverse() == lastAttr.isReverse()) + && (lCell.isUnderline() == lastAttr.isUnderline()) + && (lCell.isBlink() == lastAttr.isBlink()) ) { // Attributes same, foreColor different @@ -177,10 +176,10 @@ public class ECMA48Screen extends Screen { } } else if ((lCell.getForeColor() == lastAttr.getForeColor()) && (lCell.getBackColor() != lastAttr.getBackColor()) - && (lCell.getBold() == lastAttr.getBold()) - && (lCell.getReverse() == lastAttr.getReverse()) - && (lCell.getUnderline() == lastAttr.getUnderline()) - && (lCell.getBlink() == lastAttr.getBlink()) + && (lCell.isBold() == lastAttr.isBold()) + && (lCell.isReverse() == lastAttr.isReverse()) + && (lCell.isUnderline() == lastAttr.isUnderline()) + && (lCell.isBlink() == lastAttr.isBlink()) ) { // Attributes same, backColor different sb.append(terminal.color(lCell.getBackColor(), false)); @@ -190,10 +189,10 @@ public class ECMA48Screen extends Screen { } } else if ((lCell.getForeColor() == lastAttr.getForeColor()) && (lCell.getBackColor() == lastAttr.getBackColor()) - && (lCell.getBold() == lastAttr.getBold()) - && (lCell.getReverse() == lastAttr.getReverse()) - && (lCell.getUnderline() == lastAttr.getUnderline()) - && (lCell.getBlink() == lastAttr.getBlink()) + && (lCell.isBold() == lastAttr.isBold()) + && (lCell.isReverse() == lastAttr.isReverse()) + && (lCell.isUnderline() == lastAttr.isUnderline()) + && (lCell.isBlink() == lastAttr.isBlink()) ) { // All attributes the same, just print the char @@ -206,10 +205,10 @@ public class ECMA48Screen extends Screen { // Just reset everything again sb.append(terminal.color(lCell.getForeColor(), lCell.getBackColor(), - lCell.getBold(), - lCell.getReverse(), - lCell.getBlink(), - lCell.getUnderline())); + lCell.isBold(), + lCell.isReverse(), + lCell.isBlink(), + lCell.isUnderline())); if (debugToStderr) { System.err.printf("6 Change all attributes\n"); @@ -222,10 +221,10 @@ public class ECMA48Screen extends Screen { lastX = x; lastAttr.setTo(lCell); - // Physical is always updatesd + // Physical is always updated physical[x][y].setTo(lCell); - } // if ((lCell != pCell) || (reallyCleared == true)) + } // if (!lCell.equals(pCell) || (reallyCleared == true)) } // for (int x = 0; x < width; x++) } @@ -237,7 +236,7 @@ public class ECMA48Screen extends Screen { * @return escape sequences string that provides the updates to the * physical screen */ - public String flushString() { + private String flushString() { if (!dirty) { assert (!reallyCleared); return "";