рефакторинг полей багов, настройка автопоиска обновлений, версия ++

This commit is contained in:
2024-12-01 23:55:14 +03:00
parent dd674dce48
commit 9c8abd7ee4
14 changed files with 159 additions and 36 deletions

18
.idea/workspace.xml generated
View File

@@ -7,16 +7,20 @@
</component>
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/server_debug_properties/properties" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/Json/RecipientJson.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/Json/RecipientsJson.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/testing_debug_properties/properties" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/Json/VisualiserSettingJson.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/Json/VisualiserSettingsJson.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/SynchronizationSettingsMenu.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishBugReport.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishBugReport.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SaveBugReportRecipients.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SaveBugReportRecipients.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Settings/SettingsDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Settings/SettingsDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalProperties.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AddBugReport.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/AddBugReport.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ApplyBugReportSettings.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ApplyBugReportSettings.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/BugReport.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/BugReport/BugReport.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/VisualiserSettingsMenu/CompactnessSettingsMenu.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/VisualiserSettingsMenu/CompactnessSettingsMenu.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/VisualiserSettingsMenu/VisualiserSettingsMenu.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/VisualiserSettingsMenu/VisualiserSettingsMenu.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Windows/CallbackForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Windows/CallbackForm.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -3,7 +3,7 @@
"ServerAddress": "alex-freenas.ddns.net",
"ServerUserName": "testuser",
"ServerUserSHHPort": 2000,
"ComponentsServerPort": 7996,
"ComponentsServerPort": 7995,
"TestingServerPort": 7998,
"SocketTimeout": 5000,
"OldServer": false,
@@ -25,8 +25,8 @@
"ProjectDBName": "new_project_base.sqlite",
"BugReportsDBName": "bug_reports.sqlite",
"TestsDBName": "tests.sqlite",
"ComponentsWindowWidth": 924,
"ComponentsWindowHeight": 250,
"ComponentsWindowWidth": 943,
"ComponentsWindowHeight": 310,
"VisualiserPath": "C:\\Users\\misha\\Downloads",
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",
"Visualizer_2Path": "C:\\Users\\misha\\Documents",
@@ -35,9 +35,9 @@
"ComponentsBackUpsCount": 10,
"AutoCheckTesting": true,
"CheckTestingIntervalSeconds": 10,
"EmailOnTestingProgress": true,
"EmailOnTestingProgress": false,
"eraseTestingWorkspaces": true,
"lastMachineId": 13,
"lastUserId": 34,
"lastCompilerId": 52
"lastMachineId": -1,
"lastUserId": -1,
"lastCompilerId": -1
}

View File

@@ -1,6 +1,8 @@
package _VisualDVM.GlobalData.Settings;
import Common.Database.Tables.DBTable;
import Common.Utils.Utils_;
import _VisualDVM.Repository.BugReport.Json.VisualiserSettingJson;
import _VisualDVM.Repository.BugReport.Json.VisualiserSettingsJson;
import _VisualDVM.Repository.Component.ComponentType;
import _VisualDVM.Utils;
@@ -90,4 +92,13 @@ public class SettingsDBTable extends DBTable<SettingName, DBSetting> {
return "настройки SAPFOR\n" + String.join("\n",
getSettingsByOwner(ComponentType.SapforOptions).stream().map(s -> " " + s.Name.getDescription() + "=" + s.Value).collect(Collectors.toCollection(Vector::new)));
}
public VisualiserSettingsJson getSapforSettingsJson() {
VisualiserSettingsJson res = new VisualiserSettingsJson();
Vector<DBSetting> sapforSettings = getSettingsByOwner(ComponentType.SapforOptions);
for (DBSetting setting: sapforSettings){
VisualiserSettingJson visualiserSettingJson = new VisualiserSettingJson(setting);
res.array.add(visualiserSettingJson);
}
return res;
}
}

View File

@@ -159,6 +159,8 @@ public class GlobalProperties {
return "Свернуть раздел сообщений файла";
case "collapseProjectTrees":
return "Свернуть раздел деревьев проекта";
case "AutoUpdateSearch":
return "Автоматический поиск обновлений";
default:
return "?";
}

View File

@@ -46,7 +46,7 @@ public class AddBugReport extends AddObjectPass<BugReport> {
target.project_version = "";
target.visualiser_version = ComponentsSet.visualiser.version;
target.sapfor_version = Global.components.get(ComponentType.Sapfor_F).version;
target.sapfor_settings = (Global.mainModule.getDb()).settings.getSapforSettingsText();
target.packedSettingsJson = Utils_.gson.toJson(Global.mainModule.getDb().settings.getSapforSettingsJson());
target.percentage = 0;
target.description = "Черновик отчёта об ошибке.\nЗаполните описание ошибочной ситуации, и нажмите 'Опубликовать'";
target.date = new Date().getTime();

View File

@@ -1,9 +1,12 @@
package _VisualDVM.Passes.All;
import Common.Passes.Pass;
import Common.Utils.Utils_;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Settings.SettingName;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Repository.BugReport.BugReport;
import _VisualDVM.Repository.BugReport.Json.VisualiserSettingJson;
import _VisualDVM.Repository.BugReport.Json.VisualiserSettingsJson;
import java.util.LinkedHashMap;
public class ApplyBugReportSettings extends Pass<BugReport> {
@@ -35,6 +38,19 @@ public class ApplyBugReportSettings extends Pass<BugReport> {
}
@Override
protected void body() throws Exception {
LinkedHashMap<SettingName, String> to_apply = new LinkedHashMap<>();
VisualiserSettingsJson settings = Utils_.gson.fromJson(target.packedSettingsJson, VisualiserSettingsJson.class);
for (VisualiserSettingJson setting : settings.array) {
SettingName settingName = SettingName.Undefined;
try {
settingName = SettingName.valueOf(setting.name);
} catch (Exception ex) {
ex.printStackTrace();
}
if (!settingName.equals(SettingName.Undefined))
to_apply.put(settingName, setting.value);
}
/*
String[] lines = target.sapfor_settings.split("\n");
LinkedHashMap<SettingName, String> to_apply = new LinkedHashMap<>();
for (int i = 1; i < lines.length; ++i) {
@@ -43,6 +59,7 @@ public class ApplyBugReportSettings extends Pass<BugReport> {
if (!settingName.equals(SettingName.Undefined))
to_apply.put(settingName, settingValue);
}
*/
//сохранить текущие настройки как профиль
// Global.db.rewriteProfileByDescription("Saved Profile");
//--

View File

@@ -4,8 +4,11 @@ import Common.Database.Objects.rDBObject;
import Common.Utils.TextLog;
import Common.Utils.Utils_;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Settings.SettingName;
import _VisualDVM.Repository.BugReport.Json.RecipientJson;
import _VisualDVM.Repository.BugReport.Json.RecipientsJson;
import _VisualDVM.Repository.BugReport.Json.VisualiserSettingJson;
import _VisualDVM.Repository.BugReport.Json.VisualiserSettingsJson;
import _VisualDVM.Repository.Component.ComponentType;
import _VisualDVM.Repository.Component.ComponentsSet;
import _VisualDVM.Repository.RepositoryServer;
@@ -13,19 +16,19 @@ import _VisualDVM.Repository.Subscribes.Subscriber;
import com.sun.org.glassfish.gmbal.Description;
import java.io.File;
import java.lang.reflect.Type;
import java.nio.file.Paths;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Vector;
public class BugReport extends rDBObject {
//todo все запакованные поля переделать в json.
public String project_version = "";
public long visualiser_version = -1;
public long sapfor_version = -1;
public String sapfor_settings = "";
public String comment = "";
@Description("DEFAULT ''")
public String packedRecipientsJson = "";
@Description("DEFAULT ''")
public String packedSettingsJson = "";
public String executor = "";
@Description("DEFAULT ''")
public String executor_address = "";
@@ -50,7 +53,7 @@ public class BugReport extends rDBObject {
project_version = version_in;
visualiser_version = ComponentsSet.visualiser.version;
sapfor_version = Global.components.get(ComponentType.Sapfor_F).version;
sapfor_settings = (Global.mainModule.getDb()).settings.getSapforSettingsText();
packedSettingsJson = Utils_.gson.toJson(Global.mainModule.getDb().settings.getSapforSettingsJson());
percentage = 0;
description = description_in;
date = new Date().getTime();
@@ -74,7 +77,7 @@ public class BugReport extends rDBObject {
project_version = b.project_version;
visualiser_version = b.visualiser_version;
sapfor_version = b.sapfor_version;
sapfor_settings = b.sapfor_settings;
packedSettingsJson = b.packedSettingsJson;
//-
descriptionAdditionDraft = b.descriptionAdditionDraft;
commentAdditionDraft = b.commentAdditionDraft;
@@ -127,8 +130,7 @@ public class BugReport extends rDBObject {
(Global.mainModule.HasAccount() ? (Global.mainModule.getAccount().isAdmin() ? ("Адрес отправителя: " + sender_address + "\n") : "") : "") +
"Версия SAPFOR: " + sapfor_version + "\n" +
"Версия визуализатора: " + visualiser_version + "\n" +
"----------------------------------\n" +
sapfor_settings;
"----------------------------------\n" + getSettingsJson().getSummary();
}
public String getPassport() {
return String.join("\n",
@@ -160,4 +162,46 @@ public class BugReport extends rDBObject {
}
return res;
}
public VisualiserSettingsJson getSettingsJson(){
return packedSettingsJson.isEmpty()? new VisualiserSettingsJson(): Utils_.gson.fromJson(packedSettingsJson,VisualiserSettingsJson.class);
}
/*
public void settingsPatch(){
// System.out.println(getPK());
// if (packedSettingsJson.isEmpty()) {
//System.out.println(sapfor_settings);
//--
VisualiserSettingsJson settings = new VisualiserSettingsJson();
String[] lines = sapfor_settings.split("\n");
for (int i = 1; i < lines.length; ++i) {
String line = lines[i];
if (!line.toLowerCase().contains("настройки")) {
line = line.replace(" :", "=").replace("True","1").replace("False","0").trim();
SettingName settingName = null;
try {
settingName = SettingName.valueOf(line.substring(0, line.indexOf('=')));
} catch (Exception ex) {
System.out.println(line);
}
if (settingName == null) {
try {
settingName = SettingName.getByDescription(line.substring(0, line.indexOf('=')));
} catch (Exception ex) {
System.out.println(line);
}
}
if (settingName != null) {
String settingValue = line.substring(line.indexOf('=') + 1);
if (!settingName.equals(SettingName.Undefined)) {
VisualiserSettingJson setting = new VisualiserSettingJson();
setting.name = settingName.toString();
setting.value = settingValue;
settings.array.add(setting);
}
}
}
}
packedSettingsJson = Utils_.gson.toJson(settings);
}
*/
}

View File

@@ -0,0 +1,15 @@
package _VisualDVM.Repository.BugReport.Json;
import _VisualDVM.GlobalData.Settings.DBSetting;
import com.google.gson.annotations.Expose;
public class VisualiserSettingJson {
@Expose
public String name;
@Expose
public String value;
public VisualiserSettingJson(){
}
public VisualiserSettingJson(DBSetting dbSetting){
name = dbSetting.Name.toString();
value = dbSetting.Value;
}
}

View File

@@ -0,0 +1,23 @@
package _VisualDVM.Repository.BugReport.Json;
import _VisualDVM.GlobalData.Settings.DBSetting;
import _VisualDVM.GlobalData.Settings.SettingName;
import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class VisualiserSettingsJson {
@Expose
public List<VisualiserSettingJson> array = new Vector<>();
public String getSummary(){
Vector<String> res=new Vector<>();
for (VisualiserSettingJson setting: array){
try {
res.add(SettingName.valueOf(setting.name).getDescription() + "=" + setting.value);
}
catch (Exception ex){
ex.printStackTrace();
}
}
return String.join("\n",res);
}
}

View File

@@ -61,7 +61,7 @@ public class Visualiser extends Component {
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
@Override
public void GetVersionInfo() {
version = 1127;
version = 1129;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());

View File

@@ -0,0 +1,17 @@
package _VisualDVM.Visual.Menus.MainMenuBar;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Settings.SettingName;
import _VisualDVM.Visual.Menus.SettingsSubmenu;
public class SynchronizationSettingsMenu extends SettingsSubmenu {
public SynchronizationSettingsMenu() {
super("Синхронизация", null,
SettingName.AutoBugReportsLoad,
SettingName.AutoTestsLoad);
String[] propertiesNames = new String[]{
"AutoUpdateSearch",
};
for (String name : propertiesNames) {
Global.properties.addFlagMenuItem(this, name);
}
}
}

View File

@@ -13,7 +13,6 @@ public class CompactnessSettingsMenu extends SettingsSubmenu {
);
addSeparator();
String[] propertiesNames = new String[]{
// "collapseCredentials",
"collapseProjectTrees",
"collapseFileGraphs",
"collapseFileMessages"
@@ -21,6 +20,5 @@ public class CompactnessSettingsMenu extends SettingsSubmenu {
for (String name : propertiesNames) {
Global.properties.addFlagMenuItem(this, name);
}
;
}
}

View File

@@ -3,6 +3,7 @@ import Common.Utils.Utils_;
import Common.Visual.Menus.VisualiserMenu;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Settings.SettingName;
import _VisualDVM.Visual.Menus.MainMenuBar.SynchronizationSettingsMenu;
import _VisualDVM.Visual.Menus.PropertiesSubmenu;
import _VisualDVM.Visual.Menus.SettingsSubmenu;
public class VisualiserSettingsMenu extends VisualiserMenu {
@@ -25,10 +26,7 @@ public class VisualiserSettingsMenu extends VisualiserMenu {
SettingName.Kernels
));
}
add(new SettingsSubmenu("Синхронизация", null,
SettingName.AutoBugReportsLoad,
SettingName.AutoTestsLoad
));
add(new SynchronizationSettingsMenu());
add(new SettingsSubmenu("Сравнение", null,
SettingName.ExtensionsOn,
SettingName.RegisterOn,

View File

@@ -518,13 +518,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
BugReportComment.setText(target.comment);
BugReportComment.ShowBegin();
BugReportCommentAddition.setText(target.commentAdditionDraft);
BugReportSettings.setText(
String.join("\n",
("Версия SAPFOR: " + target.sapfor_version),
("Версия визуализатора: " + target.visualiser_version),
target.sapfor_settings
)
);
BugReportSettings.setText(target.getSettingsSummary());
Global.mainModule.setPassesControlsVisible(true, PassCode.ApplyBugReportSettings);
//
if (target.state.equals(BugReportState.draft)) {