private void addAnnotationActions(ResourceMap resourceMap) {
Class<?> actionsClass = getActionsClass();
for (Method m : actionsClass.getDeclaredMethods()) {
Action action = m.getAnnotation(Action.class);
if (action != null) {
String methodName = m.getName();
String enabledProperty = aString(action.enabledProperty(), null);
String selectedProperty = aString(action.selectedProperty(), null);
String actionName = aString(action.name(), methodName);
Task.BlockingScope block = action.block();
ApplicationAction appAction =
new ApplicationAction(this, resourceMap, actionName, m, enabledProperty, selectedProperty, block);
putAction(actionName, appAction);
}
}
ProxyActions proxyActionsAnnotation = actionsClass.getAnnotation(ProxyActions.class);
if (proxyActionsAnnotation != null) {
for(String actionName : proxyActionsAnnotation.value()) {
ApplicationAction appAction = new ApplicationAction(this, resourceMap, actionName);
appAction.setEnabled(false);
putAction(actionName, appAction);
proxyActions.add(appAction);
}
}
}