Files
Babydatenbank/web/xava/detail.jsp
Socrates 9ed0f2a056 test
2020-05-26 10:29:34 +02:00

327 lines
13 KiB
Plaintext

<%@ include file="imports.jsp"%>
<%@ page import="java.util.Iterator" %>
<%@ page import="org.openxava.view.View" %>
<%@ page import="org.openxava.util.XavaPreferences" %>
<%@ page import="org.openxava.view.meta.MetaGroup" %>
<%@ page import="org.openxava.view.meta.PropertiesSeparator" %>
<%@ page import="org.openxava.model.meta.MetaProperty" %>
<%@ page import="org.openxava.model.meta.MetaReference" %>
<%@ page import="org.openxava.model.meta.MetaCollection" %>
<%@ page import="org.openxava.web.WebEditors" %>
<%@ page import="org.openxava.web.taglib.IdTag"%>
<%@ page import="org.openxava.web.Ids"%>
<%@ page import="org.openxava.model.meta.MetaMember"%>
<jsp:useBean id="errors" class="org.openxava.util.Messages" scope="request"/>
<jsp:useBean id="context" class="org.openxava.controller.ModuleContext" scope="session"/>
<jsp:useBean id="style" class="org.openxava.web.style.Style" scope="request"/>
<%!
private boolean hasFrame(MetaMember m, View view) {
if (m instanceof MetaProperty) {
return WebEditors.hasFrame((MetaProperty) m, view.getViewName());
}
if (m instanceof MetaReference) {
return !view.displayReferenceWithNoFrameEditor((MetaReference) m);
}
return true;
}
private String openDivForFrame(View view) {
if (view.isFrame()) return openDiv(view);
return "<div>" + openDiv(view);
}
private String closeDivForFrame(View view) {
if (view.isFrame()) return closeDiv(view);
return closeDiv(view) + "</div>";
}
private String openDiv(View view) {
if (view.isFlowLayout()) return "";
return view.isFrame()?"<div class='ox-layout-detail'>":"";
}
private String closeDiv(View view) {
if (view.isFlowLayout()) return "";
return view.isFrame()?"</div>":"";
}
%>
<%
String viewObject = request.getParameter("viewObject");
viewObject = (viewObject == null || viewObject.equals(""))?"xava_view":viewObject;
org.openxava.view.View view = (org.openxava.view.View) context.get(request, viewObject);
view.setViewObject(viewObject);
String propertyPrefix = request.getParameter("propertyPrefix");
String representsSection = request.getParameter("representsSection");
boolean isSection = "true".equalsIgnoreCase(representsSection);
propertyPrefix = (propertyPrefix == null || "null".equals(propertyPrefix))?"":propertyPrefix;
view.setPropertyPrefix(propertyPrefix);
boolean onlySections = view.hasSections() && view.getMetaMembers().isEmpty();
%>
<%
if (!onlySections) { // IF Not Only Sections
%>
<%=openDiv(view)%>
<%
Iterator it = view.getMetaMembers().iterator();
String sfirst = request.getParameter("first");
boolean first = !"false".equals(sfirst);
while (it.hasNext()) { // WHILE hasNext
MetaMember m = (MetaMember) it.next();
int frameWidth = view.isVariousMembersInSameLine(m)?0:100;
if (m instanceof MetaProperty) { // IF MetaProperty
MetaProperty p = (MetaProperty) m;
if (!PropertiesSeparator.INSTANCE.equals(m)) { // IF Not Properties Separator
boolean hasFrame = WebEditors.hasFrame(p, view.getViewName());
String propertyKey= Ids.decorate(
request.getParameter("application"),
request.getParameter("module"),
propertyPrefix + p.getName());
request.setAttribute(propertyKey, p);
String urlEditor = "editor.jsp" // in this way because websphere 6 has problems with jsp:param
+ "?propertyKey=" + propertyKey
+ "&first=" + first
+ "&hasFrame=" + hasFrame;
boolean withFrame = hasFrame &&
(!view.isSection() || view.getMetaMembers().size() > 1);
if (withFrame) { // IF MetaPropertt With Frame
String labelKey = Ids.decorate(
request.getParameter("application"),
request.getParameter("module"),
"label_" + propertyPrefix + p.getName());
String label = view.getLabelFor(p);
%>
<%=closeDivForFrame(view)%>
<%=style.getFrameHeaderStartDecoration(frameWidth) %>
<%=style.getFrameTitleStartDecoration() %>
<span id="<%=labelKey%>"><%=label%></span>
<%=style.getFrameTitleEndDecoration() %>
<%=style.getFrameActionsStartDecoration()%>
<%
String frameId = Ids.decorate(request, "frame_" + view.getPropertyPrefix() + p.getName());
String frameActionsURL = "frameActions.jsp?frameId=" + frameId +
"&closed=" + view.isFrameClosed(frameId);
%>
<jsp:include page='<%=frameActionsURL%>'/>
<%=style.getFrameActionsEndDecoration()%>
<%@ include file="propertyActionsExt.jsp"%>
<%=style.getFrameHeaderEndDecoration() %>
<%=style.getFrameContentStartDecoration(frameId + "content", view.isFrameClosed(frameId))%>
<%
} // END MetaProperty With Frame
%>
<jsp:include page="<%=urlEditor%>" />
<%
if (withFrame) { // IF MetaProperty With Frame
%>
<%=style.getFrameContentEndDecoration() %>
<%=openDivForFrame(view)%>
<%
} // END IF MetaProperty With Frame
first = false;
} // END IF Not Properties Separator
else { // IF Properties Separator
if (!it.hasNext()) break;
first = true;
%>
<div class="ox-layout-new-line"></div>
<%
} // END IF Properties Separator
} // END IF MetaProperty
else { // IF Not MetaProperty
if (m instanceof MetaReference) { // IF MetaReference
MetaReference ref = (MetaReference) m;
String referenceKey = Ids.decorate(
request.getParameter("application"),
request.getParameter("module"),
propertyPrefix + ref.getName());
request.setAttribute(referenceKey, ref);
if (view.displayReferenceWithNoFrameEditor(ref)) { // IF Display Reference Without Frame
String urlReferenceEditor = "reference.jsp" // in this way because websphere 6 has problems with jsp:param
+ "?referenceKey=" + referenceKey
+ "&first=" + first
+ "&frame=false&composite=false&onlyEditor=false";
%>
<jsp:include page="<%=urlReferenceEditor%>"/>
<%
first = false;
} // END IF Display MetaReference Without Frame
else { // IF Display MeteReference With Frame
String viewName = viewObject + "_" + ref.getName();
View subview = view.getSubview(ref.getName());
context.put(request, viewName, subview);
subview.setViewObject(viewName);
String propertyInReferencePrefix = propertyPrefix + ref.getName() + ".";
boolean withFrame = subview.displayWithFrame();
boolean firstForSubdetail = first || withFrame;
if (withFrame) { // IF MetaReference With Frame
String labelKey = Ids.decorate(
request.getParameter("application"),
request.getParameter("module"),
"label_" + propertyPrefix + ref.getName());
String label = view.getLabelFor(ref);
%>
<%=closeDivForFrame(view)%>
<%=style.getFrameHeaderStartDecoration(frameWidth) %>
<%=style.getFrameTitleStartDecoration() %>
<span id="<%=labelKey%>"><%=label%></span>
<% if (!ref.isAggregate()) { %>
<jsp:include page="referenceFrameHeader.jsp">
<jsp:param name="referenceName" value="<%=ref.getName()%>"/>
<jsp:param name="viewObject" value="<%=viewObject%>"/>
</jsp:include>
<% } %>
<%=style.getFrameTitleEndDecoration() %>
<%=style.getFrameActionsStartDecoration()%>
<%
String frameId = Ids.decorate(request, "frame_" + view.getPropertyPrefix() + ref.getName());
String frameActionsURL = "frameActions.jsp?frameId=" + frameId +
"&closed=" + view.isFrameClosed(frameId);
%>
<jsp:include page='<%=frameActionsURL%>'/>
<%=style.getFrameActionsEndDecoration()%>
<%@ include file="referenceFrameHeaderExt.jsp"%>
<%=style.getFrameHeaderEndDecoration() %>
<%=style.getFrameContentStartDecoration(frameId + "content", view.isFrameClosed(frameId)) %>
<%
} // END IF MetaReference With Frame
String urlReferenceEditor = null;
if (view.displayReferenceWithNotCompositeEditor(ref)) { // IF Display Reference Without Composite Editor
urlReferenceEditor = "reference.jsp" // in this way because websphere 6 has problems with jsp:param
+ "?referenceKey=" + referenceKey
+ "&onlyEditor=true&frame=true&composite=false"
+ "&first=" + first;
} // END IF Display Reference Without Composite Editor
else { // IF Display Reference With Composite Editor
urlReferenceEditor = "reference.jsp" // in this way because websphere 6 has problems with jsp:param
+ "?referenceKey=" + referenceKey
+ "&onlyEditor=true&frame=true&composite=true"
+ "&refViewObject=" + viewName
+ "&propertyPrefix=" + propertyInReferencePrefix
+ "&first=" + firstForSubdetail;
} // END IF Display Reference With Composite Editor
%>
<jsp:include page="<%=urlReferenceEditor%>"/>
<%
if (withFrame) { // IF MetaReference With Frame
%>
<%=style.getFrameContentEndDecoration() %>
<%=openDivForFrame(view)%>
<%
} // END IF MetaReference With Frame
} // END Display MetaReference With Frame
first = false;
} else if (m instanceof MetaCollection) { // IF MetaCollection
MetaCollection collection = (MetaCollection) m;
boolean withFrame = !view.isSection() || view.getMetaMembers().size() > 1;
boolean variousCollectionInLine = view.isVariousCollectionsInSameLine((MetaMember) m);
%>
<%=closeDivForFrame(view)%>
<%
if (withFrame) { // IF MetaCollection With Frame
%>
<%=style.getCollectionFrameHeaderStartDecoration(variousCollectionInLine?50:frameWidth)%>
<%=style.getFrameTitleStartDecoration()%>
<%=collection.getLabel(request) %>
<%
String frameId = Ids.decorate(request, "frame_" + view.getPropertyPrefix() + collection.getName());
String colletionHeaderId = frameId + "header";
%>
<span id="<xava:id name='<%=colletionHeaderId%>'/>">
<jsp:include page="collectionFrameHeader.jsp">
<jsp:param name="collectionName" value="<%=collection.getName()%>"/>
<jsp:param name="viewObject" value="<%=viewObject%>"/>
</jsp:include>
</span>
<%=style.getFrameTitleEndDecoration()%>
<%=style.getFrameActionsStartDecoration()%>
<%
String frameActionsURL = "frameActions.jsp?frameId=" + frameId +
"&closed=" + view.isFrameClosed(frameId);
%>
<jsp:include page='<%=frameActionsURL%>'/>
<%=style.getFrameActionsEndDecoration()%>
<%@ include file="collectionFrameHeaderExt.jsp"%>
<%=style.getFrameHeaderEndDecoration()%>
<%=style.getFrameContentStartDecoration(frameId + "content", view.isFrameClosed(frameId))%>
<%
} // END IF MetaCollection With Frame
%>
<%
String collectionPrefix = propertyPrefix == null?collection.getName() + ".":propertyPrefix + collection.getName() + ".";
%>
<div id="<xava:id name='<%="collection_" + collectionPrefix%>'/>">
<jsp:include page="collection.jsp">
<jsp:param name="collectionName" value="<%=collection.getName()%>"/>
<jsp:param name="viewObject" value="<%=viewObject%>"/>
</jsp:include>
</div>
<%
if (withFrame) { // IF MetaCollection With Frame
%>
<%=style.getFrameContentEndDecoration()%>
<%
} // END IF MetaCollection With Frame
%>
<%=openDivForFrame(view)%>
<%
} else if (m instanceof MetaGroup) { // IF MetaGroup
MetaGroup group = (MetaGroup) m;
String viewName = viewObject + "_" + group.getName();
View subview = view.getGroupView(group.getName());
context.put(request, viewName, subview);
%>
<%=closeDivForFrame(view)%>
<%=style.getFrameHeaderStartDecoration(frameWidth)%>
<%=style.getFrameTitleStartDecoration()%>
<% String labelId = Ids.decorate(request, "label_" + view.getPropertyPrefix() + group.getName()); %>
<span id="<%=labelId%>"><%=group.getLabel(request)%></span>
<%=style.getFrameTitleEndDecoration()%>
<%=style.getFrameActionsStartDecoration()%>
<%
String frameId = Ids.decorate(request, "frame_group_" + view.getPropertyPrefix() + group.getName());
String frameActionsURL = "frameActions.jsp?frameId=" + frameId +
"&closed=" + view.isFrameClosed(frameId);
%>
<jsp:include page='<%=frameActionsURL%>'/>
<%=style.getFrameActionsEndDecoration()%>
<%=style.getFrameHeaderEndDecoration()%>
<%=style.getFrameContentStartDecoration(frameId + "content", view.isFrameClosed(frameId)) %>
<% if (view.isFlowLayout()) { %>
<div class='ox-flow-layout'>
<% } %>
<jsp:include page="detail.jsp">
<jsp:param name="viewObject" value="<%=viewName%>" />
</jsp:include>
<% if (view.isFlowLayout()) { %>
</div>
<% } %>
<%=style.getFrameContentEndDecoration() %>
<%=openDivForFrame(view)%>
<%
} // END IF MetaGroup
} // END IF Not MetaProperty
} // END While hasNext
%>
<%=closeDiv(view)%>
<%
} // END if (!onlySections) {
%>
<%
if (view.hasSections()) { // IF Has Sections
%>
<div id="<xava:id name='<%="sections_" + viewObject%>'/>" class="<%=style.getSections()%>">
<jsp:include page="sections.jsp"/>
</div>
<%
}
%>