diff --git a/cgi-bin/GraphOffline/Win/GraphCGI.exe b/cgi-bin/GraphOffline/Win/GraphCGI.exe index ca00f58..9d149bb 100644 Binary files a/cgi-bin/GraphOffline/Win/GraphCGI.exe and b/cgi-bin/GraphOffline/Win/GraphCGI.exe differ diff --git a/lang/de/home.php b/lang/de/home.php index 8f8a9de..0ff4625 100644 --- a/lang/de/home.php +++ b/lang/de/home.php @@ -166,4 +166,18 @@ $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_ignore_direction"] = "In time of calculation we have ignored the edges direction."; $g_lang["min_spanning_tree_graph_not_connected"] = "Graph is disconnected"; + + $g_lang['select_first_graph_isomorphism_check'] = "Select first graph for isomorphic check. Click to any node of graph"; + $g_lang['select_second_graph_isomorphism_check'] = "Select second graph for isomorphic check. Click to any node of graph"; + $g_lang['select_first_graph_pattern_check'] = "Select a template graph by clicking to any node of graph"; + $g_lang['select_second_graph_for_search_subgraph'] = "Choose a graph in which we will look for isomorphic subgraphs. Click to any node of this graph"; + $g_lang['graphs_isomorph'] = "Graphs are isomorphic"; + $g_lang['graphs_not_isomorph'] = "Graphs are not isomorphic"; + $g_lang['number_of_isomorph_subgraph_is'] = "Number of isomorphic subgraphs are "; + $g_lang['graph_has_no_isomorph_subgraph'] = "Graph doesn't contain isomorphic subgraphs"; + $g_lang['search_isomorph_subgraph'] = "Search isomorphic subgraphs"; + $g_lang['subgraph_no'] = "Isomorphic subgraph # "; + $g_lang['graph_has_no_atleast_2_graphs'] = "To use the algorithm, you need to create 2 separate graphs"; + $g_lang['isomorphism_check'] = "Check Graphs Isomorphism"; + ?> diff --git a/lang/el/home.php b/lang/el/home.php index 1261c96..480aa7d 100644 --- a/lang/el/home.php +++ b/lang/el/home.php @@ -204,4 +204,17 @@ $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_ignore_direction"] = "In time of calculation we have ignored the edges direction."; $g_lang["min_spanning_tree_graph_not_connected"] = "Graph is disconnected"; + + $g_lang['select_first_graph_isomorphism_check'] = "Select first graph for isomorphic check. Click to any node of graph"; + $g_lang['select_second_graph_isomorphism_check'] = "Select second graph for isomorphic check. Click to any node of graph"; + $g_lang['select_first_graph_pattern_check'] = "Select a template graph by clicking to any node of graph"; + $g_lang['select_second_graph_for_search_subgraph'] = "Choose a graph in which we will look for isomorphic subgraphs. Click to any node of this graph"; + $g_lang['graphs_isomorph'] = "Graphs are isomorphic"; + $g_lang['graphs_not_isomorph'] = "Graphs are not isomorphic"; + $g_lang['number_of_isomorph_subgraph_is'] = "Number of isomorphic subgraphs are "; + $g_lang['graph_has_no_isomorph_subgraph'] = "Graph doesn't contain isomorphic subgraphs"; + $g_lang['search_isomorph_subgraph'] = "Search isomorphic subgraphs"; + $g_lang['subgraph_no'] = "Isomorphic subgraph # "; + $g_lang['graph_has_no_atleast_2_graphs'] = "To use the algorithm, you need to create 2 separate graphs"; + $g_lang['isomorphism_check'] = "Check Graphs Isomorphism"; ?> diff --git a/lang/en/home.php b/lang/en/home.php index a0e3c42..0832908 100755 --- a/lang/en/home.php +++ b/lang/en/home.php @@ -203,4 +203,18 @@ We have added Dutch translation 🇳🇱. Thank you Willie de Wit"; $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_ignore_direction"] = "In time of calculation we have ignored the edges direction."; $g_lang["min_spanning_tree_graph_not_connected"] = "Graph is disconnected"; + + $g_lang['select_first_graph_isomorphism_check'] = "Select first graph for isomorphic check. Click to any node of graph"; + $g_lang['select_second_graph_isomorphism_check'] = "Select second graph for isomorphic check. Click to any node of graph"; + $g_lang['select_first_graph_pattern_check'] = "Select a template graph by clicking to any node of graph"; + $g_lang['select_second_graph_for_search_subgraph'] = "Choose a graph in which we will look for isomorphic subgraphs. Click to any node of this graph"; + $g_lang['graphs_isomorph'] = "Graphs are isomorphic"; + $g_lang['graphs_not_isomorph'] = "Graphs are not isomorphic"; + $g_lang['number_of_isomorph_subgraph_is'] = "Number of isomorphic subgraphs are "; + $g_lang['graph_has_no_isomorph_subgraph'] = "Graph doesn't contain isomorphic subgraphs"; + $g_lang['search_isomorph_subgraph'] = "Search isomorphic subgraphs"; + $g_lang['subgraph_no'] = "Isomorphic subgraph # "; + $g_lang['graph_has_no_atleast_2_graphs'] = "To use the algorithm, you need to create 2 separate graphs"; + $g_lang['isomorphism_check'] = "Check Graphs Isomorphism"; + ?> diff --git a/lang/es/home.php b/lang/es/home.php index 204a1b2..c34925a 100755 --- a/lang/es/home.php +++ b/lang/es/home.php @@ -203,4 +203,18 @@ Tenemos traducciones en griego 🇬🇷. diff --git a/lang/fr/home.php b/lang/fr/home.php index 5cce27b..73e8d6f 100644 --- a/lang/fr/home.php +++ b/lang/fr/home.php @@ -171,4 +171,18 @@ $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_ignore_direction"] = "In time of calculation we have ignored the edges direction."; $g_lang["min_spanning_tree_graph_not_connected"] = "Graph is disconnected"; + + $g_lang['select_first_graph_isomorphism_check'] = "Select first graph for isomorphic check. Click to any node of graph"; + $g_lang['select_second_graph_isomorphism_check'] = "Select second graph for isomorphic check. Click to any node of graph"; + $g_lang['select_first_graph_pattern_check'] = "Select a template graph by clicking to any node of graph"; + $g_lang['select_second_graph_for_search_subgraph'] = "Choose a graph in which we will look for isomorphic subgraphs. Click to any node of this graph"; + $g_lang['graphs_isomorph'] = "Graphs are isomorphic"; + $g_lang['graphs_not_isomorph'] = "Graphs are not isomorphic"; + $g_lang['number_of_isomorph_subgraph_is'] = "Number of isomorphic subgraphs are "; + $g_lang['graph_has_no_isomorph_subgraph'] = "Graph doesn't contain isomorphic subgraphs"; + $g_lang['search_isomorph_subgraph'] = "Search isomorphic subgraphs"; + $g_lang['subgraph_no'] = "Isomorphic subgraph # "; + $g_lang['graph_has_no_atleast_2_graphs'] = "To use the algorithm, you need to create 2 separate graphs"; + $g_lang['isomorphism_check'] = "Check Graphs Isomorphism"; + ?> \ No newline at end of file diff --git a/lang/nl/home.php b/lang/nl/home.php index 86f7e23..fab5808 100644 --- a/lang/nl/home.php +++ b/lang/nl/home.php @@ -168,4 +168,18 @@ $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_ignore_direction"] = "In time of calculation we have ignored the edges direction."; $g_lang["min_spanning_tree_graph_not_connected"] = "Graph is disconnected"; + + $g_lang['select_first_graph_isomorphism_check'] = "Select first graph for isomorphic check. Click to any node of graph"; + $g_lang['select_second_graph_isomorphism_check'] = "Select second graph for isomorphic check. Click to any node of graph"; + $g_lang['select_first_graph_pattern_check'] = "Select a template graph by clicking to any node of graph"; + $g_lang['select_second_graph_for_search_subgraph'] = "Choose a graph in which we will look for isomorphic subgraphs. Click to any node of this graph"; + $g_lang['graphs_isomorph'] = "Graphs are isomorphic"; + $g_lang['graphs_not_isomorph'] = "Graphs are not isomorphic"; + $g_lang['number_of_isomorph_subgraph_is'] = "Number of isomorphic subgraphs are "; + $g_lang['graph_has_no_isomorph_subgraph'] = "Graph doesn't contain isomorphic subgraphs"; + $g_lang['search_isomorph_subgraph'] = "Search isomorphic subgraphs"; + $g_lang['subgraph_no'] = "Isomorphic subgraph # "; + $g_lang['graph_has_no_atleast_2_graphs'] = "To use the algorithm, you need to create 2 separate graphs"; + $g_lang['isomorphism_check'] = "Check Graphs Isomorphism"; + ?> diff --git a/lang/pt/home.php b/lang/pt/home.php index cdd7065..0871636 100644 --- a/lang/pt/home.php +++ b/lang/pt/home.php @@ -170,4 +170,17 @@ $g_lang["min_spanning_tree_ignore_direction"] = "Durante os cálculos ignoramos as direções dos vértices."; $g_lang["min_spanning_tree_graph_not_connected"] = "Grafo desconectado"; + $g_lang['select_first_graph_isomorphism_check'] = "Select first graph for isomorphic check. Click to any node of graph"; + $g_lang['select_second_graph_isomorphism_check'] = "Select second graph for isomorphic check. Click to any node of graph"; + $g_lang['select_first_graph_pattern_check'] = "Select a template graph by clicking to any node of graph"; + $g_lang['select_second_graph_for_search_subgraph'] = "Choose a graph in which we will look for isomorphic subgraphs. Click to any node of this graph"; + $g_lang['graphs_isomorph'] = "Graphs are isomorphic"; + $g_lang['graphs_not_isomorph'] = "Graphs are not isomorphic"; + $g_lang['number_of_isomorph_subgraph_is'] = "Number of isomorphic subgraphs are "; + $g_lang['graph_has_no_isomorph_subgraph'] = "Graph doesn't contain isomorphic subgraphs"; + $g_lang['search_isomorph_subgraph'] = "Search isomorphic subgraphs"; + $g_lang['subgraph_no'] = "Isomorphic subgraph # "; + $g_lang['graph_has_no_atleast_2_graphs'] = "To use the algorithm, you need to create 2 separate graphs"; + $g_lang['isomorphism_check'] = "Check Graphs Isomorphism"; + ?> diff --git a/lang/ru/home.php b/lang/ru/home.php index 8117a6d..5a58d5f 100755 --- a/lang/ru/home.php +++ b/lang/ru/home.php @@ -204,4 +204,18 @@ $g_lang["min_spanning_tree_res_is"] = "Вес минимального остовного дерева равен "; $g_lang["min_spanning_tree_ignore_direction"] = "Мы игнорировали ориентацию дуг при рассчете."; $g_lang["min_spanning_tree_graph_not_connected"] = "Граф не является связным"; + + $g_lang['select_first_graph_isomorphism_check'] = "Выделите первый граф для проверки на изоморфизм. Кликните по любой вершине графа"; + $g_lang['select_second_graph_isomorphism_check'] = "Выделите второй граф для проверки на изоморфизм. Кликните по любой вершине графа"; + $g_lang['select_first_graph_pattern_check'] = "Выделите граф, которому должны быть изоморфны подграфов. Кликните по любой вершине графа"; + $g_lang['select_second_graph_for_search_subgraph'] = "Выделите граф в котором необходимо найти изоморфные подграфы. Кликните по любой вершине графа"; + $g_lang['graphs_isomorph'] = "Графы изоморфны"; + $g_lang['graphs_not_isomorph'] = "Графы не изоморфны"; + $g_lang['number_of_isomorph_subgraph_is'] = "Количество изоморфных подграфов равно "; + $g_lang['graph_has_no_isomorph_subgraph'] = "Граф не содержит изоморфных подграфов"; + $g_lang['search_isomorph_subgraph'] = "Поиск изоморфных подграфов"; + $g_lang['subgraph_no'] = "Изоморфных подграф № "; + $g_lang['graph_has_no_atleast_2_graphs'] = "Для использования алгоритма необходимо создать хотя бы 2 не связных графа"; + $g_lang['isomorphism_check'] = "Проверка изоморфности графов"; + ?> diff --git a/lang/sv/home.php b/lang/sv/home.php index 4a079e6..c567712 100644 --- a/lang/sv/home.php +++ b/lang/sv/home.php @@ -165,4 +165,18 @@ $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_ignore_direction"] = "In time of calculation we have ignored the edges direction."; $g_lang["min_spanning_tree_graph_not_connected"] = "Graph is disconnected"; + + $g_lang['select_first_graph_isomorphism_check'] = "Select first graph for isomorphic check. Click to any node of graph"; + $g_lang['select_second_graph_isomorphism_check'] = "Select second graph for isomorphic check. Click to any node of graph"; + $g_lang['select_first_graph_pattern_check'] = "Select a template graph by clicking to any node of graph"; + $g_lang['select_second_graph_for_search_subgraph'] = "Choose a graph in which we will look for isomorphic subgraphs. Click to any node of this graph"; + $g_lang['graphs_isomorph'] = "Graphs are isomorphic"; + $g_lang['graphs_not_isomorph'] = "Graphs are not isomorphic"; + $g_lang['number_of_isomorph_subgraph_is'] = "Number of isomorphic subgraphs are "; + $g_lang['graph_has_no_isomorph_subgraph'] = "Graph doesn't contain isomorphic subgraphs"; + $g_lang['search_isomorph_subgraph'] = "Search isomorphic subgraphs"; + $g_lang['subgraph_no'] = "Isomorphic subgraph # "; + $g_lang['graph_has_no_atleast_2_graphs'] = "To use the algorithm, you need to create 2 separate graphs"; + $g_lang['isomorphism_check'] = "Check Graphs Isomorphism"; + ?> diff --git a/script/Algorithms.js b/script/Algorithms.js index d11dac9..2124962 100644 --- a/script/Algorithms.js +++ b/script/Algorithms.js @@ -156,6 +156,9 @@ BaseAlgorithmEx.prototype = Object.create(BaseAlgorithm.prototype); BaseAlgorithmEx.prototype.CalculateAlgorithm = function(queryString, resultCallback) { + if (location.hostname === "localhost" || location.hostname === "127.0.0.1") + console.log(queryString); + var graph = this.graph; var creator = new GraphMLCreater(graph.vertices, graph.edges); var pathObjects = []; diff --git a/script/BaseVertexDrawer.js b/script/BaseVertexDrawer.js index b7381fa..97785a6 100644 --- a/script/BaseVertexDrawer.js +++ b/script/BaseVertexDrawer.js @@ -38,7 +38,7 @@ function SelectedVertexStyle1() CommonVertexStyle.apply(this, arguments); this.strokeStyle = '#7a9ba0'; - this.mainTextColor = '#7a9ba0'; + this.mainTextColor = '#c3d2d5'; this.fillStyle = '#534641'; } @@ -49,7 +49,7 @@ function SelectedVertexStyle2() CommonVertexStyle.apply(this, arguments); this.strokeStyle = '#8C4C86'; - this.mainTextColor = '#8C4C86'; + this.mainTextColor = '#dbbdd8'; this.fillStyle = '#253267'; } diff --git a/script/plugins/ConnectedComponent.js b/script/plugins/ConnectedComponent.js index b7c32d9..062bb39 100755 --- a/script/plugins/ConnectedComponent.js +++ b/script/plugins/ConnectedComponent.js @@ -6,7 +6,7 @@ function FindConnectedComponentNew(graph, app) { BaseAlgorithm.apply(this, arguments); - this.connectedComponentNumber = 0; + this.connectedComponentNumber = 0; this.component = {}; this.selectedObjects = []; } diff --git a/script/plugins/IsomorphismCheck.js b/script/plugins/IsomorphismCheck.js new file mode 100644 index 0000000..8656331 --- /dev/null +++ b/script/plugins/IsomorphismCheck.js @@ -0,0 +1,292 @@ +/** + * Find short path. + * + */ + +function IsomorphismCheck(graph, app) +{ + BaseAlgorithmEx.apply(this, arguments); + + if (graph && app) + { + this.connectedComponent = new FindConnectedComponentNew(graph, app); + this.connectedComponent.calculate(); + } + + this.setFirstMessage(); + this.prevCalculated = false; + this.searchSubGraphs = false; + this.foundSubGraphs = {}; + this.nSubgraphIndex = 0; + this.nSubGraphCount = 0; + this.bIsomorph = false; +} + + +// inheritance. +IsomorphismCheck.prototype = Object.create(BaseAlgorithmEx.prototype); +// First selected. +IsomorphismCheck.prototype.firstGraph = null; +// Second selected. +IsomorphismCheck.prototype.secondGraph = null; + + +IsomorphismCheck.prototype.getName = function(local) +{ + return g_IsomorphismCheck; +} + +IsomorphismCheck.prototype.getId = function() +{ + return "OlegSh.IsomorphismCheck"; +} + +// @return message for user. +IsomorphismCheck.prototype.getMessage = function(local) +{ + return this.message; +} + +IsomorphismCheck.prototype.result = function(resultCallback) +{ + if (this.firstGraph && this.secondGraph) + { + this.outResultCallback = function (result ) { resultCallback(result); }; + self = this; + this.CalculateAlgorithm("isocheck=cgiInput&graph1=" + this.getGraphEdges(this.firstGraph) + "&graph2=" + this.getGraphEdges(this.secondGraph) + "&report=xml" + (this.searchSubGraphs ? "&searchSubgraphs=true": ""), function (pathObjects, properties, results) + { + self.resultCallback(pathObjects, properties, results); + }); + } + return null; +} + +IsomorphismCheck.prototype.getGraphEdges = function(nodesAndEdges) +{ + var res = "" + for (var key in nodesAndEdges) + { + var edgeObject = this.graph.FindEdgeById(key); + if (edgeObject) + { + if (res != "") + res = res + "," + res = res + edgeObject.vertex1.id + "-" + edgeObject.vertex2.id; + } + } + + return res; +} + +IsomorphismCheck.prototype.resultCallback = function(pathObjects, properties, results) +{ + var outputResult = {}; + outputResult["version"] = 1; + + if (!this.searchSubGraphs) + { + this.bIsomorph = results.length > 0 && results[0].type == 1 && results[0].value == 1; + + this.setResultMessage(); + } + else + { + this.nSubGraphCount = results.length > 0 && results[0].type == 1 ? results[0].value : 0; + + this.setResultMessage(); + + this.foundSubGraphs = {}; + for (var i = 0; i < this.nSubGraphCount; i++) + { + this.foundSubGraphs[i] = {}; + } + + var subGraphIndex = 0; + for (var i = 0; i < results.length; i++) + { + if (results[i].type == 6) + { + subGraphIndex++; + } + + if (results[i].type == 5) + { + var edgeId = parseInt(results[i].value); + var index = subGraphIndex; + var subgGraph = this.foundSubGraphs[index]; + subgGraph[edgeId] = true; + var edgeObject = this.graph.FindEdgeById(edgeId); + subgGraph[edgeObject.vertex1.id] = true; + subgGraph[edgeObject.vertex2.id] = true; + } + } + } + + this.prevCalculated = true; + this.outResultCallback(outputResult); +} + +IsomorphismCheck.prototype.selectVertex = function(vertex) +{ + if (this.connectedComponent && this.connectedComponent.connectedComponentNumber <= 1) + return true; + + if (this.firstGraph && !this.prevCalculated && (!this.firstGraph || !(vertex.id in this.firstGraph))) + { + this.message = g_processing; + this.secondGraph = this.getGraphWithNode(vertex); + } + else + { + this.deselectAll(); + + this.firstGraph = this.getGraphWithNode(vertex); + this.secondGraph = null; + this.setSecondMessage(); + this.app.updateMessage(); + } + + return true; +} + +IsomorphismCheck.prototype.deselectAll = function() +{ + this.firstGraph = null; + this.secondGraph = null; + this.prevCalculated = false; + this.setFirstMessage(); + this.restore(); + this.foundSubGraphs = {}; + this.nSubgraphIndex = 0; + this.nSubGraphCount = 0; + this.bIsomorph = false; + + this.app.updateMessage(); + + return true; +} + +IsomorphismCheck.prototype.instance = function() +{ + return false; +} + +IsomorphismCheck.prototype.getObjectSelectedGroup = function(object) +{ + return (this.nSubgraphIndex in this.foundSubGraphs && object.id in this.foundSubGraphs[this.nSubgraphIndex]) ? 3 : + (this.firstGraph && object.id in this.firstGraph) ? 1 : ((this.secondGraph && object.id in this.secondGraph) ? 2 : 0); +} + +IsomorphismCheck.prototype.getPriority = function() +{ + return -8.0; +} + +IsomorphismCheck.prototype.getGraphWithNode = function(node) +{ + var res = {} + if (node.id in this.connectedComponent.component) + { + var componentNumber = this.connectedComponent.component[node.id]; + for (var key in this.connectedComponent.component) + { + if (this.connectedComponent.component[key] == componentNumber) + { + res[key] = true; + } + } + } + + return res; +} + +IsomorphismCheck.prototype.setFirstMessage = function() +{ + if (this.connectedComponent && this.connectedComponent.connectedComponentNumber <= 1) + { + this.message = g_graphHasNoAtleast2Graphs; + return; + } + + if (!this.searchSubGraphs) + this.message = g_selectFirstGraphIsomorphismCheck + "" + ""; + else + this.message = g_selectFirstGraphPatternCheck + "" + ""; +} + +IsomorphismCheck.prototype.setSecondMessage = function() +{ + if (!this.searchSubGraphs) + this.message = g_selectSecondGraphIsomorphismCheck + "" + ""; + else + this.message = g_selectSecondGraphForSearchSubgraph + "" + ""; +} + +IsomorphismCheck.prototype.setResultMessage = function() +{ + if (!this.searchSubGraphs) + { + if (this.bIsomorph) + { + this.message = g_graphsIsomorph; + } + else + { + this.message = g_graphsNotIsomorph; + } + } + else + { + if (this.nSubGraphCount > 0) + { + this.message = g_numberOfIsomorphSubgraphIs + this.nSubGraphCount + " "; + } + else + { + this.message = g_graphHasNoIsomorphSubgraph; + } + } +} + +IsomorphismCheck.prototype.messageWasChanged = function() +{ + var self = this; + + if ($('#searchSubGraph')) + { + $('#searchSubGraph').change(function() { + self.searchSubGraphs = this.checked; + if (self.firstGraph && !self.prevCalculated) + self.setSecondMessage(); + else + self.setFirstMessage(); + + self.app.updateMessage(); + }); + } + + if ($('#enumSubgraphs')) + { + for (var i = 0; i < this.nSubGraphCount; i++) + { + $('#enumSubgraphs').append(""); + } + + $('#enumSubgraphs').change(function () { + self.nSubgraphIndex = $('#enumSubgraphs').val(); + self.app.redrawGraph(); + self.setResultMessage(); + }); + } +} + +// Factory for connected components. +function CreateIsomorphismCheck(graph, app) +{ + return new IsomorphismCheck(graph, app) +} + +// Gerister connected component. +RegisterAlgorithm (CreateIsomorphismCheck); diff --git a/script/texts.js b/script/texts.js index b9d3923..4965022 100644 --- a/script/texts.js +++ b/script/texts.js @@ -132,6 +132,21 @@ var g_SpanningTreeResult = "Min Spanning Tree is"; var g_SpanningTreeIgnoreDir = "We ignored edges direction for calculation"; var g_SpanningTreeNotConnected = "Graph is not connected"; +var g_selectFirstGraphIsomorphismCheck = "Select first graph for isomorphic check. Click to any node of graph"; +var g_selectSecondGraphIsomorphismCheck = "Select second graph for isomorphic check. Click to any node of graph"; + +var g_selectFirstGraphPatternCheck = "Select a template graph by clicking to any node of graph"; +var g_selectSecondGraphForSearchSubgraph = "Choose a graph in which we will look for isomorphic subgraphs. Click to any node of this graph"; + +var g_graphsIsomorph = "Graphs are isomorphic"; +var g_graphsNotIsomorph = "Graphs are not isomorphic"; +var g_numberOfIsomorphSubgraphIs = "Number of isomorphic subgraphs are "; +var g_graphHasNoIsomorphSubgraph = "Graph don't contain isomorphic subgraphs"; +var g_searchIsomorphSubgraph = "Search isomorphic subgraphs"; +var g_subgraphNo = "Isomorphic subgraph # "; +var g_graphHasNoAtleast2Graphs = "To use the algorithm, you need to create 2 separate graphs"; +var g_IsomorphismCheck = "Check Graphs Isomorphism"; + function loadTexts() { g_textsSelectAndMove = document.getElementById("SelectAndMoveObject").innerHTML; @@ -271,4 +286,19 @@ function loadTexts() g_SpanningTreeResult = document.getElementById("MinSpanningTreeResult").innerHTML; g_SpanningTreeIgnoreDir = document.getElementById("MinSpanningIgnoreDir").innerHTML; g_SpanningTreeNotConnected = document.getElementById("MinSpanningNotConnected").innerHTML; + + g_selectFirstGraphIsomorphismCheck = document.getElementById("SelectFirstGraphIsomorphismCheck").innerHTML; + g_selectSecondGraphIsomorphismCheck = document.getElementById("SelectSecondGraphIsomorphismCheck").innerHTML; + + g_selectFirstGraphPatternCheck = document.getElementById("SelectFirstGraphPatternCheck").innerHTML; + g_selectSecondGraphForSearchSubgraph = document.getElementById("SelectSecondGraphForSearchSubgraph").innerHTML; + + g_graphsIsomorph = document.getElementById("GraphsIsomorph").innerHTML; + g_graphsNotIsomorph = document.getElementById("GraphsNotIsomorph").innerHTML; + g_numberOfIsomorphSubgraphIs = document.getElementById("NumberOfIsomorphSubgraphIs").innerHTML; + g_graphHasNoIsomorphSubgraph = document.getElementById("GraphHasNoIsomorphSubgraph").innerHTML; + g_searchIsomorphSubgraph = document.getElementById("SearchIsomorphSubgraph").innerHTML; + g_subgraphNo = document.getElementById("SubgraphNo").innerHTML; + g_graphHasNoAtleast2Graphs = document.getElementById("GraphHasNoAtleast2Graphs").innerHTML; + g_IsomorphismCheck = document.getElementById("IsomorphismCheck").innerHTML; } diff --git a/tpl/home.php b/tpl/home.php index 2f6db3f..268b9a3 100755 --- a/tpl/home.php +++ b/tpl/home.php @@ -604,7 +604,21 @@

- + + +

+

+

+

+

+

+

+

+

+

+

+

+