// Javadoc inherited
public final void renderOpen(VolantisProtocol protocol, MCSAttributes attributes)
throws ProtocolException {
WidgetDefaultModule module = getWidgetDefaultModule(protocol);
// If parent attributes is instance of JavaScriptArrayAttributes,
// add ID of this widget to the array attributes.
if (!module.getOuterAttributesStack().empty()) {
MCSAttributes currentAttributes = (MCSAttributes) module.getOuterAttributesStack().peek();
if (currentAttributes instanceof JavaScriptArrayAttributes) {
if (attributes.getId() == null) {
attributes.setId(protocol.getMarinerPageContext().generateUniqueFCID());
}
((JavaScriptArrayAttributes) currentAttributes).addWidget(attributes.getId());
}
}
// Push an instance of JavaScriptContainer associated with current rendering.
javaScriptContainersStack.push(createJavaScriptContainer(protocol));
// Push supported action and property names for this widget.
pushWidgetId(protocol, attributes);
// Push attributes on the outer stack.
module.getOuterAttributesStack().push(attributes);
// Invoke widget specific rendering.
doRenderOpen(protocol, attributes);
// Push attributes on the inner stack.
module.getInnerAttributesStack().push(attributes);
}