diff --git a/_alp/Agents/UI_EnergyHub/Code/Functions.java b/_alp/Agents/UI_EnergyHub/Code/Functions.java index 901b2319..78e044cb 100644 --- a/_alp/Agents/UI_EnergyHub/Code/Functions.java +++ b/_alp/Agents/UI_EnergyHub/Code/Functions.java @@ -1,7 +1,7 @@ double f_initializeEnergyHubDashboard() {/*ALCODESTART::1753446461346*/ //Set map to correct layout -zero_Interface.rb_mapOverlay.setValue(zero_Interface.c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT),true); +zero_Interface.f_selectMapOverlayButton(zero_Interface.c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT)); zero_Interface.b_updateLiveCongestionColors = false; // Zoom map to the selected EHub members @@ -49,8 +49,15 @@ //Set the selected radiobutton setup Economic List selectedChartTypes_Economic = new ArrayList<>();// Leave empty for now! +//Set the selected radiobutton setup Sustainability +List selectedChartTypes_Sustainability = new ArrayList<>(List.of( + OL_ChartTypes.CO2)); + +//Public version? +boolean publicVersion = false; // Energyhub is never accesible in public version for now, so can always just leave it off for now. + //Connect resultsUI -uI_Results.f_initializeResultsUI(selectedChartTypes_Energy, selectedChartTypes_Economic); +uI_Results.f_initializeResultsUI(selectedChartTypes_Energy, selectedChartTypes_Economic, selectedChartTypes_Sustainability, publicVersion); uI_Results.f_updateResultsUI(v_energyHubCoop); /*ALCODEEND*/} diff --git a/_alp/Agents/UI_EnergyHub/Levels/Level.level.xml b/_alp/Agents/UI_EnergyHub/Levels/Level.level.xml index d58eb611..4d54ca18 100644 --- a/_alp/Agents/UI_EnergyHub/Levels/Level.level.xml +++ b/_alp/Agents/UI_EnergyHub/Levels/Level.level.xml @@ -584,7 +584,7 @@ zero_Interface.map.setPos(410, 130); zero_Interface.f_clearFilters(); -zero_Interface.rb_mapOverlay.setValue(zero_Interface.c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT),true); +zero_Interface.f_selectMapOverlayButton(zero_Interface.c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT)); zero_Interface.cb_showFilterInterface.setSelected(false, true); zero_Interface.f_updateMainInterfaceSliders(); diff --git a/_alp/Agents/Zero_Interface/Code/AdditionalClassCode.java b/_alp/Agents/Zero_Interface/Code/AdditionalClassCode.java index 467d0a60..4a008876 100644 --- a/_alp/Agents/Zero_Interface/Code/AdditionalClassCode.java +++ b/_alp/Agents/Zero_Interface/Code/AdditionalClassCode.java @@ -1,9 +1,6 @@ public ShapeButton getButton_goToUI() { return this.button_goToUI; } -public ShapeRadioButtonGroup getBuildingColorsRB(){ - return this.rb_mapOverlay; -} public ShapeCheckBox getCb_showFilterInterface(){ return this.cb_showFilterInterface; } diff --git a/_alp/Agents/Zero_Interface/Code/Functions.java b/_alp/Agents/Zero_Interface/Code/Functions.java index c7b4cfa7..0cebd243 100644 --- a/_alp/Agents/Zero_Interface/Code/Functions.java +++ b/_alp/Agents/Zero_Interface/Code/Functions.java @@ -109,16 +109,8 @@ return; } -//Get selected map overlay type, based on loaded order of the radio buttons -OL_MapOverlayTypes selectedMapOverlayType; -if(rb_mapOverlay != null){ - selectedMapOverlayType = c_loadedMapOverlayTypes.get(rb_mapOverlay.getValue()); -} -else{ - selectedMapOverlayType = OL_MapOverlayTypes.DEFAULT; -} //Set the correct map overlay -switch(selectedMapOverlayType){ +switch(v_activeMapOverlay){ case DEFAULT: gis_area.f_style(null, white, null, null); break; @@ -179,16 +171,8 @@ double f_styleGridNodes(GridNode GN) {/*ALCODESTART::1705499586056*/ -//Get selected map overlay type, based on loaded order of the radio buttons -OL_MapOverlayTypes selectedMapOverlayType; -if(rb_mapOverlay != null){ - selectedMapOverlayType = c_loadedMapOverlayTypes.get(rb_mapOverlay.getValue()); -} -else{ - selectedMapOverlayType = OL_MapOverlayTypes.DEFAULT; -} //Set the correct map overlay -switch(selectedMapOverlayType){ +switch(v_activeMapOverlay){ case DEFAULT: case ELECTRICITY_CONSUMPTION: case PV_PRODUCTION: @@ -433,10 +417,13 @@ else if (previousClickedObjectType == OL_GISObjectType.BUILDING || selectedChartTypes_Energy = f_getSelectedChartTypes_Energy(); } List selectedChartTypes_Economic = settings.resultsUISelectedChartTypes_Economic(); +List selectedChartTypes_Sustainability = settings.resultsUISelectedChartTypes_Sustainability(); -//Disable export functionality in profiles if not full access. + +//Check if version is public +boolean enablePublicVersion = false; if(settings.isPublicModel() || user.GCAccessType != OL_UserGCAccessType.FULL){ - uI_Results.f_enablePublicVersion(true); + enablePublicVersion = true; } //Disable summary button if summary is not selected @@ -444,9 +431,10 @@ else if (previousClickedObjectType == OL_GISObjectType.BUILDING || uI_Results.getCheckbox_KPISummary().setVisible(false); } -//Connect resultsUI -uI_Results.f_initializeResultsUI(selectedChartTypes_Energy, selectedChartTypes_Economic); +//Initialize the resultsUI +uI_Results.f_initializeResultsUI(selectedChartTypes_Energy, selectedChartTypes_Economic, selectedChartTypes_Sustainability, enablePublicVersion); +//Store resultsUI c_UIResultsInstances.add(uI_Results); /*ALCODEEND*/} @@ -631,7 +619,7 @@ else if (totalPVCapacity_kWp < mediumPVValue_kWp){ f_initializeLegend(); //Initialize map overlay buttons -//f_initializeMapOverlayRadioButton(); +f_initializeMapOverlayButtons(); //Set ui button visibility false at startup f_createAdditionalUIs(); @@ -1010,7 +998,7 @@ GISRoute f_createGISLine(double[] GISCoords,OL_GISObjectType objectType) } if(c_loadedMapOverlayTypes.contains(OL_MapOverlayTypes.GRID_NEIGHBOURS)){ - rb_mapOverlay.setValue(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.GRID_NEIGHBOURS),true); + f_selectMapOverlayButton(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.GRID_NEIGHBOURS)); } if(c_selectedFilterOptions.size() > 1){ c_selectedGridConnections = new ArrayList<>(toBeFilteredGC); @@ -2340,7 +2328,7 @@ else if(maxLoad_fr_gc_feedin > maxLoad_fr_gc_delivery && gc.v_rapidRunData.conne gisregion.setFillColor(v_LVLVNodeColor); /*ALCODEEND*/} -double f_initializeMapOverlayRadioButton() +double f_initializeMapOverlayButtons() {/*ALCODESTART::1753085860778*/ //Set active map overlay types if they are set in the project settings if(settings.activeMapOverlayTypes() != null && settings.activeMapOverlayTypes().size() > 0){ @@ -2361,77 +2349,28 @@ else if(maxLoad_fr_gc_feedin > maxLoad_fr_gc_delivery && gc.v_rapidRunData.conne } -//Adjust the visualisation of the radiobuttons -Presentable presentable = gr_mapOverlayLegenda.getPresentable(); -boolean ispublic = true; -double x = 756; -double y = c_loadedMapOverlayTypes.size() < 6 ? 837 : 837 - 18; -double width = 130; -double height = 0;//Not needed, automatically adjust by adding options -Color textColor = Color.BLACK; -boolean enabled = true; -Font font = new Font("Dialog", Font.PLAIN, 11); -boolean vertical = true; - +map_mapOverlayButtonToOverlayType = new HashMap<>(); +c_mapOverlayButtons.forEach(button -> button.setVisible(false)); +int currentMapOverlayButtonIndex = 0; +CustomButton currentMapOverlayButton; -//Set words for the radiobutton options -List RadioButtonOptions_list = new ArrayList(); -for(OL_MapOverlayTypes mapOverlayType : c_loadedMapOverlayTypes){ - switch(mapOverlayType){ - case DEFAULT: - RadioButtonOptions_list.add("Standaard"); - break; - case ELECTRICITY_CONSUMPTION: - RadioButtonOptions_list.add("Elektriciteitsverbruik"); - break; - case PV_PRODUCTION: - RadioButtonOptions_list.add("PV Opwek"); - break; - case GRID_NEIGHBOURS: - RadioButtonOptions_list.add("Energie Buren"); - break; - case CONGESTION: - RadioButtonOptions_list.add("Netbelasting"); - break; - case ENERGY_LABEL: - RadioButtonOptions_list.add("Energielabel"); - break; - case PARKING_TYPE: - RadioButtonOptions_list.add("Parkeer type"); - break; - case CUSTOM: - RadioButtonOptions_list.add(p_customMapOverlayName); - break; - } -} - -String[] RadioButtonOptions = RadioButtonOptions_list.toArray(String[]::new); - -//Create the radiobutton and set the correct action. -rb_mapOverlay = new ShapeRadioButtonGroup(presentable, ispublic, x ,y, width, height, textColor, enabled, font, vertical, RadioButtonOptions){ - @Override - public void action() { - f_setMapOverlay(); - } -}; - -presentation.add(rb_mapOverlay); - -//For now: Adjust location of radiobutton title if 6 buttons -if(c_loadedMapOverlayTypes.size() > 5){ - gr_colorings.setY(-17); +//Initialize Energy Charts (Is mandatory, and has a fall back!) +for(OL_MapOverlayTypes loadedMapOverlay : c_loadedMapOverlayTypes){ + currentMapOverlayButton = c_mapOverlayButtons.get(currentMapOverlayButtonIndex); + map_mapOverlayButtonToOverlayType.put(currentMapOverlayButton, loadedMapOverlay); + currentMapOverlayButton.setText(map_mapOverlayTypeToName.get(loadedMapOverlay)); + currentMapOverlayButton.setImageIndex(map_mapOverlayToImageIndex.get(loadedMapOverlay)); + currentMapOverlayButton.setVisible(true); + currentMapOverlayButtonIndex++; } /*ALCODEEND*/} double f_setMapOverlay() {/*ALCODESTART::1753096794863*/ -f_resetMap(); - -//Get selected map overlay type, based on loaded order of the radio buttons -//OL_MapOverlayTypes selectedMapOverlayType = c_loadedMapOverlayTypes.get(rb_mapOverlay.getValue()); +f_resetMapOverlay(); //Set the correct map overlay -switch(v_activeMapLayer){ +switch(v_activeMapOverlay){ case DEFAULT: f_setMapOverlay_Default(); break; @@ -2463,7 +2402,7 @@ public void action() { {/*ALCODESTART::1753097345978*/ if(energyModel.v_rapidRunData == null || !b_resultsUpToDate){ f_setErrorScreen("Dit overzicht wordt pas beschikbaar na het uitvoeren van een jaarsimulatie. In plaats daarvan is de standaard kaart geselecteerd.", 0, 0); - rb_mapOverlay.setValue(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT),true); + f_selectMapOverlayButton(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT)); return; } @@ -2480,7 +2419,7 @@ public void action() { else { if(energyModel.v_rapidRunData == null){ f_setErrorScreen("Dit overzicht wordt pas beschikbaar na het uitvoeren van een jaarsimulatie. In plaats daarvan is de standaard kaart geselecteerd.", 0, 0); - rb_mapOverlay.setValue(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT),true); + f_selectMapOverlayButton(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT)); return; } gr_mapOverlayLegend_ElectricityConsumption.setVisible(true); @@ -2532,7 +2471,7 @@ public void action() { {/*ALCODESTART::1753097518541*/ if(energyModel.v_rapidRunData == null || !b_resultsUpToDate){ f_setErrorScreen("Dit overzicht wordt pas beschikbaar na het uitvoeren van een jaarsimulatie. In plaats daarvan is de standaard kaart geselecteerd.", 0, 0); - rb_mapOverlay.setValue(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT),true); + f_selectMapOverlayButton(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.DEFAULT)); return; } @@ -2620,6 +2559,7 @@ public void action() { //Set order of certain layovers and submenus f_setShapePresentationOnTop(map); f_setShapePresentationOnTop(gr_zoomButton); +f_setShapePresentationOnTop(gr_mapOverlayButtons); f_setShapePresentationOnTop(gr_sliderClickBlocker); f_setShapePresentationOnTop(gr_forceMapSelection); f_setShapePresentationOnTop(gr_filterInterface); @@ -3518,7 +3458,7 @@ String f_getDateStringRapid() f_updateMainInterfaceSliders(); //Colour recolor pv map again if it is active - if(v_activeMapLayer == OL_MapOverlayTypes.PV_PRODUCTION){ + if(v_activeMapOverlay == OL_MapOverlayTypes.PV_PRODUCTION){ f_setMapOverlay_PVProduction(); } } @@ -3857,7 +3797,7 @@ String f_getDateAndTimeString() return formatter.format(date); /*ALCODEEND*/} -double f_resetMap() +double f_resetMapOverlay() {/*ALCODESTART::1780217802554*/ //reset legend gr_defaultLegenda.setVisible(false); @@ -4108,7 +4048,7 @@ ArrayList f_checkIfClickedOnGC(double clickx,double clicky) } if(c_loadedMapOverlayTypes.contains(OL_MapOverlayTypes.GRID_NEIGHBOURS)){ - rb_mapOverlay.setValue(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.GRID_NEIGHBOURS),true); + f_selectMapOverlayButton(c_loadedMapOverlayTypes.indexOf(OL_MapOverlayTypes.GRID_NEIGHBOURS)); } if(c_selectedFilterOptions.size() > 1){ c_selectedGridConnections = new ArrayList<>(c_filterDummy); @@ -4301,3 +4241,25 @@ else if(c_selectedGridConnections.size() == 0 && filterCanReturnZero){//Allowed /*ALCODEEND*/} +double f_selectMapOverlayButton(int selectedMapOverlayButtonIndex) +{/*ALCODESTART::1782740249995*/ +//Get selected button +CustomButton selectedButton = c_mapOverlayButtons.get(selectedMapOverlayButtonIndex); + +//Find selected chart type +v_activeMapOverlay = map_mapOverlayButtonToOverlayType.get(selectedButton); + +//Color selected button +selectedButton.setLineWidth(v_mapOverlayButtonSelectedLineWidth); + +//Deselect other chart buttons +for(CustomButton customButton : c_mapOverlayButtons){ + if(customButton != selectedButton){ + customButton.setLineWidth(v_mapOverlayButtonDefaultLineWidth); + } +} + +//Show correct chart +f_setMapOverlay(); +/*ALCODEEND*/} + diff --git a/_alp/Agents/Zero_Interface/Code/Functions.xml b/_alp/Agents/Zero_Interface/Code/Functions.xml index 568246c1..648e470a 100644 --- a/_alp/Agents/Zero_Interface/Code/Functions.xml +++ b/_alp/Agents/Zero_Interface/Code/Functions.xml @@ -6,7 +6,7 @@ 1696837759924 1960 - 1870 + 2060