Martin,

Would you be kind enough to give an example?

I tried the following:

ajaxSimpleUploadForm.add(new AjaxButton("uploadVideoSubmit") {
            @Override
            protected void onSubmit(AjaxRequestTarget target, Form<?> form)
{

                AbstractResourceStreamWriter writer = new
AbstractResourceStreamWriter() {
                    @Override
                    public void write(Response output) {
                        for(FileUpload upload : uploads) {
                            System.out.println(new Date() + ": "+" Start
Reading");
                            try {
                                long size = upload.getSize();
                                BufferedReader fileReader = new
BufferedReader(new InputStreamReader(upload.getInputStream()));
                                ByteArrayOutputStream os = new
ByteArrayOutputStream();
                                int i;
                                int counter = 0;
                                while((i = fileReader.read()) != -1) {
                                    counter ++;
                                    os.write(i);
                                    if(counter == 100) {
                                        long osSize = os.size();
                                        int p = Float.valueOf((100 * osSize)
/ size).intValue();
                                        counter = 0;

                                        if(p > percent) {
                                            percent = p;
                                             p = 0;
                                        }
                                    }
                                }
                                os.flush();
                                os.close();
                                System.out.println(new Date() + ": "+" File
read successfully");

                            } catch(IOException ie) {
                                VideoUploadPanel.this.error("There was a
problem uploading the file");
                            }
                        }
                    }
                };
                getRequestCycle().scheduleRequestHandlerAfterCurrent(
                        new ResourceStreamRequestHandler(writer);
....
...
}

The progress bar still does't get updated. Here is the response.. Note the
delay of 8 seconds marked in bold? Thats when the file is getting uploaded.

Tue Jan 17 02:21:38 EST 2012:  Loading value..
Tue Jan 17 02:21:39 EST 2012:  Updating Component
Tue Jan 17 02:21:39 EST 2012:  Loading value..
Tue Jan 17 02:21:40 EST 2012:  Updating Component
Tue Jan 17 *02:21:40 EST 2012*:  Loading value..

Tue Jan 17 02:21:43 EST 2012:  Start Reading
Tue Jan 17 02:21:48 EST 2012:  File read successfully

Tue Jan 17 *02:21:48 EST 2012*:  Updating Component
Tue Jan 17 02:21:48 EST 2012:  Loading value..
Tue Jan 17 02:21:50 EST 2012:  Updating Component
Tue Jan 17 02:21:50 EST 2012:  Loading value..
Tue Jan 17 02:21:51 EST 2012:  Updating Component
Tue Jan 17 02:21:51 EST 2012:  Loading value..
Tue Jan 17 02:21:52 EST 2012:  Updating Component


Any help / example would really be a life saver. I couldnt find much example
online on IResource and AjaxChannel

-Milton


Martin Grigorov-4 wrote
> 
> Hi,
> 
> I think the Ajax calls are serialized.
> The page instance can be used by a single request at any time.
> So you submit the form and this request acquires the lock on the page.
> AjaxSelfTimerUpdatingBehavior cannot use the page until the first
> request unlock it.
> Additionally the Ajax calls are serialized at the client side
> (JavaScript). See AjaxChannel class for more information about this.
> 
> To be able to do what you want I suggest to use IResource to upload
> to. This way there wont be lock on the server side and with
> AjaxChannels with different names at the client side you will solve
> both problems.
> 
> On Mon, Jan 16, 2012 at 2:51 AM, malebu &lt;milton.quranda@&gt; wrote:
>> I have a requirement where i have to upload a video from a page and show
>> the
>> upload progress when the upload is 100% complete need to update the
>> progress
>> label as processing video.
>>
>> I decided to go with a simple outer <div> and internal <div> while update
>> the internal <div> percentage to show the progress. Finally i added a
>> Label
>> inside the internal <div> to show the status...
>>
>> /<div style="border: 1px solid #5d4617; padding: 3px; background-color:
>> #191B10;" >
>>                <div style="width:400px; background-color: #555555; color:
>> white; font-size: 8px;" align="left">
>>                    <div style="width:0%; background-color: #FF9900;"
>> align="right" wicket:id="customProgress">Loading...</div>
>>                </div>
>>            </div>/
>>
>>
>> Finally i added AjaxSelfUpdatingTimerBehavior to the internal <div> to
>> fetch
>> the progress and label every 2 seconds.
>>
>> When i click on submit button.. the label is not update while the form is
>> being submitted. it shows the final progress i.e. 100% and processing
>> completed after file is uploaded.
>>
>> I am using AjaxButton to upload on Ajax.
>>
>> Any idea how i can achieve this?
>>
>> --
>> View this message in context:
>> http://apache-wicket.1842946.n4.nabble.com/Label-not-updating-on-AJaxButton-submit-tp4298302p4298302.html
>> Sent from the Users forum mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
> 
> 
> 
> -- 
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Label-not-updating-on-AJaxButton-submit-tp4298302p4302580.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to