@Override public void process(final Request request) { final FormFieldBlock block = (FormFieldBlock) request.getBlockContent(); final String field = request.getRequiredProperty(FIELD); if (block.isVisible(field)) { processElement(request, block, field); } request.skipUntilClose(); }
@Override public void process(final Request request) { final TableBlock tableBlock = (TableBlock) request.getBlockContent(); final String id = request.getOptionalProperty(OBJECT); final String fieldName = request.getRequiredProperty(FIELD); final String linkView = request.getOptionalProperty(LINK_VIEW); String className = request.getOptionalProperty(CLASS); className = className == null ? "" : " class=\"" + className + "\""; RequestContext context = request.getContext(); final ObjectAdapter object = context.getMappedObjectOrVariable(id, tableBlock.getElementName()); final ObjectAssociation field = object.getSpecification().getAssociation(fieldName); if (field == null) { throw new ScimpiException( "No field " + fieldName + " in " + object.getSpecification().getFullIdentifier()); } request.appendHtml("<td" + className + ">"); if (field.isVisible(IsisContext.getAuthenticationSession(), object, where).isAllowed()) { final ObjectAdapter fieldReference = field.get(object); final String source = fieldReference == null ? "" : context.mapObject(fieldReference, Scope.REQUEST); final String name = request.getOptionalProperty(RESULT_NAME, fieldName); context.addVariable(name, Request.getEncoder().encoder(source), Scope.REQUEST); if (linkView != null) { final String linkId = context.mapObject(object, Scope.REQUEST); final String linkName = request.getOptionalProperty(LINK_NAME, RequestContext.RESULT); final String linkObject = request.getOptionalProperty(LINK_OBJECT, linkId); request.appendHtml( "<a href=\"" + linkView + "?" + linkName + "=" + linkObject + context.encodedInteractionParameters() + "\">"); } else if (tableBlock.getlinkView() != null) { String linkObjectInVariable = tableBlock.getElementName(); final String linkId = (String) context.getVariable(linkObjectInVariable); request.appendHtml( "<a href=\"" + tableBlock.getlinkView() + "?" + tableBlock.getlinkName() + "=" + linkId + context.encodedInteractionParameters() + "\">"); } request.pushNewBuffer(); request.processUtilCloseTag(); final String buffer = request.popBuffer(); if (buffer.trim().length() == 0) { request.appendAsHtmlEncoded(fieldReference == null ? "" : fieldReference.titleString()); } else { request.appendHtml(buffer); } if (linkView != null) { request.appendHtml("</a>"); } } else { request.skipUntilClose(); } request.appendHtml("</td>"); }