патч на применение настроек старых баг репортов

This commit is contained in:
2025-01-16 19:04:46 +03:00
parent 1b6db1fd5b
commit 96a269004d
10 changed files with 109 additions and 112 deletions

View File

@@ -1,12 +1,16 @@
package _VisualDVM.ProjectData.SapforData;
import Common.Properties;
import Common.Utils.Utils_;
import Common.Utils.Vector_;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Repository.BugReport.Json.VisualiserSettingJson;
import _VisualDVM.Repository.BugReport.Json.VisualiserSettingsJson;
import com.google.gson.annotations.Expose;
import javax.swing.*;
import java.io.File;
import java.lang.reflect.Field;
import java.util.Vector;
public class SapforProperties extends Properties {
//побочные настройки визулизатора
@@ -161,4 +165,63 @@ public class SapforProperties extends Properties {
public boolean controlAction(String fieldName, JMenuItem control) {
return (Global.mainModule.getPass(PassCode.UpdateSapforProperty).Do(fieldName));
}
public String getSummary(){
Vector<String> res = new Vector<>();
for (Field field: this.getClass().getFields()){
try {
res.add(getFieldDescription(field.getName()) + "=" + field.get(this));
}
catch (Exception ex){
ex.printStackTrace();
}
}
return String.join("\n", res);
}
public void applyPatch(VisualiserSettingsJson settings){
Vector<String> changedFields = new Vector<>();
try {
for (VisualiserSettingJson setting : settings.array) {
System.out.println(setting.name+"="+ Utils_.Brackets(setting.value));
Field field = null;
try {
field = getClass().getField(setting.name);
}
catch (Exception ex){
ex.printStackTrace();
}
if (field!=null) {
if (field.getName().equals(setting.name)) {
changedFields.add(setting.name);
switch (setting.name) {
case "GCOVLimit":
GCOVLimit = Integer.parseInt(setting.value);
break;
case "MAX_SHADOW_WIDTH":
MAX_SHADOW_WIDTH = Integer.parseInt(setting.value);
break;
case "ANALYSIS_OPTIONS":
ANALYSIS_OPTIONS = setting.value;
break;
case "DVMConvertationOptions":
DVMConvertationOptions = setting.value;
break;
default:
int value_ = Integer.parseInt(setting.value);
field.set(this, value_ != 0);
break;
}
}
}
}
if (!changedFields.isEmpty()) {
this.Update();
for (String fieldName: changedFields){
Mark(fieldName, getMenuItem(fieldName));
}
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}