tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "dragan.sahpaskix@gmail.com" <dragan.sahpas...@gmail.com>
Subject Re: [GSOC 2011] Right Click Menu
Date Fri, 08 Apr 2011 09:11:53 GMT
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
<kalle.o.korhonen@gmail.com>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, dragan.sahpaskix@gmail.com
> <dragan.sahpaskix@gmail.com> 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: dragan.sahpaskix@gmail.com
> >
> > 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, dragan.sahpaskix@gmail.com <
> > dragan.sahpaskix@gmail.com> 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: dragan.sahpaskix@gmail.com
> >>
> >> 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, dragan.sahpaskix@gmail.com <
> >> dragan.sahpaskix@gmail.com> 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, dragan.sahpaskix@gmail.com <
> >>> dragan.sahpaskix@gmail.com> 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: dragan.sahpaskix@gmail.com
> >>>>  <dragan.sahpaskix@gmail.com>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
> >>>>
> >>>>
> >>>
> >>
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message