1 package com.nexuiz.demorecorder.ui.swinggui;
\r
3 import java.awt.BorderLayout;
\r
4 import java.awt.Color;
\r
5 import java.awt.Component;
\r
6 import java.awt.Graphics;
\r
7 import java.awt.SystemColor;
\r
9 import javax.swing.BorderFactory;
\r
10 import javax.swing.Icon;
\r
11 import javax.swing.JLabel;
\r
12 import javax.swing.JPanel;
\r
14 public class StatusBar extends JPanel {
\r
16 private static final long serialVersionUID = -1471757496863555741L;
\r
17 private JLabel currentActivity = null;
\r
19 private static final String STATE_IDLE = "Idle";
\r
20 private static final String STATE_WORKING = "Working";
\r
22 public StatusBar() {
\r
23 BorderLayout borderLayout = new BorderLayout(0, 0);
\r
24 setLayout(borderLayout);
\r
25 JPanel rightPanel = new JPanel(new BorderLayout());
\r
26 rightPanel.add(new JLabel(new AngledLinesWindowsCornerIcon()), BorderLayout.SOUTH);
\r
27 rightPanel.setOpaque(false);
\r
29 add(rightPanel, BorderLayout.EAST);
\r
31 this.currentActivity = new JLabel("Idle");
\r
32 add(this.currentActivity, BorderLayout.WEST);
\r
33 setBackground(SystemColor.control);
\r
34 setBorder(BorderFactory.createMatteBorder(1, 0, 0, 0, Color.black));
\r
38 * Sets the state/display of the status bar to "idle" (false) or "working" (true).
\r
41 public void showState(boolean state) {
\r
43 currentActivity.setText(STATE_WORKING);
\r
45 currentActivity.setText(STATE_IDLE);
\r
49 private static class AngledLinesWindowsCornerIcon implements Icon {
\r
50 private static final Color WHITE_LINE_COLOR = new Color(255, 255, 255);
\r
52 private static final Color GRAY_LINE_COLOR = new Color(172, 168, 153);
\r
53 private static final int WIDTH = 13;
\r
55 private static final int HEIGHT = 13;
\r
57 public int getIconHeight() {
\r
61 public int getIconWidth() {
\r
65 public void paintIcon(Component c, Graphics g, int x, int y) {
\r
67 g.setColor(WHITE_LINE_COLOR);
\r
68 g.drawLine(0, 12, 12, 0);
\r
69 g.drawLine(5, 12, 12, 5);
\r
70 g.drawLine(10, 12, 12, 10);
\r
72 g.setColor(GRAY_LINE_COLOR);
\r
73 g.drawLine(1, 12, 12, 1);
\r
74 g.drawLine(2, 12, 12, 2);
\r
75 g.drawLine(3, 12, 12, 3);
\r
77 g.drawLine(6, 12, 12, 6);
\r
78 g.drawLine(7, 12, 12, 7);
\r
79 g.drawLine(8, 12, 12, 8);
\r
81 g.drawLine(11, 12, 12, 11);
\r
82 g.drawLine(12, 12, 12, 12);
\r