mirror of
https://github.com/UnickSoft/graphonline.git
synced 2026-02-16 02:30:51 +00:00
Added distance matrix
This commit is contained in:
@@ -515,6 +515,11 @@ Application.prototype.SetHandlerMode = function(mode)
|
||||
var showIncidenceMatrix = new ShowIncidenceMatrix(this);
|
||||
showIncidenceMatrix.show();
|
||||
}
|
||||
else if (mode == "showDistanceMatrix")
|
||||
{
|
||||
var showDistanceMatrix = new ShowDistanceMatrix(this);
|
||||
showDistanceMatrix.show();
|
||||
}
|
||||
else if (mode == "connectedComponent")
|
||||
{
|
||||
this.handler = new ConnectedComponentGraphHandler(this);
|
||||
|
||||
@@ -572,6 +572,80 @@ ShowIncidenceMatrix.prototype.show = function()
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show distance matrix.
|
||||
*
|
||||
*/
|
||||
function ShowDistanceMatrix(app)
|
||||
{
|
||||
BaseHandler.apply(this, arguments);
|
||||
this.app = app;
|
||||
this.message = "";
|
||||
}
|
||||
|
||||
// inheritance.
|
||||
ShowDistanceMatrix.prototype = Object.create(BaseHandler.prototype);
|
||||
// First selected.
|
||||
ShowDistanceMatrix.prototype.firstObject = null;
|
||||
// Path
|
||||
ShowDistanceMatrix.prototype.pathObjects = null;
|
||||
|
||||
ShowDistanceMatrix.prototype.GetIncidenceMatrix = function (rawMatrix)
|
||||
{
|
||||
var matrix = "";
|
||||
for (var i = 0; i < rawMatrix.length; i++)
|
||||
{
|
||||
for (var j = 0; j < rawMatrix[i].length; j++)
|
||||
{
|
||||
if ((new Graph()).infinity == rawMatrix[i][j])
|
||||
{
|
||||
matrix += '\u221E';
|
||||
}
|
||||
else if (i == j)
|
||||
{
|
||||
matrix += "0";
|
||||
}
|
||||
else
|
||||
{
|
||||
matrix += rawMatrix[i][j];
|
||||
}
|
||||
|
||||
if (j != rawMatrix[i].length - 1)
|
||||
{
|
||||
matrix += ", ";
|
||||
}
|
||||
|
||||
}
|
||||
matrix = matrix + "\n";
|
||||
}
|
||||
|
||||
return matrix;
|
||||
}
|
||||
|
||||
ShowDistanceMatrix.prototype.show = function()
|
||||
{
|
||||
var handler = this;
|
||||
var dialogButtons = {};
|
||||
|
||||
dialogButtons[g_close] = function() {
|
||||
$( this ).dialog( "close" );
|
||||
};
|
||||
|
||||
var handler = g_Algorithms[g_AlgorithmIds.indexOf("OlegSh.FloidAlgorithm")](this.app.graph, this.app);
|
||||
|
||||
$( "#FloidMatrixField" ).val(this.GetIncidenceMatrix(handler.resultMatrix()));
|
||||
|
||||
$( "#floidMatrix" ).dialog({
|
||||
resizable: false,
|
||||
height: "auto",
|
||||
width: "auto",
|
||||
modal: true,
|
||||
title: g_minDistMatrixText,
|
||||
buttons: dialogButtons,
|
||||
dialogClass: 'EdgeDialog'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Save dialog Graph handler.
|
||||
*
|
||||
|
||||
@@ -279,6 +279,11 @@ function postLoadPage()
|
||||
userAction(this.id);
|
||||
application.SetHandlerMode("showIncidenceMatrix");
|
||||
}
|
||||
document.getElementById('ShowDistanceMatrix').onclick = function ()
|
||||
{
|
||||
userAction(this.id);
|
||||
application.SetHandlerMode("showDistanceMatrix");
|
||||
}
|
||||
|
||||
document.getElementById('GroupRename').onclick = function ()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user