-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathSSYModelChangeTypes.m
111 lines (103 loc) · 2.81 KB
/
SSYModelChangeTypes.m
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
104
105
106
107
108
109
110
111
#import "SSYModelChangeTypes.h"
@implementation SSYModelChangeTypes
+ (BOOL)objectExistenceIsAffectedByChange:(SSYModelChangeAction)action {
return (
(action == SSYModelChangeActionReplace)
|| (action == SSYModelChangeActionRemove)
|| (action == SSYModelChangeActionMerge)
|| (action == SSYModelChangeActionInsert)
|| (action == SSYModelChangeActionCancel)
) ;
}
+ (BOOL)objectAttributesAreAffectedByChange:(SSYModelChangeAction)action {
return (
(action == SSYModelChangeActionMosh)
|| (action == SSYModelChangeActionSlosh)
|| (action == SSYModelChangeActionModify)
|| (action == SSYModelChangeActionMove)
|| (action == SSYModelChangeActionSlide)
) ;
}
+ (NSString*)symbolForAction:(SSYModelChangeAction)action {
NSString* symbol = nil ;
switch (action) {
case SSYModelChangeActionInsert:
symbol = @"+" ; // + // I tried a circled + sign, \xe2\x8a\x95, but it was tiny and illegible at 11 pt.
break;
case SSYModelChangeActionModify:
symbol = @"\u0394" ; // Δ // greek letter delta
break;
case SSYModelChangeActionSort:
symbol = @"\u25B2" ; // ▲ //black up-pointing triangle
break;
case SSYModelChangeActionMosh:
symbol = @"\u2723" ; // ✣ // four balloon-spoked asterisk
break;
case SSYModelChangeActionSlosh:
symbol = @"\u271B" ; // ✛ // open centre cross
break;
case SSYModelChangeActionSlide:
symbol = @"\u2195" ; // ↕︎ // up-and-down arrow
break;
case SSYModelChangeActionMerge:
symbol = @"\u2295" ; // ⊕ // circled plus sign
break;
case SSYModelChangeActionMove:
symbol = @"\u2196" ; // ↖︎ // north west arrow
break;
case SSYModelChangeActionReplace:
symbol = @"\u21C5" ; // ⇅ // upwards arrow leftwards of downwards arrow (two arrows)
break;
case SSYModelChangeActionRemove:
symbol = @"-" ; // - //
break;
case SSYModelChangeActionUndefined:
symbol = @"" ;
break;
default:
symbol = @"???" ;
break;
}
return symbol ;
}
+ (NSString*)asciiNameForAction:(SSYModelChangeAction)action {
switch (action) {
case SSYModelChangeActionInsert:
return @"INSERT" ;
break;
case SSYModelChangeActionModify:
return @"MODIFY" ;
break;
case SSYModelChangeActionSort:
return @"SORT" ;
break;
case SSYModelChangeActionMosh:
return @"MOSH" ;
break;
case SSYModelChangeActionSlosh:
return @"SLOSH" ;
break;
case SSYModelChangeActionSlide:
return @"SLIDE" ;
break;
case SSYModelChangeActionMerge:
return @"MERGE" ;
break;
case SSYModelChangeActionMove:
return @"MOVE" ;
break;
case SSYModelChangeActionReplace:
return @"REPLACE" ;
break;
case SSYModelChangeActionRemove:
return @"REMOVE" ;
break;
case SSYModelChangeActionUndefined:
return @"UNDEFINED" ;
break;
default:
break;
}
return @"???" ;
}
@end