public boolean equals(Object obj) {
   if (!(obj instanceof MeasureInfo)) {
     return false;
   }
   MeasureInfo temp = (MeasureInfo) obj;
   return temp.getMeasureName().equals(measureName)
       && temp.isShow() == isShow
       && temp.getExpectedView() == expectedView;
 }
  private AggregationCellHandle getAggregationCell(MeasureInfo measureInfo) {
    AggregationCellHandle cell = null;
    // MeasureHandle measure = measureInfo.getMeasure( );
    // if(measure == null)
    // {
    // return cell;
    // }
    MeasureViewHandle measureView = crosstab.getMeasure(measureInfo.getMeasureName());
    if (measureView == null) {
      return cell;
    }

    cell = measureView.getCell();
    return cell;
  }
        public boolean canModify(Object element, String property) {
          // TODO Auto-generated method stub
          if (element instanceof Item) {
            element = ((Item) element).getData();
          }
          MeasureInfo info = (MeasureInfo) element;
          MeasureViewHandle measureView = crosstab.getMeasure(info.getMeasureName());
          if (measureView == null
              || measureView instanceof ComputedMeasureViewHandle
              || (measureView.getCubeMeasure() != null
                  && measureView.getCubeMeasure().isCalculated())) {
            return false;
          }

          if (Arrays.asList(columnNames).indexOf(property) == 1) {
            return summaryFieldViewer.getChecked(element);
          } else {
            return false;
          }
        }
  private void initializeItems(MeasureInfo measureInfo) {
    List<String> viewNameList = new ArrayList<String>();
    List<String> itemList = new ArrayList<String>();

    MeasureViewHandle measureView = crosstab.getMeasure(measureInfo.getMeasureName());
    if (measureView != null && measureView instanceof ComputedMeasureViewHandle) {
      itemList.add("");
      viewNameList.add(""); // $NON-NLS-1$
    } else
    // NOT ComputedMeasureViewHandle -- begin --
    {
      AggregationCellHandle cell = getAggregationCell(measureInfo);
      if (cell != null && cellProviderWrapper.getMatchProvider(cell) == null) {
        itemList.add("");
        viewNameList.add(""); // $NON-NLS-1$
      }

      IAggregationCellViewProvider providers[] = cellProviderWrapper.getAllProviders();
      for (int i = 0; i < providers.length; i++) {
        IAggregationCellViewProvider tmp = (IAggregationCellViewProvider) providers[i];
        if (tmp == null) {
          continue;
        }
        SwitchCellInfo info = new SwitchCellInfo(crosstab, SwitchCellInfo.MEASURE);
        info.setMeasureInfo(measureInfo);

        if (!providers[i].canSwitch(info)) {
          continue;
        }

        String displayName = tmp.getViewDisplayName();
        viewNameList.add(tmp.getViewName());
        itemList.add(
            Messages.getString(
                "GrandTotalProvider.ShowAs", //$NON-NLS-1$
                new String[] {displayName}));
      }
    } // NOT ComputedMeasureViewHandle -- end --
    comboItems = (String[]) itemList.toArray(new String[itemList.size()]);
    viewNames = (String[]) viewNameList.toArray(new String[viewNameList.size()]);
  }