addLoggingResourceable(LoggingResourceable.wrap(stCourseNode));
myContent = createVelocityContainer("run");
// read display configuration
ModuleConfiguration config = stCourseNode.getModuleConfiguration();
// configure number of display rows
int rows = config.getIntegerSafe(STCourseNodeEditController.CONFIG_KEY_COLUMNS, 1);
myContent.contextPut("layoutType", (rows == 1 ? "o_course_run_toc_one_column" : "o_course_run_toc_two_columns"));
// the display type: toc or peekview
String displayType = config.getStringValue(STCourseNodeEditController.CONFIG_KEY_DISPLAY_TYPE, STCourseNodeEditController.CONFIG_VALUE_DISPLAY_PEEKVIEW);
// Build list of child nodes and peek views if necessary
List<CourseNode> children = new ArrayList<CourseNode>();
// Build up a overview of all visible children (direct children only, no
// grandchildren)
String peekviewChildNodesConfig = config.getStringValue(STCourseNodeEditController.CONFIG_KEY_PEEKVIEW_CHILD_NODES, null);
List<String> peekviewChildNodes = (peekviewChildNodesConfig == null ? new ArrayList<String>() : Arrays.asList(peekviewChildNodesConfig.split(",")));
int chdCnt = ne.getChildCount();
for (int i = 0; i < chdCnt; i++) {
NodeEvaluation neChd = ne.getNodeEvaluationChildAt(i);
if (neChd.isVisible()) {