package org.jacorb.poa.gui.beans; /* * JacORB - a free Java ORB * * Copyright (C) 1997-2014 Gerald Brose / The JacORB Team. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /** * Provides the functionality of a fill level statebar. * * @author Reimo Tiedemann, FU Berlin * @version 1.0, 05/03/99 * @see org.jacorb.poa.gui.beans.FillLevelCanvas */ public class FillLevelBar extends java.awt.Panel { private boolean useAvg; private boolean isVariable; private int max; private int avg; private int min; private int cur; private java.awt.Label ivjAvgLabel = null; private java.awt.Label ivjCurLabel = null; private java.awt.Label ivjMaxLabel = null; private java.awt.Label ivjMinLabel = null; private FillLevelCanvas ivjFillLevelCanvas = null; /** * Constructor */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ public FillLevelBar() { super(); initialize(); } /** * FillLevelBar constructor comment. * @param layout java.awt.LayoutManager */ public FillLevelBar(java.awt.LayoutManager layout) { super(layout); } /** * Return the Label22 property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private java.awt.Label getAvgLabel() { if (ivjAvgLabel == null) { try { ivjAvgLabel = new java.awt.Label(); ivjAvgLabel.setName("AvgLabel"); ivjAvgLabel.setText(""); ivjAvgLabel.setBackground(java.awt.SystemColor.control); ivjAvgLabel.setFont(new java.awt.Font("dialog", 0, 10)); ivjAvgLabel.setBounds(23, 54, 25, 10); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjAvgLabel; } /** * Return the Label1 property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private java.awt.Label getCurLabel() { if (ivjCurLabel == null) { try { ivjCurLabel = new java.awt.Label(); ivjCurLabel.setName("CurLabel"); ivjCurLabel.setText(""); ivjCurLabel.setBackground(java.awt.SystemColor.control); ivjCurLabel.setFont(new java.awt.Font("dialog", 0, 10)); ivjCurLabel.setAlignment(1); ivjCurLabel.setBounds(0, 115, 25, 12); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjCurLabel; } /** * Return the FillLevelCanvas property value. * @return org.jacorb.poa.gui.beans.FillLevelCanvas */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private FillLevelCanvas getFillLevelCanvas() { if (ivjFillLevelCanvas == null) { try { ivjFillLevelCanvas = new org.jacorb.poa.gui.beans.FillLevelCanvas(); ivjFillLevelCanvas.setName("FillLevelCanvas"); ivjFillLevelCanvas.setBounds(5, 10, 15, 100); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjFillLevelCanvas; } /** * Return the Label21 property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private java.awt.Label getMaxLabel() { if (ivjMaxLabel == null) { try { ivjMaxLabel = new java.awt.Label(); ivjMaxLabel.setName("MaxLabel"); ivjMaxLabel.setText(""); ivjMaxLabel.setBackground(java.awt.SystemColor.control); ivjMaxLabel.setFont(new java.awt.Font("dialog", 0, 10)); ivjMaxLabel.setBounds(23, 7, 25, 10); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjMaxLabel; } /** * Return the Label2 property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private java.awt.Label getMinLabel() { if (ivjMinLabel == null) { try { ivjMinLabel = new java.awt.Label(); ivjMinLabel.setName("MinLabel"); ivjMinLabel.setText(""); ivjMinLabel.setBackground(java.awt.SystemColor.control); ivjMinLabel.setFont(new java.awt.Font("dialog", 0, 10)); ivjMinLabel.setBounds(23, 104, 25, 10); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjMinLabel; } /** * Called whenever the part throws an exception. * @param exception java.lang.Throwable */ private void handleException(Throwable exception) { /* Uncomment the following lines to print uncaught exceptions to stdout */ // System.out.println("--------- UNCAUGHT EXCEPTION ---------"); // exception.printStackTrace(System.out); } public void init(int _min, int _avg, int _max, java.awt.Color _color1, java.awt.Color _color2, boolean _useAvg, boolean _isVariable) { min = _min; avg = _avg; max = _max; useAvg = _useAvg; getFillLevelCanvas().init(min, avg, max, _color1, _color2, useAvg); isVariable = _isVariable; if (useAvg) { getAvgLabel().setText(""+_avg); getAvgLabel().setLocation(23, getFillLevelCanvas().getYAvg()+6); } getMaxLabel().setText(""+_max); getMinLabel().setText(""+_min); getCurLabel().setText(""+_min); } /** * Initialize the class. */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private void initialize() { // user code begin {1} // user code end setName("FillLevelBar"); setLayout(null); setBackground(java.awt.SystemColor.control); setSize(50, 130); add(getCurLabel(), getCurLabel().getName()); add(getMinLabel(), getMinLabel().getName()); add(getMaxLabel(), getMaxLabel().getName()); add(getAvgLabel(), getAvgLabel().getName()); add(getFillLevelCanvas(), getFillLevelCanvas().getName()); // user code begin {2} // user code end } /** * main entrypoint - starts the part when it is run as an application * @param args java.lang.String[] */ public static void main(java.lang.String[] args) { try { java.awt.Frame frame; try { Class aFrameClass = Class.forName("com.ibm.uvm.abt.edit.TestFrame"); frame = (java.awt.Frame)aFrameClass.newInstance(); } catch (java.lang.Throwable ivjExc) { frame = new java.awt.Frame(); } FillLevelBar aFillLevelBar; aFillLevelBar = new FillLevelBar(); frame.add("Center", aFillLevelBar); frame.setSize(aFillLevelBar.getSize()); frame.setVisible(true); } catch (Throwable exception) { System.err.println("Exception occurred in main() of java.awt.Panel"); exception.printStackTrace(System.out); } } private int maxCompute(int current) { int tenPerCent = max/10; if (current < tenPerCent) { while (max > current*2 && max > 10) { max = max/2 > 10 ? max/2 : 10; } } else if (current > max-tenPerCent) { while (max < current+tenPerCent) { max = max*2; } } return max; } public void paint(java.awt.Graphics g) { g.setColor(getBackground()); g.fill3DRect(3, 8, 19, 104, false); } public void setAvgValue(int value) { if (avg == value) return; avg = value; if (useAvg) { getFillLevelCanvas().setAvg(avg); getAvgLabel().setLocation(23, getFillLevelCanvas().getYAvg()+6); getAvgLabel().setText(""+avg); } } public void setCurrentValue(int value) { if (cur == value) return; cur = value; if (isVariable) { if (max != maxCompute(cur)) { getFillLevelCanvas().setMax(max); getMaxLabel().setText(""+max); } } getFillLevelCanvas().setCurrent(cur > min ? cur-min : 0); getCurLabel().setText(""+cur); } public void setMaxValue(int value) { if (max == value) return; max = value; getFillLevelCanvas().setMax(max); if (useAvg) { getAvgLabel().setLocation(23, getFillLevelCanvas().getYAvg()+6); } getMaxLabel().setText(""+max); } public void setMinValue(int value) { if (min == value) return; min = value; getFillLevelCanvas().setMin(min); if (useAvg) { getAvgLabel().setLocation(23, getFillLevelCanvas().getYAvg()+6); } getFillLevelCanvas().setCurrent(cur > min ? cur-min : 0); getMinLabel().setText(""+min); } }