}
public void addWithRoles(
final ActionLink link, final ActionLink.ActionType type, final String roles, final boolean enabled) {
Fragment fragment = null;
switch (type) {
case CLAIM:
fragment = new Fragment("panelClaim", "fragmentClaim", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("claimLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case CREATE:
fragment = new Fragment("panelCreate", "fragmentCreate", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("createLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case EDIT:
fragment = new Fragment("panelEdit", "fragmentEdit", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("editLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case USER_TEMPLATE:
fragment = new Fragment("panelUserTemplate", "fragmentUserTemplate", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("userTemplateLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case ROLE_TEMPLATE:
fragment = new Fragment("panelRoleTemplate", "fragmentRoleTemplate", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("roleTemplateLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case ENABLE:
fragment = new Fragment("panelEnable", "fragmentEnable", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("enableLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case SEARCH:
fragment = new Fragment("panelSearch", "fragmentSearch", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("searchLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case EXECUTE:
fragment = new Fragment("panelExecute", "fragmentExecute", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("executeLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case DRYRUN:
fragment = new Fragment("panelDryRun", "fragmentDryRun", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("dryRunLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case DELETE:
fragment = new Fragment("panelDelete", "fragmentDelete", this);
fragment.addOrReplace(new IndicatingDeleteOnConfirmAjaxLink("deleteLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case SELECT:
fragment = new Fragment("panelSelect", "fragmentSelect", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("selectLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case EXPORT:
fragment = new Fragment("panelExport", "fragmentExport", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink("exportLink", pageRef) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case SUSPEND:
fragment = new Fragment("panelSuspend", "fragmentSuspend", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink<Void>("suspendLink", pageRef) {
private static final long serialVersionUID = -6957616042924610291L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case REACTIVATE:
fragment = new Fragment("panelReactivate", "fragmentReactivate", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink<Void>("reactivateLink", pageRef) {
private static final long serialVersionUID = -6957616042924610292L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case RELOAD:
fragment = new Fragment("panelReload", "fragmentReload", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink<Void>("reloadLink", pageRef) {
private static final long serialVersionUID = -6957616042924610293L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
case CHANGE_VIEW:
fragment = new Fragment("panelChangeView", "fragmentChangeView", this);
fragment.addOrReplace(new ClearIndicatingAjaxLink<Void>("changeViewLink", pageRef) {
private static final long serialVersionUID = -6957616042924610292L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
link.onClick(target);
}
});
break;
default:
// do nothink
}
if (fragment != null) {
fragment.setEnabled(enabled);
MetaDataRoleAuthorizationStrategy.authorize(fragment, ENABLE, roles);
super.addOrReplace(fragment);
}
}