ROADMAP - growbit/turbogwt GitHub Wiki
CORE
- Develop a Promises API to be used in HTTP module.
NET
- Create a cache mecanism (Cache<K, V> and CacheManager). Cache should have a timeout and throw some CacheExpiredEvent when it's gone. Options like autorefresh are welcome.
- Cache should be responsible for requesting its data, or should we create another component wrapping Cache and performing these kind of operations? (like a datasource<K, V>)
- Create a manager for Cookies.
NET-HTTP
- Sweetly support JSONP requests. Maybe it will be necessary to create a Future to represent the request result for both JSONPRequest and Request.
- Improve Fluent API design.
- Create an abstract XML Serdes (like JsonObjectSerdes).
- Create an option to generate Serdes, using some existing serializing library.
MVP-CORE
- Design an AbstractPlace supporting:
- Multiple parameters
- URL delimiters customization:
- Route delimiters (path)
- Param delimiters (query, matrix)
- Design an PlaceHistoryMapper handling the above AbstractPlace
- Design an AbstractActivity supporting the above AbstractPlace
- Design a simple and pluggable Presenter to be cross-platform used, based on this (T. Broyer's) comment. Should it have a simplified and use-case based lifecycle? (See this discussion)
- Move some components from turbogwt-databind to it.
- Create something like a TableModel to be plugged into View. Following the Passive-View pattern, we seek to avoid View knowing about the Model. So the view would use some table model created by the Presenter (or outside) to construct its AbstractCellTable.
MVP-DATABIND
- Create a Property annotation holding String id and String display. It will be used to generate a Property object with get/set capabilities besides providing these two util data. (Id will be used for binding identification and DOM element id; Display will be used to label the field in the view for both editing and listing)
- Create a TableColumnGenerator based on this Goudreau's article.
- Create (Presenter) Binding via Deferred Binding, automatically registering the fields identified by some annotation.
- Automatically bind view widgets using some annotation (like UiField).
- Support Java Validation API. Customizable messages should be supported, including access to field, method and class names, in order to produce better messages.