AttributeRepetition: WORepetition { _unroll = true; item = propertyKey; list = currentSectionKeys; } AttributeValue: WOSwitchComponent { WOComponentName = d2wContext.componentName; localContext = d2wContext; object = object; } ERXLayoutTable: ERXLayoutTable { item = propertyKey; list = currentSectionKeys; tableWidth = "100%"; cellColSpan = d2wContext.colSpan; cellRowSpan = d2wContext.rowSpan; maxColumns = d2wContext.maxColumns; tableClass = "LayoutTable"; } ERXTable: ERXTable { goingVertically = d2wContext.matrixLayoutVertical; item = propertyKey; list = currentSectionKeys; maxColumns = d2wContext.maxColumns; tableClass = "LayoutTable"; } HasPropertyName: WOConditional { condition = hasPropertyName; } HasSectionName: ERXNonZeroConditional { condition = currentSection.name.trim.length; } HasntPropertyName: WOConditional { condition = hasPropertyName; negate = true; } NotUsingMatrixLayout: WOConditional { condition = d2wContext.useMatrixLayout; negate = true; } NotUsingTableLayout: WOConditional { condition = d2wContext.useTableLayout; negate = true; } PropertyName: WOSwitchComponent { WOComponentName = d2wContext.propertyNameComponentName; localContext = d2wContext; } SafeWrapper : D2WEmptyWrapper { } Section: WOSwitchComponent { WOComponentName = d2wContext.sectionComponentName; d2wContext = d2wContext; } Sections: WORepetition { list=sectionsContents; item=currentSection; } UseHorizontalLayoutTables: WOConditional { condition = d2wContext.useHorizontalLayoutTables; } UseVerticalLayoutTables: WOConditional { condition = d2wContext.useHorizontalLayoutTables; negate = true; } UseMatrixLayout: WOConditional { condition = d2wContext.useMatrixLayout; } UseTableLayout: WOConditional { condition = d2wContext.useTableLayout; }