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

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

View File

@@ -3,8 +3,11 @@ import Common.Passes.Pass;
import Common.Passes.PassException;
import Common.Utils.Utils_;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.VDirectoryChooser;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.SapforData.Functions.UI.Graph.FunctionsGraphForm;
import _VisualDVM.Utils;
import com.mxgraph.io.mxCodec;
import com.mxgraph.util.mxCellRenderer;
import com.mxgraph.util.mxXmlUtils;
@@ -19,6 +22,7 @@ import java.io.FileOutputStream;
import java.net.URLEncoder;
import java.nio.file.Paths;
public class SaveGraph extends Pass<File> {
VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор папки для сохранения скриншота графа функций");
FunctionsGraphForm graphForm = null;
@Override
protected boolean needsAnimation() {
@@ -35,14 +39,19 @@ public class SaveGraph extends Pass<File> {
Log.Writeln_("Сначала отобразите граф");
if (Global.mainModule.getProject().functionsGraph.isEmpty())
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
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();
BufferedImage image = mxCellRenderer.createBufferedImage(graph,
null, 1, Color.WHITE,
@@ -62,6 +71,16 @@ public class SaveGraph extends Pass<File> {
}
@Override
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);
}
};
}
}