mirror of
https://github.com/UnickSoft/graphonline.git
synced 2026-02-16 02:30:51 +00:00
85 lines
2.1 KiB
JavaScript
85 lines
2.1 KiB
JavaScript
doInclude ([
|
|
include ("features/base_handler/index.js")
|
|
])
|
|
|
|
/**
|
|
* Save/Load graph from Incidence matrix.
|
|
*
|
|
*/
|
|
function ShowIncidenceMatrix(app)
|
|
{
|
|
BaseHandler.apply(this, arguments);
|
|
this.message = "";
|
|
}
|
|
|
|
// inheritance.
|
|
ShowIncidenceMatrix.prototype = Object.create(BaseHandler.prototype);
|
|
// First selected.
|
|
ShowIncidenceMatrix.prototype.firstObject = null;
|
|
// Path
|
|
ShowIncidenceMatrix.prototype.pathObjects = null;
|
|
|
|
ShowIncidenceMatrix.prototype.show = function()
|
|
{
|
|
var handler = this;
|
|
var dialogButtons = {};
|
|
|
|
$('#IncidenceMatrixField').unbind();
|
|
$( "#IncidenceMatrixField" ).on('keyup change', function (eventObject)
|
|
{
|
|
if (!handler.app.TestIncidenceMatrix($( "#IncidenceMatrixField" ).val(), [], []))
|
|
{
|
|
$( "#BadIncidenceMatrixFormatMessage" ).show();
|
|
}
|
|
else
|
|
{
|
|
$( "#BadIncidenceMatrixFormatMessage" ).hide();
|
|
}
|
|
});
|
|
|
|
dialogButtons[g_save] = function() {
|
|
handler.app.PushToStack("IncidenceMatrixChanged");
|
|
handler.app.SetIncidenceMatrixSmart($( "#IncidenceMatrixField" ).val());
|
|
$( this ).dialog( "close" );
|
|
};
|
|
dialogButtons[g_cancel] = function() {
|
|
$( this ).dialog( "close" );
|
|
};
|
|
|
|
let ta = $("#IncidenceMatrixField");
|
|
let sideWrap = $("#incidenceMatrix_side_text");
|
|
|
|
ta.on("scroll", function() {
|
|
sideWrap.scrollTop(ta.scrollTop());
|
|
});
|
|
|
|
$( "#IncidenceMatrixField" ).val(this.app.GetIncidenceMatrix().trimEnd());
|
|
ta.focus()[0].setSelectionRange(0, 0);
|
|
|
|
$( "#BadIncidenceMatrixFormatMessage" ).hide();
|
|
|
|
/* Make side and top text */
|
|
let sideText = "";
|
|
for (let i = 0; i < this.app.graph.vertices.length; i++)
|
|
{
|
|
/* Each vertex name max 3 symbols */
|
|
sideText += this.app.graph.vertices[i].mainText.toString().slice(0, 3) + "\n";
|
|
}
|
|
$("#incidenceMatrix_side_text_text").html(sideText + "\n");
|
|
|
|
$( "#incidenceMatrix" ).dialog({
|
|
resizable: false,
|
|
height: "auto",
|
|
width: "auto",
|
|
modal: true,
|
|
title: g_incidenceMatrixText,
|
|
buttons: dialogButtons,
|
|
dialogClass: 'EdgeDialog',
|
|
open: function(event, ui) {
|
|
/* Set width for side text */
|
|
$("#incidenceMatrix_top_text").width(ta.width());
|
|
$("#BadIncidenceMatrixFormatMessage").width(ta.width());
|
|
}
|
|
});
|
|
}
|