From 8849a5f9cdea4c5cabc2216b38f35274375b4c05 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 8 Feb 2013 15:17:48 +0100 Subject: Added bouncy bar to the status pane to make people feel better when the system is busy. --- .../java/com/c2kernel/gui/ProgressReporter.java | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/main/java/com/c2kernel/gui/ProgressReporter.java (limited to 'src/main/java/com/c2kernel/gui/ProgressReporter.java') diff --git a/src/main/java/com/c2kernel/gui/ProgressReporter.java b/src/main/java/com/c2kernel/gui/ProgressReporter.java new file mode 100644 index 0000000..9cfb1d7 --- /dev/null +++ b/src/main/java/com/c2kernel/gui/ProgressReporter.java @@ -0,0 +1,72 @@ +/* + * ProgressReporter.java + * + * Copyright (c) 2013, The CRISTAL Consortium. All rights reserved. + * + * CRISTAL kernel 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. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see: + * http://www.gnu.org/licenses/ + */ + +package com.c2kernel.gui; + +import java.awt.Color; +import java.awt.Dimension; + +import javax.swing.Box; +import javax.swing.BoxLayout; +import javax.swing.JLabel; +import javax.swing.JProgressBar; + +public class ProgressReporter extends Box { + + JLabel status = new JLabel(); + JProgressBar progress = new JProgressBar(); + + /** + * + */ + public ProgressReporter() { + super(BoxLayout.X_AXIS); + status.setText("Cristal"); + //status.setBorder(BorderFactory.createLoweredBevelBorder()); + status.setForeground(Color.black); + status.setPreferredSize(new Dimension(400, progress.getPreferredSize().height)); + //progress.setBorder(BorderFactory.createLoweredBevelBorder()); + add(status); + //add(Box.createHorizontalGlue()); + progress.setPreferredSize(new Dimension(200, progress.getPreferredSize().height)); + add(progress); + } + + /** + * @param status + */ + public void startBouncing(String statusString) { + status.setText(statusString); + progress.setIndeterminate(true); + } + + /** + * @param status + */ + public void stopBouncing(String statusString) { + status.setText(statusString); + progress.setIndeterminate(false); + } + + public void setProgress(String statusString, int percent) { + progress.setIndeterminate(false); + progress.setValue(percent); + } +} -- cgit v1.2.3