diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8c9e55b6..8e698846 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -7,10 +7,21 @@ + + + + - - + + + + + + + + + diff --git a/properties b/properties index 436d695a..14120626 100644 --- a/properties +++ b/properties @@ -34,5 +34,6 @@ "AutoCheckTesting": false, "CheckTestingIntervalSeconds": 10, "EmailOnTestingProgress": false, - "collapseCredentials": true + "collapseCredentials": true, + "collapseFileGraphs": false } \ No newline at end of file diff --git a/src/Common/GlobalProperties.java b/src/Common/GlobalProperties.java index 6fda955c..08bb5f78 100644 --- a/src/Common/GlobalProperties.java +++ b/src/Common/GlobalProperties.java @@ -96,6 +96,8 @@ public class GlobalProperties extends Properties { public boolean EmailOnTestingProgress = false; //включено ли оповещение по email о результатах тестирования. @Expose public boolean collapseCredentials=false; + @Expose + public boolean collapseFileGraphs = false; //- @Override public File getFile() { diff --git a/src/Common/UI/Menus_2023/ECButtonPosition.java b/src/Common/UI/Menus_2023/ECButtonPosition.java new file mode 100644 index 00000000..a0e396de --- /dev/null +++ b/src/Common/UI/Menus_2023/ECButtonPosition.java @@ -0,0 +1,7 @@ +package Common.UI.Menus_2023; +public enum ECButtonPosition { + Up, + Down, + Left, + Right +} diff --git a/src/Common/UI/Menus_2023/ExpandCollapseButton.java b/src/Common/UI/Menus_2023/ExpandCollapseButton.java new file mode 100644 index 00000000..f4688a8d --- /dev/null +++ b/src/Common/UI/Menus_2023/ExpandCollapseButton.java @@ -0,0 +1,51 @@ +package Common.UI.Menus_2023; +public class ExpandCollapseButton extends MenuBarButton { + protected String description; + protected ECButtonPosition position; + public ExpandCollapseButton(String description_in, ECButtonPosition position_in) { + description = description_in; + position = position_in; + Switch(true); + } + public void Switch(boolean flag) { + String prefix = "?"; + String icon_name = "Help"; + if (flag) { + prefix = "Развернуть"; + switch (position) { + case Up: + icon_name = "ExpandUp"; + break; + case Down: + icon_name = "CollapseDown"; + break; + case Left: + icon_name = "SilwerArrowLeft"; + break; + case Right: + icon_name = "SilwerArrowRight"; + break; + } + } else { + prefix = "Свернуть"; + switch (position) { + case Up: + icon_name = "ExpandDown"; + break; + case Down: + icon_name = "CollapseUp"; + break; + case Left: + icon_name = "SilwerArrowRight"; + break; + case Right: + icon_name = "SilwerArrowLeft"; + break; + } + } + setToolTipText(prefix + " " + description); + setIcon("/icons/" + icon_name + ".png"); + revalidate(); + repaint(); + } +} diff --git a/src/Common/UI/Menus_2023/FileMenuBar/FileMenuBar.java b/src/Common/UI/Menus_2023/FileMenuBar/FileMenuBar.java index 2ea937c8..7cc2eb14 100644 --- a/src/Common/UI/Menus_2023/FileMenuBar/FileMenuBar.java +++ b/src/Common/UI/Menus_2023/FileMenuBar/FileMenuBar.java @@ -1,6 +1,10 @@ package Common.UI.Menus_2023.FileMenuBar; +import Common.Current; +import Common.UI.Menus_2023.ECButtonPosition; +import Common.UI.Menus_2023.ExpandCollapseButton; import Common.UI.Menus_2023.MenuBarButton; import Common.UI.Menus_2023.VisualiserMenuBar; +import Common.UI.Themes.VisualiserFonts; import Common.UI.UI; import ProjectData.Files.UI.Editor.SPFEditor; import Visual_DVM_2021.Passes.PassCode_2021; @@ -8,6 +12,7 @@ import Visual_DVM_2021.Passes.PassCode_2021; import javax.swing.*; import java.awt.*; public class FileMenuBar extends VisualiserMenuBar { + public ExpandCollapseButton LeftECButton; public JSpinner sToGo; JLabel LineCountLabel; public JLabel CurrentSymbolLabel; @@ -15,6 +20,13 @@ public class FileMenuBar extends VisualiserMenuBar { FileSettingsMenu fileSettingsMenu; public FileMenuBar(SPFEditor editor_in) { editor = editor_in; + add(LeftECButton = new ExpandCollapseButton("область графов файла", ECButtonPosition.Left) { + { + addActionListener(e -> { + Current.getFile().form.SwitchGraphs(); + }); + } + }); add(new MenuBarButton() { { setToolTipText("Поиск(Ctrl+F)"); diff --git a/src/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java b/src/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java index d301c013..2be3e1c7 100644 --- a/src/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java +++ b/src/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java @@ -1,4 +1,5 @@ package Common.UI.Menus_2023.MainMenuBar; +import Common.Current; import Common.Global; import Common.UI.Menus_2023.MenuBarButton; import Common.UI.Menus_2023.VisualiserMenuBar; @@ -52,18 +53,18 @@ public class MainMenuBar extends VisualiserMenuBar { //- setPreferredSize(new Dimension(0, 30)); //--- - /* +/* add(new MenuBarButton() { { setIcon("/icons/Apply.png"); setToolTipText("Test"); addActionListener(e -> { // Pass_2021.passes.get(PassCode_2021.TestPass).Do(); - UI.getMainWindow().getTestingWindow().SwitchCredentials(false); + Current.getFile().form.SwitchGraphs(false); }); } }); - */ + */ //--- ShowProject(false); } diff --git a/src/Common/UI/UI.java b/src/Common/UI/UI.java index 814063d6..14e1ab53 100644 --- a/src/Common/UI/UI.java +++ b/src/Common/UI/UI.java @@ -3,31 +3,11 @@ import Common.Current; import Common.Database.DataSet; import Common.Global; import Common.UI.Menus_2023.CredentialsBar.CredentialsBar; -import Repository.BugReport.BugReportsMenuBar; -import GlobalData.Compiler.CompilersMenuBar; -import TestingSystem.DVM.Configuration.ConfigurationsMenuBar; -import TestingSystem.DVM.DVMPackage.DVMPackagesBar; -import GlobalData.DVMParameter.DVMParametersMenuBar; import Common.UI.Menus_2023.DataMenuBar; -import GlobalData.EnvironmentValue.EnvironmentValuesMenuBar; import Common.UI.Menus_2023.FastAccessMenuBar.FastAccessMenuBar; -import TestingSystem.Common.Group.GroupsMenuBar; -import GlobalData.Machine.MachinesMenuBar; +import Common.UI.Menus_2023.FileMenuBar.FileMenuBar; import Common.UI.Menus_2023.MainMenuBar.MainMenuBar; import Common.UI.Menus_2023.MainMenuBar.MainWindow; -import GlobalData.Makefile.MakefilesMenuBar; -import GlobalData.Module.ModulesMenuBar; -import GlobalData.RunConfiguration.RunConfigurationsMenuBar; -import TestingSystem.DVM.DVMTasks.DVMRunTasksBar; -import TestingSystem.DVM.DVMTasks.DVMRunTasksSet; -import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsMenuBar; -import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationsMenuBar; -import TestingSystem.SAPFOR.ServerSapfor.ServerSapforsBar; -import Repository.SubscriberWorkspace.SubscriberWorkspacesMenuBar; -import Repository.Subscribes.SubscribersMenuBar; -import TestingSystem.Common.TestingBar; -import TestingSystem.Common.Test.TestsMenuBar; -import GlobalData.User.UsersMenuBar; import Common.UI.Menus_2023.VariantsMenuBar.VariantsMenuBar; import Common.UI.Menus_2023.VersionsMenuBar.VersionsMenuBar; import Common.UI.Tables.*; @@ -38,31 +18,34 @@ import Common.UI.Windows.FormType; import Common.UI.Windows.SearchReplaceForm; import Common.Utils.Utils; import GlobalData.Compiler.CompilersDBTable; +import GlobalData.Compiler.CompilersMenuBar; import GlobalData.CompilerEnvironment.UI.CompilerEnvironmentValueEditor; import GlobalData.CompilerEnvironment.UI.CompilerEnvironmentValueRenderer; import GlobalData.CompilerOption.UI.CompilerOptionParameterNameRenderer; import GlobalData.CompilerOption.UI.CompilerOptionParameterValueEditor; import GlobalData.CompilerOption.UI.CompilerOptionParameterValueRenderer; import GlobalData.DVMParameter.DVMParameterDBTable; +import GlobalData.DVMParameter.DVMParametersMenuBar; import GlobalData.EnvironmentValue.EnvironmentValuesDBTable; +import GlobalData.EnvironmentValue.EnvironmentValuesMenuBar; import GlobalData.Machine.MachinesDBTable; +import GlobalData.Machine.MachinesMenuBar; import GlobalData.Makefile.MakefilesDBTable; +import GlobalData.Makefile.MakefilesMenuBar; import GlobalData.Module.ModulesDBTable; +import GlobalData.Module.ModulesMenuBar; import GlobalData.RemoteFile.UI.RemoteFileChooser; import GlobalData.RemoteFile.UI.RemoteFileRenderer; import GlobalData.RunConfiguration.RunConfigurationsDBTable; +import GlobalData.RunConfiguration.RunConfigurationsMenuBar; import GlobalData.SapforProfile.SapforProfilesDBTable; import GlobalData.Settings.SettingName; import GlobalData.Tasks.CompilationTask.CompilationTasksDBTable; import GlobalData.Tasks.RunTask.RunTasksDBTable; import GlobalData.User.UsersDBTable; +import GlobalData.User.UsersMenuBar; import ProjectData.DBArray.ArraysDBTable; import ProjectData.Files.UI.FilesTreeCellRenderer; -import Repository.SubscriberWorkspace.SubscriberWorkspaceDBTable; -import TestingSystem.DVM.DVMPackage.DVMPackageDBTable; -import TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable; -import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforPackagesBar; -import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforVersionsTreeCellRenderer; import ProjectData.Project.UI.VersionsTreeCellRenderer; import ProjectData.SapforData.Arrays.ArraysSet; import ProjectData.SapforData.Arrays.UI.DimensionRenderer; @@ -72,18 +55,39 @@ import ProjectData.SapforData.Regions.RegionsSet; import ProjectData.SapforData.Variants.UI.VariantRankRenderer; import ProjectData.SapforData.Variants.VariantsSet; import Repository.BugReport.BugReportsDBTable; +import Repository.BugReport.BugReportsMenuBar; import Repository.Component.UI.ComponentsForm; +import Repository.SubscriberWorkspace.SubscriberWorkspaceDBTable; +import Repository.SubscriberWorkspace.SubscriberWorkspacesMenuBar; +import Repository.Subscribes.SubscribersMenuBar; import Repository.Subscribes.SubsribersDBTable; -import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable; -import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable; -import TestingSystem.SAPFOR.ServerSapfor.ServerSapforsDBTable; -import TestingSystem.DVM.Configuration.ConfigurationDBTable; import TestingSystem.Common.Group.GroupsDBTable; +import TestingSystem.Common.Group.GroupsMenuBar; import TestingSystem.Common.Test.TestDBTable; +import TestingSystem.Common.Test.TestsMenuBar; +import TestingSystem.Common.TestingBar; +import TestingSystem.DVM.Configuration.ConfigurationDBTable; +import TestingSystem.DVM.Configuration.ConfigurationsMenuBar; +import TestingSystem.DVM.DVMPackage.DVMPackageDBTable; +import TestingSystem.DVM.DVMPackage.DVMPackagesBar; +import TestingSystem.DVM.DVMTasks.DVMRunTasksBar; +import TestingSystem.DVM.DVMTasks.DVMRunTasksSet; +import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable; +import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationsMenuBar; +import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable; +import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsMenuBar; +import TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable; +import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforPackagesBar; +import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforVersionsTreeCellRenderer; +import TestingSystem.SAPFOR.ServerSapfor.ServerSapforsBar; +import TestingSystem.SAPFOR.ServerSapfor.ServerSapforsDBTable; import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.UI.Interface.DebugWindow; import Visual_DVM_2021.UI.Interface.VersionsWindow; -import Visual_DVM_2021.UI.Main.*; +import Visual_DVM_2021.UI.Main.DebugForm; +import Visual_DVM_2021.UI.Main.MainForm; +import Visual_DVM_2021.UI.Main.ProfilesForm; +import Visual_DVM_2021.UI.Main.VersionsForm; import javax.accessibility.Accessible; import javax.accessibility.AccessibleContext; @@ -108,6 +112,7 @@ public class UI { public static MainMenuBar mainMenuBar = null; public static TestingBar testingBar = null; public static CredentialsBar credentialsBar = null; + public static FileMenuBar fileMenuBar = null; public static VersionsMenuBar versionsMenuBar = null; public static FastAccessMenuBar fastAccessMenuBar = null; //------------ diff --git a/src/Visual_DVM_2021/UI/Interface/FileWindow.java b/src/Visual_DVM_2021/UI/Interface/FileWindow.java index c34704e7..834dbb0e 100644 --- a/src/Visual_DVM_2021/UI/Interface/FileWindow.java +++ b/src/Visual_DVM_2021/UI/Interface/FileWindow.java @@ -58,4 +58,8 @@ public interface FileWindow extends VisualizerForm{ void ShowErrorsCount(); void ShowNotesCount(); void ShowRecommendationsCount(); + //-- + void CollapseGraphs(); + void ExpandGraphs(); + void SwitchGraphs(); } diff --git a/src/Visual_DVM_2021/UI/Main/FileForm.java b/src/Visual_DVM_2021/UI/Main/FileForm.java index 69e7f41c..389c3272 100644 --- a/src/Visual_DVM_2021/UI/Main/FileForm.java +++ b/src/Visual_DVM_2021/UI/Main/FileForm.java @@ -66,14 +66,13 @@ public class FileForm implements FileWindow, FormWithSplitters { private TreeForm arraysForm; //- private SPFEditor Body = null; //времянка? не очень красиво. - FileMenuBar menuBar = null; //- public FileForm(DBProjectFile file_in) { LoadSplitters(); //-- MessageWarning.filterValue = ""; MessageError.filterValue = ""; - MessageNote.filterValue=""; + MessageNote.filterValue = ""; //- file = file_in; file.father.db.notes.mountUI(notesPanel); @@ -90,13 +89,17 @@ public class FileForm implements FileWindow, FormWithSplitters { ShowGCOVLog(); ShowAllAnalyses(); Body.addCaretListener(ce -> ShowCaretInfo()); - editorPanel.add(menuBar = new FileMenuBar(Body), BorderLayout.NORTH); + editorPanel.add(UI.fileMenuBar = new FileMenuBar(Body), BorderLayout.NORTH); ShowCaretInfo(); Body.requestFocus(); RefreshTabsNames(); - menuBar.sToGo.addChangeListener(e -> Body.gotoLine((Integer) menuBar.sToGo.getValue())); + UI.fileMenuBar.sToGo.addChangeListener(e -> Body.gotoLine((Integer) UI.fileMenuBar.sToGo.getValue())); ShowProperties(); Pass_2021.passes.get(PassCode_2021.Save).setControlsEnabled(false); + //- + UI.fileMenuBar.LeftECButton.Switch(Global.properties.collapseFileGraphs); + if (Global.properties.collapseFileGraphs) + CollapseGraphs(); } @Override public void ShowLanguage() { @@ -116,11 +119,11 @@ public class FileForm implements FileWindow, FormWithSplitters { Body.setSyntaxEditingStyle(file.languageName.getStyleKey()); Body.setCodeFoldingEnabled(true); Body.switching_language = false; - menuBar.ShowLanguage(); + UI.fileMenuBar.ShowLanguage(); } @Override public void ShowType() { - menuBar.ShowType(); + UI.fileMenuBar.ShowType(); } @Override public void ShowStyle() { @@ -143,7 +146,7 @@ public class FileForm implements FileWindow, FormWithSplitters { } } Body.switching_language = false; - menuBar.ShowStyle(); + UI.fileMenuBar.ShowStyle(); } @Override public SPFEditorInterface getEditor() { @@ -295,12 +298,12 @@ public class FileForm implements FileWindow, FormWithSplitters { int new_current_line = Body.getCurrentLine(); boolean line_changed = (new_current_line != current_file_line); current_file_line = new_current_line; - menuBar.sToGo.setModel(new SpinnerNumberModel(current_file_line, + UI.fileMenuBar.sToGo.setModel(new SpinnerNumberModel(current_file_line, 1, Body.getLineCount(), 1 )); //- - menuBar.ShowLinesCount(); - menuBar.CurrentSymbolLabel.setText(String.valueOf(Body.getCurrentSymbol())); + UI.fileMenuBar.ShowLinesCount(); + UI.fileMenuBar.CurrentSymbolLabel.setText(String.valueOf(Body.getCurrentSymbol())); //если выделяем строку из графа, то тоже надо отключиьт события. //чтобы по ней не начался поиск. if (events_on && line_changed) { @@ -359,4 +362,32 @@ public class FileForm implements FileWindow, FormWithSplitters { public JPanel getContent() { return content; } + //-- + @Override + public void CollapseGraphs() { + UI.Clear(graphsBackground); + SC12.setDividerLocation(0); + SC12.setDividerSize(0); + graphsBackground.revalidate(); + graphsBackground.repaint(); + } + @Override + public void ExpandGraphs() { + UI.Clear(graphsBackground); + graphsBackground.add(graphsTabs); + SC12.setDividerLocation(200); + SC12.setDividerSize(3); + graphsBackground.revalidate(); + graphsBackground.repaint(); + } + @Override + public void SwitchGraphs() { + if (Global.properties.collapseFileGraphs) + ExpandGraphs(); + else + CollapseGraphs(); + Global.properties.collapseFileGraphs =!Global.properties.collapseFileGraphs; + Global.properties.Update(); + UI.fileMenuBar.LeftECButton.Switch(Global.properties.collapseFileGraphs); + } } diff --git a/src/Visual_DVM_2021/UI/Main/TestingForm.java b/src/Visual_DVM_2021/UI/Main/TestingForm.java index 61403eec..892278a0 100644 --- a/src/Visual_DVM_2021/UI/Main/TestingForm.java +++ b/src/Visual_DVM_2021/UI/Main/TestingForm.java @@ -109,9 +109,8 @@ public class TestingForm implements FormWithSplitters, TestingWindow { ); //--->>> RefreshTabsNames(); - if (Global.properties.collapseCredentials) { + if (Global.properties.collapseCredentials) CollapseCredentials(); - } //- SC50.setLeftComponent(dvmTestingRunMaster.getContent()); SC50.setRightComponent(dvmTestingRunSlave.getContent()); @@ -258,37 +257,6 @@ public class TestingForm implements FormWithSplitters, TestingWindow { sapforPackageTreeMaster.DoComparePass(); testingTabs.setSelectedIndex(3); } - @Override - public void CollapseCredentials() { - UI.Clear(credentialsPanel); - credentialsPanel.add(UI.credentialsBar); - SC71.setDividerLocation(30); - SC71.setDividerSize(0); - //SC71.setEnabled(false); - credentialsPanel.revalidate(); - credentialsPanel.repaint(); - } - @Override - public void ExpandCredentials() { - UI.Clear(credentialsPanel); - credentialsPanel.add(SC18); - SC71.setDividerLocation(200); - //SC71.setEnabled(true); - SC71.setDividerSize(3); - credentialsPanel.revalidate(); - credentialsPanel.repaint(); - } - @Override - public void SwitchCredentials(boolean flag) { - if (flag) { - ExpandCredentials(); - } else { - CollapseCredentials(); - } - Global.properties.collapseCredentials = !flag; - Global.properties.Update(); - } - public void RestoreLastCredentials() { Credentials credentials = (Credentials) Current.get(Current.Credentials); if (credentials.machine_id != Constants.Nan) { @@ -331,4 +299,34 @@ public class TestingForm implements FormWithSplitters, TestingWindow { } } } + @Override + public void CollapseCredentials() { + UI.Clear(credentialsPanel); + credentialsPanel.add(UI.credentialsBar); + SC71.setDividerLocation(30); + SC71.setDividerSize(0); + //SC71.setEnabled(false); + credentialsPanel.revalidate(); + credentialsPanel.repaint(); + } + @Override + public void ExpandCredentials() { + UI.Clear(credentialsPanel); + credentialsPanel.add(SC18); + SC71.setDividerLocation(200); + //SC71.setEnabled(true); + SC71.setDividerSize(3); + credentialsPanel.revalidate(); + credentialsPanel.repaint(); + } + @Override + public void SwitchCredentials(boolean flag) { + if (flag) { + ExpandCredentials(); + } else { + CollapseCredentials(); + } + Global.properties.collapseCredentials = !flag; + Global.properties.Update(); + } } diff --git a/src/Visual_DVM_2021/UI/Main/buffer_.form b/src/Visual_DVM_2021/UI/Main/buffer_.form index 1be747d3..5e473dfb 100644 --- a/src/Visual_DVM_2021/UI/Main/buffer_.form +++ b/src/Visual_DVM_2021/UI/Main/buffer_.form @@ -1,11 +1,20 @@
- + - + + + + + + + + + + diff --git a/src/Visual_DVM_2021/UI/Main/buffer_.java b/src/Visual_DVM_2021/UI/Main/buffer_.java index 637e3d41..c1e411be 100644 --- a/src/Visual_DVM_2021/UI/Main/buffer_.java +++ b/src/Visual_DVM_2021/UI/Main/buffer_.java @@ -1,5 +1,6 @@ package Visual_DVM_2021.UI.Main; import javax.swing.*; public class buffer_ { + private JPanel panel1; //Скачать пакет задач } diff --git a/src/icons/SilwerArrowLeft.png b/src/icons/SilwerArrowLeft.png new file mode 100644 index 00000000..64dda160 Binary files /dev/null and b/src/icons/SilwerArrowLeft.png differ diff --git a/src/icons/SilwerArrowRight.png b/src/icons/SilwerArrowRight.png new file mode 100644 index 00000000..9bb7ee27 Binary files /dev/null and b/src/icons/SilwerArrowRight.png differ