Hi Dan
Yes I added it in to the project. I finished writing the proposal and
submitted it to gsoc site. Please take a look at it

Thanks
Dimuthu

On Tue, Apr 23, 2013 at 1:25 AM, Dan Haywood
<[email protected]> wrote:
> I'll look at it this evening.
>
> One thing you might add (and this is for anyone thinking of developing a
> viewer), is to define a possible project plan of stories, getting
> progressively more complex.  As it happens, I have such a list, below.  You
> are welcome to adopt/adapt if you wish.
>
> Dan
>
>
> 0002     Representation of application (menu) services/repositories
>
>
>
> 0003     Display no-arg actions for domain services
>
>
>
> 0004     Invoke no-arg application service action returning a domain object
>
>
>
> 0005     Render domain entity title
>
> 0006     Render domain entity icon
>
>
>
> 0007     Render domain entity properties
>
> -      read-only
>
> -      treat all properties as strings
>
> 0008     Handle additional basic property types
>
> -      integer, string, date, boolean
>
> 0009     Handle references properties
>
> -      eg Customer à Address
>
>
>
> 0010     Navigate to object referenced within a property
>
>
>
> 0011     Render domain entity collections
>
> -      read-only
>
>
>
> 0012     Navigate to object referenced within a collection
>
>
>
> 0013     Render no-arg actions of entity
>
>
>
> 0014     Invoke a no-arg action of an entity returning a single object
>
> 0015     Invoke a no-arg service action returning a (standalone) collection
>
> 0016     Invoke a no-arg action returning a scalar
>
> 0017     Invoke a no-arg action returning void
>
>
>
> 0018     Navigate to object referenced within a standalone action
>
>
>
>
>
> 0019  - 0025  .... stories specific to viewer technology...
>
>
>
> 0026     Invoke application service action taking simple datatypes
>
> -      strings, int, date, boolean
>
>
>
> 0027     Invoke entity action taking simple datatypes
>
> -      strings, int, date, boolean
>
>
>
> 0028     Invoke application service action taking reference to other object
>
> -      with choices drop-down
>
> 0029     Invoke application service action taking reference to other object
>
> -      with autocomplete drop-down
>
>
>
> 0030     Validate action arguments
>
> 0031     Choices for action arguments
>
> 0032     Defaults for action arguments
>
>
>
> 0033     Editable entity properties taking simple datatypes
>
> -      “save-as-you-go”, single properties
>
> -      similar to the NO MVC UI
>
> -      strings, int, date, boolean
>
>
>
> 0034     Choices for entity properties
>
>
>
> 0035     Editable entity properties with references to other objects
>
>
>
> 0036     Validate entity properties
>
> 0037     Disable entity properties
>
>
>
> 0038     Updating multiple properties of an entity
>
> -      in single request
>
>
>
> 0039     User authentication
>
>
>
> 0040     Error handling of optimistic locking failure
>
> 0041     Error handling of stale reference to deleted object
>
> 0042     Error handling of error thrown by application
>
>
>
> 0043     Extensibility: register new renderers for properties
>
> 0044     Extensibility: register new renderers for properties and action
> params
>
> 0045     Extensibility: register new renderers for standalone collections
>
> 0046     Extensibility: register new renderers for parented collections
>
> 0047     Extensibility: register new renderers for entities
>
>
>
>
>
>
> On 23 April 2013 09:21, DImuthu Upeksha <[email protected]> wrote:
>>
>> Hi Dan,
>> Thank you. Its really helpful. I was in a doubt about that approach
>> and now it's clear. So I would add some detailed documents about
>> domain cache in near future.I shared a google doc with you that
>> contain the rough project proposal. Please give me some comments to
>> make it better and if there are some incorrect or unrelated facts
>> please tell me so that I can re-correct them. Specially there could be
>> more deliverables than I mentioned which you want from this project.
>>
>> Thanks
>> Dimuthu
>>
>> On Mon, Apr 22, 2013 at 11:32 PM, Dan Haywood
>> <[email protected]> wrote:
>> > Hi Dimuthu,
>> > You are basically correct, and the algorithm is something like you
>> > describe
>> > it.
>> >
>> > I'd reverse the order of the steps, though.
>> >
>> > First, use the describedBy link to find the datatype of the parameter
>> > (or
>> > the property, for an object form), eg to walk through [1]
>> > If it's a primitive/built-in (date, string, int etc), then you know the
>> > widget to use to render the value.
>> > If it's not, then you've either got an enum or a reference to an entity.
>> > In both cases,  look for choices.   for an enum this will be a list of
>> > strings, for an entity it will be a list of hrefs.
>> >
>> > What we haven't talked about is how to specify a reference to an entity
>> > as a
>> > parameter, for example [2].  In this case, you'll probably need to look
>> > for
>> > an autoComplete method to use.  Note: the autoComplete idea arose after
>> > I
>> > wrote the RO spec, so it might be a bit tricky to figure out.  We can
>> > always
>> > consider extending the representations to handle this.
>> >
>> > Looking forward to reading your proposal,
>> >
>> > Cheers
>> > Dan
>> >
>> >
>> > [1] http://localhost:8080/restful/domainTypes/dom.todo.ToDoItem$Category
>> > [2]
>> >
>> > http://localhost:8080/restful/objects/TODO:L_0%5E1:sven:1366698570680/actions/add
>> >
>> >
>> > On 23 April 2013 06:36, DImuthu Upeksha <[email protected]>
>> > wrote:
>> >>
>> >> Hi Dan.
>> >>
>> >> Yes. In parameters map there is choices list. Then I can understand
>> >> that it is a list to be shown (In gui : A combo box). But when we look
>> >> at the other two attributes (num :0 ,num :2) there is not a way to
>> >> understand what should be the input type (a text box, date picker or
>> >> other UI element). So what I understood is, we have to dig in to the
>> >> "described by" link and find out data types of other two data
>> >> parameters. Then the logic is
>> >>
>> >> 1. First look in to parameters map and look for properties with
>> >> "choices" tag. If so, in gui level it should be a combo box with
>> >> values in "choices" tag.
>> >> 2. For other properties with not having "choices" tag you have to find
>> >> out its data types by looking in to "described by" link. [1] >> [2] >>
>> >> [3] >> [4]. Then I can find the data type. (In this case it is a
>> >> String)
>> >>
>> >> Though this is a simple logic I feel bit confused. This approach may
>> >> be ok to this scenario. But may not compatible with some cases (I feel
>> >> so). Please tell me if I'm wrong.
>> >>
>> >> As soon as I solve this problem I will start writing my proposal
>> >> because the application period has started.
>> >>
>> >> [1] http://localhost:8080/restful/services/toDoItems/actions/newToDo
>> >> [2]
>> >>
>> >> http://localhost:8080/restful/domainTypes/objstore.jdo.todo.ToDoItemsJdo/actions/newToDo
>> >> [3]
>> >>
>> >> http://localhost:8080/restful/domainTypes/objstore.jdo.todo.ToDoItemsJdo/actions/newToDo/params/Description
>> >> [4] http://localhost:8080/restful/domainTypes/java.lang.String
>> >>
>> >> Thank You
>> >> Dimuthu
>> >>
>> >> On Sun, Apr 21, 2013 at 11:22 PM, Dan Haywood
>> >> <[email protected]> wrote:
>> >> >
>> >> >
>> >> > On 21 April 2013 22:52, DImuthu Upeksha <[email protected]>
>> >> > wrote:
>> >> >>
>> >> >> Sorry this is the second part of previous mail
>> >> >>
>> >> >> description : java.lang.String
>> >> >> category : dom.todo.ToDoItem$Category
>> >> >> due by : org.joda.time.LocalDate
>> >> >>
>> >> >> for description and due by properties we can set a Text box and date
>> >> >> picker because they have known data types. But for category,
>> >> >> "dom.todo.ToDoItem$Category" is not a known type. Actually what
>> >> >> should
>> >> >> come here is a combo box. Problem is how can I figure it out?
>> >> >>
>> >> >
>> >> > Looks like you are making good progress if you are asking these sorts
>> >> > of
>> >> > questions!
>> >> >
>> >> > To answer the question, then: if you browse to
>> >> > http://localhost:8080/restful/services/toDoItems/actions/newToDo
>> >> > you'll
>> >> > see
>> >> > that in the "parameters" map (for num=1) the "choices" array lists
>> >> > the
>> >> > available values.
>> >> >
>> >> > Internally, this corresponds to the ActionParameterChoicesFacet
>> >> > (there's
>> >> > also a PropertyChoicesFacet) in the metamodel.
>> >> >
>> >> > I like to test these things using the "Rest Console" extension for
>> >> > Chrome
>> >> > (there are many other similar extensions).  So, if you specify the
>> >> > target
>> >> > url of:
>> >> >
>> >> >
>> >> > http://localhost:8080/restful/services/toDoItems/actions/newToDo/invoke
>> >> >
>> >> > and a body of:
>> >> >
>> >> > {
>> >> > "description": "Test",
>> >> > "category": "Professional",
>> >> > "dueBy": null,
>> >> > "cost": null
>> >> > }
>> >> >
>> >> > and submit as a POST, then the new object should be created.
>> >> >
>> >> > HTH
>> >> > Dan
>> >> >
>> >> >
>> >> >>
>> >> >> On Sun, Apr 21, 2013 at 2:43 PM, DImuthu Upeksha
>> >> >> <[email protected]> wrote:
>> >> >> > Hi Dan
>> >> >> > Yes I think that domain cache is one of the risky areas. Specially
>> >> >> > assigning android data types to properties of Domain objects. I
>> >> >> > have
>> >> >> > a
>> >> >> > rough plan for that but have some unclear areas also.
>> >> >> >
>> >> >> > Say I need to add newToDo through
>> >> >> > "http://localhost:8080/restful/services/toDoItems/actions/newToDo";
>> >> >> > So I need to add some parameters (description,category,dueBy)
>> >> >> > before
>> >> >> > invoking this.
>> >> >> >
>> >> >> > Then I should create an interface to fetch those parameters.
>> >> >> >
>> >> >> > What I can do is searching the data types of those params through
>> >> >> > "described by" link
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > "http://localhost:8080/restful/domainTypes/objstore.jdo.todo.ToDoItemsJdo/actions/newToDo";
>> >> >> >
>> >> >> > Then I can get canonicalNames of each parameter.
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > On Sat, Apr 20, 2013 at 2:14 PM, Dan Haywood
>> >> >> > <[email protected]> wrote:
>> >> >> >>
>> >> >> >> On 20 April 2013 08:32, DImuthu Upeksha
>> >> >> >> <[email protected]>
>> >> >> >> wrote:
>> >> >> >>>
>> >> >> >>>
>> >> >> >>> 1. As I'm new to Isis project I don't know coding conventions
>> >> >> >>> you
>> >> >> >>> use.
>> >> >> >>> Like packaging and naming classes
>> >> >> >>
>> >> >> >>
>> >> >> >> Our dev env standards are documented here [1].  There are some
>> >> >> >> templates etc
>> >> >> >> that you can import into Eclipse.   If you use some other IDE,
>> >> >> >> then
>> >> >> >> sorry,
>> >> >> >> we don't have any for those.
>> >> >> >>
>> >> >> >> In terms of package names, if we assume that eventually your code
>> >> >> >> will
>> >> >> >> become part of the Isis codebase, then the package name would be:
>> >> >> >>
>> >> >> >> org.apache.isis.viewer.android.xxx
>> >> >> >>
>> >> >> >> But you might want to put the code under a domain that you own
>> >> >> >> initially, eg
>> >> >> >> replacing "org.apache.isis" with (your equivalent of)
>> >> >> >> "com.danhaywood".
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>>
>> >> >> >>> 3 If you can give me a existing project which has a good
>> >> >> >>> packaging
>> >> >> >>> structure, (a github link) I will be able to refer it and have a
>> >> >> >>> clear
>> >> >> >>> idea.
>> >> >> >>
>> >> >> >>
>> >> >> >> My best suggestion is for you to look at Isis itself [2].  In
>> >> >> >> particular,
>> >> >> >> look at the viewers (wicket, restfulobjects, scimpi).
>> >> >> >>
>> >> >> >> Right now I wouldn't worry about this stuff too much.  It's good
>> >> >> >> that
>> >> >> >> you
>> >> >> >> are thinking about it, but it's not where the project risk lies.
>> >> >> >> If
>> >> >> >> I
>> >> >> >> were
>> >> >> >> you I'd focus on exploring things that you think are difficult to
>> >> >> >> do,
>> >> >> >> and
>> >> >> >> spike them.  Always better to fail early than late...
>> >> >> >>
>> >> >> >> Cheers
>> >> >> >> Dan
>> >> >> >>
>> >> >> >>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>> Thanks
>> >> >> >>> Dimuthu
>> >> >> >>>
>> >> >> >>
>> >> >> >> [1]
>> >> >> >> http://isis.apache.org/contributors/development-environment.html
>> >> >> >> [2] https://github.com/apache/isis
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > Regards
>> >> >> >
>> >> >> > W.Dimuthu Upeksha
>> >> >> > Undergraduate
>> >> >> >
>> >> >> > Department of Computer Science And Engineering
>> >> >> >
>> >> >> > University of Moratuwa, Sri Lanka
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Regards
>> >> >>
>> >> >> W.Dimuthu Upeksha
>> >> >> Undergraduate
>> >> >>
>> >> >> Department of Computer Science And Engineering
>> >> >>
>> >> >> University of Moratuwa, Sri Lanka
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Regards
>> >>
>> >> W.Dimuthu Upeksha
>> >> Undergraduate
>> >>
>> >> Department of Computer Science And Engineering
>> >>
>> >> University of Moratuwa, Sri Lanka
>> >
>> >
>>
>>
>>
>> --
>> Regards
>>
>> W.Dimuthu Upeksha
>> Undergraduate
>>
>> Department of Computer Science And Engineering
>>
>> University of Moratuwa, Sri Lanka
>
>



-- 
Regards

W.Dimuthu Upeksha
Undergraduate

Department of Computer Science And Engineering

University of Moratuwa, Sri Lanka

Reply via email to