Adding Ext JS Loading clock icon while form is being loaded - extjs4

I want to add a clock like animated clock to display while a particular form is populated with data. Can someone tell me how this is done.
I show a small window with the image of the clock when the form has started to load, and then close that window once the data is loaded. I don't think this is the correct approach, so can someone tell me how can i get this done.

You can use setLoading method of the form. Look at:
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.Panel-method-setLoading

Related

Vue.js Should you emit data from popup back to the main window?

I and my co-workers can't seem to agree on what the best practice should be when it comes to Vue and popups.
The question is as follows:
You are on the main window, you get the data from the backend using REST API and you notice an error. To fix it, you go to an edit popup and after hitting save what should happen?
Should you call the API from the popup?
Emit the changed data and let the main window call the API?
...
This is very interesting question but I think the truth depends on your whole architecture, implementation and approaches you use.
Say, if you worry about the "separation of concern" you wouldn't give a popup any access to API because its work is to show you some data as a popup, return data, and that's it.
On the other hand, how are you handling errors? What if an error occurs when user works in popup? Where do you show error?
Another question is the usability. For example, if error occurs when you save data, if it's done by the main window, you are going to:
Show the error message
Make user to click some button again to show the popup
Fix a problem and click the Save button in it.
But if you would access API right from popup you would avoid first 2 steps. Another concern is how you handle wrong data.
If you are still in the popup you easily can validate the data and cancel saving (or disable this button at all) but if it's done after the popup is closed it may be too late.

How to update component while form loads

I have a form and a button. When you press the button, i want it to load my second form. On the second form is a webbrowser which loads a site.
Thing is, the second form takes a few seconds to load. So i need to implement something to tell the end user, hang on.. We are trying to load something.
The best and simple way would be to update the button clicked text value to: Loading...
I had code to change the text on the button, then load the form.. Thing is, the label would not change but would change AFTER the second form loaded! <-- I did my research and found out its cause im doing single threading?
If i place Application.DoEvents() after my label change then it works, but i also searched its overkill and shouldnt be used? What would be a efficient and effective way to update my label without hogging a lot of resources?
My code:
label1.Text = "Loading..."
Application.DoEvents() 'Without this, label only changes AFTER form completes loading
secondform.Show()
me.hide()
I think normal practice is to have an Hourglass pointer during times when a program is executing something.
Also, you can have your 'web window' load hidden (visible = false) and have it appear once the page is loaded inside the web control.
Just a thought.

Reducing redraw flickering on vb.net web application

I have a page on my web application which has a chart that gets retrieved using a timer. Is there a way to avoid the flickering everytime the chart is redrawn?
Since It's a web application, I guess the doublebuffer property isn't available, or at least I didn't find it and assumed it's webform related.
I would appreciate any help in the matter.
A quick and easy but not suggested solution is to call the redraw manually and remove the event.
So you would remove the event handler and you call the function that redraws the chart when you think is required. i.e After the resize is done or after a value is changed etc.
Since it is a web application, I guess the redraw you are talking about is made using a browser page refresh.
If so, you should take a look at Microsoft Ajax Framework, and a UpdatePanel control to just refresh the specific chart part of your page. Should be smoother then.
http://www.asp.net/ajax

Add a spinning wheel while application is searching database

I have an application that searches in a database for some information.
Since the database is quite big, it sometimes takes a lot of time before the application returns the results to the interface.
I want to add some sort of spinning wheel to inform the user that the application is still searching the database and did not freeze. Once the results are returned, the wheel should disappear.
Any idea how to do this or is there a good tutorial explaining how to do this?
Have you considered changing the mouse pointer to the hourglass as this would be extremely simple to implement:
Me.Cursor = Cursors.WaitCursor
...Do your DB calls here...
Me.Cursor = Cursors.Default
However, I would agree that display a 'spinning wheel' is probably a little more user friendly and definately a lot more obvious. So, first get hold of an animated gif that suits your needs. Then create a form that has a picture box containing the image.
Once you have that you can show the form to the user and in the background do the DB work, once this has completed close the form.
Another alternative would be to use a rolling progress bar instead, so when it reaches 100% it cycles around again and keeps going until you close it.
EDIT:
One thing that I forgot to mention is that you will have to handle exception conditions. Lets say you set the cursor to wait, then an error occurs. The exception may bypass the code that resets everything. This leaves the user with a changed cursor and no means of changing it.
When I have done this kind of thing I have typically created a disposable WaitCursor class and then used something like this:
Using myWaitCursor As WaitCursor = New WaitCursor
...do something...
End Using
In the Dispose of the WaitCursor class you set the cursor back to default. The same would apply if you went down the route of using a form with an image or progress bar.
Find an animated gif of such a spinner, like this one. Put it in a PictureBox, set its Visible property to True when you start the job. Beware that you'll have to run the query in a worker thread to keep the animation alive and the user interface responsive. The BackgroundWorker class is good for that.
You could use the Environments Default wait cursor, which for Vista/7 is a circle with the outside spinning, or the XP tumbling hourglass.
You could launch your DB access on a BackgroundWorker and show an animated control such as a Marquee progress bar, or you could show a custom animation to show Busy status.

Informing the user that a DataGridView is being populated

I am writing a program in VB.Net to manage text messages sent through an API. It allows you to view messages in a datagridview and filter by date, sent/unsent etc...
To load the messages I'm executing an SQL statement and retrieving a DataTable which then gets set as the DataSource for my DataGridView control.
The problem is that depending on the filters selected the user could be selecting a lot of records and it would take some time for the DataSource to update. I want to inform the user of this load time by providing a progress bar or label of some kind.
I have used progress bars before when looping through data but this is loading it all at once. I thought of displaying a label when the user clicks to load the data and then hiding it when the data is loaded. But this happens instantaneously even when the data is still loading.
Is there an event on the DataGridView I can use perhaps? Something like .DataSourceLoadStart and .DataSourceLoadFinished.
I know I'm just making those events up... but hopefully it makes it clearer as to what I want.
You could set the label to be visible when load is clicked and try the: DataGridView.DataBindingComplete Event to hide it, this event gets called when the binding is complete.
MSDN Link - DataBindingComplete
A little off topic but... I wonder if you could attach a AJAX update panel with activity/loading image to a gridview? I don't think I've ever seen it done but here's a great application for it.