displayTypeRadios.select("system", true);
}
// Peekview details configuration - allow only MAX_PEEKVIEW_CHILD_NODES
// peekviews to be selected
if (selectedPeekviewChildKeys.length > 0) {
SpacerElement spacerChild = formFact.addSpacerElement("spacerChild", formLayout, true);
selectedPeekviewChildren = formFact.addCheckboxesVertical("selectedPeekviewChildren", formLayout, selectedPeekviewChildKeys,
selectedPeekviewChildValues, selectedPeekviewChildCssClasses, 1);
selectedPeekviewChildren.setLabel("selectedPeekviewChildren",
new String[] { STCourseNodeConfiguration.MAX_PEEKVIEW_CHILD_NODES + "" });
// visibility rules for peekview children selection
RulesFactory.createHideRule(displayTypeRadios, "file", selectedPeekviewChildren, formLayout);
RulesFactory.createHideRule(displayTypeRadios, "system", selectedPeekviewChildren, formLayout);
RulesFactory.createShowRule(displayTypeRadios, "peekview", selectedPeekviewChildren, formLayout);
RulesFactory.createHideRule(displayTypeRadios, "file", spacerChild, formLayout);
RulesFactory.createHideRule(displayTypeRadios, "system", spacerChild, formLayout);
RulesFactory.createShowRule(displayTypeRadios, "peekview", spacerChild, formLayout);
// Pre-select configured keys. Discard configured selections that are not
// found (e.g. deleted or moved nodes)
String[] preSelectedChildNodes = (selectedPeekviewChildNodesConfig == null ? new String[0] : selectedPeekviewChildNodesConfig
.split(","));
for (String preSelectedNode : preSelectedChildNodes) {
for (String selectableNode : selectedPeekviewChildKeys) {
if (preSelectedNode.equals(selectableNode)) {
selectedPeekviewChildren.select(selectableNode, true);
break;
}
}
}
// Allow only MAX_PEEKVIEW_CHILD_NODES child nodes to be enabled
if (selectedPeekviewChildren.getSelectedKeys().size() >= STCourseNodeConfiguration.MAX_PEEKVIEW_CHILD_NODES) {
for (int i = 0; i < selectedPeekviewChildKeys.length; i++) {
if (!selectedPeekviewChildren.isSelected(i)) {
selectedPeekviewChildren.setEnabled(selectedPeekviewChildKeys[i], false);
}
}
}
// Pre-select the first MAX_PEEKVIEW_CHILD_NODES child nodes if none is
// selected to reflect meaningfull default configuration
if (selectedPeekviewChildren.getSelectedKeys().size() == 0) {
for (int i = 0; i < selectedPeekviewChildKeys.length; i++) {
if (i < STCourseNodeConfiguration.MAX_PEEKVIEW_CHILD_NODES) {
selectedPeekviewChildren.select(selectedPeekviewChildKeys[i], true);
} else {
selectedPeekviewChildren.setEnabled(selectedPeekviewChildKeys[i], false);
}
}
}
// Add as listener for any changes
selectedPeekviewChildren.addActionListener(this, FormEvent.ONCLICK);
}
//
// Number of rows (only available in system or peekview type)
SpacerElement spacerCols = formFact.addSpacerElement("spacerCols", formLayout, true);
displayTwoColumns = formFact
.addCheckboxesVertical("displayTwoColumns", formLayout, new String[] { "on" }, new String[] { "" }, null, 1);
displayTwoColumns.setLabel("displayTwoColumns", null);
if (columnsConfig == 2) {
displayTwoColumns.selectAll();