Index: ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIChartConfigAPI.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/BIChartConfigAPI.java (revision 56347) +++ ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIChartConfigAPI.java (revision ) @@ -939,16 +939,17 @@ int childIndex = indexAtLevel; for (Object key : nodeMap.keySet()) { PivotField pf = isColumn ? model.getFieldAt(level, 0) : model.getFieldAt(0, level); - BIModelField modelField =isColumn ? _model.getFieldsAPI().getColumnItems().get(level):_model.getFieldsAPI().getRowItems().get(level) ;//_model.getModelField(pf); -if(modelField.isMeasure() && modelField.isContinuous()) + List fields = isColumn ? _model.getFieldsAPI().getColumnItems() : _model.getFieldsAPI().getRowItems(); + BIModelField modelField = level < fields.size() ? fields.get(level) : null;//_model.getModelField(pf); + if(modelField != null && modelField.isMeasure() && modelField.isContinuous()) -{ - pf = isColumn ? model.getFieldAt(level - _model.getChartsColumnHeaderTableModel().getDiscreteMeasureList().size(), 0) : model.getFieldAt(0, level- _model.getRowHeaderTableModel().getDiscreteMeasureList().size()); - modelField = _model.getModelField(pf); -} -else if(modelField!=null) -{ - pf=_model.getPivotField(modelField); -} + { + pf = isColumn ? model.getFieldAt(level - _model.getChartsColumnHeaderTableModel().getDiscreteMeasureList().size(), 0) : model.getFieldAt(0, level- _model.getRowHeaderTableModel().getDiscreteMeasureList().size()); + modelField = _model.getModelField(pf); + } + else if(modelField!=null) + { + pf=_model.getPivotField(modelField); + } PivotHeaderNode child = new PivotHeaderNode(key, pf); Optional.ofNullable(modelField).ifPresent((biModelField) -> { 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 56347) +++ ../src-rep/src/lib/aqua-visual-analytics/com/aquafold/bistudio/model/BIRowHeaderTableModel.java (revision ) @@ -72,6 +72,7 @@ else { _mappedRows = null; } + calculateDimensionAndDiscreteMeasureList(); } @Override @@ -88,96 +89,65 @@ 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 _discreteMeasureList = new ArrayList<>(); 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().getDiscreteMeasureCount() : 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); - _discreteMeasure.add(row); - } - else if (row.isMeasure()) { + _discreteMeasureCount++; + _discreteMeasureList.add(i); + _discreteMeasure.add(row); + } + 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()){ _colDiscreteMeasureCount++; _containsDiscreteMeasure = true; } - else if (column.isMeasure() && column.isConfigValid()) { - colContFiled++; - _contMeasureCount++; - - } + } + } + @Override + public synchronized int getColumnCount() { + return getColumnCountInternal() + _discreteMeasureCount; - } + } - if (((_contMeasureCount == 0 && _contMeasureCount + colContFiled <= 1) || (_contMeasureCount == 1 && colContFiled == 0)) && count > _dimensionCount) { - _contMeasureCount = 1; - if(_bimodel.getChartsAPI().getChartType()== BIDataModel.ChartType.Table) - count = count - 1; + + private synchronized int getColumnCountInternal() { + int count = super.getColumnCount(); + if (_isDataInRows && _visibleDataFieldCount < 2 && _dataFieldCount > 1 && count > 1) { + count--; } return count; }