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)