Many thanks, Dan.

> El 3/1/2015, a las 16:39, Dan Haywood <[email protected]> 
> escribió:
> 
> I've raised
> * ISIS-993 [1] - for splitting out object into multiple tabs and 
> * ISIS-994 [2] - contributed properties that return a URL should be shown 
> inline within an iframe.
> 
> 
> [1] https://issues.apache.org/jira/browse/ISIS-993
> [2] https://issues.apache.org/jira/browse/ISIS-994
> 
>> On 13 December 2014 at 17:32, GESCONSULTOR - Óscar Bou 
>> <[email protected]> wrote:
>> Hi to all.
>> 
>> I've uploaded some screenshots.
>> 
>> I'm going to explain different behaviors or implementation alternatives that 
>> perhaps are of interest, including the ones exposed on previous posts on 
>> this thread.
>> 
>> On [1], you can see the general current appearance of our entity forms. 
>> Perhaps we wouldn't choose the toolbar paradigm right now, but it allows to 
>> keep all forms with similar look&feel and a predefined set of actions 
>> defined.
>> 
>> The green menu button contains menu items for all factory methods of the 
>> current entity.
>> The grey one contains the available actions detected through Isis metadata.
>> 
>> I'll explain on a coming thread an alternative implementation for default 
>> "entity delete" and "collection remove" actions.
>> 
>> As you can see, there are 2 different rows of tabs: the outer ones 
>> (Contributed Tabs) and the inner ones (Views).
>> 
>> *** ENTITY VIEWS ***
>> 
>> On screenshot [2] I've identified the inner tabs. 
>> Those are automatically generated as a complement to "sections". We call 
>> them "Views".
>> That way, we can divide entity properties and collections not only in 
>> sections, but also on different views. There's always a "General" view 
>> present by default.
>> 
>> The annotations for Entities (@XMSViews) & Property (@XMSInViews - same 
>> property/collection could be shown in more than one view) can be used as in 
>> this example:
>> 
>> 
>> @XMSViews({ @XMSView(name = "Dependency Assets", sequence = 110), 
>> @XMSView(name = "Impacted Assets", sequence = 120),
>>     @XMSView(name = "Associated Costs", sequence = 130) })
>> public abstract class Asset extends AbstractMultiTenantEntity {
>> 
>>     // {{ RelationshipsWithDirectlyImpactedAssets (Collection)
>>     @Persistent(mappedBy = "sourceAsset", dependentElement = "false")
>>     private SortedSet<Relationship> relationshipsWithDirectlyImpactedAssets 
>> = new TreeSet<Relationship>();
>> 
>>     @Named("(SUMMARY) Relationships - Directly Impacted Assets")
>>     @XMSInViews("Impacted Assets", "Other View")
>>     @MemberOrder(sequence = "999")
>>     public SortedSet<Relationship> 
>> getRelationshipsWithDirectlyImpactedAssets() {
>>         return this.relationshipsWithDirectlyImpactedAssets;
>>     }
>> 
>>     public void setRelationshipsWithDirectlyImpactedAssets(final 
>> SortedSet<Relationship> relationshipsAsSource) {
>>         this.relationshipsWithDirectlyImpactedAssets = relationshipsAsSource;
>>     }
>> 
>>     // }}
>>    
>>     ...
>> 
>> }
>> 
>> 
>> *** CONTRIBUTED VIEWS ***
>> 
>> On screenshot [3], I've identified the contributed tabs.
>> 
>> They should the result of a contributed action on a different tab, instead 
>> of being showed as a contributed property/collection.
>> 
>> For example, in [4] you can see the form corresponding to the Entity 
>> returned by an action that has been properly annotated on a Service with 
>> @XMSContributedView (our current implementation is a bit different, as we 
>> were including translations on them; but I've preferred to simplify).
>> 
>> public class AssetsBCMInformation extends 
>> AbstractSingletonMultiTenantObjectRepositoryAndFactory<AssetBCMInformation> {
>> 
>>     @NotContributed(As.EITHER)
>>     @DescribedAs("Contains the detailed Business Continuity Requirements for 
>> a given Asset")
>>     @ActionSemantics(Of.SAFE)
>>     @XMSContributedView
>>     public AssetBCMInformation businessContinuityInformation(@Named("Asset") 
>> final Asset asset) {
>>       ...
>>    }
>> 
>>    ...
>> }
>> 
>> 
>> Perhaps both Entity & Contributed Views could be showed all-together on the 
>> same tab control, without requiring two tab rows.
>> 
>> 
>> **** CONTRIBUTED VIEW REFERRING TO AN EXTERNAL URL ***
>> 
>> On [5], the content of a Contributed View is an external URL (on this case 
>> is a highly customized diagram editor).
>> 
>> 
>> Hope all this helps to clarify past posts ...  :)
>> 
>> 
>> Regards,
>> 
>> Oscar
>> 
>> 
>> [1] http://s23.postimg.org/ndvn4huez/Main_Form.png
>> [2] http://postimg.org/image/xg7mbfvh9/
>> [3] http://postimg.org/image/ucxki507l/
>> [4] http://postimg.org/image/43plbkg7j/
>> [5] http://postimg.org/image/k83i6b70x/
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>> El 12/12/2014, a las 15:31, GESCONSULTOR <[email protected]> escribió:
>>> 
>>> 
>>> Ok. 
>>> 
>>> I'll send them this weekend.
>>> 
>>> 
>>>> El 12/12/2014, a las 14:47, Dan Haywood <[email protected]> 
>>>> escribió:
>>>> 
>>>> Some screenshots/sketches would probably be useful; I'm not certain I'm
>>>> following everything you're saying here.
>>>> 
>>>> 
>>>>> On 12 December 2014 at 13:37, GESCONSULTOR <[email protected]> wrote:
>>>>> 
>>>>> Also, not sure about the default...
>>>>> 
>>>>> I think that they should be shown by default on the same page.
>>>>> 
>>>>> At least, is our current implementation and is working nicely.
>>>>> 
>>>>> Sorry ... :)
>>>>> 
>>>>> 
>>>>>>> El 12/12/2014, a las 14:29, Dan Haywood <[email protected]>
>>>>>> escribió:
>>>>>> 
>>>>>> ok, yes, that helps.
>>>>>> 
>>>>>> In which case I think that all would be required is to extend
>>>>>> @PropertyLayout / @CollectionLayout (or equivalently .layout.json file)
>>>>> to
>>>>>> specify the tab.  This could apply both to regular and contributed
>>>>>> properties and collections.  I guess there could be some defaults so that
>>>>>> contributed collections appear on different tabs by default.
>>>>>> 
>>>>>> ~~~
>>>>>> One complication here is that Jeroen and I have also been (off-list)
>>>>>> mulling over the idea of implementing bookmarks as tabs... each opened
>>>>>> object is shown on a separate tab (like tabs in a browser, I suppose).
>>>>>> Separating out a single entity into multiple tabs would then result in
>>>>> tabs
>>>>>> within tabs, which might be confusing.
>>>>>> 
>>>>>> Thoughts?
>>>>>> 
>>>>>> Dan
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On 12 December 2014 at 13:15, GESCONSULTOR <[email protected]>
>>>>> wrote:
>>>>>>> 
>>>>>>> Hi dan.
>>>>>>> 
>>>>>>> I Remember hen you implemented contributions that I thought it was
>>>>> really
>>>>>>> similar (in fact, more powerful).
>>>>>>> 
>>>>>>> I've used it also in our domain, and works wonderfully.
>>>>>>> 
>>>>>>> The point here is that the returning entity, instead of being showed as
>>>>> a
>>>>>>> property with a link to open it, is fully opened as an "attached tab".
>>>>>>> 
>>>>>>> That way we,be found is more intuitive for the user, as it naturally
>>>>> looks
>>>>>>> at all tabs, containing each one information related to the main entity,
>>>>>>> coming from different BCs.
>>>>>>> 
>>>>>>> HTH,
>>>>>>> 
>>>>>>> Oscar
>>>>>>> 
>>>>>>> 
>>>>>>>>> El 12/12/2014, a las 13:54, Dan Haywood <[email protected]
>>>>>> 
>>>>>>>> escribió:
>>>>>>>> 
>>>>>>>> Hi Oscar,
>>>>>>>> 
>>>>>>>> this sounds like contributed properties and collections... something
>>>>>>>> already implemented?
>>>>>>>> 
>>>>>>>> The only difference is that we don't have put the contributions in
>>>>>>> separate
>>>>>>>> tabs; they are indistinguishable from "regular" properties/collections.
>>>>>>>> 
>>>>>>>> For example, in the todo app the "relative priority" property is
>>>>>>>> contributed, as is the "similar items" collection.  Basically these are
>>>>>>>> actions on services that take a single ToDoItem and return either a
>>>>>>> single
>>>>>>>> object (= contributed property) or a list of objects (= contributed
>>>>>>>> collection).
>>>>>>>> 
>>>>>>>> With respect to the validator, the usual hideXxx, disableXxx rules
>>>>> apply.
>>>>>>>> 
>>>>>>>> Note that contributed properties can't be updated; but (in Estatio at
>>>>>>>> least) we only now update using actions.
>>>>>>>> 
>>>>>>>> Have I understand you correctly?
>>>>>>>> 
>>>>>>>> Cheers
>>>>>>>> Dan
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On 12 December 2014 at 12:20, GESCONSULTOR <[email protected]>
>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> There is other Important UI hint we implemented, perhaps useful from
>>>>> the
>>>>>>>>> DCI perspective, regarding showing as "attached tabs" to one entity's
>>>>>>> form,
>>>>>>>>> information returned from another action (from URLs like this case,
>>>>>>> other
>>>>>>>>> entity "extending" on other DDD module this one - for example, think
>>>>> of
>>>>>>>>> another module holding information generating ToDoItems when a Task
>>>>>>>>> -different Entity- is created. And we don't want to create a
>>>>> dependency
>>>>>>> on
>>>>>>>>> the ToDoItem module. In that case we want, when the user accesses the
>>>>>>>>> ToDoItem page, to show the Task "attached" to it.
>>>>>>>>> 
>>>>>>>>> For that we have an annotation on the action, indicating that the
>>>>>>>>> resulting "object" must be showed as an "attached tab" (or any other
>>>>>>>>> similar way) when showing entities of the specified class passed as an
>>>>>>>>> annotation field.
>>>>>>>>> 
>>>>>>>>> As an improvement, Per-entity a validation could be done (by means of
>>>>> a
>>>>>>>>> validator class that receives the concrete entity showing, in order to
>>>>>>>>> decide if for that concrete instance it can be showed (or perhaps not
>>>>>>>>> showing if it's returning null).
>>>>>>>>> 
>>>>>>>>> I don't have here my laptop but can provide an example tomorrow.
>>>>>>>>> 
>>>>>>>>> thanks,
>>>>>>>>> 
>>>>>>>>> Oscar
>> 
>> 
>> Óscar Bou Bou
>> Responsable de Producto
>> Auditor Jefe de Certificación ISO 27001 en BSI
>> CISA, CRISC, APMG ISO 20000, ITIL-F
>> 
>>    902 900 231 / 620 267 520
>>    http://www.twitter.com/oscarbou
>> 
>>    http://es.linkedin.com/in/oscarbou
>> 
>>    http://www.GesConsultor.com 
>> 
>> 
>> 
>> 
>> Este mensaje y los ficheros anexos son confidenciales. Los mismos contienen 
>> información reservada que no puede ser difundida. Si usted ha recibido este 
>> correo por error, tenga la amabilidad de eliminarlo de su sistema y avisar 
>> al remitente mediante reenvío a su dirección electrónica; no deberá copiar 
>> el mensaje ni divulgar su contenido a ninguna persona.
>> Su dirección de correo electrónico junto a sus datos personales constan en 
>> un fichero titularidad de Gesdatos Software, S.L. cuya finalidad es la de 
>> mantener el contacto con Ud. Si quiere saber de qué información disponemos 
>> de Ud., modificarla, y en su caso, cancelarla, puede hacerlo enviando un 
>> escrito al efecto, acompañado de una fotocopia de su D.N.I. a la siguiente 
>> dirección: Gesdatos Software, S.L. , Paseo de la Castellana, 153 bajo - 
>> 28046 (Madrid), y Avda. Cortes Valencianas num. 50, 1ºC - 46015 (Valencia). 
>> Asimismo, es su responsabilidad comprobar que este mensaje o sus archivos 
>> adjuntos no contengan virus informáticos, y en caso que los tuvieran 
>> eliminarlos.
> 

Reply via email to