реализовал сохранение пути при экспорте в эксель, и при сохранении изображения графа функций.

This commit is contained in:
2025-02-28 22:54:37 +03:00
parent 4441864b6f
commit d019beff5f
15 changed files with 62 additions and 26 deletions

15
.idea/workspace.xml generated
View File

@@ -9,9 +9,18 @@
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/NormalProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/NormalProperties.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Interface/MainWindow.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Interface/MainWindow.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateGroupFromDirectory.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateGroupFromDirectory.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/MainUI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/MainUI.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateGroupFromFiles.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateGroupFromFiles.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestFromDirectory.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestFromDirectory.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestFromSelectedFiles.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestFromSelectedFiles.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestsFromFiles.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestsFromFiles.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ExportDVMPackageToExcel.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ExportDVMPackageToExcel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/OpenCurrentProject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/OpenCurrentProject.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ReplaceTestsFromFiles.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ReplaceTestsFromFiles.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SaveGraph.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SaveGraph.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Windows/MainForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Windows/MainForm.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Windows/MainForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Windows/MainForm.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />

View File

@@ -2,9 +2,10 @@
"Email": "vmk-post@yandex.ru", "Email": "vmk-post@yandex.ru",
"Name": "M", "Name": "M",
"ServerUserPassword": "mprit_2011", "ServerUserPassword": "mprit_2011",
"OfferRegistrationOnStart": false, "OfferRegistrationOnStart": true,
"Workspace": "E:\\Tests", "Workspace": "E:\\Tests",
"ProjectsSearchDirectory": "E:\\BUG", "ProjectsSearchDirectory": "E:\\BUG",
"DocumentsDirectory": "C:\\Users\\misha\\Documents\\_testing_system",
"VisualiserPath": "C:\\Users\\misha\\Downloads", "VisualiserPath": "C:\\Users\\misha\\Downloads",
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F", "Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",
"Visualizer_2Path": "C:\\Users\\misha\\Documents", "Visualizer_2Path": "C:\\Users\\misha\\Documents",

View File

@@ -19,11 +19,13 @@ public class NormalProperties extends VisualDVMProperties {
public boolean OfferRegistrationOnStart=true; public boolean OfferRegistrationOnStart=true;
//---> //--->
@Expose @Expose
public String Workspace = ""; public String Workspace = ""; // место хранения проектов, и загруженных проектов
@Expose @Expose
public String ProjectsSearchDirectory = ""; public String ProjectsSearchDirectory = ""; //место последнего открытия проектов
@Expose @Expose
public String VisualiserPath = ""; public String DocumentsDirectory = ""; //место сохранения документов,например скрина графа функций или Excel
@Expose
public String VisualiserPath = ""; //места ручной установки компонентов. ( мб объединить с documents directory?)
@Expose @Expose
public String Sapfor_FPath = ""; public String Sapfor_FPath = "";
@Expose @Expose
@@ -115,7 +117,7 @@ public class NormalProperties extends VisualDVMProperties {
public String getFieldDescription(String fieldName) { public String getFieldDescription(String fieldName) {
switch (fieldName) { switch (fieldName) {
case "OfferRegistrationOnStart": case "OfferRegistrationOnStart":
return "Предложение регистрации при запуске"; return "Проверка регистрации";
case "Email": case "Email":
return "Адрес электронной почты"; return "Адрес электронной почты";
case "Kernels": case "Kernels":

View File

@@ -25,7 +25,7 @@ public class CreateGroupFromDirectory extends PublishTests {
} }
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
Utils.RestoreSelectedDirectory(directoryChooser); Utils.ChooserProjectsSearchDirectory(directoryChooser);
File dir = directoryChooser.ShowDialog(); File dir = directoryChooser.ShowDialog();
if (dir == null) { if (dir == null) {
Log.Writeln_("Папка не выбрана"); Log.Writeln_("Папка не выбрана");

View File

@@ -22,7 +22,7 @@ public class CreateGroupFromFiles extends PublishTests {
} }
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
Utils.RestoreSelectedDirectory(fileChooser); Utils.ChooserProjectsSearchDirectory(fileChooser);
Vector<File> files = fileChooser.ShowMultiDialog(); Vector<File> files = fileChooser.ShowMultiDialog();
if (files.isEmpty()) { if (files.isEmpty()) {
Log.Writeln_("Не выбрано ни одного файла."); Log.Writeln_("Не выбрано ни одного файла.");

View File

@@ -3,12 +3,10 @@ import Common.Passes.Pass;
import Common.Passes.PassException; import Common.Passes.PassException;
import Common.Utils.Utils_; import Common.Utils.Utils_;
import Common.Visual.Windows.Dialog.VDirectoryChooser; import Common.Visual.Windows.Dialog.VDirectoryChooser;
import _VisualDVM.ComponentsServer.Component.Sapfor.Sapfor;
import _VisualDVM.Constants; import _VisualDVM.Constants;
import _VisualDVM.Global; import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode; import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.Files.ProjectFile; import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.TestingSystem.Common.Group.Group; import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Test.Test; import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.Utils; import _VisualDVM.Utils;
@@ -44,7 +42,7 @@ public class CreateTestFromDirectory extends Pass<Test> {
} }
protected boolean selectFiles() { protected boolean selectFiles() {
VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор домашней папки теста"); VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор домашней папки теста");
Utils.RestoreSelectedDirectory(directoryChooser); Utils.ChooserProjectsSearchDirectory(directoryChooser);
dir = directoryChooser.ShowDialog(); dir = directoryChooser.ShowDialog();
if (dir == null) { if (dir == null) {
Log.Writeln_("Папка не выбрана."); Log.Writeln_("Папка не выбрана.");

View File

@@ -12,7 +12,7 @@ public class CreateTestFromSelectedFiles extends CreateTestFromDirectory {
@Override @Override
protected boolean selectFiles() { protected boolean selectFiles() {
VFileChooser files_chooser = new VFileChooser("Выбор файлов"); VFileChooser files_chooser = new VFileChooser("Выбор файлов");
Utils.RestoreSelectedDirectory(files_chooser); Utils.ChooserProjectsSearchDirectory(files_chooser);
Vector<File> res = files_chooser.ShowMultiDialog(); Vector<File> res = files_chooser.ShowMultiDialog();
dir = files_chooser.getCurrentDirectory(); dir = files_chooser.getCurrentDirectory();
if (res.isEmpty()) { if (res.isEmpty()) {

View File

@@ -19,7 +19,7 @@ public class CreateTestsFromFiles extends PublishTests {
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
if (Global.testingServer.db.groups.getUI().canModifyCurrent(Log)) { if (Global.testingServer.db.groups.getUI().canModifyCurrent(Log)) {
Utils.RestoreSelectedDirectory(fileChooser); Utils.ChooserProjectsSearchDirectory(fileChooser);
Vector<File> files = fileChooser.ShowMultiDialog(); Vector<File> files = fileChooser.ShowMultiDialog();
if (files.isEmpty()) { if (files.isEmpty()) {
Log.Writeln_("Не выбрано ни одного файла."); Log.Writeln_("Не выбрано ни одного файла.");

View File

@@ -82,11 +82,13 @@ public class ExportDVMPackageToExcel extends Pass<Vector<DVMPackage>> {
} }
if (!Log.isEmpty()) if (!Log.isEmpty())
return false; return false;
Utils.ChooseDocumentsDirectory(directoryChooser);
dir = directoryChooser.ShowDialog(); dir = directoryChooser.ShowDialog();
if (dir == null) { if (dir == null) {
Log.Writeln_("Папка не выбрана."); Log.Writeln_("Папка не выбрана.");
return false; return false;
} }
Global.mainModule.getPass(PassCode.UpdateProperty).Do("DocumentsDirectory", dir.getAbsolutePath());
res = new File(dir, Utils_.getDateName("packages") + ".xls"); res = new File(dir, Utils_.getDateName("packages") + ".xls");
return true; return true;
} }

View File

@@ -40,7 +40,7 @@ public class OpenCurrentProject extends Pass<db_project_info> {
dir = null; dir = null;
target = null; target = null;
if (args.length == 0) { if (args.length == 0) {
Utils.RestoreSelectedDirectory(directoryChooser); Utils.ChooserProjectsSearchDirectory(directoryChooser);
dir = directoryChooser.ShowDialog(); dir = directoryChooser.ShowDialog();
} else { } else {
Object arg = args[0]; Object arg = args[0];

View File

@@ -34,7 +34,7 @@ public class ReplaceTestsFromFiles extends TestingServerPass<Vector<Test>> {
return false; return false;
group = Global.testingServer.db.groups.getUI().getCurrent(); group = Global.testingServer.db.groups.getUI().getCurrent();
//--->>> //--->>>
Utils.RestoreSelectedDirectory(fileChooser); Utils.ChooserProjectsSearchDirectory(fileChooser);
Vector<File> files = fileChooser.ShowMultiDialog(); Vector<File> files = fileChooser.ShowMultiDialog();
//----------------ROLE is----------------------------------------------- //----------------ROLE is-----------------------------------------------
//-- //--

View File

@@ -3,8 +3,11 @@ import Common.Passes.Pass;
import Common.Passes.PassException; import Common.Passes.PassException;
import Common.Utils.Utils_; import Common.Utils.Utils_;
import Common.Visual.UI; import Common.Visual.UI;
import Common.Visual.Windows.Dialog.VDirectoryChooser;
import _VisualDVM.Global; import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.SapforData.Functions.UI.Graph.FunctionsGraphForm; import _VisualDVM.ProjectData.SapforData.Functions.UI.Graph.FunctionsGraphForm;
import _VisualDVM.Utils;
import com.mxgraph.io.mxCodec; import com.mxgraph.io.mxCodec;
import com.mxgraph.util.mxCellRenderer; import com.mxgraph.util.mxCellRenderer;
import com.mxgraph.util.mxXmlUtils; import com.mxgraph.util.mxXmlUtils;
@@ -19,6 +22,7 @@ import java.io.FileOutputStream;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.file.Paths; import java.nio.file.Paths;
public class SaveGraph extends Pass<File> { public class SaveGraph extends Pass<File> {
VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор папки для сохранения скриншота графа функций");
FunctionsGraphForm graphForm = null; FunctionsGraphForm graphForm = null;
@Override @Override
protected boolean needsAnimation() { protected boolean needsAnimation() {
@@ -35,14 +39,19 @@ public class SaveGraph extends Pass<File> {
Log.Writeln_("Сначала отобразите граф"); Log.Writeln_("Сначала отобразите граф");
if (Global.mainModule.getProject().functionsGraph.isEmpty()) if (Global.mainModule.getProject().functionsGraph.isEmpty())
Log.Writeln_("Граф процедур пуст"); Log.Writeln_("Граф процедур пуст");
return Log.isEmpty(); Utils.ChooseDocumentsDirectory(directoryChooser);
File dir = directoryChooser.ShowDialog();
if (dir == null) {
Log.Writeln_("Папка не выбрана.");
}else {
Global.mainModule.getPass(PassCode.UpdateProperty).Do("DocumentsDirectory", dir.getAbsolutePath());
target = new File(dir, Utils_.getDateName("Graph")+".png");
return true;
}
return false;
} }
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
target = Paths.get(Global.visualiser.getWorkspace().getAbsolutePath(), "Graph.png").toFile();
if (target.exists() && !target.delete())
throw new PassException("Не удается удалить предыдущий файл " + Utils_.Brackets(target.getAbsolutePath()));
//-
mxGraph graph = graphForm.getControl().getGraph(); mxGraph graph = graphForm.getControl().getGraph();
BufferedImage image = mxCellRenderer.createBufferedImage(graph, BufferedImage image = mxCellRenderer.createBufferedImage(graph,
null, 1, Color.WHITE, null, 1, Color.WHITE,
@@ -62,6 +71,16 @@ public class SaveGraph extends Pass<File> {
} }
@Override @Override
protected void showDone() throws Exception { protected void showDone() throws Exception {
UI.Info("Граф успешно сохранен в файл: " + Utils_.Brackets(target.getAbsolutePath())); if (UI.Question("Изображение графа процедур успешно сохранено\n"
+ "в папке " + Utils_.Brackets(target.getParent())+"\n"
+ "под именем "+Utils_.Brackets(target.getName())+"\n"
+ "Открыть его"
)){
try {
Desktop.getDesktop().open(target);
} catch (Exception ex) {
Utils_.MainLog.PrintException(ex);
}
};
} }
} }

View File

@@ -82,7 +82,7 @@ public enum PassCode implements PassCode_ {
SPF_ExpressionSubstitution, SPF_ExpressionSubstitution,
SPF_InsertDvmhRegions, SPF_InsertDvmhRegions,
SPF_StatisticAnalyzer, SPF_StatisticAnalyzer,
//- //- Проводнике
CombineFiles, CombineFiles,
EraseBadSymbols, EraseBadSymbols,
CopyProject, CopyProject,

View File

@@ -600,11 +600,16 @@ public class Utils {
} }
return res; return res;
} }
public static void RestoreSelectedDirectory(VFileChooser_ directoryChooser) { public static void ChooserProjectsSearchDirectory(VFileChooser_ directoryChooser) {
String last_dir_home = Global.normalProperties.ProjectsSearchDirectory; String last_dir_home = Global.normalProperties.ProjectsSearchDirectory;
if (!last_dir_home.isEmpty()) if (!last_dir_home.isEmpty())
directoryChooser.SetCurrentDirectory(last_dir_home); directoryChooser.SetCurrentDirectory(last_dir_home);
} }
public static void ChooseDocumentsDirectory(VFileChooser_ directoryChooser) {
String last_dir_home = Global.normalProperties.DocumentsDirectory;
if (!last_dir_home.isEmpty())
directoryChooser.SetCurrentDirectory(last_dir_home);
}
public static void ClearProjectData(File project_home) throws Exception { public static void ClearProjectData(File project_home) throws Exception {
Utils.deleteFilesByExtensions(project_home, "dep", "proj"); Utils.deleteFilesByExtensions(project_home, "dep", "proj");
File project_data = new File(project_home, Constants.data); File project_data = new File(project_home, Constants.data);

View File

@@ -265,7 +265,7 @@ public class MainForm extends Form implements MainWindow {
@Override @Override
public void ShowUndefinedTabs() public void ShowUndefinedTabs()
{ {
//ничего не делаем. лишних панелей и так нет. //ничего не делаем. лишних панелей и так нет. экспорт
} }
@Override @Override
public void ShowUserTabs() { public void ShowUserTabs() {