рефакторин методов связанных с компонентами.

This commit is contained in:
2024-10-22 20:16:57 +03:00
parent bf5d5442d4
commit c160a20d06
17 changed files with 98 additions and 88 deletions

View File

@@ -1,5 +1,4 @@
package _VisualDVM;
import Common.Database.Tables.DataSet;
import Common.Utils.Loggable;
import Common.Utils.Utils_;
import Common.Visual.UI;
@@ -34,7 +33,7 @@ public class Global {
public static boolean files_multiselection = false;
public static boolean versions_multiselection = false;
//??
public static DataSet<ComponentType, Component> Components = null;
public static ComponentsSet components = null;
public static MessagesServer messagesServer = null;
public static File ComponentsDirectory;
public static File DataDirectory;
@@ -60,9 +59,6 @@ public class Global {
//------------------------------------------------------------------
public static ComponentsServer componentsServer = new ComponentsServer();
public static TestingServer testingServer = new TestingServer();
public static int bad_state = 0;
public static int need_update = 0;
public static int need_publish = 0;
public static void SynschronizeProperties() {
try {
File new_propertiesFile = new File(Utils_.getHomeDirectory(), "properties");
@@ -163,41 +159,7 @@ public class Global {
}
System.exit(0);
}
//todo запихнуть в ComponentsSet
public static void RefreshUpdatesStatus() {
if (Components.getUI() != null)
Components.getUI().Refresh();
ValidateComponentsStates();
if (mainModule.getUI().hasMainWindow())
mainModule.getUI().getMainWindow().ShowUpdatesIcon();
}
public static boolean ValidateComponentsStates() {
bad_state = need_update = need_publish = 0;
for (Component component : Components.Data.values()) {
// if (component.isVisible()) {
switch (component.getState()) {
case Not_found:
case Unknown_version:
case Old_version:
if (component.isNecessary())
bad_state++;
component.Select(true);
break;
case Needs_update:
need_update++;
component.Select(true);
break;
case Needs_publish:
need_publish++;
break;
default:
component.Select(false);
break;
}
// }
}
return (bad_state == 0);
}
public static void changeSetting(SettingName settingName, Object new_value) throws Exception {
Global.mainModule.getPass(PassCode.UpdateSetting).Do(settingName, new_value);
}
@@ -235,15 +197,15 @@ public class Global {
}
messagesServer = new MessagesServer();
messagesServer.Start();
Components = new ComponentsSet();
components = new ComponentsSet();
mainModule.set(Current.ProjectView, ProjectView.Files);
Components.put(ComponentType.Visualiser, visualiser = new Visualiser());
Components.put(ComponentType.Sapfor_F, (Component) mainModule.set(Current.Sapfor, new Sapfor_F()));
Components.put(ComponentType.Visualizer_2, visualizer_2);
Components.put(ComponentType.PerformanceAnalyzer, performanceAnalyzer = new PerformanceAnalyzer());
Components.put(ComponentType.Instruction, new Instruction());
components.put(ComponentType.Visualiser, visualiser = new Visualiser());
components.put(ComponentType.Sapfor_F, (Component) mainModule.set(Current.Sapfor, new Sapfor_F()));
components.put(ComponentType.Visualizer_2, visualizer_2);
components.put(ComponentType.PerformanceAnalyzer, performanceAnalyzer = new PerformanceAnalyzer());
components.put(ComponentType.Instruction, new Instruction());
//-
for (Component component : Components.Data.values())
for (Component component : components.Data.values())
// if (component.isVisible())
component.InitialVersionCheck();
//-
@@ -255,13 +217,13 @@ public class Global {
//-------->>
if (properties.AutoUpdateSearch)
Global.mainModule.getPass(PassCode.GetComponentsActualVersions).Do();
ValidateComponentsStates();
if ((need_update > 0) || (bad_state > 0)) {
components.validateStates();
if (components.needWindow()) {
boolean flag = true;
do {
Global.mainModule.getUI().getComponentsWindow().ShowDialog("");
if (flag = (!ValidateComponentsStates())) {
if (!UI.Question("Найдено " + bad_state + " некорректных необходимых компонент.Работа визуализатора невозможна.\n" +
if (flag = (!components.validateStates())) {
if (!UI.Question("Найдено " + components.bad_state + " некорректных необходимых компонент.Работа визуализатора невозможна.\n" +
"Вернуться к окну компонент"
)) {
UI.Info("Визуализатор завершает работу.");

View File

@@ -44,7 +44,7 @@ public class AddBugReport extends AddObjectPass<BugReport> {
target.sender_address = Global.mainModule.getAccount().email;
target.project_version = "";
target.visualiser_version = Global.visualiser.version;
target.sapfor_version = Global.Components.get(ComponentType.Sapfor_F).version;
target.sapfor_version = Global.components.get(ComponentType.Sapfor_F).version;
target.sapfor_settings = (Global.mainModule.getDb()).settings.getSapforSettingsText();
target.percentage = 0;
target.description = "Черновик отчёта об ошибке.\nЗаполните описание ошибочной ситуации, и нажмите 'Опубликовать'";
@@ -72,7 +72,7 @@ public class AddBugReport extends AddObjectPass<BugReport> {
logs.add(Utils_.MainLog.getLogFile());
logs.add(Paths.get(Global.ComponentsDirectory.getAbsolutePath(), "Sapfor_log.txt").toFile());
logs.add(Paths.get(Global.ComponentsDirectory.getAbsolutePath(), "Server_log.txt").toFile());
logs.add(Global.Components.get(ComponentType.Visualizer_2).getLogFile());
logs.add(Global.components.get(ComponentType.Visualizer_2).getLogFile());
for (File file : logs) {
if (file.exists())
Files.copy(file.toPath(), Paths.get(attachementsDir.getAbsolutePath(), file.getName()), StandardCopyOption.REPLACE_EXISTING);

View File

@@ -20,21 +20,21 @@ public class GetComponentsActualVersions extends ComponentsRepositoryPass {
@Override
protected void ServerAction() throws Exception {
Vector<String> versions = new Vector<>();
for (Component component : Global.Components.Data.values())
for (Component component : Global.components.Data.values())
//if (component.isVisible())
versions.add(component.getComponentType().toString());
Command(new ServerExchangeUnit_2021(ServerCode.GetComponentsVersions, String.join("\n", versions)));
LinkedHashMap<ComponentType, String> response_actual_versions = (LinkedHashMap<ComponentType, String>) response.object;
for (ComponentType componentType : response_actual_versions.keySet()) {
Global.Components.get(componentType).unpackActualVersion(response_actual_versions.get(componentType));
Global.components.get(componentType).unpackActualVersion(response_actual_versions.get(componentType));
}
//-- получить актуальные версии с сервера.
Command(new ServerExchangeUnit_2021(ServerCode.GetComponentsMinimalVersions, String.join("\n", versions)));
LinkedHashMap<ComponentType, String> response_minimal_versions = (LinkedHashMap<ComponentType, String>) response.object;
for (ComponentType componentType : response_minimal_versions.keySet()) {
Global.Components.get(componentType).unpackMinimalVersion(response_minimal_versions.get(componentType));
Global.components.get(componentType).unpackMinimalVersion(response_minimal_versions.get(componentType));
}
for (Component component : Global.Components.Data.values()) {
for (Component component : Global.components.Data.values()) {
if (component.CanBeUpdated())
component.CheckIfNeedsUpdateOrPublish();
}

View File

@@ -48,6 +48,6 @@ public class InstallComponentFromFolder extends CurrentComponentPass {
}
@Override
protected void showDone() throws Exception {
Global.RefreshUpdatesStatus();
Global.components.RefreshUpdatesStatus();
}
}

View File

@@ -120,7 +120,7 @@ public class PublishComponent extends ComponentsRepositoryPass<Component> {
}
@Override
protected void showDone() throws Exception {
Global.RefreshUpdatesStatus();
Global.components.RefreshUpdatesStatus();
}
}

View File

@@ -58,6 +58,6 @@ public class ResurrectComponent extends CurrentComponentPass {
}
@Override
protected void showDone() throws Exception {
Global.RefreshUpdatesStatus();
Global.components.RefreshUpdatesStatus();
}
}

View File

@@ -116,6 +116,6 @@ public class ResurrectComponentFromServer extends CurrentComponentPass {
}
@Override
protected void showDone() throws Exception {
Global.RefreshUpdatesStatus();
Global.components.RefreshUpdatesStatus();
}
}

View File

@@ -16,7 +16,7 @@ public class ShowInstruction extends Pass<File> {
}
@Override
protected boolean canStart(Object... args) throws Exception {
target = Global.Components.get(ComponentType.Instruction).getFile();
target = Global.components.get(ComponentType.Instruction).getFile();
if (!target.exists()) {
Log.Writeln("файл инструкции:\n" + target.getAbsolutePath() + "\е найден! Обновите компонент 'Инструкция'");
return false;

View File

@@ -43,6 +43,6 @@ public class UpdateComponent extends Pass<Component> {
}
@Override
protected void showDone() throws Exception {
Global.RefreshUpdatesStatus();
Global.components.RefreshUpdatesStatus();
}
}

View File

@@ -22,18 +22,18 @@ public class UpdateSelectedComponents extends Pass<Vector<Component>> {
protected boolean canStart(Object... args) throws Exception {
target = new Vector<>();
//------------------------
if (Global.Components.getUI().getSelectedCount() == 0) {
if (Global.components.getUI().getSelectedCount() == 0) {
Log.Writeln_("Не отмечено ни одного компонента!");
return false;
}
target = Global.Components.getUI().getSelectedItems();
target = Global.components.getUI().getSelectedItems();
return true;
}
@Override
public String getStartDescription() {
Vector<String> question = new Vector<>();
question.add("Обновить компоненты");
for (Component component : Global.Components.getUI().getSelectedItems()) {
for (Component component : Global.components.getUI().getSelectedItems()) {
question.add(component.getComponentType().getDescription());
}
return String.join("\n", question);
@@ -41,7 +41,7 @@ public class UpdateSelectedComponents extends Pass<Vector<Component>> {
@Override
protected void body() throws Exception {
for (Component component : target) {
Global.Components.getUI().SetCurrentByPK(component.getPK());
Global.components.getUI().SetCurrentByPK(component.getPK());
Global.mainModule.getPass(PassCode.UpdateComponent).Do();
}
}

View File

@@ -44,7 +44,7 @@ public class BugReport extends rDBObject {
sender_address = sender_address_in;
project_version = version_in;
visualiser_version = Global.visualiser.version;
sapfor_version = Global.Components.get(ComponentType.Sapfor_F).version;
sapfor_version = Global.components.get(ComponentType.Sapfor_F).version;
sapfor_settings = (Global.mainModule.getDb()).settings.getSapforSettingsText();
percentage = 0;
description = description_in;

View File

@@ -1,10 +1,21 @@
package _VisualDVM.Repository.Component;
import Common.Database.Tables.DataSet;
import Common.Visual.DataSetControlForm;
import _VisualDVM.Global;
import _VisualDVM.Repository.Component.UI.ComponentsForm;
import javax.swing.*;
public class ComponentsSet extends DataSet<ComponentType, Component> {
public boolean bad_state = false;
public boolean need_update = false;
public boolean need_publish = false;
public boolean needWindow() {
return bad_state || need_update;
}
public String getButtonIconPath() {
return needWindow() ? "/icons/ComponentsNeedUpdate.gif"
: (need_publish ? "/icons/ComponentsNeedPublish_2023.gif" : "/icons/ComponentsActual.png");
}
public ComponentsSet() {
super(ComponentType.class, Component.class);
}
@@ -20,4 +31,38 @@ public class ComponentsSet extends DataSet<ComponentType, Component> {
protected DataSetControlForm createUI(JPanel mountPanel) {
return new ComponentsForm(this, mountPanel);
}
//--
public void RefreshUpdatesStatus() {
if (getUI() != null)
getUI().Refresh();
validateStates();
if (Global.mainModule.getUI().hasMainWindow())
Global.mainModule.getUI().getMainWindow().ShowUpdatesIcon();
}
public boolean validateStates() {
bad_state = need_update = need_publish = false;
for (Component component : Data.values()) {
switch (component.getState()) {
case Not_found:
case Unknown_version:
case Old_version:
if (component.isNecessary())
bad_state = true;
component.Select(true);
break;
case Needs_update:
need_update = true;
component.Select(true);
break;
case Needs_publish:
need_publish = true;
break;
default:
component.Select(false);
break;
}
// }
}
return !bad_state;
}
}

View File

@@ -8,7 +8,7 @@ public class ComponentsFields implements DialogFields {
public JPanel content;
private JPanel componentsPanel;
public ComponentsFields() {
Global.Components.mountUI(componentsPanel);
Global.components.mountUI(componentsPanel);
}
@Override
public Component getContent() {

View File

@@ -2,7 +2,7 @@ package _VisualDVM.Visual;
import Common.Visual.UIModule_;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.RemoteFile.UI.RemoteFileChooser;
import _VisualDVM.Repository.Component.UI.ComponentsWindow;
import _VisualDVM.Visual.Windows.ComponentsWindow;
import _VisualDVM.TestingSystem.Common.TestingMenuBar;
import _VisualDVM.Visual.Interface.DebugWindow;
import _VisualDVM.Visual.Interface.VersionsWindow;

View File

@@ -13,7 +13,7 @@ import java.awt.*;
public class MainMenuBar extends VisualiserMenuBar {
JMenu analyses;
JMenu transformations;
MenuBarButton components;
MenuBarButton componentsButton;
public MainMenuBar() {
addMenus(new LastOpenedProjectsMenu());
addPasses(PassCode.OpenCurrentProject, PassCode.CreateEmptyProject);
@@ -23,7 +23,7 @@ public class MainMenuBar extends VisualiserMenuBar {
new GlobalCleaningMenu(),
new VisualiserSettingsMenu()
);
add(components = new MenuBarButton() {
add(componentsButton = new MenuBarButton() {
{
setToolTipText("Компоненты");
setIcon("/icons/ComponentsActual.png");
@@ -32,7 +32,7 @@ public class MainMenuBar extends VisualiserMenuBar {
UI.Info("Перед работой с компонентами закройте анализатор производительности!");
} else {
Global.mainModule.getPass(PassCode.GetComponentsActualVersions).Do();
Global.RefreshUpdatesStatus();
Global.components.RefreshUpdatesStatus();
Global.mainModule.getUI().getComponentsWindow().ShowDialog("");
}
});
@@ -65,10 +65,7 @@ public class MainMenuBar extends VisualiserMenuBar {
ShowProject(false);
}
public void ShowUpdatesIcon() {
components.setIcon(
(Global.need_update > 0) || (Global.bad_state > 0)
? "/icons/ComponentsNeedUpdate.gif"
: (Global.need_publish > 0 ? "/icons/ComponentsNeedPublish_2023.gif" : "/icons/ComponentsActual.png"));
componentsButton.setIcon(Global.components.getButtonIconPath());
}
public void ShowProject(boolean flag) {
analyses.setEnabled(flag);

View File

@@ -1,6 +1,7 @@
package _VisualDVM.Repository.Component.UI;
package _VisualDVM.Visual.Windows;
import Common.Visual.Windows.Dialog.Dialog;
import _VisualDVM.Global;
import _VisualDVM.Repository.Component.UI.ComponentsFields;
import java.awt.*;
public class ComponentsWindow extends Dialog<Object, ComponentsFields> {
@@ -24,7 +25,7 @@ public class ComponentsWindow extends Dialog<Object, ComponentsFields> {
}
@Override
public void Init(Object... params) {
Global.Components.ShowUI();
Global.components.ShowUI();
}
@Override
public void LoadSize() {