5cffa453048a5571bffb62b8ae0b6dd95a99ca1a
[pithos-web-client] / src / gr / grnet / pithos / web / client / UploadAlert.java
1 /*
2  * Copyright 2011-2012 GRNET S.A. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or
5  * without modification, are permitted provided that the following
6  * conditions are met:
7  *
8  *   1. Redistributions of source code must retain the above
9  *      copyright notice, this list of conditions and the following
10  *      disclaimer.
11  *
12  *   2. Redistributions in binary form must reproduce the above
13  *      copyright notice, this list of conditions and the following
14  *      disclaimer in the documentation and/or other materials
15  *      provided with the distribution.
16  *
17  * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
18  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
21  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  *
30  * The views and conclusions contained in the software and
31  * documentation are those of the authors and should not be
32  * interpreted as representing official policies, either expressed
33  * or implied, of GRNET S.A.
34  */
35 package gr.grnet.pithos.web.client;
36
37 import com.google.gwt.event.dom.client.ClickEvent;
38 import com.google.gwt.event.dom.client.ClickHandler;
39 import com.google.gwt.user.client.ui.Anchor;
40 import com.google.gwt.user.client.ui.FlowPanel;
41 import com.google.gwt.user.client.ui.HTML;
42 import com.google.gwt.user.client.ui.Image;
43 import com.google.gwt.user.client.ui.PopupPanel;
44
45 /**
46  * The 'Folder Context' menu implementation.
47  */
48 public class UploadAlert extends PopupPanel {
49         
50         /**
51          * The widget's constructor.
52          */
53         public UploadAlert(final Pithos app, int numOfFiles) {
54                 // The popup's constructor's argument is a boolean specifying that it
55                 // auto-close itself when the user clicks outside of it.
56                 super(false);
57                 setAnimationEnabled(true);
58                 addStyleName(Pithos.resources.pithosCss().uploadAlert());
59                 FlowPanel content = new FlowPanel();
60                 String label = String.valueOf(numOfFiles) + " " + (numOfFiles > 1 ? "files are" : "file is") + " being uploaded";
61                 content.add(new HTML(label));
62                 Anchor a = new Anchor("Click for details");
63                 a.addStyleName(Pithos.resources.pithosCss().uploadAlertLink());
64                 a.addClickHandler(new ClickHandler() {
65                         
66                         @Override
67                         public void onClick(ClickEvent event) {
68                         app.getFileUploadDialog().center();
69                         }
70                 });
71                 content.add(a);
72                 Image close = new Image(Pithos.resources.closePopup());
73                 close.addClickHandler(new ClickHandler() {
74                         
75                         @Override
76                         public void onClick(ClickEvent event) {
77                                 hide();
78                         }
79                 });
80                 close.addStyleName(Pithos.resources.pithosCss().uploadAlertClose());
81                 content.add(close);
82                 add(content);
83         }
84 }