blob: 34b82a29689dadc419cfd41e8c127ee11368c0db [file] [log] [blame]
<%-----------------------------------------------------------------------------
Copyright (c) 2004 Actuate 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:
Actuate Corporation - Initial implementation.
-----------------------------------------------------------------------------%>
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page session="false" buffer="none" %>
<%@ page import="org.eclipse.birt.report.context.ScalarParameterBean,
org.eclipse.birt.report.context.BaseAttributeBean,
org.eclipse.birt.report.IBirtConstants,
org.eclipse.birt.report.service.api.ParameterSelectionChoice,
org.eclipse.birt.report.utility.ParameterAccessor,
org.eclipse.birt.report.utility.DataUtil,
java.util.List" %>
<%-----------------------------------------------------------------------------
Expected java beans
-----------------------------------------------------------------------------%>
<jsp:useBean id="attributeBean" type="org.eclipse.birt.report.context.BaseAttributeBean" scope="request" />
<%-----------------------------------------------------------------------------
Combo box parameter control
-----------------------------------------------------------------------------%>
<%
ScalarParameterBean parameterBean = ( ScalarParameterBean ) attributeBean.getParameterBean( );
String encodedParameterName = ParameterAccessor.htmlEncode( parameterBean.getName( ) );
String paramValue = parameterBean.getValue( );
String displayText = parameterBean.getDisplayText( );
String defaultValue = parameterBean.getDefaultValue( );
String defaultDisplayText = parameterBean.getDefaultDisplayText( );
boolean isDisplayTextInList = parameterBean.isDisplayTextInList( );
boolean allowMultiValue = !parameterBean.allowNewValues( ) && parameterBean.getParameter( ).isMultiValue( );
List values = parameterBean.getValueList( );
%>
<TR>
<TD NOWRAP>
<IMG SRC="birt/images/parameter.gif" ALT="<%= parameterBean.getDisplayName( ) %>" TITLE="<%= parameterBean.getToolTip( ) %>"/>
</TD>
<TD NOWRAP>
<FONT TITLE="<%= parameterBean.getToolTip( ) %>"><LABEL FOR="<%= encodedParameterName + "_selection"%>"><%= parameterBean.getDisplayName( ) %>:</LABEL></FONT>
<%-- is required --%>
<%
if ( parameterBean.isRequired( ) )
{
%>
<FONT COLOR="red"><LABEL FOR="<%= encodedParameterName + "_selection"%>">*</LABEL></FONT>
<%
}
%>
</TD>
</TR>
<TR>
<TD NOWRAP></TD>
<TD NOWRAP WIDTH="100%">
<INPUT TYPE="HIDDEN" ID="control_type" VALUE="select">
<INPUT TYPE="HIDDEN" ID="data_type" VALUE="<%="" + parameterBean.getParameter( ).getDataType( ) %>">
<INPUT TYPE="HIDDEN"
ID="<%= encodedParameterName + "_value" %>"
NAME="<%= encodedParameterName %>"
<%= paramValue != null ? " VALUE=\"" + ParameterAccessor.htmlEncode( paramValue ) + "\"": "" %>
>
<%
boolean CHECKED = true;
if ( parameterBean.allowNewValues( ) ) // TODO: Editable
{
CHECKED = parameterBean.isValueInList( )
|| paramValue == null
|| ( !parameterBean.isValueInList( ) && defaultValue != null && defaultValue.equals( paramValue ) );
%>
<LABEL FOR="<%= encodedParameterName + "_radio_selection" %>" CLASS="birtviewer_hidden_label">Select</LABEL>
<INPUT TYPE="RADIO"
birtParameterType="combobox"
NAME="<%= encodedParameterName + "_radios" %>"
ID="<%= encodedParameterName + "_radio_selection" %>"
VALUE="<%= encodedParameterName %>"
<%= CHECKED ? "CHECKED" : "" %> >
<%
}
%>
<SELECT ID="<%= encodedParameterName + "_selection"%>"
TITLE="<%= parameterBean.getToolTip( ) %>"
CLASS="birtviewer_parameter_dialog_Select"
birtParameterType="combobox"
<%= !CHECKED ? "DISABLED='true'" : "" %>
<%= allowMultiValue? "multiple='true'" : "" %>
<%= ( !parameterBean.allowNewValues( ) && parameterBean.isRequired( ) ) ? "aria-required='true'" : "" %>
>
<%
if ( parameterBean.getSelectionList( ) != null )
{
if( !parameterBean.isRequired( ) || ( parameterBean.isCascade( ) && DataUtil.trimString( defaultValue ).length( )<=0 ) )
{
if( allowMultiValue && DataUtil.contain( values, "", true ) )
{
%>
<OPTION SELECTED></OPTION>
<%
}
else
{
%>
<OPTION></OPTION>
<%
}
}
if ( DataUtil.trimString( defaultValue ).length( ) > 0 && !parameterBean.isDefaultValueInList( ) ) // Add default value in Combo Box
{
boolean flag = false;
if( allowMultiValue )
{
flag = DataUtil.contain( values, defaultValue, true );
}
else
{
flag = CHECKED && !parameterBean.isValueInList( );
// if displayText is in request, use it
if( flag && parameterBean.isDisplayTextInReq( ) )
{
defaultDisplayText = displayText;
}
}
%>
<OPTION VALUE="<%= ParameterAccessor.htmlEncode( defaultValue ) %>"
TITLE="<%= ParameterAccessor.htmlEncode( defaultDisplayText ) %>"
<%= flag ? "SELECTED" : "" %> > <%= ParameterAccessor.htmlEncode( defaultDisplayText ) %></OPTION>
<%
}
boolean isSelected = false;
for ( int i = 0; i < parameterBean.getSelectionList( ).size( ); i++ )
{
ParameterSelectionChoice selectionItem = ( ParameterSelectionChoice )parameterBean.getSelectionList( ).get( i );
String label = selectionItem.getLabel( );
String value = ( String ) selectionItem.getValue( );
String outputValue = ParameterAccessor.htmlEncode(( value == null)?IBirtConstants.NULL_VALUE:value);
String outputLabel = ParameterAccessor.htmlEncode(( label == null)?IBirtConstants.NULL_VALUE_DISPLAY:label);
if( allowMultiValue )
{
if( DataUtil.contain( values, value, true ) )
{
%>
<OPTION VALUE="<%= outputValue %>"
TITLE="<%= outputLabel %>"
SELECTED><%= outputLabel %></OPTION>
<%
}
else
{
%>
<OPTION VALUE="<%= outputValue %>"
TITLE="<%= outputLabel %>"><%= outputLabel %></OPTION>
<%
}
}
else
{
if ( !isSelected && DataUtil.equals( paramValue, value )
&& ( !isDisplayTextInList || ( isDisplayTextInList && DataUtil.equals(label, displayText ) )))
{
isSelected = true;
%>
<OPTION VALUE="<%= outputValue %>"
TITLE="<%= outputLabel %>"
SELECTED><%= outputLabel %></OPTION>
<%
}
else
{
%>
<OPTION VALUE="<%= outputValue %>"
TITLE="<%= outputLabel %>"><%= outputLabel %></OPTION>
<%
}
}
}
}
%>
</SELECT>
<%
if ( parameterBean.allowNewValues( ) ) // TODO: editable.
{
%>
<BR>
<LABEL FOR="<%= encodedParameterName + "_radio_input" %>" CLASS="birtviewer_hidden_label">Input</LABEL>
<INPUT TYPE="RADIO"
birtParameterType="combobox"
NAME="<%= encodedParameterName + "_radios" %>"
ID="<%= encodedParameterName + "_radio_input"%>"
VALUE="<%= encodedParameterName %>"
<%= !CHECKED ? "CHECKED" : "" %> >
<LABEL FOR="<%= encodedParameterName + "_input" %>" CLASS="birtviewer_hidden_label">Input text</LABEL>
<INPUT CLASS="BirtViewer_parameter_dialog_Input"
birtParameterType="combobox"
TYPE="<%= parameterBean.isValueConcealed( )? "PASSWORD" : "TEXT" %>"
TITLE="<%= parameterBean.getToolTip( ) %>"
<%= !CHECKED ? "NAME=\"" + encodedParameterName + "_default\"": "" %>
ID="<%= encodedParameterName + "_input"%>"
<%= !CHECKED && displayText != null ? "VALUE=\"" + ParameterAccessor.htmlEncode( displayText ) + "\"": "" %>
<%= CHECKED ? "DISABLED='true'" : "" %> >
<INPUT TYPE="HIDDEN"
ID="<%= encodedParameterName + "_displayText" %>"
<%= !CHECKED && displayText != null ? "VALUE=\"" + ParameterAccessor.htmlEncode( displayText ) + "\"": "" %>
>
<%
}
%>
<INPUT TYPE="HIDDEN" ID="isRequired"
VALUE = "<%= parameterBean.isRequired( )? "true": "false" %>">
<%
if ( parameterBean.isCascade( ) )
{
%>
<INPUT TYPE="HIDDEN" ID="<%=IBirtConstants.IS_CASCADE%>" VALUE="true"/>
<%
}
%>
</TD>
</TR>