Package de.tuhrig.thofu.gui

Source Code of de.tuhrig.thofu.gui.Running

package de.tuhrig.thofu.gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JPanel;

import org.jdesktop.swingx.JXBusyLabel;

/**
* Swing Hacks Tips and Tools for Killer GUIs
* By Joshua Marinacci, Chris Adamson
* First Edition June 2005 
* Series: Hacks
* ISBN: 0-596-00907-0
* Pages: 542
* website: http://www.oreilly.com/catalog/swinghks/
*
* @author Thomas Uhrig (tuhrig.de)
*/
public class Running extends JPanel {

  private static final long serialVersionUID = 1L;
 
  private JXBusyLabel label;

  public Running() {

    setLayout(new BorderLayout());
    setPreferredSize(new Dimension(10, 25));
   
    JPanel resize = new JPanel(new BorderLayout());
    resize.add(new JLabel(new AngledLinesWindowsCornerIcon()), BorderLayout.SOUTH);
    resize.setOpaque(false);

    label = new JXBusyLabel(new Dimension(20, 20));
        label.setName("busy");
        label.getBusyPainter().setHighlightColor(new Color(44, 61, 146).darker());
        label.getBusyPainter().setBaseColor(new Color(168, 204, 241).brighter());

        add(resize, BorderLayout.EAST);
        add(label, BorderLayout.CENTER);
       
        stop();
  }

  /**
   * Starts the busy-animation
   */
  public void start() {
   
        label.setBusy(true);
        label.setText("Running");
  }
 
  /**
   * Stops the busy-animation
   */
  public void stop() {
   
        label.setBusy(false);
        label.setText("Ready");
  }
 
  protected void paintComponent(Graphics g) {

    super.paintComponent(g);

    int y = 0;
    g.setColor(new Color(156, 154, 140));
    g.drawLine(0, y, getWidth(), y);
    y++;
    g.setColor(new Color(196, 194, 183));
    g.drawLine(0, y, getWidth(), y);
    y++;
    g.setColor(new Color(218, 215, 201));
    g.drawLine(0, y, getWidth(), y);
    y++;
    g.setColor(new Color(233, 231, 217));
    g.drawLine(0, y, getWidth(), y);

    y = getHeight() - 3;
    g.setColor(new Color(233, 232, 218));
    g.drawLine(0, y, getWidth(), y);
    y++;
    g.setColor(new Color(233, 231, 216));
    g.drawLine(0, y, getWidth(), y);
    y = getHeight() - 1;
    g.setColor(new Color(221, 221, 220));
    g.drawLine(0, y, getWidth(), y);

  }

  static class AngledLinesWindowsCornerIcon implements Icon {

    static Color WHITE_LINE_COLOR = new Color(255, 255, 255);

    static Color GRAY_LINE_COLOR = new Color(172, 168, 153);

    private static final int WIDTH = 13;

    private static final int HEIGHT = 13;

    public int getIconHeight() {

      return WIDTH;
    }

    public int getIconWidth() {

      return HEIGHT;
    }

    public void paintIcon(Component c, Graphics g, int x, int y) {

      g.setColor(WHITE_LINE_COLOR);
      g.drawLine(0, 12, 12, 0);
      g.drawLine(5, 12, 12, 5);
      g.drawLine(10, 12, 12, 10);

      g.setColor(GRAY_LINE_COLOR);
      g.drawLine(1, 12, 12, 1);
      g.drawLine(2, 12, 12, 2);
      g.drawLine(3, 12, 12, 3);

      g.drawLine(6, 12, 12, 6);
      g.drawLine(7, 12, 12, 7);
      g.drawLine(8, 12, 12, 8);

      g.drawLine(11, 12, 12, 11);
      g.drawLine(12, 12, 12, 12);
    }
  }
}
TOP

Related Classes of de.tuhrig.thofu.gui.Running

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.