OK thanks, Thanks great. I'll write your name in the proposal.
Cheers, Dragan Sahpaski On Fri, Apr 8, 2011 at 10:16 AM, Kalle Korhonen <[email protected]>wrote: > Dragan, good work on the proposal. We've been shuffling the potential > mentors behind the scenes (one mentor can only have one student) and > looks like I'd be mentoring you. I'm registered as a mentor on the > gsoc site and my id there is kaosko. > > Kalle > > > On Thu, Apr 7, 2011 at 1:10 PM, [email protected] > <[email protected]> wrote: > > Hi, > > I made my proposal a bit more ambitious. I believe that 3 months is not a > > short time and all the proposed functionalities can be implemented. This > is > > the final version and I will make no more changes. > > > > Cheers, > > Dragan Sahpaski > > > > Proposal Title: Right Click Menu, grid enhancements and two optional > > components for the Apache Tapestry5 java web application framework. > > > > Student Name: Dragan Shahpaski > > > > Student E-mail: [email protected] > > > > Organization/Project: The Apache Software Foundation / Tapestry 5 > > > > Assigned Mentor: > > > > Proposal Abstract: > > This project consistst of two parts. > > > > The first part will produce a generic and powerfull Right Click Menu > (also > > known as Context Menu) component for Tapestry5. The Right Click Menu > > component is meant to be highly configurable ready for enterprise > scenarios, > > can be used along tapestry5 existing components or as standalone > component. > > The component is meant to be integrated within the tapestry5 framework or > as > > a standalone library. As far as I know no such component is provided > > publicly yet. > > > > The second part will provide enhancements for the existing powerful t5 > grid > > component and two optional tasks from which one should be chosen. The > grid > > enhancements include bookmarkable URLs with sort parameters of the grid, > > page number and number of items per page. > > > > The chosen optional task can be prototype (not production ready) but > should > > provide at least a motivating working example of most common usage. > > > > Detailed Description: > > > > Part 1: Right Click Menu component > > > > 1. Right Click Menu component > > Create the Right Click Menu component as a mixin for t5 components. The > > menu options will contain pairs of labels and t5 links which are ordinary > > links or event links (able to update a zone for example), that will be > > configured with some kind of Right Click Menu model interface. The clicks > > will be processed as t5 events produced for example from an event link. > Also > > it is intended that advanced usage scenarios for enterprise applications > are > > considered like for example having all the options for all the menus in > one > > application in a database and producing them in some generic manner. > > > > The menu component will have a context (as a param) based which it cah > will > > provide different menu options. It should also provide the capability of > > showing images (icons) with text as a menu option, or whatever markup the > > user provides. This can be done with a block parameter as in the t5 grid > ex > > <p:label1/> <p:label2/> etc. > > > > I will try to provide the client side part of the menu to be independent > of > > any javascript frameworks. The drawbacks and benefits of the approach > will > > be discussed with the community and a decision will be made in the first > few > > weeks (see the schedule). > > > > 2. Integration with t5 grid > > Provide integration with the mighty t5 grid component, so that we can > have > > right click options in the grid cells and rows with possibly different > > options for each cell/row. This means that in a grid with 20 cells, 20 > > javascript instances of the client side component may exist. To avoid > > bloating the page with many instances of the component possibly not used > at > > all, look at the third goal. > > > > 3. Ajax behavior for the menu's options > > Provide ajax behavior for the menu's options (label/link pairs) i.e. > > clicking the component will produce a waiting.. or similar menu that is > > refreshed with the actual menu contents with ajax update from the server. > > This can help cases of components with too many menus, like for example > > loops or grids (see the second goal). The behaviour can be triggered > using a > > standard t5 event link triggering an event and a zone update. The menu > > options can be provided as a block. > > > > 4. Standalone t5 component > > Create the component as a standalone t5 component if needed (optional and > > may be discussed with the community). > > > > 5. Documentation > > Create detailed documentation about the component (or mixin) that should > go > > in a wiki or the t5 site (to be disused with the community), demo > examples > > of most common and advanced usage scenarios with source code. Maybe one > > short video tutorial used for promo or preview of the component. > > > > > > Part 2: Grid component enhancements > > > > 1. Grid Sorting: Support url query parameters for sort keys (property ids > in > > the BeanModel). The links should also be bookmarkable and when we copy-> > > paste a link in the address bar we should be able to see the correct grid > > sorting. > > > > Example: If we have a List<Employe> and sort by employee.department you > can > > get a URL like: /employeeslist?sort=department&order=asc. > > > > 2. Pagination: Build a better pager that has the following links. > Previous, > > Next, Go to End, Go to Beginning. The links will be anchors with the > > symbols: <, >, <<, >> but this will be customizable with a parameter. We > > will also biuld the option to have the page number in the url like this: > > /employeeslist?page=5. The link should be bookmarkable. > > > > There is a problem implementing the bookmark options when here are > multiple > > grids in one page. This behavior can be discussed with the community, if > we > > should support it with multiple grids or no. Multiple grids can have a > > component id in the URL like this: > > /employeeslist?empgrid.sort=department&department.sort=name > > > > 3.1. (Optional) Changing column order and visibility and saving this in a > > db. > > Create a mixin for the grid component or a new t5 component meant to be > used > > alongside the grid component, that lists all the columns in the grid and > > allows them to be made visible/nonvisible and change their order. The > > mixin/component would fire events to allow the user to persist the > changes > > in a DB, the HTTP session etc. > > > > OR > > > > 3.2 (Optional) Basic support for generalizing the SPI like functionality > for > > ajax updates > > Provide a SPI like functionality with ajax updates. When an ajax update > > occurs update the portion of the URL after # like when using named > anchors. > > The behaviour should support bookmarking and back button functionality > > (history). IMO this is a challenging task but the idea is to start > working > > on it creating a general concept how it should be implemented in > tapestry, > > and then work on it by the end of GSOC or after that. I am very > interested > > in bringing the functionality to tapestry, even after GSOC. > > > > > > Project time line: > > > > April 26 - May 23: Basic implementation > > Make basic implementation of the mixin and discuss with the community the > > need for the solution to be independent of the javascript framework. Get > > feedback from the community for the first demo implementation. > > > > May 23: Official start > > May 23 - June 10: Complete the RightClickMenu mixin and provide a basic > demo > > to be viewed online. Provide several usage scenarios in the demo. > > Considering advanced use cases with applications demanding many menus and > > how they can be best configured in the app. The component should have > > various possible configuration options powerful enough to be configured > from > > a central place or by reading info from a DB for example. > > > > June 11 - June 30: Integration with t5 grid. Complete the Ajax behavior > for > > the menu's options. > > Create a proof of concept demo and try to minimize changes in the t5 > grid. > > It is possible that some interventions in the t5 grid code will be needed > > and try to provide as pure solution as possible. It would be ideal if > none > > of the t5 grid code is changed. > > > > Try to discuss all the possible usage scenarios with custom event > triggering > > form the menu itself and providing a context in the ajax event. > > > > In parallel discuss and think weather a standalone t5 component is needed > > for the t5 menu for cases where we don’t have a t5 component to use a > mixin > > on. > > > > July 1- July 5: Provide a standalone t5 component (if decided). > > Refactor the code and make unit and integration tests to make it > production > > ready. > > > > July 15: Mid-term evaluations > > > > July 5- July 20: Pagination and Grid Sorting > > Implement pagination and grid sorting with parameters that go in the URL > and > > implement bookmarkable URLs. Decide if (Optional) Changing column order > and > > visibility and saving this in a db or (Optional) Basic support for > > generalizing the SPI like functionality for ajax updates should be worked > > on. > > > > July 21- August 10: Finish Pagination and Grid Sorting and work on One of > > the optional proposed tasks. > > Finish the Pagination and Grid Sorting 100% and start to work on > (Optional) > > Changing column order and visibility and saving this in a db or > (Optional) > > Basic support for generalizing the SPI like functionality for ajax. > Finish > > the optional assignment as much as possible and try to provide code for > the > > most common (or most simple) scenario of the chosen optional task. > > > > August 11 - August 22: Documentation > > Code should be complete and committed for all the tasks and the one > optional > > assignment. > > Write final documentation with examples and create a video tutorial of > the > > different usage scenarios. > > > > August 15: Suggested pencils down > > August 22: Firm pencils down > > > > Deliverables: > > Right Click Menu component (part 1) > > 1. RightClickMenu mixin > > 2. RightClickMenu integration with t5 grid > > 3. RightClickMenu ajax behaviour (part of the component > > 4. Standalone RightClickMenu t5 component > > 5. Documentation for various advanced applications, Examples and Video > > tutorial. > > > > Grid component enhancements and SPI like functionality to Ajax updates > > (part 2) > > 1. Grid sorting parameters that go into the URL with bookmarkable links. > > 2. Better pager with parameters that go into the URL with bookmarkable > > links. > > 3. (Optional) Changing column order and visibility and saving this in a > db. > > 4. (Optional) Basic support for generalizing the SPI like functionality > for > > ajax updates > > > > > > > > Additional Information: I am able to commit to this project alone as my > > standalone activity for the summer. > > > > Cheers, > > Dragan Sahpaski > > > > > > > > On Thu, Apr 7, 2011 at 1:43 AM, [email protected] < > > [email protected]> wrote: > > > >> Hi, > >> Here is a revised version of the proposal. I'm submitting it on melange. > If > >> anyone has some suggestions for the remaining 2 and something days > please > >> reply. > >> > >> Proposal Title: Right Click Menu component for Apache Tapestry5 java web > >> application framework > >> > >> Student Name: Dragan Shahpaski > >> > >> Student E-mail: [email protected] > >> > >> Organization/Project: The Apache Software Foundation / Tapestry 5 > >> > >> Assigned Mentor: > >> > >> Proposal Abstract: > >> This project will produce a generic and powerfull Right Click Menu (also > >> known as Context Menu) component for Tapestry5. The Right Click Menu > >> component is meant to be highly configurable ready for enterprise > scenarios, > >> can be used along tapestry5 existing components or as standalone > component. > >> The component is meant to be integrated within the tapestry5 framework > or as > >> a standalone library. As far as I know no such component is provided > >> publicly yet. > >> > >> Detailed Description: > >> > >> 1. Right Click Menu component > >> Create the Right Click Menu component as a mixin for t5 components. The > >> menu options will contain pairs of labels and t5 links which are > ordinary > >> links or event links (able to update a zone for example), that will be > >> configured with some kind of Right Click Menu model interface. The > clicks > >> will be processed as t5 events produced for example from an event link. > Also > >> it is intended that advanced usage scenarios for enterprise applications > are > >> considered like for example having all the options for all the menus in > one > >> application in a database and producing them in some generic manner. > >> > >> The menu component will have a context (as a param) based which it cah > will > >> provide different menu options. It should also provide the capability of > >> showing images (icons) with text as a menu option, or whatever markup > the > >> user provides. This can be done with a block parameter as in the t5 grid > ex > >> <p:label1/> <p:label2/> etc. > >> > >> I will try to provide the client side part of the menu to be independent > of > >> any javascript frameworks. The drawbacks and benefits of the approach > will > >> be discussed with the community and a decision will be made in the first > few > >> weeks (see the schedule). > >> > >> 2. Integration with t5 grid > >> Provide integration with the mighty t5 grid component, so that we can > have > >> right click options in the grid cells and rows with possibly different > >> options for each cell/row. This means that in a grid with 20 cells, 20 > >> javascript instances of the client side component may exist. To avoid > >> bloating the page with many instances of the component possibly not used > at > >> all, look at the third goal. > >> > >> 3. Ajax behavior for the menu's options > >> Provide ajax behavior for the menu's options (label/link pairs) i.e. > >> clicking the component will produce a waiting.. or similar menu that is > >> refreshed with the actual menu contents with ajax update from the > server. > >> This can help cases of components with too many menus, like for example > >> loops or grids (see the second goal). The behaviour can be triggered > using a > >> standard t5 event link triggering an event and a zone update. The menu > >> options can be provided as a block. > >> > >> 4. Standalone t5 component > >> Create the component as a standalone t5 component if needed (optional > and > >> may be discussed with the community). > >> > >> 5. Documentation > >> Create detailed documentation about the component (or mixin) that should > go > >> in a wiki or the t5 site (to be disused with the community), demo > examples > >> of most common and advanced usage scenarios with source code. Maybe one > >> short video tutorial used for promo or preview of the component. > >> > >> Project time line: > >> > >> April 26 - May 23: Basic implementation > >> Make basic implementation of the mixin and discuss with the community > the > >> need for the solution to be independent of the javascript framework. Get > >> feedback from the community for the first demo implementation. > >> > >> May 23: Official start > >> May 23 - June 10: Complete the RightClickMenu mixin and provide a basic > >> demo to be viewed online. Provide several usage scenarios in the demo. > >> Considering advanced use cases with applications demanding many menus > and > >> how they can be best configured in the app. The component should have > >> various possible configuration options powerful enough to be configured > from > >> a central place or by reading info from a DB for example. > >> > >> June 11 - June 30: Integration with t5 grid. > >> Create a proof of concept demo and try to minimize changes in the t5 > grid. > >> It is possible that some interventions in the t5 grid code will be > needed > >> and try to provide as pure solution as possible. It would be ideal if > none > >> of the t5 grid code is changed. > >> > >> July 1 - July 15: Complete the Ajax behavior for the menu's options > >> Try to discuss all the possible usage scenarios with custom event > >> triggering form the menu itself and providing a context in the ajax > event. > >> > >> In parallel discuss and think weather a standalone t5 component is > needed > >> for the t5 menu for cases where we don’t have a t5 component to use a > mixin > >> on. > >> > >> July 15: Mid-term evaluations > >> > >> July 15- July 31: Provide a standalone t5 component (if decided). > >> Refactor the code and make unit and integration tests to make it > production > >> ready. > >> > >> August 1 - August 15: Documentation > >> Code should be complete and comited. > >> Write final documentation with examples and create a video tutorial of > the > >> different usage scenarios. > >> > >> August 15: Suggested pencils down > >> August 22: Firm pencils down > >> > >> Deliverables: > >> 1. RightClickMenu mixin > >> 2. RightClickMenu integration with t5 grid > >> 3. RightClickMenu ajax behaviour (part of the component > >> 4. Standalone RightClickMenu t5 component > >> 5. Documentation for various advanced applications, Examples and Video > >> tutorial. > >> > >> > >> > >> Additional Information: I am able to commit to this project alone as my > >> standalone activity for the summer. > >> > >> Cheers, > >> Dragan Sahpaski > >> > >> > >> > >> On Wed, Mar 30, 2011 at 10:13 PM, [email protected] < > >> [email protected]> wrote: > >> > >>> Sorry I forgot the link to the wiki: > >>> http://wiki.apache.org/tapestry/gsoc2011-RightClickMenu > >>> <http://wiki.apache.org/tapestry/gsoc2011-RightClickMenu> > >>> Cheers, > >>> Dragan Sahpaski > >>> > >>> > >>> > >>> On Wed, Mar 30, 2011 at 10:12 PM, [email protected] < > >>> [email protected]> wrote: > >>> > >>>> Hi, > >>>> Please see this first version of the proposal about a t5 Right Click > Menu > >>>> component in the wiki: > >>>> Please tell me your opinions and guidelines about the proposal so that > I > >>>> can correct it on time (deadline is April 8). > >>>> > >>>> I also include the proposal here: > >>>> > >>>> Proposal Title: *Right Click Menu component for Apache Tapestry5 java > >>>> web application framework* > >>>> **Student Name: Dragan Shahpaski > >>>> Student E-mail: [email protected] > >>>> <[email protected]>Organization/Project: The Apache > Software > >>>> Foundation / Tapestry 5 > >>>> Assigned Mentor: > >>>> *Proposal Abstract:* This project will produce a generic and powerfull > >>>> Right Click Menu (also known as Context Menu) component for Tapestry5. > The > >>>> Right Click Menu component is meant to be highly configurable ready > for > >>>> enterprise scenarios, can be used along tapestry5 existing components > or as > >>>> standalone component. The component is meant to be integrated within > the > >>>> tapestry5 framework or as a standalone library. As far as I know no > such > >>>> component is provided publicly yet. > >>>> > >>>> *Detailed Description:* *The first goal* (or deliverable) will be > >>>> providing the Right Click Menu component as a mixin for t5 components. > The > >>>> menu options will contain pairs of labels and t5 links which are > ordinary > >>>> links or event links (able to update a zone for example), that will be > >>>> configured with some kind of Right Click Menu model interface. The > clicks > >>>> will be processed as t5 events produced for example from an event > link. Also > >>>> it is intended that advanced usage scenarios for enterprise > applications are > >>>> considered like for example having all the options for all the menus > in one > >>>> application in a database and producing them in some generic manner. > >>>> > >>>> *The second goal* is to provide integration with the all mighty t5 > grid > >>>> component, so that we can have right click options in the grid cells > and > >>>> rows with possibly different options for each cell/row. This means > that in a > >>>> grid with 20 cells, 20 javascript instances of the client side > component may > >>>> exist. To avoid bloating the page with many instances of the component > >>>> possibly not used at all, look at the third goal. > >>>> > >>>> *The third goal* is to provide ajax behavior for the menu's options > >>>> (label/link pairs) i.e. clicking the component will produce a > waiting.. or > >>>> similar menu that is refreshed with the actual menu contents with ajax > >>>> update from the server. This can help cases of components with too > many > >>>> menus, like for example loops or grids (see the second goal). > >>>> > >>>> *The fourth goal* is to provide the component as a standalone t5 > >>>> component if needed (optional and may be discussed with the > community). > >>>> > >>>> *The fifth goal* is to provide detailed documentation about the > >>>> component (or mixin), demo examples of most common and advanced usage > >>>> scenarios and maybe one video tutorial. > >>>> > >>>> *Additional Information:* I am able to commit to this project alone as > >>>> my standalone activity for the summer. > >>>> Cheers, > >>>> Dragan Sahpaski > >>>> > >>>> > >>> > >> > > >
