[ https://issues.apache.org/jira/browse/ISIS-1001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Haywood updated ISIS-1001: ------------------------------ Fix Version/s: (was: 2.7.0) 1.20.0 > For hard-coded methods such as title(), iconName(), and cssClass(), > hidden(), disabled(), validate(), 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 > Priority: Minor > Fix For: 1.20.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 (v7.6.3#76005)