001    /**
002     * Copyright (C) 2007-2008, Jens Lehmann
003     *
004     * This file is part of DL-Learner.
005     * 
006     * DL-Learner is free software; you can redistribute it and/or modify
007     * it under the terms of the GNU General Public License as published by
008     * the Free Software Foundation; either version 3 of the License, or
009     * (at your option) any later version.
010     *
011     * DL-Learner is distributed in the hope that it will be useful,
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014     * GNU General Public License for more details.
015     *
016     * You should have received a copy of the GNU General Public License
017     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
018     *
019     */
020    package org.dllearner.gui;
021    
022    import java.awt.*;
023    import javax.swing.*;
024    
025    /**
026     * @author Tilo Hielscher
027     * 
028     */
029    public class Bar extends JPanel {
030    
031            private static final long serialVersionUID = 8084274242520881523L;
032            private int height;
033            private int width;
034            private double factor;
035    
036            @Override
037            public void paint(Graphics g) {
038                    super.paintComponent(g);
039                    super.setSize(this.width, this.height);
040                    g.fillRect(0, 0, (int) (this.width * this.factor), this.height);
041            }
042    
043            /**
044             * Make a horizontal bar.
045             * 
046             * @param width
047             *            in pixel
048             * @param height
049             *            in pixel
050             * @param factor
051             *            should between 0 and 1 (1 for 100%)
052             */
053            public Bar(int width, int height, double factor) {
054                    this.width = width;
055                    this.height = height;
056                    this.factor = factor;
057                    repaint();
058            }
059    
060            /**
061             * Update horizontal bar.
062             * 
063             * @param newFactor
064             *            should between 0 and 1 (1 for 100%)
065             */
066            public void update(double newFactor) {
067                    this.factor = newFactor;
068                    repaint();
069            }
070    }