Dan Haywood created ISIS-1001:
---------------------------------

             Summary: For hard-coded methods such as title(), iconName() and 
cssClass(), provide an alternative mechanism to specify such methods. 
                 Key: ISIS-1001
                 URL: https://issues.apache.org/jira/browse/ISIS-1001
             Project: Isis
          Issue Type: New Feature
          Components: Core
    Affects Versions: core-1.7.0
            Reporter: Dan Haywood
            Assignee: Dan Haywood
            Priority: Minor
             Fix For: core-1.9.0


The methods involved are:
- title()
- iconName()
- cssClass()   (introduced in ISIS-1000)

and the (probably to be deprecated) callback methods:
- loaded()
- saving()/persisting()
- saved()/persisted()
- updating()
- updated()
- removing()/deleting()
- deleted()/deleted()

In all cases, if the method is annotated with @Action (ISIS-990) or with 
@Programmatic then it no facet should be installed (that is, action takes 
precedence).

Also, if there is a clashing action, then an annotation should indicate the 
method (analogous to junit's @Test annotation).  Since these are all hook 
methods for Isis to call, I suggest the annotation is called @Hook, eg:

{code}
@Hook(HookType.TITLE)
String someOtherMethodActingLikeTitle() { ... }

@Hook(HookType.ICON_NAME)
String someMethodActingLikeIconName() {  .... }

@Hook(HookType.CSS_CLASS)
String someMethodActingLikeCssClass() { ... }
{code}

If an annotation doesn't appeal, we could instead define a special prefix, eg 
"__isis_xxx" (cf JUnit3's testXxx).  For example:

{code}
String __isis_title() { ... }
String __isis_iconName() { ... }
String __isis_cssClass() { ... }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to