X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=jexer%2FTProgressBar.java;h=51a8853251efb0949eee46297a14e7d8d809035a;hb=HEAD;hp=38f03373b7c8d5d08f323f0e56fa34bac1516048;hpb=36b0745bab5665306391440a531e1ee1c0625445;p=nikiroo-utils.git diff --git a/jexer/TProgressBar.java b/jexer/TProgressBar.java deleted file mode 100644 index 38f0337..0000000 --- a/jexer/TProgressBar.java +++ /dev/null @@ -1,294 +0,0 @@ -/* - * Jexer - Java Text User Interface - * - * The MIT License (MIT) - * - * Copyright (C) 2019 Kevin Lamonte - * - * 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: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 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 - */ -package jexer; - -import jexer.bits.CellAttributes; -import jexer.bits.GraphicsChars; -import jexer.bits.StringUtils; - -/** - * TProgressBar implements a simple progress bar. - */ -public class TProgressBar extends TWidget { - - // ------------------------------------------------------------------------ - // Variables -------------------------------------------------------------- - // ------------------------------------------------------------------------ - - /** - * Value that corresponds to 0% progress. - */ - private int minValue = 0; - - /** - * Value that corresponds to 100% progress. - */ - private int maxValue = 100; - - /** - * Current value of the progress. - */ - private int value = 0; - - /** - * The left border character. - */ - private int leftBorderChar = GraphicsChars.CP437[0xC3]; - - /** - * The filled-in part of the bar. - */ - private int completedChar = GraphicsChars.BOX; - - /** - * The remaining to be filled in part of the bar. - */ - private int remainingChar = GraphicsChars.SINGLE_BAR; - - /** - * The right border character. - */ - private int rightBorderChar = GraphicsChars.CP437[0xB4]; - - // ------------------------------------------------------------------------ - // Constructors ----------------------------------------------------------- - // ------------------------------------------------------------------------ - - /** - * Public constructor. - * - * @param parent parent widget - * @param x column relative to parent - * @param y row relative to parent - * @param width width of progress bar - * @param value initial value of percent complete - */ - public TProgressBar(final TWidget parent, final int x, final int y, - final int width, final int value) { - - // Set parent and window - super(parent, false, x, y, width, 1); - - this.value = value; - } - - // ------------------------------------------------------------------------ - // Event handlers --------------------------------------------------------- - // ------------------------------------------------------------------------ - - - // ------------------------------------------------------------------------ - // TWidget ---------------------------------------------------------------- - // ------------------------------------------------------------------------ - - /** - * Override TWidget's height: we can only set height at construction - * time. - * - * @param height new widget height (ignored) - */ - @Override - public void setHeight(final int height) { - // Do nothing - } - - /** - * Draw a static progress bar. - */ - @Override - public void draw() { - - if (getWidth() <= 2) { - // Bail out, we are too narrow to draw anything. - return; - } - - CellAttributes completeColor = getTheme().getColor("tprogressbar.complete"); - CellAttributes incompleteColor = getTheme().getColor("tprogressbar.incomplete"); - - float progress = ((float)value - minValue) / ((float)maxValue - minValue); - int progressInt = (int)(progress * 100); - int progressUnit = 100 / (getWidth() - 2); - - putCharXY(0, 0, leftBorderChar, incompleteColor); - for (int i = StringUtils.width(leftBorderChar); i < getWidth() - 2;) { - float iProgress = (float)i / (getWidth() - 2); - int iProgressInt = (int)(iProgress * 100); - if (iProgressInt <= progressInt - progressUnit) { - putCharXY(i, 0, completedChar, completeColor); - i += StringUtils.width(completedChar); - } else { - putCharXY(i, 0, remainingChar, incompleteColor); - i += StringUtils.width(remainingChar); - } - } - if (value >= maxValue) { - putCharXY(getWidth() - StringUtils.width(leftBorderChar) - - StringUtils.width(rightBorderChar), 0, completedChar, - completeColor); - } else { - putCharXY(getWidth() - StringUtils.width(leftBorderChar) - - StringUtils.width(rightBorderChar), 0, remainingChar, - incompleteColor); - } - putCharXY(getWidth() - StringUtils.width(rightBorderChar), 0, - rightBorderChar, incompleteColor); - } - - // ------------------------------------------------------------------------ - // TProgressBar ----------------------------------------------------------- - // ------------------------------------------------------------------------ - - /** - * Get the value that corresponds to 0% progress. - * - * @return the value that corresponds to 0% progress - */ - public int getMinValue() { - return minValue; - } - - /** - * Set the value that corresponds to 0% progress. - * - * @param minValue the value that corresponds to 0% progress - */ - public void setMinValue(final int minValue) { - this.minValue = minValue; - } - - /** - * Get the value that corresponds to 100% progress. - * - * @return the value that corresponds to 100% progress - */ - public int getMaxValue() { - return maxValue; - } - - /** - * Set the value that corresponds to 100% progress. - * - * @param maxValue the value that corresponds to 100% progress - */ - public void setMaxValue(final int maxValue) { - this.maxValue = maxValue; - } - - /** - * Get the current value of the progress. - * - * @return the current value of the progress - */ - public int getValue() { - return value; - } - - /** - * Set the current value of the progress. - * - * @param value the current value of the progress - */ - public void setValue(final int value) { - this.value = value; - } - - /** - * Set the left border character. - * - * @param ch the char to use - */ - public void setLeftBorderChar(final int ch) { - leftBorderChar = ch; - } - - /** - * Get the left border character. - * - * @return the char - */ - public int getLeftBorderChar() { - return leftBorderChar; - } - - /** - * Set the filled-in part of the bar. - * - * @param ch the char to use - */ - public void setCompletedChar(final int ch) { - completedChar = ch; - } - - /** - * Get the filled-in part of the bar. - * - * @return the char - */ - public int getCompletedChar() { - return completedChar; - } - - /** - * Set the remaining to be filled in part of the bar. - * - * @param ch the char to use - */ - public void setRemainingChar(final int ch) { - remainingChar = ch; - } - - /** - * Get the remaining to be filled in part of the bar. - * - * @return the char - */ - public int getRemainingChar() { - return remainingChar; - } - - /** - * Set the right border character. - * - * @param ch the char to use - */ - public void setRightBorderChar(final int ch) { - rightBorderChar = ch; - } - - /** - * Get the right border character. - * - * @return the char - */ - public int getRightBorderChar() { - return rightBorderChar; - } - -}