реализовал сохранение пути при экспорте в эксель, и при сохранении изображения графа функций.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user