патч на применение настроек старых баг репортов
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user