blob: ec23dc153a107fc00e80aa35d20cefe54c5ed15f [file] [log] [blame]
<%
/*******************************************************************************
* Copyright (c) 2002, 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
%>
<%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.*,
org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.*,
org.eclipse.wst.ws.internal.explorer.platform.perspective.*,
org.eclipse.xsd.*" %>
<jsp:useBean id="controller" class="org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller" scope="session"/>
<jsp:useBean id="fragID" class="java.lang.StringBuffer" scope="request"/>
<jsp:useBean id="nodeID" class="java.lang.StringBuffer" scope="request"/>
<script language="javascript">
function choose(select) {
for (var i = 0; i < select.options.length; i++) {
var tableContainerID = '<%=FragmentConstants.TABLE_ID%>';
tableContainerID += select.options(i).value;
showTable(tableContainerID, select.options(i).selected);
}
}
function showTable(tableContainerID, show) {
var tableContainer = document.getElementById(tableContainerID);
if (show)
tableContainer.style.display = "";
else
tableContainer.style.display = "none";
}
</script>
<%
WSDLPerspective wsdlPerspective = controller.getWSDLPerspective();
Node selectedNode = wsdlPerspective.getNodeManager().getNode(Integer.parseInt(nodeID.toString()));
WSDLOperationElement operElement = (WSDLOperationElement)selectedNode.getTreeElement();
IXSDGroupChoiceFragment frag = (IXSDGroupChoiceFragment)operElement.getFragmentByID(fragID.toString());
XSDToFragmentConfiguration xsdConfig = frag.getXSDToFragmentConfiguration();
%>
<table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "rangefragtable" : "innerrangefragtable")%>">
<tr>
<th class="headercolor" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_CHOICES")%></th>
<th class="headercolor" width="100%" nowrap><%=wsdlPerspective.getMessage("FORM_LABEL_ELEMENTS")%></th>
</tr>
<%
XSDParticle[] choices = frag.getChoices();
String[] groupIDs = frag.getGroupIDs();
for (int i = 0; i < xsdConfig.getMaxOccurs(); i++) {
String groupID;
int choiceIndex;
if (i < groupIDs.length) {
groupID = groupIDs[i];
choiceIndex = frag.getChoiceIndex(groupID);
}
else {
groupID = frag.createGroupChoiceInstance(0);
choiceIndex = 0;
}
IXSDFragment[] choiceFrags = frag.getGroupMemberFragments(groupID);
%>
<tr>
<td class="tablecells">
<input type="hidden" name="<%=frag.getID()%>" value="<%=groupID%>">
<select id="<%=groupID%>" name="<%=groupID%>" onChange="javascript:choose(this)" title="<%=wsdlPerspective.getMessage("FORM_CONTROL_TITLE_SELECT_CHOICES")%>">
<%
for (int j = 0; j < choiceFrags.length; j++) {
XSDComponent xsdComponent = choiceFrags[j].getXSDToFragmentConfiguration().getXSDComponent();
String name = "";
if(xsdComponent instanceof XSDElementDeclaration)
name = ((XSDElementDeclaration)xsdComponent).getQName();
else
name = xsdComponent.getElement().getTagName();
if (j == choiceIndex) {
%>
<option value="<%=choiceFrags[j].getID()%>" selected><%=name%>
<%
}
else {
%>
<option value="<%=choiceFrags[j].getID()%>"><%=name%>
<%
}
}
%>
</select>
</td>
<td class="tablecells">
<%
for (int j = 0; j < choiceFrags.length; j++) {
fragID.delete(0, fragID.length());
fragID.append(choiceFrags[j].getID());
String choiceFragTableContainerID = (new StringBuffer(FragmentConstants.TABLE_ID)).append(choiceFrags[j].getID()).toString();
%>
<span id="<%=choiceFragTableContainerID%>">
<jsp:include page="<%=choiceFrags[j].getWriteFragment()%>" flush="true"/>
</span>
<script language="javascript">
showTable('<%=choiceFragTableContainerID%>', <%=(j == choiceIndex)%>);
</script>
<%
}
%>
</td>
</tr>
<%
}
%>
</table>