/** * Computes a description of an axis. * * @param axis * Axis * @return Description of axis */ private AxisInfo computeAxisInfo( final CellSetAxis axis ) { if ( axis == null ) { return new AxisInfo( 0 ); } final AxisInfo axisInfo = new AxisInfo( axis.getAxisMetaData().getHierarchies().size() ); int p = -1; for ( final Position position : axis.getPositions() ) { ++p; int k = -1; for ( final Member member : position.getMembers() ) { ++k; final AxisOrdinalInfo axisOrdinalInfo = axisInfo.ordinalInfos.get( k ); final int topDepth = member.isAll() ? member.getDepth() : member.getHierarchy().hasAll() ? 1 : 0; if ( axisOrdinalInfo.minDepth > topDepth || p == 0 ) { axisOrdinalInfo.minDepth = topDepth; } axisOrdinalInfo.maxDepth = Math.max( axisOrdinalInfo.maxDepth, member.getDepth() ); } } return axisInfo; }
public void write( SaxWriter writer, Cell cell, Member[] members) throws OlapException { Member member = members[memberOrdinal]; final int depth = level.getDepth(); if (member.getDepth() < depth) { // This column deals with a level below the current member. // There is no value to write. return; } while (member.getDepth() > depth) { member = member.getParentMember(); } final Object propertyValue = member.getPropertyValue(property); if (propertyValue == null) { return; } writer.startElement(encodedName); writer.characters(propertyValue.toString()); writer.endElement(); } }
private void writeMember( SaxWriter writer, Member member, Position prevPosition, Position nextPosition, int k, List<Property> props) throws OlapException { writer.startElement( "Member", "Hierarchy", member.getHierarchy().getName()); for (final Property prop : props) { Object value = null; Property longProp = (longProps.get(prop.getName()) != null) ? longProps.get(prop.getName()) : prop; if (longProp == StandardMemberProperty.DISPLAY_INFO) { Integer childrenCard = (Integer) member .getPropertyValue( StandardMemberProperty.CHILDREN_CARDINALITY); value = calculateDisplayInfo( prevPosition, nextPosition, member, k, childrenCard); } else if (longProp == StandardMemberProperty.DEPTH) { value = member.getDepth(); } else { value = (longProp instanceof IMondrianOlap4jProperty) ? getHierarchyProperty(member, longProp) : member.getPropertyValue(longProp); } if (value != null) { writer.textElement(encoder.encode(prop.getName()), value); } } writer.endElement(); // Member }
value = member.getDepth(); } else { value = member.getPropertyValue(longProp);
/** * @param member * @return */ private boolean isRaggedMember(Member member) { if (member instanceof RaggedMemberWrapper) { return true; } Member parent = getParentMember(member); return member.getDepth() > 1 && parent == null; }
protected boolean isBaseMember() { return level.getDepth() == baseMember.getDepth(); }
/** * only allow expand/collapse left of a "sticky topcount" */ private boolean allowNavigate(Member member, boolean qubon) { Member baseMember = quaxUtil.getOlapUtils().getBaseRaggedMember(member); if (baseMember.getDepth() != member.getDepth()) { return false; } int iDim = dimIdx(member.getDimension()); return allowNavigate(iDim, qubon); }
/** * @param ancestor * @param descendant */ public boolean isDescendant(Member ancestor, Member descendant) { // a calculated member, even if defined under "ancestor" is *not* // descendant, // WITM MEMBER a.b as '..' // a.children does *not* include b if (descendant.isCalculated()) { return false; } if (OlapUtils.equals(ancestor, descendant)) { return false; } int ancestorLevelNumber = ancestor.getDepth(); Member mm = descendant; while (mm != null && ancestorLevelNumber < mm.getDepth()) { mm = cache.getParentMember(mm); } return OlapUtils.equals(mm, ancestor); }
/** * @see org.pivot4j.ui.RenderCallback#renderContent(org.pivot4j.ui.RenderContext, * java.lang.String, java.lang.Double) */ @Override public void renderContent(TableRenderContext context, String label, Double value) { cell.setCellStyle(getCellStyle(context)); if (VALUE.equals(context.getCellType()) && context.getAxis() != Axis.FILTER) { if (value == null) { cell.setCellValue(""); } else { cell.setCellValue(value); } } else { boolean showParentMembers = context.getRenderer() .getShowParentMembers(); if (!showParentMembers && label != null && context.getAxis() == Axis.ROWS && context.getMember() != null && context.getCell() == null) { label = StringUtils.leftPad(label, context.getMember() .getDepth() + label.length()); } cell.setCellValue(label); cell.setCellType(Cell.CELL_TYPE_STRING); } }
/** * @param member * @return */ public Member getParentMember(Member member) { if (member == null) { throw new NullArgumentException("member"); } if (member.getDepth() == 0) { return null; } logger.trace("Resolving parent member for : {}", member.getUniqueName()); Member parent = get(member.getUniqueName()); if (parent == null) { parent = member.getParentMember(); if (parent == null) { logger.trace("Member doesn't seem to have a parent."); } else { logger.trace( "No cache was found. Storing the parent member : {}", parent.getUniqueName()); parent = util.wrapRaggedIfNecessary(parent); } put(member.getUniqueName(), parent); } else { logger.trace("Returning cached parent member : {}", parent.getUniqueName()); } return parent; }
row.set(Depth.name, member.getDepth()); addRow(row, rows);
int padding = rowHeaderLevelPadding * (1 + context.getMember().getDepth()); cssWriter.writeStyle("padding-left", padding + "px");
int childDepth = childMember.getDepth();
final int depth = member.getDepth();
&& context.getMember() != null && context.getAxis() != Axis.FILTER) { int padding = context.getMember().getDepth() * 10; cssWriter.writeStyle("padding-left", padding + "px");