The class management feature took some time because after we started coding the Edit Class feature and saw the results, it was slow and inconvenient. We used 3 list boxes to classify the classes assigned to the teacher. The first listbox contained the years (ex. 2006-2007) when you had classes. Selecting a value from this list will populate the second list box with terms (ex. First Semester) when you had classes. In the same way, selecting a value from this list will populate the last list box with your classes for that term and year. Once all values are set, you can show and edit the class. Every time you select a value from the list, it requests data from the server. The process was slow even on GWT hosted mode and web mode localhost.
There were other ways to solve this issue but we decided to choose the one with most benefits. We decided to use the tree widget to show all classes. One benefit of using this is that all required data is requested only one time when the class is being loaded. The user doesn’t have to suffer during the whole process due to data request every time he clicks. Once the data is loaded, it’s smooth sailing from then on. Another benefit is that the user can see all his classes all at once. Its easier to navigate and select classes. The change is actually just the UI but it took some time for us to build it since we are not really very experienced in GWT.
We learned a lot of things in Java that we did not really notice before like the different behaviors of HashMap, LinkedHashMap and HashTable. We use HashMap a lot because of the key value pair benefit but we didn’t know that the order of items in the map changes with each addition of a pair. We tried LinkedHashMap and HashTable for this reason but we are not sure if GWT doesn’t support it yet or we just do not know how to set java annotations (required by GWT for serialization purposes) for these. Research must still be done for this. So we decided to stick with the List of java beans.
The tree of classes is now working as planned. Next step is to show the class list once a class is selected from the tree. I believe this will not be as tough because we have already done this for the Create Class feature. We simply need to reuse the code and integrate it with the Edit Class feature, hopefully. =)
eAssess group