Subversion Repository Public Repository

litesoft

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package org.litesoft.sandbox.csapp.client.widgets;

import com.google.gwt.safehtml.shared.*;
import com.google.gwt.user.client.*;
import com.google.gwt.user.client.ui.*;

public class CertUploadWidget extends Composite implements IsWidget,
                                                           UploadWidget.Callback
{
    private static final String UP_IMAGE_URL = "common/uploadCert.png";
    private static final String UP_DISABLED_IMAGE_URL = "common/uploadCertDisabled.png";
    private static final String BUSY_IMAGE_URL = "common/Money.gif";

    private static final int SECONDS_TO_WAIT = 30;

    private static final String WAIT_MESSAGE = "Checking Certificate Validity,\nthis can take a while...\n${seconds}\nseconds until timeout.";

    private UploadWidget uploader;
    private HTML resultsDisplay = new HTML( " " );
    private ScrollPanel resultsContainer = new ScrollPanel();

    public CertUploadWidget()
    {
        PushButton button = new PushButton( new Image( UP_IMAGE_URL ) );
        button.getUpDisabledFace().setImage( new Image( UP_DISABLED_IMAGE_URL ) );
        uploader = new UploadWidget( button, SECONDS_TO_WAIT, this );
        resultsContainer.setWidget( resultsDisplay );
        resultsContainer.addStyleName( "CertUploadResults" );
        VerticalPanel panel = new VerticalPanel();
        panel.add( uploader );
        panel.add( resultsContainer );
        initWidget( panel );
    }

    public void setServletPath( String url )
    {
        uploader.setServletPath( url );
    }

    public void setEnabled( boolean enable )
    {
        uploader.setEnabled( enable );
    }

    public void setResultsWidth( String width )
    {
        resultsContainer.setWidth( width );
    }

    public void setResultsHeight( String height )
    {
        resultsContainer.setHeight( height );
    }

    protected void showBusy()
    {
        uploader.showBusy();
    }

    @Override
    public Image createBusyImage()
    {
        return new Image( BUSY_IMAGE_URL );
    }

    @Override
    public Widget createWaitingMessageWidget( Widget secondsRemaining )
    {
        VerticalPanel panel = new VerticalPanel();
        panel.setHorizontalAlignment( HasHorizontalAlignment.ALIGN_CENTER );
        String message = WAIT_MESSAGE;
        int from = 0;
        for ( int at; -1 != (at = message.indexOf( '\n', from )); from = at + 1 )
        {
            panel.add( createLabel( message.substring( from, at ), secondsRemaining ) );
        }
        panel.add( createLabel( message.substring( from ), secondsRemaining ) );
        return panel;
    }

    private Widget createLabel( String line, Widget secondsRemainingWidget )
    {
        return line.equals( "${seconds}" ) ? secondsRemainingWidget : new Label( line );
    }

    @Override
    public void timeout( String filename )
    {
        if ( (filename == null) || (filename.length() == 0) )
        {
            filename = "N/A";
        }
        Window.alert( "The Cert processing for\n" + filename + "\nhas Timed Out.\n\nIt may yet arrive..." );
    }

    @Override
    public void parseResponse( String fileName, String htmlResponse )
    {
        // Truly Bad Url:
        // null

        // No Servlet:
        // <h2>HTTP ERROR: 404</h2><pre>NOT_FOUND</pre>
        // <p>RequestURI=/v2/TestSubmit</p><p><i><small><a href="http://jetty.mortbay.org/">Powered by Jetty://</a></small></i></p><br>
        // <br>
        // <br>
        // <br>
        // ...

        System.out.println( "parseResponse:\n" + htmlResponse );
        resultsDisplay.setHTML( SafeHtmlUtils.htmlEscapeAllowEntities( "Got Response (" + htmlResponse.length() + " bytes)\nfor\n" + fileName ) );
    }
}

Commits for litesoft/trunk/GWT_Sandbox/Upload/src/org/litesoft/sandbox/csapp/client/widgets/CertUploadWidget.java

Diff revisions: vs.
Revision Author Commited Message
533 Diff Diff GeorgeS picture GeorgeS Fri 30 Sep, 2011 17:25:49 +0000
532 GeorgeS picture GeorgeS Thu 29 Sep, 2011 20:59:09 +0000