mirror of
https://github.com/UnickSoft/graphonline.git
synced 2025-07-02 15:56:27 +00:00
Added save full graph image
This commit is contained in:
parent
1236fc4c1a
commit
a64fff2dd9
@ -18,7 +18,7 @@
|
||||
$g_lang["orint_edge"] = "Directed";
|
||||
$g_lang["not_orint_edge"] = "Undirected";
|
||||
$g_lang["show_adjacency_matrix"] = "Adjacency Matrix";
|
||||
$g_lang["save"] = "Save";
|
||||
$g_lang["save"] = "Save graph";
|
||||
$g_lang["cancel"] = "Cancel";
|
||||
$g_lang["adjacency_matrix_description"] = "Setup adjacency matrix. Use comma \",\" as separator";
|
||||
$g_lang["adjacency_matrix_bad_format"] = "Matrix is incorrect. Use comma \",\" as separator. Matrix should be square";
|
||||
@ -57,7 +57,8 @@
|
||||
$g_lang["wrong_matrix_title"] = "Matrix has wrong format";
|
||||
$g_lang["bad_adj_matrix_message"] = "Cannot create graph. Adjacency Matrix has wrong format. Click \"fix matrix\" button to fix matrix or \"help\" button to open help about Adjacency Matrix format";
|
||||
$g_lang["bad_inc_matrix_message"] = "Cannot create graph. Incidence Matrix has wrong format. Click \"fix matrix\" button to fix matrix or \"help\" button to open help about Incidence Matrix format";
|
||||
$g_lang["save_image"] = "Save graph image";
|
||||
$g_lang["save_image"] = "Save workspace image";
|
||||
$g_lang["save_full_image"] = "Save full graph image";
|
||||
$g_lang["open_saved_image_browser"] = "Open image in browser";
|
||||
$g_lang["download_saved_image"] = "Download saved image";
|
||||
$g_lang["save_image_dialog_title"] = "Save Graph Image";
|
||||
|
@ -18,7 +18,7 @@
|
||||
$g_lang["orint_edge"] = "Ориентированную";
|
||||
$g_lang["not_orint_edge"] = "Неориентированную";
|
||||
$g_lang["show_adjacency_matrix"] = "Матрица смежности";
|
||||
$g_lang["save"] = "Сохранить";
|
||||
$g_lang["save"] = "Сохранить граф";
|
||||
$g_lang["cancel"] = "Отмена";
|
||||
$g_lang["adjacency_matrix_description"] = "Задайте матрицу смежности. Используйте запятую \",\" в качестве разделителя";
|
||||
$g_lang["adjacency_matrix_bad_format"] = "Мартрица имеет неправильный формат. Используйте запятую \",\" в качестве разделителя. Матрица должна иметь одинаковое количество столбцов и строк.";
|
||||
@ -57,7 +57,8 @@
|
||||
$g_lang["wrong_matrix_title"] = "Матрица имеет неправильный формат";
|
||||
$g_lang["bad_adj_matrix_message"] = "Ошибка создания графа. Матрица смежности имеет неправильный формат. Нажимте кнопку \"исправить матрицу\" чтобы исправить матрицу или кнопку \"справка\" чтобы открыть справку о формате матрицы";
|
||||
$g_lang["bad_inc_matrix_message"] = "Ошибка создания графа. Матрица инцидентности имеет неправильный формат. Нажимте кнопку \"исправить матрицу\" чтобы исправить матрицу или кнопку \"справка\" чтобы открыть справку о формате матрицы";
|
||||
$g_lang["save_image"] = "Сохранить изображение графа";
|
||||
$g_lang["save_image"] = "Сохранить изображение рабочей области";
|
||||
$g_lang["save_full_image"] = "Сохранить изображение всего графа";
|
||||
$g_lang["open_saved_image_browser"] = "Открыть изображение в браузере";
|
||||
$g_lang["download_saved_image"] = "Скачать сохранённое изображение";
|
||||
$g_lang["save_image_dialog_title"] = "Сохранение изображения графа";
|
||||
|
@ -131,6 +131,26 @@ Application.prototype._redrawGraph = function()
|
||||
return context;
|
||||
}
|
||||
|
||||
Application.prototype._OffscreenRedrawGraph = function()
|
||||
{
|
||||
var bbox = this.graph.getGraphBBox();
|
||||
var canvas = document.createElement('canvas');
|
||||
canvas.width = bbox.size().x;
|
||||
canvas.height = bbox.size().y;
|
||||
var context = canvas.getContext('2d');
|
||||
|
||||
context.save();
|
||||
context.clearRect(0, 0, Math.max(this.canvas.width, this.GetRealWidth()), Math.max(this.canvas.height, this.GetRealHeight()));
|
||||
context.translate(bbox.minPoint.inverse().x, bbox.minPoint.inverse().y);
|
||||
|
||||
this.RedrawEdges(context);
|
||||
this.RedrawNodes(context);
|
||||
|
||||
context.restore();
|
||||
|
||||
return canvas;
|
||||
}
|
||||
|
||||
Application.prototype.updateRenderPathLength = function()
|
||||
{
|
||||
this.renderPathLength = 0;
|
||||
@ -515,6 +535,11 @@ Application.prototype.SetHandlerMode = function(mode)
|
||||
var savedDialogGraphImageHandler = new SavedDialogGraphImageHandler(this);
|
||||
savedDialogGraphImageHandler.show();
|
||||
}
|
||||
else if (mode == "saveDialogFullImage")
|
||||
{
|
||||
var savedDialogGraphImageHandler = new SavedDialogGraphImageHandler(this);
|
||||
savedDialogGraphImageHandler.show(null, true);
|
||||
}
|
||||
else if (mode == "eulerianLoop")
|
||||
{
|
||||
this.handler = new EulerianLoopGraphHandler(this);
|
||||
@ -805,6 +830,35 @@ Application.prototype.SaveGraphImageOnDisk = function (showDialogCallback)
|
||||
|
||||
return imageName;
|
||||
}
|
||||
|
||||
Application.prototype.SaveFullGraphImageOnDisk = function (showDialogCallback)
|
||||
{
|
||||
var imageName = this.GetNewGraphName();
|
||||
|
||||
this.stopRenderTimer();
|
||||
var canvas = this._OffscreenRedrawGraph();
|
||||
|
||||
var bbox = this.graph.getGraphBBox();
|
||||
|
||||
var rectParams = "";
|
||||
rectParams = "&x=0" + "&y=0" + "&width=" + bbox.size().x + "&height=" + bbox.size().y;
|
||||
|
||||
var imageBase64Data = canvas.toDataURL();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/cgi-bin/saveImage.php?name=" + imageName + rectParams,
|
||||
data: {
|
||||
base64data : imageBase64Data
|
||||
},
|
||||
dataType: "text",
|
||||
success: function(data){
|
||||
showDialogCallback();
|
||||
}
|
||||
});
|
||||
|
||||
return imageName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -640,7 +640,7 @@ SavedDialogGraphImageHandler.prototype.pathObjects = null;
|
||||
// Objects.
|
||||
SavedDialogGraphImageHandler.prototype.objects = null;
|
||||
|
||||
SavedDialogGraphImageHandler.prototype.show = function(object)
|
||||
SavedDialogGraphImageHandler.prototype.show = function(object, isFull = false)
|
||||
{
|
||||
var showDialogCallback = function ()
|
||||
{
|
||||
@ -673,7 +673,7 @@ SavedDialogGraphImageHandler.prototype.show = function(object)
|
||||
|
||||
}
|
||||
|
||||
var imageName = this.app.SaveGraphImageOnDisk(showDialogCallback);
|
||||
var imageName = isFull ? this.app.SaveFullGraphImageOnDisk(showDialogCallback) : this.app.SaveGraphImageOnDisk(showDialogCallback);
|
||||
}
|
||||
|
||||
|
||||
|
@ -294,6 +294,12 @@ function postLoadPage()
|
||||
application.SetHandlerMode("saveDialogImage");
|
||||
}
|
||||
|
||||
document.getElementById('SaveFullGraphImage').onclick = function ()
|
||||
{
|
||||
userAction(this.id);
|
||||
application.SetHandlerMode("saveDialogFullImage");
|
||||
}
|
||||
|
||||
document.getElementById('Zoom100').onclick = function ()
|
||||
{
|
||||
userAction(this.id);
|
||||
|
@ -43,6 +43,9 @@
|
||||
</li>
|
||||
<li>
|
||||
<button type="button" class="btn btn-default btn-sm btn-submenu" id="SaveGraphImage"><span class="glyphicon glyphicon-floppy-disk fa-fw"></span> <?= L('save_image')?></button>
|
||||
</li>
|
||||
<li>
|
||||
<button type="button" class="btn btn-default btn-sm btn-submenu" id="SaveFullGraphImage"><span class="glyphicon glyphicon-floppy-disk fa-fw"></span> <?= L('save_full_image')?></button>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
|
Loading…
x
Reference in New Issue
Block a user