@@ -79,6 +79,25 @@ function writeGraphAdjlist(){
79
79
} ) ;
80
80
}
81
81
82
+ function getIndexOf ( id ) {
83
+ /*
84
+ Given the id of a node, finds it's index in cy.nodes().
85
+
86
+ INPUT
87
+ id: The id of the node in question.
88
+
89
+ OUTPUT
90
+ index: The index of the node in question
91
+ */
92
+ var nodes = cy . nodes ( ) ;
93
+
94
+ for ( var i = 0 ; i < nodes . length ; i ++ ) {
95
+ if ( nodes [ i ] . id ( ) === id ) {
96
+ return i ;
97
+ }
98
+ }
99
+ }
100
+
82
101
function makeMatrix ( nodeList ) {
83
102
/*
84
103
Given a list of nodes in a graph, creates an adjacency matrix.
@@ -98,16 +117,20 @@ function makeMatrix(nodeList){
98
117
matrix = matrix + '[' ;
99
118
100
119
for ( var i = 0 ; i < nodeList . length ; i ++ ) {
101
- console . log ( 'here' ) ;
102
- var edges = nodes [ i ] . adjacencies ;
120
+ var edges = nodeList [ i ] . connectedEdges ( ) ;
103
121
104
122
//Define our row and fill it with zeros
105
123
var matrixRow = new Array ( nodeList . length ) ;
106
124
matrixRow . fill ( 0 ) ;
107
125
108
126
//Increment every index which has an edge by one
109
127
for ( var j = 0 ; j < edges . length ; j ++ ) {
110
- matrixRow [ edges [ j ] . index ] ++ ;
128
+ if ( edges [ j ] . data ( 'target' ) === nodeList [ i ] . id ( ) ) {
129
+ matrixRow [ getIndexOf ( edges [ j ] . data ( 'source' ) ) ] ++ ;
130
+ }
131
+ else {
132
+ matrixRow [ getIndexOf ( edges [ j ] . data ( 'target' ) ) ] ++ ;
133
+ }
111
134
}
112
135
113
136
matrix = matrix + '[' + matrixRow . toString ( ) + ']' + ',\r\n' ;
@@ -130,7 +153,7 @@ function writeGraphMatrix(){
130
153
131
154
dialog . setContext ( document ) ;
132
155
dialog . saveFileDialog ( function ( fileName ) {
133
- var matrixFile = makeMatrix ( nodes ) ;
156
+ var matrixFile = makeMatrix ( cy . nodes ( ) ) ;
134
157
135
158
fs . writeFile ( fileName , matrixFile , function ( err ) {
136
159
if ( err ) throw err ;
@@ -157,11 +180,15 @@ function makePositionsString(nodeList){
157
180
var posJSON = '{' ;
158
181
159
182
for ( var i = 0 ; i < nodeList . length ; i ++ ) {
160
- posJSON = posJSON + '"' + i . toString ( ) + '": ' ;
161
-
183
+ if ( nodeList [ i ] . style ( 'label' ) !== '' ) {
184
+ posJSON = posJSON + '"' + nodeList [ i ] . style ( 'label' ) + '": ' ;
185
+ }
186
+ else {
187
+ posJSON = posJSON + '"' + nodeList [ i ] . data ( 'id' ) + '": ' ;
188
+ }
162
189
//Scale the coordinates
163
- var relX = nodeList [ i ] . xPos / map . width ,
164
- relY = nodeList [ i ] . yPos / map . height ;
190
+ var relX = nodeList [ i ] . position ( ) . x / map . width ,
191
+ relY = nodeList [ i ] . position ( ) . y / map . height ;
165
192
166
193
//Make sure the last entry doesn't have a comma
167
194
if ( i < nodeList . length - 1 ) {
@@ -185,7 +212,7 @@ function writePositions(){
185
212
186
213
dialog . setContext ( document ) ;
187
214
dialog . saveFileDialog ( function ( fileName ) {
188
- var positions = makePositionsString ( nodes ) ;
215
+ var positions = makePositionsString ( cy . nodes ( ) ) ;
189
216
190
217
fs . writeFile ( fileName , positions , function ( err ) {
191
218
if ( err ) throw err ;
0 commit comments