EMMA Coverage Report (generated Tue May 18 22:20:04 CDT 2004)
[all classes][default package]

COVERAGE SUMMARY FOR SOURCE FILE [ProgressBarDemo.java]

nameclass, %method, %block, %line, %
ProgressBarDemo.java100% (6/6)83%  (15/18)90%  (310/344)85%  (58/68)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ProgressBarDemo$4100% (1/1)100% (2/2)70%  (51/73)55%  (6/11)
actionPerformed (ActionEvent): void 100% (1/1)67%  (44/66)50%  (5/10)
ProgressBarDemo$4 (ProgressBarDemo, String): void 100% (1/1)100% (7/7)100% (1/1)
     
class ProgressBarDemo$MyTextArea100% (1/1)33%  (1/3)79%  (15/19)71%  (5/7)
getAlignmentX (): float 0%   (0/1)0%   (0/2)0%   (0/1)
getAlignmentY (): float 0%   (0/1)0%   (0/2)0%   (0/1)
ProgressBarDemo$MyTextArea (ProgressBarDemo): void 100% (1/1)100% (15/15)100% (5/5)
     
class ProgressBarDemo100% (1/1)86%  (6/7)95%  (161/169)91%  (31/34)
main (String []): void 0%   (0/1)0%   (0/8)0%   (0/3)
ProgressBarDemo (SwingSet2): void 100% (1/1)100% (16/16)100% (5/5)
createButton (Action): JButton 100% (1/1)100% (13/13)100% (4/4)
createLoadButton (): JButton 100% (1/1)100% (14/14)100% (2/2)
createProgressPanel (): void 100% (1/1)100% (98/98)100% (17/17)
createStopButton (): JButton 100% (1/1)100% (14/14)100% (2/2)
createTextLoadAction (): Action 100% (1/1)100% (6/6)100% (1/1)
     
class ProgressBarDemo$1100% (1/1)100% (2/2)100% (17/17)100% (2/2)
ProgressBarDemo$1 (ProgressBarDemo, int, int, int): void 100% (1/1)100% (9/9)100% (1/1)
getPreferredSize (): Dimension 100% (1/1)100% (8/8)100% (1/1)
     
class ProgressBarDemo$2100% (1/1)100% (2/2)100% (36/36)100% (7/7)
ProgressBarDemo$2 (ProgressBarDemo, String): void 100% (1/1)100% (7/7)100% (1/1)
actionPerformed (ActionEvent): void 100% (1/1)100% (29/29)100% (6/6)
     
class ProgressBarDemo$3100% (1/1)100% (2/2)100% (30/30)100% (7/7)
ProgressBarDemo$3 (ProgressBarDemo, String): void 100% (1/1)100% (7/7)100% (1/1)
actionPerformed (ActionEvent): void 100% (1/1)100% (23/23)100% (6/6)

1/*
2 * Copyright (c) 2003 Sun Microsystems, Inc. All  Rights Reserved.
3 * 
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 
8 * -Redistributions of source code must retain the above copyright
9 *  notice, this list of conditions and the following disclaimer.
10 * 
11 * -Redistribution in binary form must reproduct the above copyright
12 *  notice, this list of conditions and the following disclaimer in
13 *  the documentation and/or other materials provided with the distribution.
14 * 
15 * Neither the name of Sun Microsystems, Inc. or the names of contributors
16 * may be used to endorse or promote products derived from this software
17 * without specific prior written permission.
18 * 
19 * This software is provided "AS IS," without a warranty of any kind. ALL
20 * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
21 * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
22 * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT
23 * BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT
24 * OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS
25 * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
26 * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
27 * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY
28 * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN
29 * IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
30 * 
31 * You acknowledge that Software is not designed, licensed or intended for
32 * use in the design, construction, operation or maintenance of any nuclear
33 * facility.
34 */
35 
36/*
37 * @(#)ProgressBarDemo.java        1.7 03/01/23
38 */
39 
40 
41import javax.swing.*;
42import javax.swing.event.*;
43import javax.swing.text.*;
44import javax.swing.border.*;
45import javax.swing.colorchooser.*;
46import javax.swing.filechooser.*;
47import javax.accessibility.*;
48 
49import java.awt.*;
50import java.awt.event.*;
51import java.beans.*;
52import java.util.*;
53import java.io.*;
54import java.applet.*;
55import java.net.*;
56 
57/**
58 * JProgressBar Demo
59 *
60 * @version 1.7 01/23/03
61 * @author Jeff Dinkins
62 # @author Peter Korn (accessibility support)
63 */
64public class ProgressBarDemo extends DemoModule {
65 
66    /**
67     * main method allows us to run as a standalone demo.
68     */
69    public static void main(String[] args) {
70        ProgressBarDemo demo = new ProgressBarDemo(null);
71        demo.mainImpl();
72    }
73 
74    /**
75     * ProgressBarDemo Constructor
76     */
77    public ProgressBarDemo(SwingSet2 swingset) {
78        // Set the title for this demo, and an icon used to represent this
79        // demo inside the SwingSet2 app.
80        super(swingset, "ProgressBarDemo", "toolbar/JProgressBar.gif");
81 
82        createProgressPanel();
83    }
84 
85    javax.swing.Timer timer;
86    Action loadAction;
87    Action stopAction;
88    JProgressBar progressBar;
89    JTextArea progressTextArea;
90    
91    public void createProgressPanel() {
92        getDemoPanel().setLayout(new BorderLayout());
93 
94        JPanel textWrapper = new JPanel(new BorderLayout());
95        textWrapper.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
96        textWrapper.setAlignmentX(LEFT_ALIGNMENT);
97        progressTextArea = new MyTextArea();
98        progressTextArea.getAccessibleContext().setAccessibleName(getString("ProgressBarDemo.accessible_text_area_name"));
99        progressTextArea.getAccessibleContext().setAccessibleName(getString("ProgressBarDemo.accessible_text_area_description"));
100        textWrapper.add(new JScrollPane(progressTextArea), BorderLayout.CENTER);
101 
102        getDemoPanel().add(textWrapper, BorderLayout.CENTER);
103 
104        JPanel progressPanel = new JPanel();
105        getDemoPanel().add(progressPanel, BorderLayout.SOUTH);
106 
107        progressBar = new JProgressBar(JProgressBar.HORIZONTAL, 0, text.length()) {
108            public Dimension getPreferredSize() {
109                return new Dimension(300, super.getPreferredSize().height);
110            }
111        };
112        progressBar.getAccessibleContext().setAccessibleName(getString("ProgressBarDemo.accessible_text_loading_progress"));
113 
114        progressPanel.add(progressBar);
115        progressPanel.add(createLoadButton());
116        progressPanel.add(createStopButton());
117    }
118 
119    public JButton createLoadButton() {
120        loadAction = new AbstractAction(getString("ProgressBarDemo.start_button")) {
121            public void actionPerformed(ActionEvent e) {
122                if(timer == null) {
123                    loadAction.setEnabled(false);
124                    stopAction.setEnabled(true);
125                    timer = new javax.swing.Timer(18, createTextLoadAction());
126                    timer.start();
127                }
128            }
129        };
130        return createButton(loadAction);
131    }
132 
133    public JButton createStopButton() {
134        stopAction = new AbstractAction(getString("ProgressBarDemo.stop_button")) {
135            public void actionPerformed(ActionEvent e) {
136                if(timer != null) {
137                    timer.stop();
138                    timer = null;
139                }
140                loadAction.setEnabled(true);
141                stopAction.setEnabled(false);
142            }
143        };
144        return createButton(stopAction);
145    }
146 
147    public JButton createButton(Action a) {
148        JButton b = new JButton();
149        // setting the following client property informs the button to show
150        // the action text as it's name. The default is to not show the
151        // action text.
152        b.putClientProperty("displayActionText", Boolean.TRUE);
153        b.setAction(a);
154        return b;
155    }
156 
157 
158    int textLocation = 0;
159 
160    String text = getString("ProgressBarDemo.text");
161 
162    public Action createTextLoadAction() {
163        return new AbstractAction("text load action") {
164            public void actionPerformed (ActionEvent e) {
165                if(progressBar.getValue() < progressBar.getMaximum()) {
166                    progressBar.setValue(progressBar.getValue() + 1);
167                    progressTextArea.append(text.substring(textLocation, textLocation+1));
168                    textLocation++;
169                } else {
170                    if(timer != null) {
171                        timer.stop();
172                        timer = null;
173                        loadAction.setEnabled(true);
174                        stopAction.setEnabled(false);
175                    }
176                }
177            }
178        };
179    }
180 
181 
182    class MyTextArea extends JTextArea {
183        public MyTextArea() {
184            super(null, 0, 0);
185            setEditable(false);
186            setText("");
187        }
188 
189        public float getAlignmentX () {
190            return LEFT_ALIGNMENT;
191        }
192 
193        public float getAlignmentY () {
194            return TOP_ALIGNMENT;
195        }
196    }
197}
198 
199 

[all classes][default package]
EMMA 2.0.4015 (stable) (C) Vladimir Roubtsov