@@ -1226,6 +1226,7 @@ module.exports = function (graphContainerSelector) {
1226
1226
1227
1227
graph . fastUpdate = function ( ) {
1228
1228
// fast update function for editor calls;
1229
+ // -- experimental ;
1229
1230
quick_refreshGraphData ( ) ;
1230
1231
updateNodeMap ( ) ;
1231
1232
force . start ( ) ;
@@ -1234,7 +1235,6 @@ module.exports = function (graphContainerSelector) {
1234
1235
refreshGraphStyle ( ) ;
1235
1236
updateHaloStyles ( ) ;
1236
1237
1237
-
1238
1238
} ;
1239
1239
function updateNodeMap ( ) {
1240
1240
nodeMap = [ ] ;
@@ -2525,9 +2525,9 @@ module.exports = function (graphContainerSelector) {
2525
2525
aNode . label ( identifier ) ;
2526
2526
}
2527
2527
}
2528
-
2528
+ var i ;
2529
2529
// updates the property domain and range
2530
- for ( var i = 0 ; i < unfilteredData . properties . length ; i ++ ) {
2530
+ for ( i = 0 ; i < unfilteredData . properties . length ; i ++ ) {
2531
2531
if ( unfilteredData . properties [ i ] . domain ( ) === element ) {
2532
2532
// unfilteredData.properties[i].toString();
2533
2533
unfilteredData . properties [ i ] . domain ( aNode ) ;
@@ -2537,8 +2537,25 @@ module.exports = function (graphContainerSelector) {
2537
2537
// unfilteredData.properties[i].toString();
2538
2538
}
2539
2539
}
2540
- unfilteredData . nodes . splice ( unfilteredData . nodes . indexOf ( element ) , 1 ) ;
2541
2540
2541
+ // update for fastUpdate:
2542
+ for ( i = 0 ; i < properties . length ; i ++ ) {
2543
+ if ( properties [ i ] . domain ( ) === element ) {
2544
+ // unfilteredData.properties[i].toString();
2545
+ properties [ i ] . domain ( aNode ) ;
2546
+ }
2547
+ if ( properties [ i ] . range ( ) === element ) {
2548
+ properties [ i ] . range ( aNode ) ;
2549
+ // unfilteredData.properties[i].toString();
2550
+ }
2551
+ }
2552
+
2553
+ var remId = unfilteredData . nodes . indexOf ( element ) ;
2554
+ if ( remId !== - 1 )
2555
+ unfilteredData . nodes . splice ( remId , 1 ) ;
2556
+ remId = classNodes . indexOf ( element ) ;
2557
+ if ( remId !== - 1 )
2558
+ classNodes . splice ( remId , 1 ) ;
2542
2559
// very important thing for selection!;
2543
2560
addNewNodeElement ( aNode ) ;
2544
2561
// handle focuser!
@@ -2601,10 +2618,16 @@ module.exports = function (graphContainerSelector) {
2601
2618
2602
2619
// add this to the data;
2603
2620
unfilteredData . properties . push ( aProp ) ;
2604
- unfilteredData . properties . splice ( unfilteredData . properties . indexOf ( element ) , 1 ) ;
2605
- properties . push ( aProp ) ;
2606
- properties . splice ( properties . indexOf ( element ) , 1 ) ;
2607
-
2621
+ if ( properties . indexOf ( aProp ) === - 1 )
2622
+ properties . push ( aProp ) ;
2623
+ var remId = unfilteredData . properties . indexOf ( element ) ;
2624
+ if ( remId !== - 1 )
2625
+ unfilteredData . properties . splice ( remId , 1 ) ;
2626
+ if ( properties . indexOf ( aProp ) === - 1 )
2627
+ properties . push ( aProp ) ;
2628
+ remId = properties . indexOf ( element ) ;
2629
+ if ( remId !== - 1 )
2630
+ properties . splice ( remId , 1 ) ;
2608
2631
graph . fastUpdate ( ) ;
2609
2632
aProp . domain ( ) . addProperty ( aProp ) ;
2610
2633
aProp . range ( ) . addProperty ( aProp ) ;
@@ -2803,7 +2826,10 @@ module.exports = function (graphContainerSelector) {
2803
2826
2804
2827
2805
2828
function addNewNodeElement ( element ) {
2806
- classNodes . push ( element ) ;
2829
+ unfilteredData . nodes . push ( element ) ;
2830
+ if ( classNodes . indexOf ( element ) === - 1 )
2831
+ classNodes . push ( element ) ;
2832
+
2807
2833
generateDictionary ( unfilteredData ) ;
2808
2834
graph . getUpdateDictionary ( ) ;
2809
2835
graph . fastUpdate ( ) ;
@@ -3118,7 +3144,8 @@ module.exports = function (graphContainerSelector) {
3118
3144
3119
3145
// add this to the data;
3120
3146
unfilteredData . properties . push ( aProp ) ;
3121
- properties . push ( aProp ) ;
3147
+ if ( properties . indexOf ( aProp ) === - 1 )
3148
+ properties . push ( aProp ) ;
3122
3149
graph . fastUpdate ( ) ;
3123
3150
aProp . labelObject ( ) . x = pX ;
3124
3151
aProp . labelObject ( ) . px = pX ;
@@ -3197,6 +3224,8 @@ module.exports = function (graphContainerSelector) {
3197
3224
aNode . id ( "NodeId" + eN ++ ) ;
3198
3225
// add this property to the nodes;
3199
3226
unfilteredData . nodes . push ( aNode ) ;
3227
+ if ( classNodes . indexOf ( aNode ) === - 1 )
3228
+ classNodes . push ( aNode ) ;
3200
3229
3201
3230
3202
3231
// add also the datatype Property to it
@@ -3216,8 +3245,8 @@ module.exports = function (graphContainerSelector) {
3216
3245
aProp . iri ( ontoIri + aProp . id ( ) ) ;
3217
3246
// add this to the data;
3218
3247
unfilteredData . properties . push ( aProp ) ;
3219
- properties . push ( aProp ) ;
3220
-
3248
+ if ( properties . indexOf ( aProp ) === - 1 )
3249
+ properties . push ( aProp ) ;
3221
3250
graph . fastUpdate ( ) ;
3222
3251
generateDictionary ( unfilteredData ) ;
3223
3252
graph . getUpdateDictionary ( ) ;
@@ -3236,17 +3265,28 @@ module.exports = function (graphContainerSelector) {
3236
3265
} ;
3237
3266
3238
3267
graph . removeNodesViaResponse = function ( nodesToRemove , propsToRemove ) {
3239
- var i ;
3268
+ var i , remId ;
3240
3269
// splice them;
3241
3270
for ( i = 0 ; i < propsToRemove . length ; i ++ ) {
3242
- unfilteredData . properties . splice ( unfilteredData . properties . indexOf ( propsToRemove [ i ] ) , 1 ) ;
3271
+ remId = unfilteredData . properties . indexOf ( propsToRemove [ i ] ) ;
3272
+ if ( remId !== - 1 )
3273
+ unfilteredData . properties . splice ( remId , 1 ) ;
3274
+ remId = properties . indexOf ( propsToRemove [ i ] ) ;
3275
+ if ( remId !== - 1 )
3276
+ properties . splice ( remId , 1 ) ;
3243
3277
propsToRemove [ i ] = null ;
3244
3278
}
3245
3279
for ( i = 0 ; i < nodesToRemove . length ; i ++ ) {
3246
- unfilteredData . nodes . splice ( unfilteredData . nodes . indexOf ( nodesToRemove [ i ] ) , 1 ) ;
3280
+ remId = unfilteredData . nodes . indexOf ( nodesToRemove [ i ] ) ;
3281
+ if ( remId !== - 1 ) {
3282
+ unfilteredData . nodes . splice ( remId , 1 ) ;
3283
+ }
3284
+ remId = classNodes . indexOf ( nodesToRemove [ i ] ) ;
3285
+ if ( remId !== - 1 )
3286
+ classNodes . splice ( remId , 1 ) ;
3247
3287
nodesToRemove [ i ] = null ;
3248
3288
}
3249
- graph . update ( ) ;
3289
+ graph . fastUpdate ( ) ;
3250
3290
generateDictionary ( unfilteredData ) ;
3251
3291
graph . getUpdateDictionary ( ) ;
3252
3292
options . focuserModule ( ) . handle ( undefined ) ;
@@ -3259,6 +3299,9 @@ module.exports = function (graphContainerSelector) {
3259
3299
var propsToRemove = [ ] ;
3260
3300
var nodesToRemove = [ ] ;
3261
3301
var datatypes = 0 ;
3302
+
3303
+ var remId ;
3304
+
3262
3305
nodesToRemove . push ( node ) ;
3263
3306
for ( var i = 0 ; i < unfilteredData . properties . length ; i ++ ) {
3264
3307
if ( unfilteredData . properties [ i ] . domain ( ) === node || unfilteredData . properties [ i ] . range ( ) === node ) {
@@ -3294,14 +3337,24 @@ module.exports = function (graphContainerSelector) {
3294
3337
} else {
3295
3338
// splice them;
3296
3339
for ( i = 0 ; i < propsToRemove . length ; i ++ ) {
3297
- unfilteredData . properties . splice ( unfilteredData . properties . indexOf ( propsToRemove [ i ] ) , 1 ) ;
3340
+ remId = unfilteredData . properties . indexOf ( propsToRemove [ i ] ) ;
3341
+ if ( remId !== - 1 )
3342
+ unfilteredData . properties . splice ( remId , 1 ) ;
3343
+ remId = properties . indexOf ( propsToRemove [ i ] ) ;
3344
+ if ( remId !== - 1 )
3345
+ properties . splice ( remId , 1 ) ;
3298
3346
propsToRemove [ i ] = null ;
3299
3347
}
3300
3348
for ( i = 0 ; i < nodesToRemove . length ; i ++ ) {
3301
- unfilteredData . nodes . splice ( unfilteredData . nodes . indexOf ( nodesToRemove [ i ] ) , 1 ) ;
3349
+ remId = unfilteredData . nodes . indexOf ( nodesToRemove [ i ] ) ;
3350
+ if ( remId !== - 1 )
3351
+ unfilteredData . nodes . splice ( remId , 1 ) ;
3352
+ remId = classNodes . indexOf ( nodesToRemove [ i ] ) ;
3353
+ if ( remId !== - 1 )
3354
+ classNodes . splice ( remId , 1 ) ;
3302
3355
nodesToRemove [ i ] = null ;
3303
3356
}
3304
- graph . update ( ) ;
3357
+ graph . fastUpdate ( ) ;
3305
3358
generateDictionary ( unfilteredData ) ;
3306
3359
graph . getUpdateDictionary ( ) ;
3307
3360
options . focuserModule ( ) . handle ( undefined ) ;
@@ -3313,13 +3366,24 @@ module.exports = function (graphContainerSelector) {
3313
3366
graph . removePropertyViaEditor = function ( property ) {
3314
3367
property . domain ( ) . removePropertyElement ( property ) ;
3315
3368
property . range ( ) . removePropertyElement ( property ) ;
3369
+ var remId ;
3316
3370
3317
3371
if ( property . type ( ) . toLocaleLowerCase ( ) === "owl:datatypeproperty" ) {
3318
3372
var datatype = property . range ( ) ;
3319
- unfilteredData . nodes . splice ( unfilteredData . nodes . indexOf ( property . range ( ) ) , 1 ) ;
3373
+ remId = unfilteredData . nodes . indexOf ( property . range ( ) ) ;
3374
+ if ( remId !== - 1 )
3375
+ unfilteredData . nodes . splice ( remId , 1 ) ;
3376
+ if ( remId !== - 1 )
3377
+ remId = classNodes . indexOf ( property . range ( ) ) ;
3378
+ classNodes . splice ( remId , 1 ) ;
3320
3379
datatype = null ;
3321
3380
}
3322
- unfilteredData . properties . splice ( unfilteredData . properties . indexOf ( property ) , 1 ) ;
3381
+ remId = unfilteredData . properties . indexOf ( property ) ;
3382
+ if ( remId !== - 1 )
3383
+ unfilteredData . properties . splice ( remId , 1 ) ;
3384
+ remId = properties . indexOf ( property ) ;
3385
+ if ( remId !== - 1 )
3386
+ properties . splice ( remId , 1 ) ;
3323
3387
if ( property . inverse ( ) ) {
3324
3388
// so we have inverse
3325
3389
property . inverse ( ) . inverse ( 0 ) ;
@@ -3328,7 +3392,7 @@ module.exports = function (graphContainerSelector) {
3328
3392
3329
3393
3330
3394
hoveredPropertyElement = undefined ;
3331
- graph . update ( ) ;
3395
+ graph . fastUpdate ( ) ;
3332
3396
generateDictionary ( unfilteredData ) ;
3333
3397
graph . getUpdateDictionary ( ) ;
3334
3398
options . focuserModule ( ) . handle ( undefined ) ;
0 commit comments