| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
 | | Quintiq file version 2.0 |  | #parent: #root |  | Method MPSyncRoutingConfiguratorView ( |  |   Boolean isoverwritemanualconfig, |  |   IORoutingConfiguratorViews ioroutingconfiguratorviews |  | ) |  | { |  |   Description: 'Synchronization of RoutingConfiguratorView for MPSync' |  |   TextBody: |  |   [* |  |     // Select a set of existing RoutingConfiguratorView |  |     existing := selectset( this, ViewBase.astype( RoutingConfiguratorView ), item, true ); |  |     updates := construct( RoutingConfiguratorViews ); |  |      |  |     // Traverse the new set of valid RoutingConfiguratorView |  |     traverse( ioroutingconfiguratorviews, Elements, io, io.IsValid() ) |  |     { |  |       indexkey := io.ID(); |  |       // Find existing RoutingConfiguratorView |  |       objectinstance := RoutingConfiguratorView::FindRoutingConfiguratorViewTypeIndex( indexkey ); |  |        |  |       // If no existing RoutingConfiguratorView is found, create one |  |       if( isnull( objectinstance ) ) |  |       { |  |         objectinstance := RoutingConfiguratorView::Create( indexkey, |  |                                                            this, |  |                                                            io.EdgeThickness(),  |  |                                                            io.FontName(), |  |                                                            io.FontSize(), |  |                                                            io.GridHeight(), |  |                                                            io.GridPointDistance(), |  |                                                            io.GridWidth(), |  |                                                            io.IsCompactMode(), |  |                                                            io.IsGridVisible(), |  |                                                            io.OffsetX(), |  |                                                            io.OffsetY(), |  |                                                            io.OperationHeight(), |  |                                                            io.OperationInputOutputWidth(), |  |                                                            io.OperationOffsetX(), |  |                                                            io.OperationOffsetY(), |  |                                                            io.OperationWidth(), |  |                                                            io.Padding(), |  |                                                            io.PISPHeight(), |  |                                                            io.PISPWidth(), |  |                                                            io.RoutingStepDistance(), |  |                                                            io.RoutingStepMinimumHeight(), |  |                                                            io.RoutingStepMinimumWidth(), |  |                                                            io.User(), |  |                                                            io.UserOperationInputOutputHeight(), |  |                                                            true /*isfromdb*/ ); |  |       } |  |       // Else if the RoutingConfiguratorView is not manually configured or the imported instance should overwrite manual configuration, |  |       // update the existing RoutingConfiguratorView |  |       else if( not objectinstance.IsManuallyConfigured() or isoverwritemanualconfig ) |  |       { |  |         // Update RoutingConfiguratorView |  |         objectinstance.Update( io.EdgeThickness(),  |  |                                io.FontName(), |  |                                io.FontSize(), |  |                                io.GridHeight(), |  |                                io.GridPointDistance(), |  |                                io.GridWidth(), |  |                                io.IsCompactMode(), |  |                                io.IsGridVisible(), |  |                                io.OffsetX(), |  |                                io.OffsetY(), |  |                                io.OperationHeight(), |  |                                io.OperationInputOutputWidth(), |  |                                io.OperationOffsetX(), |  |                                io.OperationOffsetY(), |  |                                io.OperationWidth(), |  |                                io.Padding(), |  |                                io.PISPHeight(), |  |                                io.PISPWidth(), |  |                                io.RoutingStepDistance(), |  |                                io.RoutingStepMinimumHeight(), |  |                                io.RoutingStepMinimumWidth(), |  |                                io.User(), |  |                                io.UserOperationInputOutputHeight(), |  |                                true /*isfromdb*/ ); |  |          |  |         updates.Add( objectinstance ); |  |       } |  |        |  |       if( not isnull( objectinstance ) ) |  |       { |  |         // Extended method |  |         objectinstance.CustomUpdate( io, isoverwritemanualconfig );  |  |       } |  |     } |  |      |  |     // Get the set of old RoutingConfiguratorView to be deleted |  |     tobedeleteset := existing.Difference( updates ); |  |      |  |     // Traverse the set of RoutingConfiguratorView to be deleted |  |     // Only delete RoutingConfiguratorView that is not manually configured or the imported instance should overwrite manual configuration |  |     traverse( tobedeleteset, Elements, ele, |  |               not ele.IsManuallyConfigured() or isoverwritemanualconfig ) |  |     { |  |       ele.Delete(); |  |     } |  |   *] |  | } | 
 |