The following scheme is created to help you in choosing the most suitable components set, best practise and architecture approach for your GWT based project. Assuming that you have already decided to use Advanced GWT Components as a main UI library the next scheme allows finding the best strategy step by step.
Step | Question / Solution | Yes | No |
---|---|---|---|
1. Choosing a Grid Data Model | |||
1.1 | Are you going to display a large number of rows? | Step 1.2 | Step 1.7 |
1.2 | Are you going to display complex data models (with one-to-many relationships)? | Step 1.4 | Step 1.3 |
1.3 | Choose LazyGridDataModel. | Section 2 | |
1.4 | Are you going to diplay tree structures? | Step 1.5 | Step 1.6 |
1.5 | Choose LazyTreeGridDataModel | Section 2 | |
1.6 | Choose LazyHierarchicalGridDataModel. | Section 2 | |
1.7 | Are you going to display complex data models (with one-to-many relationships)? | Step 1.9 | Step 1.8 |
1.8 | Choose EditableGridDataModel. | Section 2 | |
1.9 | Are you going to display tree structures? | Step 1.10 | Step 1.11 |
1.10 | Choose TreeGridDataModel | Section 2 | |
1.11 | Choose HierarchicalGridDataModel. | Section 2 | |
2. Choosing a Grid | |||
2.1 | Have you answered "Yes" on step 1.2 or 1.5? | Step 2.2 | Step 2.5 |
2.2. | Have you answered "Yes" on step 1.4 or 1.9? | Step 2.3 | Step 2.4 |
2.3 | Choose TreeGrid widget | Section 3 | |
2.4 | Choose HierarchicalGrid widget. | Section 3 | |
2.5 | Choose EditableGrid widget. | Section 3 | |
3. Choosing rendering approach | |||
3.1 | Whould you like to display a lot of rows (over 100) on the one page? | Step 3.2 | Step 3.3 |
3.2 | Do you need custom (non-standard) editable cells? | Step 3.5 | Step 3.4 |
3.3 | Is perfomance critical for your project? | Step 3.2 | Step 3.5 |
3.4 | Choose server side rendering redefining the default GridRenderer. | Section 4 | |
3.5 | Choose client side rendering (probably the default GridRenderer will be most suitable) | Section 4 | |
Scrolling or paging? | |||
4.1 | Have you answered "Yes" on step 3.1? | Step 4.1 | Step 4.3 |
4.2 | Will it be acceptable for your project if whole HTML page is scrolled? | Step 4.3 | Step 4.4 |
4.3 | Choose standard pageable grid solution. | Section 5 | |
4.4 | Enable vertical scrolling in the grid. | Section 5 | |
Choosing keyboard event management approach | |||
5.1 | Do your users require keyboard events support? | Step 5.2 | Step 5.6 |
5.2 | Is it important for them to use common keys like TAB, arrows, PgUp, PdDn, etc? | Step 5.3 | Step 5.6 |
5.3 | Do you use other GWT libraries supporting keyboard events? | Step 5.6 | Step 5.4 |
5.4 | Is your application a cross-browser solution? | Step 5.6 | Step 5.5 |
5.5 | Using JavaScript disable standard keyboard events handling on the page and redefine the GridEventManager to override default key codes. | Section 6 | |
5.6 | Do nothing. | Section 6 | |
6. ListBox cell or ComboBox cell? (optional) | |||
6.1 | Do you need advanced styling for lists in the grid? | Step 6.2 | Step 6.5 |
6.2 | Is perfomance important? | Step 6.5 | Step 6.3 |
6.3 | Do you need model and view layers splitting? | Step 6.4 | Step 6.5 |
6.4 | Choose ComboBoxCell. | Complete | |
6.5 | Choose ListBoxCell. | Complete |