示例#1
0
 /** Return a list of active dimensions on the slicer */
 public static Set getActiveSlicerHierarchies(OlapModel model) throws OlapException {
   Set active = new HashSet();
   Axis slicer = model.getResult().getSlicer();
   Hierarchy[] hiers = slicer.getHierarchies();
   for (int j = 0; j < hiers.length; j++) active.add(hiers[j]);
   return active;
 }
示例#2
0
  /** return the hierarchies that are on the slicer axis (all that are not visible) */
  public static Set getSlicerHierarchies(OlapModel model) throws OlapException {
    Set visible = getVisibleDimensions(model);

    /* Get dimensions and hierarchies on the slicer */

    Axis slicer = model.getResult().getSlicer();
    Set selectedSlicerDims = new HashSet();
    Set selectedSlicerHiers = new HashSet();

    List positions = slicer.getPositions();

    for (Iterator iter = positions.iterator(); iter.hasNext(); ) {
      Position pos = (Position) iter.next();
      Member[] posMembers = pos.getMembers();
      for (int i = 0; i < posMembers.length; i++) {
        Hierarchy hier = posMembers[i].getLevel().getHierarchy();
        Dimension dim = hier.getDimension();

        if (!selectedSlicerHiers.contains(hier)) selectedSlicerHiers.add(hier);

        if (!selectedSlicerDims.contains(dim)) selectedSlicerDims.add(dim);
      }
    }
    /* Return hierarchies that are not on the rows or columns and for the selected
     * members, return the selected hierarchy
     */
    Set slicerHiers = new HashSet();
    Dimension[] dims = model.getDimensions();
    for (int i = 0; i < dims.length; i++) {
      if (!visible.contains(dims[i])) {
        if (!selectedSlicerDims.contains(dims[i])) {
          slicerHiers.add(dims[i].getHierarchies()[0]);
        } else {
          for (Iterator it = selectedSlicerHiers.iterator(); it.hasNext(); ) {
            Hierarchy hier = (Hierarchy) it.next();
            Dimension dim = hier.getDimension();
            if (dim.equals(dims[i])) {
              slicerHiers.add(hier);
              break;
            }
          }
        }
      }
    }

    return slicerHiers;
  }
示例#3
0
 /** return the dimensions that are on the slicer axis (all that are not visible) */
 public static Set getSlicerDimensions(OlapModel model) throws OlapException {
   Set visible = getVisibleDimensions(model);
   Set slicer = new HashSet();
   Dimension[] dims = model.getDimensions();
   for (int i = 0; i < dims.length; i++) {
     if (!visible.contains(dims[i])) slicer.add(dims[i]);
   }
   return slicer;
 }
示例#4
0
 /** return the dimensions that are displayed on a visible axis */
 public static Set getVisibleDimensions(OlapModel model) throws OlapException {
   Set visible = new HashSet();
   Axis[] axes = model.getResult().getAxes();
   for (int i = 0; i < axes.length; i++) {
     Hierarchy[] hiers = axes[i].getHierarchies();
     for (int j = 0; j < hiers.length; j++) visible.add(hiers[j].getDimension());
   }
   return visible;
 }