Files
VisualSapfor/src/_VisualDVM/Passes/All/ApplyBugReportSettings.java

59 lines
2.3 KiB
Java
Raw Normal View History

2024-10-14 12:14:01 +03:00
package _VisualDVM.Passes.All;
2024-10-09 22:01:19 +03:00
import _VisualDVM.Current;
import _VisualDVM.Global;
2024-10-09 22:21:57 +03:00
import _VisualDVM.GlobalData.Settings.SettingName;
import _VisualDVM.Repository.BugReport.BugReport;
2024-10-14 12:14:01 +03:00
import _VisualDVM.Passes.PassCode;
2024-10-10 23:57:36 +03:00
import Common.Passes.Pass;
2023-09-17 22:13:42 +03:00
import java.util.LinkedHashMap;
2024-10-09 23:37:58 +03:00
public class ApplyBugReportSettings extends Pass<BugReport> {
2023-09-17 22:13:42 +03:00
@Override
public String getIconPath() {
return "/icons/Apply.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
public boolean needsConfirmations() {
return true;
}
@Override
protected boolean canStart(Object... args) {
if (Global.mainModule.Check(Log, Current.BugReport)) {
target = Global.mainModule.getBugReport();
2023-09-17 22:13:42 +03:00
long vv = target.visualiser_version;
if (vv < 500) {
Log.Writeln_("Автоматическое применение настроек поддерживается только в отчётах об ошибках,\n" +
"отправленных с версии визуализатора 500 и выше");
return false;
}
return true;
}
return false;
}
@Override
protected void body() throws Exception {
String[] lines = target.sapfor_settings.split("\n");
LinkedHashMap<SettingName, String> to_apply = new LinkedHashMap<>();
for (int i = 1; i < lines.length; ++i) {
SettingName settingName = SettingName.getByDescription(lines[i].substring(4, lines[i].indexOf('=')));
String settingValue = lines[i].substring(lines[i].indexOf('=') + 1);
if (!settingName.equals(SettingName.Undefined))
to_apply.put(settingName, settingValue);
}
//сохранить текущие настройки как профиль
// Global.db.rewriteProfileByDescription("Saved Profile");
//--
//само применение.
for (SettingName settingName : to_apply.keySet())
Global.mainModule.getPass(PassCode.UpdateSetting).Do(
2023-09-17 22:13:42 +03:00
settingName,
to_apply.get(settingName));
//сохранить настройки бага как профиль
// Global.db.rewriteProfileByDescription(target.id);
}
}