Statistics
| Branch: | Tag: | Revision:

root / src / org / gss_project / gss / web / client / LoadingIndicator.java @ 1206:292dec4eae08

History | View | Annotate | Download (2.6 kB)

1
/*
2
 * Copyright 2007, 2008, 2009, 2010 Electronic Business Systems Ltd.
3
 *
4
 * This file is part of GSS.
5
 *
6
 * GSS is free software: you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation, either version 3 of the License, or
9
 * (at your option) any later version.
10
 *
11
 * GSS is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with GSS.  If not, see <http://www.gnu.org/licenses/>.
18
 */
19
package org.gss_project.gss.web.client;
20

    
21
import com.google.gwt.resources.client.ClientBundle;
22
import com.google.gwt.resources.client.ImageResource;
23
import com.google.gwt.user.client.ui.AbstractImagePrototype;
24
import com.google.gwt.user.client.ui.Composite;
25
import com.google.gwt.user.client.ui.HTML;
26
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
27
import com.google.gwt.user.client.ui.VerticalPanel;
28

    
29
/**
30
 * The 'loading' indicator widget implementation.
31
 */
32
public class LoadingIndicator extends Composite {
33
        public static final String DEFAULT_MESSAGE="Please Wait";
34
        
35
        HTML messageLabel;
36
        /**
37
         * An image bundle for this widgets images.
38
         */
39
        public interface Images extends ClientBundle {
40
                @Source("org/gss_project/gss/resources/ajax-loader.gif")
41
                ImageResource loading();
42
        }
43

    
44
        /**
45
         * The widget's constructor that creates a spinning indicator image.
46
         */
47
        public LoadingIndicator(Images images) {
48
                VerticalPanel vp = new VerticalPanel();
49
                //vp.setHorizontalAlignment(HorizontalAlignmentConstant.CENTER);
50
                HTML inner = new HTML(AbstractImagePrototype.create(images.loading()).getHTML());
51
                vp.add(inner);
52
                vp.add(messageLabel = new HTML(DEFAULT_MESSAGE) );
53
                vp.setCellHorizontalAlignment(inner, HasHorizontalAlignment.ALIGN_CENTER);
54
                vp.setCellHorizontalAlignment(messageLabel, HasHorizontalAlignment.ALIGN_CENTER);
55
                initWidget(vp);
56
        }
57
        
58
        
59
        /**
60
         * Modify the message.
61
         *
62
         * @param message the message to set
63
         */
64
        public void setMessage(String message) {
65
                messageLabel.setHTML(message);
66
        }
67
        
68
        public void clearMessage(){
69
                setMessage(DEFAULT_MESSAGE);
70
        }
71
        
72
        public void show(String msg){
73
                if(msg==null)
74
                        setMessage(DEFAULT_MESSAGE);
75
                else
76
                        setMessage(msg);
77
                this.setVisible(true);
78
        }
79
        
80
        public void hide(){
81
                setMessage(DEFAULT_MESSAGE);
82
                this.setVisible(false);
83
        }
84
}