Line data Source code
1 : /* File: gui_type_resource_list.c; Copyright and License: see below */
2 :
3 : #include "gui_type_resource_list.h"
4 : #include "u8/u8_trace.h"
5 : #include "u8/u8_log.h"
6 : #include <gtk/gtk.h>
7 : #include <assert.h>
8 :
9 0 : void gui_type_resource_list_init ( gui_type_resource_list_t *this_, gui_resources_t *resources )
10 : {
11 0 : U8_TRACE_BEGIN();
12 0 : assert( resources != NULL );
13 0 : (*this_).resources = resources;
14 :
15 0 : unsigned int idx = 0;
16 : gui_type_resource_t *current;
17 :
18 0 : (*this_).diagram_types_start = idx;
19 : {
20 : /* order: structural from abstract to concrete, behavioral from abstract to concrete */
21 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
22 0 : GdkTexture *icon_diag_list = gui_resources_get_type_diag_list ( (*this_).resources );
23 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_LIST, "List Diagram", icon_diag_list );
24 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
25 0 : GdkTexture *icon_diag_box = gui_resources_get_type_diag_box ( (*this_).resources );
26 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_BOX_DIAGRAM, "Box Diagram", icon_diag_box );
27 :
28 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
29 0 : GdkTexture *icon_diag_block = gui_resources_get_type_diag_block ( (*this_).resources );
30 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_SYSML_BLOCK_DEFINITION_DIAGRAM, "Block Definition Diagram (SysML)", icon_diag_block );
31 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
32 0 : GdkTexture *icon_diag_internal = gui_resources_get_type_diag_internal ( (*this_).resources );
33 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_SYSML_INTERNAL_BLOCK_DIAGRAM, "Internal Block Diagram (SysML)", icon_diag_internal );
34 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
35 0 : GdkTexture *icon_diag_parametric = gui_resources_get_type_diag_parametric ( (*this_).resources );
36 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_SYSML_PARAMETRIC_DIAGRAM, "Parametric Diagram (SysML)", icon_diag_parametric );
37 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
38 0 : GdkTexture *icon_diag_deployment = gui_resources_get_type_diag_deployment ( (*this_).resources );
39 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_DEPLOYMENT_DIAGRAM, "Deployment Diagram (UML)", icon_diag_deployment );
40 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
41 0 : GdkTexture *icon_diag_component = gui_resources_get_type_diag_component ( (*this_).resources );
42 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_COMPONENT_DIAGRAM, "Component Diagram (UML)", icon_diag_component );
43 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
44 0 : GdkTexture *icon_diag_composite = gui_resources_get_type_diag_composite ( (*this_).resources );
45 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_COMPOSITE_STRUCTURE_DIAGRAM, "Composite Structure Diagram (UML)", icon_diag_composite );
46 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
47 0 : GdkTexture *icon_diag_package = gui_resources_get_type_diag_package ( (*this_).resources );
48 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_PACKAGE_DIAGRAM, "Package Diagram (SysML, UML)", icon_diag_package );
49 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
50 0 : GdkTexture *icon_diag_class = gui_resources_get_type_diag_class ( (*this_).resources );
51 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_CLASS_DIAGRAM, "Class Diagram (UML)", icon_diag_class );
52 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
53 0 : GdkTexture *icon_diag_profile = gui_resources_get_type_diag_profile( (*this_).resources );
54 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_PROFILE_DIAGRAM, "Profile Diagram (UML)", icon_diag_profile );
55 :
56 : /* requirements diagram: */
57 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
58 0 : GdkTexture *icon_diag_requirement = gui_resources_get_type_diag_requirement ( (*this_).resources );
59 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_SYSML_REQUIREMENTS_DIAGRAM, "Requirements Diagram (SysML)", icon_diag_requirement );
60 :
61 : /* behavioral diagrams: */
62 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
63 0 : GdkTexture *icon_diag_usecase = gui_resources_get_type_diag_usecase ( (*this_).resources );
64 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_USE_CASE_DIAGRAM, "Use Case Diagram (SysML, UML)", icon_diag_usecase );
65 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
66 0 : GdkTexture *icon_diag_overview = gui_resources_get_type_diag_overview ( (*this_).resources );
67 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_INTERACTION_OVERVIEW_DIAGRAM, "Interaction Overview Diagram (UML)", icon_diag_overview );
68 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
69 0 : GdkTexture *icon_diag_activity = gui_resources_get_type_diag_activity ( (*this_).resources );
70 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_ACTIVITY_DIAGRAM, "Activity Diagram (SysML, UML)", icon_diag_activity );
71 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
72 0 : GdkTexture *icon_diag_state = gui_resources_get_type_diag_state ( (*this_).resources );
73 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_STATE_MACHINE_DIAGRAM, "State Machine Diagram (SysML, UML)", icon_diag_state );
74 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
75 0 : GdkTexture *icon_diag_communication = gui_resources_get_type_diag_communication ( (*this_).resources );
76 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_COMMUNICATION_DIAGRAM, "Communication Diagram (UML)", icon_diag_communication );
77 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
78 0 : GdkTexture *icon_diag_sequence = gui_resources_get_type_diag_sequence ( (*this_).resources );
79 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_SEQUENCE_DIAGRAM, "Sequence Diagram (SysML, UML)", icon_diag_sequence );
80 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
81 0 : GdkTexture *icon_diag_timing = gui_resources_get_type_diag_timing ( (*this_).resources );
82 0 : gui_type_resource_init_diagram( current, DATA_DIAGRAM_TYPE_UML_TIMING_DIAGRAM, "Timing Diagram (UML)", icon_diag_timing );
83 : }
84 0 : (*this_).diagram_types_length = idx - (*this_).diagram_types_start;
85 0 : assert( GUI_TYPE_RESOURCE_LIST_DIAGRAMS == (*this_).diagram_types_length );
86 :
87 0 : (*this_).classifier_types_start = idx;
88 : {
89 : /* order: structural from abstract to concrete, behavioral from abstract to concrete */
90 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
91 0 : GdkTexture *icon_clas_block = gui_resources_get_type_clas_block( (*this_).resources );
92 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_BLOCK, "Block", icon_clas_block );
93 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
94 0 : GdkTexture *icon_clas_constraint = gui_resources_get_type_clas_constraint( (*this_).resources );
95 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_CONSTRAINT_BLOCK, "Constraint Block", icon_clas_constraint );
96 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
97 0 : GdkTexture *icon_clas_node = gui_resources_get_type_clas_node( (*this_).resources );
98 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_NODE, "Node", icon_clas_node );
99 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
100 0 : GdkTexture *icon_clas_subsystem = gui_resources_get_type_clas_subsystem( (*this_).resources );
101 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_SUBSYSTEM, "Subsystem/Boundary", icon_clas_subsystem );
102 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
103 0 : GdkTexture *icon_clas_component = gui_resources_get_type_clas_component( (*this_).resources );
104 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_COMPONENT, "Component", icon_clas_component );
105 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
106 0 : GdkTexture *icon_clas_part = gui_resources_get_type_clas_part( (*this_).resources );
107 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_PART, "Part (component instance)", icon_clas_part );
108 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
109 0 : GdkTexture *icon_clas_interface = gui_resources_get_type_clas_interface( (*this_).resources );
110 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_INTERFACE, "Interface", icon_clas_interface );
111 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
112 0 : GdkTexture *icon_clas_package = gui_resources_get_type_clas_package( (*this_).resources );
113 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_PACKAGE, "Package", icon_clas_package );
114 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
115 0 : GdkTexture *icon_clas_class = gui_resources_get_type_clas_class( (*this_).resources );
116 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_CLASS, "Class", icon_clas_class );
117 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
118 0 : GdkTexture *icon_clas_object = gui_resources_get_type_clas_object( (*this_).resources );
119 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_OBJECT, "Object (class instance)", icon_clas_object );
120 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
121 0 : GdkTexture *icon_clas_artifact = gui_resources_get_type_clas_artifact( (*this_).resources );
122 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_ARTIFACT, "Artifact", icon_clas_artifact );
123 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
124 0 : GdkTexture *icon_clas_comment = gui_resources_get_type_clas_comment( (*this_).resources );
125 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_COMMENT, "Comment", icon_clas_comment );
126 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
127 0 : GdkTexture *icon_clas_image = gui_resources_get_type_clas_image( (*this_).resources );
128 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_IMAGE, "Image (profile)", icon_clas_image );
129 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
130 0 : GdkTexture *icon_clas_stereotype = gui_resources_get_type_clas_stereotype( (*this_).resources );
131 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_STEREOTYPE, "Stereotype (profile)", icon_clas_stereotype );
132 : /* requirements classifiers: */
133 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
134 0 : GdkTexture *icon_clas_requirement = gui_resources_get_type_clas_requirement( (*this_).resources );
135 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_REQUIREMENT, "Requirement", icon_clas_requirement );
136 : /* behavioral classifiers: */
137 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
138 0 : GdkTexture *icon_clas_actor = gui_resources_get_type_clas_actor( (*this_).resources );
139 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_ACTOR, "Actor", icon_clas_actor );
140 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
141 0 : GdkTexture *icon_clas_usecase = gui_resources_get_type_clas_usecase( (*this_).resources );
142 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_USE_CASE, "Use Case", icon_clas_usecase );
143 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
144 0 : GdkTexture *icon_clas_diagram = gui_resources_get_type_clas_diagram( (*this_).resources );
145 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DIAGRAM_REFERENCE, "Interaction Diagram Reference", icon_clas_diagram );
146 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
147 0 : GdkTexture *icon_clas_activity = gui_resources_get_type_clas_activity( (*this_).resources );
148 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_ACTIVITY, "Activity/Action", icon_clas_activity );
149 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
150 0 : GdkTexture *icon_clas_region = gui_resources_get_type_clas_region( (*this_).resources );
151 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_INTERRUPTABLE_REGION, "Interruptable Region", icon_clas_region );
152 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
153 0 : GdkTexture *icon_clas_fork = gui_resources_get_type_clas_fork( (*this_).resources );
154 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_FORK_NODE, "Fork", icon_clas_fork );
155 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
156 0 : GdkTexture *icon_clas_join = gui_resources_get_type_clas_join( (*this_).resources );
157 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_JOIN_NODE, "Join", icon_clas_join );
158 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
159 0 : GdkTexture *icon_clas_accept = gui_resources_get_type_clas_accept( (*this_).resources );
160 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_ACCEPT_EVENT, "Accept Event", icon_clas_accept );
161 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
162 0 : GdkTexture *icon_clas_time = gui_resources_get_type_clas_time( (*this_).resources );
163 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_ACCEPT_TIME_EVENT, "Accept Time Event", icon_clas_time );
164 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
165 0 : GdkTexture *icon_clas_send = gui_resources_get_type_clas_send( (*this_).resources );
166 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_SEND_SIGNAL, "Send Signal", icon_clas_send );
167 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
168 0 : GdkTexture *icon_clas_decision = gui_resources_get_type_clas_decision( (*this_).resources );
169 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_DECISION_NODE, "Decision/Choice", icon_clas_decision );
170 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
171 0 : GdkTexture *icon_clas_initial = gui_resources_get_type_clas_initial( (*this_).resources );
172 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_INITIAL_NODE, "Initial Node", icon_clas_initial );
173 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
174 0 : GdkTexture *icon_clas_final = gui_resources_get_type_clas_final( (*this_).resources );
175 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_FINAL_NODE, "Final Node", icon_clas_final );
176 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
177 0 : GdkTexture *icon_clas_state = gui_resources_get_type_clas_state( (*this_).resources );
178 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_STATE, "State", icon_clas_state );
179 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
180 0 : GdkTexture *icon_clas_history = gui_resources_get_type_clas_history( (*this_).resources );
181 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_SHALLOW_HISTORY, "Shallow History", icon_clas_history );
182 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
183 0 : GdkTexture *icon_clas_deephistory = gui_resources_get_type_clas_deephistory( (*this_).resources );
184 0 : gui_type_resource_init_classifier( current, DATA_CLASSIFIER_TYPE_DYN_DEEP_HISTORY, "Deep History", icon_clas_deephistory );
185 : }
186 0 : (*this_).classifier_types_length = idx - (*this_).classifier_types_start;
187 0 : assert( GUI_TYPE_RESOURCE_LIST_CLASSIFIERS == (*this_).classifier_types_length );
188 :
189 0 : (*this_).feature_types_start = idx;
190 : {
191 : /* order: from close to far */
192 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
193 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
194 0 : GdkTexture *icon_feat_property = gui_resources_get_type_feat_property( (*this_).resources );
195 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_PROPERTY, "Property", icon_feat_property );
196 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
197 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
198 0 : GdkTexture *icon_feat_operation = gui_resources_get_type_feat_operation( (*this_).resources );
199 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_OPERATION, "Operation", icon_feat_operation );
200 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
201 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
202 0 : GdkTexture *icon_feat_provide = gui_resources_get_type_feat_provide( (*this_).resources );
203 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_PROVIDED_INTERFACE, "Provided Interface", icon_feat_provide );
204 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
205 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
206 0 : GdkTexture *icon_feat_require = gui_resources_get_type_feat_require( (*this_).resources );
207 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_REQUIRED_INTERFACE, "Required Interface", icon_feat_require );
208 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
209 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
210 0 : GdkTexture *icon_feat_port = gui_resources_get_type_feat_port( (*this_).resources );
211 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_PORT, "Port", icon_feat_port );
212 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
213 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
214 0 : GdkTexture *icon_feat_rx = gui_resources_get_type_feat_rx( (*this_).resources );
215 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_IN_PORT_PIN, "Input Pin/FlowPort(SysML)", icon_feat_rx );
216 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
217 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
218 0 : GdkTexture *icon_feat_tx = gui_resources_get_type_feat_tx( (*this_).resources );
219 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_OUT_PORT_PIN, "Output Pin/FlowPort(SysML)", icon_feat_tx );
220 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
221 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
222 0 : GdkTexture *icon_feat_entry = gui_resources_get_type_feat_entry( (*this_).resources );
223 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_ENTRY, "State Entry", icon_feat_entry );
224 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
225 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
226 0 : GdkTexture *icon_feat_exit = gui_resources_get_type_feat_exit( (*this_).resources );
227 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_EXIT, "State Exit", icon_feat_exit );
228 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
229 0 : GdkTexture *icon_feat_tag = gui_resources_get_type_feat_tag( (*this_).resources );
230 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_TAGGED_VALUE, "Tagged Value", icon_feat_tag );
231 :
232 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
233 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
234 0 : GdkTexture *icon_feat_life = gui_resources_get_type_feat_life( (*this_).resources );
235 0 : gui_type_resource_init_feature( current, DATA_FEATURE_TYPE_LIFELINE, "Lifeline", icon_feat_life );
236 : }
237 0 : (*this_).feature_types_length = idx - (*this_).feature_types_start;
238 0 : assert( GUI_TYPE_RESOURCE_LIST_FEATURES == (*this_).feature_types_length );
239 :
240 0 : (*this_).relationship_types_start = idx;
241 : {
242 : /* order: structural from abstract to concrete, behavioral from abstract to concrete */
243 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
244 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
245 0 : GdkTexture *icon_rel_depend = gui_resources_get_type_rel_depend( (*this_).resources );
246 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_DEPENDENCY, "Dependency", icon_rel_depend );
247 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
248 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
249 0 : GdkTexture *icon_rel_contain = gui_resources_get_type_rel_contain( (*this_).resources );
250 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_CONTAINMENT, "Containment", icon_rel_contain );
251 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
252 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
253 0 : GdkTexture *icon_rel_deploy = gui_resources_get_type_rel_deploy( (*this_).resources );
254 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_DEPLOY, "Deploy", icon_rel_deploy );
255 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
256 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
257 0 : GdkTexture *icon_rel_manifest = gui_resources_get_type_rel_manifest( (*this_).resources );
258 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_MANIFEST, "Manifest", icon_rel_manifest );
259 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
260 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
261 0 : GdkTexture *icon_rel_communication_path = gui_resources_get_type_rel_communication_path( (*this_).resources );
262 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_COMMUNICATION_PATH, "Communication Path", icon_rel_communication_path );
263 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
264 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
265 0 : GdkTexture *icon_rel_associate = gui_resources_get_type_rel_associate( (*this_).resources );
266 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_ASSOCIATION, "Association", icon_rel_associate );
267 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
268 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
269 0 : GdkTexture *icon_rel_aggregate = gui_resources_get_type_rel_aggregate( (*this_).resources );
270 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_AGGREGATION, "Aggregation", icon_rel_aggregate );
271 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
272 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
273 0 : GdkTexture *icon_rel_compose = gui_resources_get_type_rel_compose( (*this_).resources );
274 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_COMPOSITION, "Composition", icon_rel_compose );
275 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
276 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
277 0 : GdkTexture *icon_rel_generalize = gui_resources_get_type_rel_generalize( (*this_).resources );
278 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_GENERALIZATION, "Generalization", icon_rel_generalize );
279 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
280 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
281 0 : GdkTexture *icon_rel_realize = gui_resources_get_type_rel_realize( (*this_).resources );
282 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_REALIZATION, "Realization", icon_rel_realize );
283 : /* requirements relationships: */
284 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
285 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
286 0 : GdkTexture *icon_rel_trace = gui_resources_get_type_rel_trace( (*this_).resources );
287 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_TRACE, "Trace (requirement)", icon_rel_trace );
288 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
289 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
290 0 : GdkTexture *icon_rel_refine = gui_resources_get_type_rel_refine( (*this_).resources );
291 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_REFINE, "Refine (requirement)", icon_rel_refine );
292 : /* behavioral relationships: */
293 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
294 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
295 0 : GdkTexture *icon_rel_extend = gui_resources_get_type_rel_extend( (*this_).resources );
296 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_EXTEND, "Extend (use case)", icon_rel_extend );
297 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
298 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
299 0 : GdkTexture *icon_rel_include = gui_resources_get_type_rel_include( (*this_).resources );
300 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_INCLUDE, "Include (use case)", icon_rel_include );
301 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
302 0 : GdkTexture *icon_rel_control_flow = gui_resources_get_type_rel_control_flow( (*this_).resources );
303 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_CONTROL_FLOW, "Control Flow/Transition", icon_rel_control_flow );
304 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
305 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
306 0 : GdkTexture *icon_rel_object_flow = gui_resources_get_type_rel_object_flow( (*this_).resources );
307 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_OBJECT_FLOW, "Object Flow", icon_rel_object_flow );
308 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
309 0 : GdkTexture *icon_rel_async = gui_resources_get_type_rel_async( (*this_).resources );
310 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_ASYNC_CALL, "Async. Call", icon_rel_async );
311 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
312 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
313 0 : GdkTexture *icon_rel_sync = gui_resources_get_type_rel_sync( (*this_).resources );
314 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_SYNC_CALL, "Sync. Call", icon_rel_sync );
315 0 : assert( idx < GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
316 0 : current = &((*this_).type_name_icon_list[idx]); idx++;
317 0 : GdkTexture *icon_rel_return = gui_resources_get_type_rel_return( (*this_).resources );
318 0 : gui_type_resource_init_relationship( current, DATA_RELATIONSHIP_TYPE_UML_RETURN_CALL, "Return Call", icon_rel_return );
319 : }
320 0 : (*this_).relationship_types_length = idx - (*this_).relationship_types_start;
321 0 : assert( GUI_TYPE_RESOURCE_LIST_RELATIONS == (*this_).relationship_types_length );
322 :
323 0 : assert( idx == GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
324 0 : assert( (*this_).diagram_types_length + (*this_).classifier_types_length + (*this_).feature_types_length + (*this_).relationship_types_length
325 : == GUI_TYPE_RESOURCE_LIST_MAX_TYPES );
326 :
327 0 : GdkTexture *icon_undef = gui_resources_get_type_undef( (*this_).resources );
328 0 : gui_type_resource_init_classifier( &((*this_).type_undef), DATA_CLASSIFIER_TYPE_VOID, "", icon_undef );
329 :
330 0 : (*this_).no_types = g_list_store_new( gui_type_resource_get_type() );
331 0 : (*this_).diagram_types = g_list_store_new( gui_type_resource_get_type() );
332 0 : (*this_).classifier_types = g_list_store_new( gui_type_resource_get_type() );
333 0 : (*this_).relationship_types = g_list_store_new( gui_type_resource_get_type() );
334 0 : (*this_).feature_types = g_list_store_new( gui_type_resource_get_type() );
335 0 : (*this_).feature_lifeline_type = g_list_store_new( gui_type_resource_get_type() );
336 0 : for ( unsigned int t_index = 0; t_index < GUI_TYPE_RESOURCE_LIST_MAX_TYPES; t_index ++ )
337 : {
338 0 : GuiTypeResource *type_res = GUI_TYPE_RESOURCE( g_object_new( gui_type_resource_get_type(), NULL ) );
339 0 : gui_type_resource_replace( type_res, &((*this_).type_name_icon_list[t_index]) );
340 0 : switch ( data_type_get_context( gui_type_resource_get_type_id( type_res ) ) )
341 : {
342 0 : case DATA_TABLE_CLASSIFIER:
343 : {
344 0 : g_list_store_append( (*this_).classifier_types, type_res );
345 : }
346 0 : break;
347 :
348 0 : case DATA_TABLE_FEATURE:
349 : {
350 0 : if ( data_type_get_type_as_int( gui_type_resource_get_type_id( type_res ) ) == DATA_FEATURE_TYPE_LIFELINE )
351 : {
352 0 : g_list_store_append( (*this_).feature_lifeline_type, type_res );
353 : }
354 : else
355 : {
356 0 : g_list_store_append( (*this_).feature_types, type_res );
357 : }
358 : }
359 0 : break;
360 :
361 0 : case DATA_TABLE_RELATIONSHIP:
362 : {
363 0 : g_list_store_append( (*this_).relationship_types, type_res );
364 : }
365 0 : break;
366 :
367 0 : case DATA_TABLE_DIAGRAM:
368 : {
369 0 : g_list_store_append( (*this_).diagram_types, type_res );
370 : }
371 0 : break;
372 :
373 0 : default:
374 : {
375 0 : U8_LOG_WARNING("unexpected data_table_t in gui_type_resource_list_t.type_name_icon_list");
376 : }
377 0 : break;
378 : }
379 0 : g_object_unref( type_res );
380 : }
381 : {
382 0 : GuiTypeResource *no_type_res = GUI_TYPE_RESOURCE( g_object_new( gui_type_resource_get_type(), NULL ) );
383 0 : gui_type_resource_replace( no_type_res, &((*this_).type_undef) );
384 0 : g_list_store_append( (*this_).no_types, no_type_res );
385 0 : g_object_unref( no_type_res );
386 : }
387 :
388 0 : U8_TRACE_END();
389 0 : }
390 :
391 0 : void gui_type_resource_list_destroy ( gui_type_resource_list_t *this_ )
392 : {
393 0 : U8_TRACE_BEGIN();
394 :
395 0 : g_object_unref( (*this_).no_types );
396 0 : g_object_unref( (*this_).diagram_types );
397 0 : g_object_unref( (*this_).classifier_types );
398 0 : g_object_unref( (*this_).relationship_types );
399 0 : g_object_unref( (*this_).feature_types );
400 0 : g_object_unref( (*this_).feature_lifeline_type );
401 :
402 0 : gui_type_resource_destroy( &((*this_).type_undef) );
403 :
404 0 : U8_TRACE_END();
405 0 : }
406 :
407 0 : gui_type_resource_t * gui_type_resource_list_get_type ( gui_type_resource_list_t *this_, data_table_t table, int type )
408 : {
409 0 : U8_TRACE_BEGIN();
410 :
411 : gui_type_resource_t *result;
412 :
413 0 : switch (table) {
414 0 : case DATA_TABLE_VOID:
415 : {
416 0 : result = &((*this_).type_undef);
417 0 : U8_LOG_ANOMALY("unexpected data_table_t in gui_type_resource_list_get_icon");
418 : }
419 0 : break;
420 :
421 0 : case DATA_TABLE_CLASSIFIER:
422 : {
423 0 : result = gui_type_resource_list_get_classifier_type( this_, (data_classifier_type_t) type );
424 : }
425 0 : break;
426 :
427 0 : case DATA_TABLE_FEATURE:
428 : {
429 0 : result = gui_type_resource_list_get_feature_type( this_, (data_feature_type_t) type );
430 : }
431 0 : break;
432 :
433 0 : case DATA_TABLE_RELATIONSHIP:
434 : {
435 0 : result = gui_type_resource_list_get_relationship_type( this_, (data_relationship_type_t) type );
436 : }
437 0 : break;
438 :
439 0 : case DATA_TABLE_DIAGRAMELEMENT:
440 : {
441 0 : result = &((*this_).type_undef);
442 0 : U8_LOG_WARNING("unexpected data_table_t in gui_type_resource_list_get_icon");
443 : }
444 0 : break;
445 :
446 0 : case DATA_TABLE_DIAGRAM:
447 : {
448 0 : result = gui_type_resource_list_get_diagram_type( this_, (data_diagram_type_t) type );
449 : }
450 0 : break;
451 :
452 0 : default:
453 : {
454 0 : result = &((*this_).type_undef);
455 0 : U8_LOG_WARNING("unexpected data_table_t in gui_type_resource_list_get_icon");
456 : }
457 0 : break;
458 : }
459 :
460 0 : U8_TRACE_END();
461 0 : return result;
462 : }
463 :
464 :
465 : /*
466 : Copyright 2020-2024 Andreas Warnke
467 :
468 : Licensed under the Apache License, Version 2.0 (the "License");
469 : you may not use this file except in compliance with the License.
470 : You may obtain a copy of the License at
471 :
472 : http://www.apache.org/licenses/LICENSE-2.0
473 :
474 : Unless required by applicable law or agreed to in writing, software
475 : distributed under the License is distributed on an "AS IS" BASIS,
476 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
477 : See the License for the specific language governing permissions and
478 : limitations under the License.
479 : */
|