use of com.helger.photon.core.menu.IMenuObject in project peppol-practical by phax.
the class AppCommonUI method createViewLink.
@Nonnull
public static IHCNode createViewLink(@Nonnull final IWebPageExecutionContext aWPEC, @Nullable final ITypedObject<String> aObject, @Nullable final String sDisplayName) {
if (aObject == null)
return HCTextNode.createOnDemand(sDisplayName);
final Locale aDisplayLocale = aWPEC.getDisplayLocale();
if (aObject instanceof IRole) {
final IRole aTypedObj = (IRole) aObject;
final String sRealDisplayName = sDisplayName != null ? sDisplayName : aTypedObj.getName();
final String sMenuItemID = BootstrapPagesMenuConfigurator.MENU_ADMIN_SECURITY_ROLE;
final IMenuObject aObj = aWPEC.getMenuTree().getItemDataWithID(sMenuItemID);
if (aObj != null && aObj.matchesDisplayFilter())
return new HCA(getViewLink(aWPEC, sMenuItemID, aTypedObj)).addChild(sRealDisplayName).setTitle("Show details of role '" + sRealDisplayName + "'");
return new HCTextNode(sRealDisplayName);
}
if (aObject instanceof IUser) {
final IUser aTypedObj = (IUser) aObject;
final String sRealDisplayName = sDisplayName != null ? sDisplayName : SecurityHelper.getUserDisplayName(aTypedObj, aDisplayLocale);
final String sMenuItemID = BootstrapPagesMenuConfigurator.MENU_ADMIN_SECURITY_USER;
final IMenuObject aObj = aWPEC.getMenuTree().getItemDataWithID(sMenuItemID);
if (aObj != null && aObj.matchesDisplayFilter())
return new HCA(getViewLink(aWPEC, sMenuItemID, aTypedObj)).addChild(sRealDisplayName).setTitle("Show details of user '" + sRealDisplayName + "'");
return new HCTextNode(sRealDisplayName);
}
if (aObject instanceof IUserGroup) {
final IUserGroup aTypedObj = (IUserGroup) aObject;
final String sRealDisplayName = sDisplayName != null ? sDisplayName : aTypedObj.getName();
final String sMenuItemID = BootstrapPagesMenuConfigurator.MENU_ADMIN_SECURITY_USER_GROUP;
final IMenuObject aObj = aWPEC.getMenuTree().getItemDataWithID(sMenuItemID);
if (aObj != null && aObj.matchesDisplayFilter())
return new HCA(getViewLink(aWPEC, sMenuItemID, aTypedObj)).addChild(sRealDisplayName).setTitle("Show details of user group '" + sRealDisplayName + "'");
return new HCTextNode(sRealDisplayName);
}
// add other types as desired
throw new IllegalArgumentException("Unsupported object: " + aObject);
}
Aggregations