Index: ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIModelFieldsAPI.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIModelFieldsAPI.java (revision 56336) +++ ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIModelFieldsAPI.java (revision ) @@ -79,6 +79,7 @@ private List _filters = new ArrayList(); private List _dataFields = new ArrayList(); private int _visibleDataFieldCount = 0; + private int _discreteMeasureCount = 0; private Map _rowAndColItemsCache = null; private Integer _itemCacheLock = 1; @@ -1174,6 +1175,7 @@ _dataFields.clear(); _rowDataFields.clear(); _columnDataFields.clear(); + _discreteMeasureCount = 0; for (BIModelField field : _rows) { if (!field.isConfigValid()) { continue; @@ -1184,7 +1186,10 @@ pf.setAreaIndex(index++); _dataFields.add(field); _rowDataFields.add(field); + if (field.isDiscrete()) { + _discreteMeasureCount++; - } + } + } } } @@ -1198,9 +1203,12 @@ pf.setAreaIndex(index++); _dataFields.add(field); _columnDataFields.add(field); + if (field.isDiscrete()) { + _discreteMeasureCount++; - } - } - } + } + } + } + } _visibleDataFieldCount = index; _accordionsHelper.refreshDataAreaIndex(index); } @@ -1899,6 +1907,10 @@ public int getVisibleDataFieldCount() { return _visibleDataFieldCount; + } + + public int getDiscreteMeasureCountCount() { + return _discreteMeasureCount; } public List getColumnFields(int startIndex, int count) { Index: ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIRowHeaderTableModel.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIRowHeaderTableModel.java (revision 56336) +++ ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIRowHeaderTableModel.java (revision ) @@ -50,7 +50,6 @@ public class BIRowHeaderTableModel extends BIHeaderTableModel implements SpanModel { private List _mappedRows; - private List _mappedNewRows; private boolean _containsDiscreteMeasure=false; private int _discreteMeasureCount=0; @@ -73,6 +72,7 @@ else { _mappedRows = null; } + calculateDimensionandDiscreteMeasureList(); } @Override @@ -89,98 +89,66 @@ return _isDataInRows ? convertCount(count) : count; } - List mappedcolumnIndex = new ArrayList<>(); int _contMeasureCount = 0; int _dimensionCount = 0; - int _dimensionPos = 0; int _colDiscreteMeasureCount = 0; - List _discreteMeasure = new ArrayList<>(); + List _discreteMeasure = new ArrayList<>(); List _discreteMeasureList = new ArrayList<>(); - int _actualContCount = 0; List _dimensionList = new ArrayList<>(); -public void calculateDimensionandDiscreteMeasureList() -{ - List rowFields = _bimodel.getFieldsAPI().getRowItems(); - _discreteMeasureList.clear(); - _dimensionList.clear(); - _contMeasureCount=0; - - int i=0; - for (BIModelField row : rowFields) { - if ((row.isMeasure() && row.isDiscrete())) { - _discreteMeasureList.add(i); - } - else if (row.isMeasure()) { -_contMeasureCount++; - } - else { - _dimensionList.add(i); - - } - i++; - } - -} public int getContinueMeasureCount(){return _contMeasureCount;} public int getDiscreteMeasureCount(){return _discreteMeasureCount;} public List getDimensionList(){return _dimensionList;} public List getDiscreteMeasureList(){return _discreteMeasureList;} - @Override - public synchronized int getColumnCount() { + + public void calculateDimensionandDiscreteMeasureList() + { _containsDiscreteMeasure = false; _discreteMeasure = new ArrayList<>(); - _discreteMeasureCount = 0; - _dimensionCount = 0; - _contMeasureCount = 0; - _dimensionPos = 0; - _colDiscreteMeasureCount = 0; - _dimensionList = new ArrayList<>(); _discreteMeasureList = new ArrayList<>(); - int count = super.getColumnCount(); - if (_isDataInRows && _visibleDataFieldCount < 2 && _dataFieldCount > 1 && count > 1) { - count--; - } - int i = 0; + _dimensionList = new ArrayList<>(); + _discreteMeasureCount = 0; + _dimensionCount = getColumnCountInternal(); + _contMeasureCount = _isDataInRows ? _visibleDataFieldCount - _bimodel.getFieldsAPI().getDiscreteMeasureCountCount() : 0; + List rowFields = _bimodel.getFieldsAPI().getRowItems(); - mappedcolumnIndex = new ArrayList<>(); + int i=0; for (BIModelField row : rowFields) { + if (row.isConfigValid()) { - if ((row.isMeasure() && row.isDiscrete())) { - _containsDiscreteMeasure = true; + if ((row.isMeasure() && row.isDiscrete())) { + _containsDiscreteMeasure = true; - count++; - _discreteMeasureCount++; - _discreteMeasureList.add(i); + _discreteMeasureCount++; + _discreteMeasureList.add(i); - _discreteMeasure.add(row.getName()); + _discreteMeasure.add(row); - } - else if (row.isMeasure()) { + } + else if (row.isMeasure()) { - _contMeasureCount++; + //_contMeasureCount++; - } - else { - _dimensionList.add(i); + } + else { + _dimensionList.add(i); - - _dimensionPos = _dimensionCount == 0 ? i : _dimensionPos; - _dimensionCount++; - } + } + } i++; } + List columnFields = _bimodel.getFieldsAPI().getColumnItems(); - int colContFiled = 0; for (BIModelField column : columnFields) { - if(column.isMeasure() && column.isDiscrete()){ + if(column.isMeasure() && column.isDiscrete()){ _colDiscreteMeasureCount++; _containsDiscreteMeasure = true; } - else if (column.isMeasure()) { - colContFiled++; - _contMeasureCount++; + } + } + @Override + public synchronized int getColumnCount() { + return getColumnCountInternal() + _discreteMeasureCount; - } + } + private synchronized int getColumnCountInternal() { + int count = super.getColumnCount(); + if (_isDataInRows && _visibleDataFieldCount < 2 && _dataFieldCount > 1 && count > 1) { + count--; } - if (((_contMeasureCount == 0 && _contMeasureCount + colContFiled <= 1) || (_contMeasureCount == 1 && colContFiled == 0)) && count > _dimensionCount) { - _contMeasureCount = 1; - if(_bimodel.getChartsAPI().getChartType()== BIDataModel.ChartType.Table) - count = count - 1; - } return count; } @@ -482,36 +450,18 @@ return fields[columnIndex]; } } - if (_mapping == REMOVE_ROW_HEADER || _mapping == REMOVE_ROWS) { + if (columnIndex < 0 || columnIndex >= _dimensionCount + _discreteMeasureCount || _mapping == REMOVE_ROW_HEADER || _mapping == REMOVE_ROWS) { value = null; } - else { - if(_isDataInRows) { - if (_bimodel.getDataTableModel().mappedrow != null && rowIndex < _bimodel.getDataTableModel().mappedrow.size()) - rowIndex = _bimodel.getDataTableModel().mappedrow.get(rowIndex); - if(columnIndex==getColumnCount()-1 && _discreteMeasureCount>0 && _contMeasureCount>1) - { - value = ((HeaderTableModel) _model).getFieldAt(getMappedRowIndex(rowIndex), columnIndex-1); + else if (_discreteMeasureCount == 0 || columnIndex < _dimensionCount) { + value = ((HeaderTableModel) _model).getFieldAt(getMappedRowIndex(rowIndex), columnIndex); - } - else { + } + else { - value = ((HeaderTableModel) _model).getFieldAt(getMappedRowIndex(rowIndex), columnIndex); + value = _bimodel.getPivotField(_discreteMeasure.get(columnIndex - _dimensionCount)); - } + } - } - else - { - if(columnIndex >= 0) { - if (_bimodel.getDataTableModel().mappedcol != null && columnIndex < _bimodel.getDataTableModel().mappedcol.size()) - columnIndex = _bimodel.getDataTableModel().mappedcol.get(columnIndex); - value = (_bimodel.getDataTableModel()).getFieldAt(getMappedRowIndex(rowIndex), columnIndex); - } - else - { - value = null; - } - } - } return value; } + public PivotField getDimensionFieldAt(int rowIndex, int columnIndex) { PivotField value; if (isSubTotalCell(rowIndex, columnIndex)) {