Skip to content

Commit

Permalink
Chart js cleanup and fill missing localization keys
Browse files Browse the repository at this point in the history
  • Loading branch information
tchrapovic committed Apr 24, 2024
1 parent c92be56 commit 462bca2
Show file tree
Hide file tree
Showing 13 changed files with 108 additions and 264 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright (C) 2010-2024 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.gui.impl.page.admin.role.mining.chart.model;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;

import org.jetbrains.annotations.NotNull;

public enum ChartType {

LINE(GuiStyleConstants.CLASS_LINE_CHART_ICON),
BAR(GuiStyleConstants.CLASS_BAR_CHART_ICON),
SCATTER(GuiStyleConstants.CLASS_CIRCLE_FULL);

private final String chartIcon;

ChartType(String chartIcon) {
this.chartIcon = chartIcon;
}

public String getChartIcon() {
return chartIcon;
}

public static ChartType getNextChartType(@NotNull ChartType currentType) {
return switch (currentType) {
case LINE -> BAR;
case BAR -> SCATTER;
case SCATTER -> LINE;
};
}


}

Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@

import java.util.List;

import com.evolveum.midpoint.gui.impl.page.admin.role.mining.chart.options.*;

import com.evolveum.midpoint.gui.impl.page.admin.role.mining.chart.options.ChartTitleOption;
import com.evolveum.midpoint.gui.impl.page.admin.role.mining.model.RoleAnalysisModel;

import org.apache.wicket.model.LoadableDetachableModel;
Expand All @@ -28,11 +25,13 @@
public class RoleAnalysisAggregateChartModel extends LoadableModel<ChartConfiguration> {

LoadableDetachableModel<List<RoleAnalysisModel>> roleAnalysisModels;
boolean isLineChart = true;
ChartType chartType;

public RoleAnalysisAggregateChartModel(LoadableDetachableModel<List<RoleAnalysisModel>> roleAnalysisModel, boolean isLineChart) {
public RoleAnalysisAggregateChartModel(
@NotNull LoadableDetachableModel<List<RoleAnalysisModel>> roleAnalysisModel,
@NotNull ChartType chartType) {
this.roleAnalysisModels = roleAnalysisModel;
this.isLineChart = isLineChart;
this.chartType = chartType;
}

@Override
Expand All @@ -42,20 +41,49 @@ protected ChartConfiguration load() {

private @NotNull ChartConfiguration createChartConfiguration() {

if (isLineChart) {
if (chartType.equals(ChartType.LINE)) {
LineChartConfiguration chart = new LineChartConfiguration();
ChartData chartData = createDataset();
chart.setData(chartData);
chart.setOptions(createChartOptions());
return chart;
} else {
} else if(chartType.equals(ChartType.BAR)){
BarChartConfiguration chart = new BarChartConfiguration();
ChartData chartData = createDataset();
chart.setData(chartData);
chart.setOptions(createChartOptions());
return chart;
}else{
ScatterChartConfiguration chart = new ScatterChartConfiguration();
ChartData chartData = createScatterDataset();
chart.setData(chartData);
chart.setOptions(createChartOptions());
return chart;
}

}

private @NotNull ChartData createScatterDataset() {
ChartData chartData = new ChartData();

ChartDataset datasetUsers = new ChartDataset();
datasetUsers.setLabel("Users / Roles occupation");
datasetUsers.addBackgroudColor("Red");
datasetUsers.setBorderWidth(1);

List<RoleAnalysisModel> object = roleAnalysisModels.getObject();
for (RoleAnalysisModel roleAnalysisModel : object) {
int rolesCount = roleAnalysisModel.getRolesCount();
int usersCount = roleAnalysisModel.getUsersCount();
ScatterDataPoint scatterDataPoint = new ScatterDataPoint(usersCount, rolesCount);
datasetUsers.addData(scatterDataPoint);
datasetUsers.addData(roleAnalysisModel.getUsersCount());

}

chartData.addDataset(datasetUsers);

return chartData;
}

private @NotNull ChartData createDataset() {
Expand All @@ -69,7 +97,7 @@ protected ChartConfiguration load() {
datasetRoles.setLabel(getDatasetRoleLabel());
datasetRoles.addBackgroudColor("Green");

if (isLineChart) {
if (chartType.equals(ChartType.LINE)) {
datasetUsers.addBorderColor("Red");
datasetUsers.setBorderWidth(1);
datasetRoles.addBorderColor("Green");
Expand All @@ -90,8 +118,8 @@ protected ChartConfiguration load() {
return chartData;
}

private @NotNull RoleAnalysisChartOptions createChartOptions() {
RoleAnalysisChartOptions options = new RoleAnalysisChartOptions();
private @NotNull ChartOptions createChartOptions() {
ChartOptions options = new ChartOptions();
options.setLegend(createLegendOptions());
options.setIndexAxis(IndexAxis.AXIS_X.getValue());

Expand All @@ -106,6 +134,7 @@ protected ChartConfiguration load() {
new ChartTitleOption();
chartTitleXOption.setDisplay(true);
chartTitleXOption.setText(getXAxisTitle());

chartScaleXAxisOption.setTitle(chartTitleXOption);

ChartScaleAxisOption chartScaleYAxisOption = new ChartScaleAxisOption();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
import java.util.Map;
import java.util.stream.Collectors;

import com.evolveum.midpoint.gui.impl.page.admin.role.mining.chart.options.RoleAnalysisChartOptions;

import org.apache.wicket.model.LoadableDetachableModel;
import org.jetbrains.annotations.NotNull;

Expand Down Expand Up @@ -50,8 +48,8 @@ protected ChartConfiguration load() {
return chart;
}

private @NotNull RoleAnalysisChartOptions createChartOptions() {
RoleAnalysisChartOptions options = new RoleAnalysisChartOptions();
private @NotNull ChartOptions createChartOptions() {
ChartOptions options = new ChartOptions();
options.setLegend(createLegendOptions());
options.setIndexAxis(IndexAxis.AXIS_X.getValue());
ChartAnimationOption chartAnimationOption = new ChartAnimationOption();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,6 @@
import java.util.*;
import java.util.stream.Collectors;

import com.evolveum.midpoint.gui.impl.page.admin.role.mining.chart.options.ChartScaleAxisOption;
import com.evolveum.midpoint.gui.impl.page.admin.role.mining.chart.options.ChartScaleOption;
import com.evolveum.midpoint.gui.impl.page.admin.role.mining.chart.options.RoleAnalysisChartDataSet;
import com.evolveum.midpoint.gui.impl.page.admin.role.mining.chart.options.RoleAnalysisChartOptions;

import org.apache.wicket.model.LoadableDetachableModel;
import org.jetbrains.annotations.NotNull;

Expand Down Expand Up @@ -54,8 +49,8 @@ protected ChartConfiguration load() {
return chart;
}

private @NotNull RoleAnalysisChartOptions createChartOptions() {
RoleAnalysisChartOptions options = new RoleAnalysisChartOptions();
private @NotNull ChartOptions createChartOptions() {
ChartOptions options = new ChartOptions();
options.setLegend(createLegendOptions());
options.setIndexAxis(IndexAxis.AXIS_X.getValue());
ChartAnimationOption chartAnimationOption = new ChartAnimationOption();
Expand Down Expand Up @@ -90,16 +85,17 @@ private void createPositiveSideData(ChartData chartData) {
datasetAttributeDensity.addBackgroudColor(getColor());
datasetAttributeDensity.setBorderWidth(1);

RoleAnalysisChartDataSet datasetUsers = new RoleAnalysisChartDataSet();
ChartDataset datasetUsers = new ChartDataset();
datasetUsers.setLabel("Users attribute");
datasetUsers.addBackgroudColor("Red");
datasetUsers.setStack("stack0");

RoleAnalysisChartDataSet datasetRoles = new RoleAnalysisChartDataSet();
ChartDataset datasetRoles = new ChartDataset();
datasetRoles.setLabel("Roles attribute");
datasetRoles.addBackgroudColor("Green");
datasetRoles.setStack("stack1");


List<AttributeAnalysisStructure> objects = roleAnalysisModelsPositive.getObject();
Map<String, List<AttributeAnalysisStructure>> itemPathMap = objects.stream()
.collect(Collectors.groupingBy(AttributeAnalysisStructure::getItemPath));
Expand Down Expand Up @@ -169,12 +165,12 @@ private void createNegativeSideData(ChartData chartData) {
datasetAttributeDensity.addBackgroudColor(getColor());
datasetAttributeDensity.setBorderWidth(1);

RoleAnalysisChartDataSet datasetUsers = new RoleAnalysisChartDataSet();
ChartDataset datasetUsers = new ChartDataset();
datasetUsers.setLabel("Users compare");
datasetUsers.addBackgroudColor("Red");
datasetUsers.setStack("stack0");

RoleAnalysisChartDataSet datasetRoles = new RoleAnalysisChartDataSet();
ChartDataset datasetRoles = new ChartDataset();
datasetRoles.setLabel("Roles compare");
datasetRoles.addBackgroudColor("Green");
datasetRoles.setStack("stack1");
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit 462bca2

Please sign in to comment.