[Home] [Help]
PACKAGE BODY: APPS.CZ_UI_GENERATOR
Source
1 PACKAGE BODY CZ_UI_GENERATOR AS
2 /* $Header: czuigenb.pls 120.5 2007/11/26 12:12:38 kdande ship $ */
3
4 TYPE UIStructure IS RECORD(id CZ_UI_NODES.ui_node_id%TYPE,
5 ps_node_id CZ_PS_NODES.ps_node_id%TYPE,
6 parent_id CZ_PS_NODES.parent_id%TYPE,
7 name CZ_UI_NODES.name%TYPE,
8 caption_name CZ_INTL_TEXTS.text_str%TYPE,
9 ps_node_type CZ_PS_NODES.ps_node_type%TYPE,
10 tree_seq CZ_PS_NODES.tree_seq%TYPE,
11 maximum CZ_PS_NODES.maximum%TYPE,
12 minimum CZ_PS_NODES.minimum%TYPE,
13 ui_node_ref_id CZ_UI_NODES.ui_node_ref_id%TYPE,
14 reference_id CZ_PS_NODES.reference_id%TYPE,
15 intl_text_id CZ_PS_NODES.intl_text_id%TYPE,
16 ui_omit CZ_PS_NODES.ui_omit%TYPE,
17 virtual_flag CZ_PS_NODES.virtual_flag%TYPE);
18
19 TYPE featureStructure IS RECORD(id CZ_UI_NODES.ui_node_id%TYPE,
20 ps_node_id CZ_PS_NODES.ps_node_id%TYPE,
21 parent_id CZ_PS_NODES.parent_id%TYPE,
22 name CZ_UI_NODES.name%TYPE,
23 caption_name CZ_INTL_TEXTS.text_str%TYPE,
24 counted_options_flag CZ_PS_NODES.counted_options_flag%TYPE,
25 ps_node_type CZ_PS_NODES.ps_node_type%TYPE,
26 tree_seq CZ_PS_NODES.tree_seq%TYPE,
27 maximum CZ_PS_NODES.maximum%TYPE,
28 minimum CZ_PS_NODES.minimum%TYPE,
29 intl_text_id CZ_PS_NODES.intl_text_id%TYPE,
30 feature_type CZ_PS_NODES.feature_type%TYPE,
31 reference_id CZ_PS_NODES.reference_id%TYPE,
32 atp_flag BOOLEAN);
33
34 TYPE optionStructure IS RECORD( id CZ_UI_NODES.ui_node_id%TYPE,
35 ps_node_id CZ_PS_NODES.ps_node_id%TYPE,
36 parent_id CZ_PS_NODES.parent_id%TYPE,
37 tree_seq CZ_PS_NODES.tree_seq%TYPE,
38 intl_text_id CZ_PS_NODES.intl_text_id%TYPE,
39 name CZ_UI_NODES.name%TYPE,
40 caption_name CZ_INTL_TEXTS.text_str%TYPE,
41 atp_flag BOOLEAN);
42
43 TYPE refBOMStructure IS RECORD(ui_parent_id CZ_UI_NODES.parent_id%TYPE,
44 model_id CZ_PS_NODES.devl_project_id%TYPE,
45 ps_node_id CZ_PS_NODES.ps_node_id%TYPE,
46 intl_text_id CZ_PS_NODES.intl_text_id%TYPE,
47 maximum CZ_PS_NODES.maximum%TYPE,
48 minimum CZ_PS_NODES.minimum%TYPE,
49 virtual_flag CZ_PS_NODES.virtual_flag%TYPE);
50
51
52 TYPE buttonsStructure IS RECORD(id CZ_UI_NODES.ui_node_id%TYPE,
53 ps_parent_id CZ_PS_NODES.parent_id%TYPE,
54 ui_parent_id CZ_UI_NODES.parent_id%TYPE,
55 name CZ_UI_NODES.name%TYPE,
56 rel_top_pos CZ_UI_NODES.rel_top_pos%TYPE);
57
58 TYPE pageStructure IS RECORD(ps_node_id CZ_PS_NODES.ps_node_id%TYPE,
59 ui_node_id CZ_UI_NODES.ui_node_id%TYPE,
60 text_id CZ_PS_NODES.intl_text_id%TYPE,
61 label_id CZ_UI_NODES.caption_id%TYPE,
62 label_txt_id CZ_UI_NODES.caption_id%TYPE,
63 tree_label_id CZ_UI_NODES.caption_id%TYPE,
64 name CZ_UI_NODES.name%TYPE);
65
66
67 TYPE UIArray IS TABLE OF UIStructure INDEX BY VARCHAR2(15);
68 TYPE featureArray IS TABLE OF featureStructure INDEX BY VARCHAR2(15);
69 TYPE optionArray IS TABLE OF optionStructure INDEX BY VARCHAR2(15);
70 TYPE buttonsArray IS TABLE OF buttonsStructure INDEX BY VARCHAR2(15);
71 TYPE refbomArray IS TABLE OF refBOMStructure INDEX BY BINARY_INTEGER;
72 TYPE pageArray IS TABLE OF pageStructure INDEX BY BINARY_INTEGER;
73
74 news UIArray;
75 boms UIArray;
76 ref_boms refbomArray;
77
78 features featureArray;
79 Options optionArray;
80
81 add_buttons buttonsArray;
82 latest_buttons buttonsArray;
83 footer_buttons buttonsArray;
84
85 mINCREMENT INTEGER:=20;
86 mITEMS_ON_PAGE INTEGER:=10;
87 mMAX_NUMBER_PAGES INTEGER:=100;
88 mWIZARD_STYLE VARCHAR2(1):='1';
89 mUSE_LABELS VARCHAR2(1);
90 mUI_STYLE VARCHAR2(1);
91 mSHOW_ALL_NODES VARCHAR2(1):='0';
92 mLOOK_AND_FEEL VARCHAR2(40);
93 mCURRENT_LANG VARCHAR2(10);
94 mCONCAT_SYMBOL VARCHAR2(10):=' , ';
95
96 ERROR_CODE VARCHAR2(50):='0000';
97
98 Project_Id CZ_PS_NODES.devl_project_id%TYPE;
99 Model_Id CZ_UI_DEFS.devl_project_id%TYPE;
100 UI_Product_Id CZ_UI_DEFS.component_id%TYPE;
101 current_UI_DEF_ID CZ_UI_DEFS.ui_def_id%TYPE;
102 currUISeqVal CZ_UI_NODES.ui_node_id%TYPE:=0;
103 currentUINode CZ_UI_NODES.ui_node_id%TYPE:=mINCREMENT;
104 currTXTSeqVal CZ_INTL_TEXTS.intl_text_id%TYPE;
105 currentTXTNode CZ_INTL_TEXTS.intl_text_id%TYPE;
106 Model_Name CZ_PS_NODES.name%TYPE;
107 UI_Version PLS_INTEGER:=1;
108
109 USABLE_WIDTH CZ_UI_NODES.width%TYPE;
110 USABLE_HEIGHT CZ_UI_NODES.height%TYPE;
111 CENTER_LINE CZ_UI_NODES.width%TYPE;
112 SCREEN_HALF CZ_UI_NODES.width%TYPE;
113
114 GLOBAL_FRAME_ALLOCATION INTEGER:=-1;
115
116 CZ_EXTENTSIONS_RULE_TYPE CONSTANT NUMBER := 300;
117 EXPR_EVENT_BINDING CONSTANT NUMBER := 0; -- ???
118 EXPR_SYS_ARGUMENT CONSTANT NUMBER := 218;
119 EVENT_ON_COMMAND_SIGID CONSTANT NUMBER := 2203;
120 GENERATE_OUTPUT_EVENT CONSTANT NUMBER := 31;
121 RAISE_COMMAND_EVENT CONSTANT NUMBER := 32;
122 GLOBAL_SCOPE CONSTANT NUMBER := 1;
123
124 --
125 -- these variables are used in Applet style UI --
126 --
127
128 CZ_DELETE_BUTTON_CAPTION CZ_INTL_TEXTS.text_str%TYPE:='Delete';
129 CZ_CONNECTOR_BUTTON_CAPTION CZ_INTL_TEXTS.text_str%TYPE:='Choose Connection';
130
131 CZ_FIND_LABEL_CAPTION CZ_INTL_TEXTS.text_str%TYPE:=NULL;
132 CZ_FIND_BUTTON_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
133 CZ_ORDER_QUANTITY_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
134 CZ_TOTAL_PRC_LABEL_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
135 CZ_AVAILABILITY_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
136 CZ_DONE_BUTTON_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
137 CZ_GRID_ITEM_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
138 CZ_GRID_DESCRIPTION_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
139 CZ_GRID_UOM_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
140 CZ_GRID_QUANTITY_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
141 CZ_GRID_UNIT_LIST_PRC_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
142 CZ_GRID_SELLING_PRC_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
143 CZ_GRID_EXTENDED_PRC_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
144 CZ_UPDATE_BUTTON_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
145 CZ_CANCEL_BUTTON_CAPTION CZ_INTL_TEXTS.text_str%TYPE;
146
147
148
149 APPLET_STYLE_UI CONSTANT VARCHAR2(1):='3';
150 DHTML_STYLE_UI CONSTANT VARCHAR2(1):='0';
151
152 CZ_WARNING_URGENCY CONSTANT INTEGER:=0;
153 CZ_ERROR_URGENCY CONSTANT INTEGER:=1;
154
155 CZ_NAVIGATION_MARK CONSTANT NUMBER:=-1;
156 CZ_UI_GEN_NO_BUTTONS CONSTANT VARCHAR2(30):='CZ_UI_GEN_NO_BUTTONS';
157 CZ_UI_GEN_BAD_DATA CONSTANT VARCHAR2(30):='CZ_UI_GEN_BAD_DATA';
158 CZ_UI_GEN_REMOVED_SCREEN CONSTANT VARCHAR2(30):='CZ_UI_GEN_REMOVED_SCREEN';
159 CZ_UI_GEN_FATAL_ERR CONSTANT VARCHAR2(30):='CZ_UI_GEN_FATAL_ERR';
160 CZ_UI_GEN_BOM_STYLE_FOR_IB CONSTANT VARCHAR2(30):='CZ_UI_GEN_BOM_STYLE_FOR_IB';
161
162 TOKEN_UI_NODE CONSTANT VARCHAR2(20):='ui_node';
163 TOKEN_PROC_NAME CONSTANT VARCHAR2(20):='proc_name';
164 TOKEN_BUTTON_NAME CONSTANT VARCHAR2(20):='button';
165 TOKEN_SQLERRM CONSTANT VARCHAR2(20):='sqlerrm';
166
167 LEFT_MARGIN CONSTANT INTEGER:=45;
168 RIGHT_MARGIN CONSTANT INTEGER:=45;
169 TOP_LABELED_SPACE_BETWEEN CONSTANT INTEGER:=23;
170 TOP_LABELED_SPACE_ABOVE CONSTANT INTEGER:=10;
171 STACKED_SPACE_BETWEEN CONSTANT INTEGER:=10;
172 FIRST_SPACE_LEFT_LABELED CONSTANT INTEGER:=10;
173 FIRST_SPACE_TOP_LABELED CONSTANT INTEGER:=23;
174
175 DEFAULT_CONTROL_HEIGHT CONSTANT INTEGER:=20;
176 DEFAULT_HEADER_HEIGHT CONSTANT INTEGER:=35;
177 DEFAULT_BUTTON_HEIGHT CONSTANT INTEGER:=25;
178 DEFAULT_DIVIDER_HEIGHT CONSTANT INTEGER:=2;
179 DEFAULT_BOM_HEIGHT CONSTANT INTEGER:=28;
180 DEFAULT_BOM_INST_ITEM_HEIGHT CONSTANT INTEGER:=60;
181 DEFAULT_TREE_ALLOCATION CONSTANT INTEGER:=30;
182 DEFAULT_SPACE_BETWEEN CONSTANT INTEGER:=13;
183 SPACE_BETWEEN CONSTANT INTEGER:=10;
184 STACKED_SPACE_BETWEEN CONSTANT INTEGER:=10;
185 FIRST_SPACE_LEFT_LABELED CONSTANT INTEGER:=10;
186 FIRST_SPACE_TOP_LABELED CONSTANT INTEGER:=23;
187 DEFAULT_TEXT_HEIGHT CONSTANT INTEGER:=20;
188 DEFAULT_TITLE_COLOR CONSTANT INTEGER:=8421376;
189 DEFAULT_DIVIDER_COLOR CONSTANT INTEGER:=10079436;
190
191 ------------------------------------------------------------
192
193 RESOURCE_CONTROL_TYPE CONSTANT INTEGER:=7;
194 TOTAL_CONTROL_TYPE CONSTANT INTEGER:=8;
195
196 CONNECTOR_CONTROL_TYPE CONSTANT INTEGER:=16;
197
198 DEFAULT_TARGET_FRAME_WIDTH CONSTANT INTEGER:= 640;
199 DEFAULT_TARGET_FRAME_HEIGHT CONSTANT INTEGER:= 480;
200
201 DEFAULT_PROD_TOP CONSTANT INTEGER:= 41;
202 DEFAULT_PROD_LEFT CONSTANT INTEGER:= 32;
203
204 DEFAULT_BACKGROUND_COLOR CONSTANT INTEGER:= 16777215; --0xFFFFFF; white
205 DEFAULT_BACKGROUND_PICTURE CONSTANT VARCHAR2(50):= '';
206 TREE_TILING_BMP CONSTANT VARCHAR2(50):= 'czyellgr.gif';
207
208 DEFAULT_TREE_FONT_BOLD CONSTANT INTEGER:= 1;
209 DEFAULT_FONT_BOLD CONSTANT INTEGER:= 0;
210 DEFAULT_FONT_ITALIC CONSTANT INTEGER:= 0;
211 DEFAULT_FONT_COLOR CONSTANT INTEGER:= 0; --0x000000; black
212 DEFAULT_FONT_COLOR_ CONSTANT INTEGER:=8421504;
213 DEFAULT_FONT_UNDERLINE CONSTANT INTEGER:= 0;
214 DEFAULT_FONT_SIZE CONSTANT INTEGER:= 10;
215 DEFAULT_FONT_NAME CONSTANT VARCHAR2(50):= 'Arial';
216 DEFAULT_FONT_NAME_ CONSTANT VARCHAR2(50):= 'Arial Black';
217 DEFAULT_FONT_SIZE_ CONSTANT INTEGER:=11;
218 DEFAULT_CAPTION_FONT_SIZE CONSTANT INTEGER:= 16;
219
220 DEFAULT_LOGIC_BOLD_LF CONSTANT INTEGER:= 0;
221 DEFAULT_LOGIC_BOLD_LT CONSTANT INTEGER:= 0;
222 DEFAULT_LOGIC_BOLD_UF CONSTANT INTEGER:= 0;
223 DEFAULT_LOGIC_BOLD_UN CONSTANT INTEGER:= 0;
224 DEFAULT_LOGIC_BOLD_UT CONSTANT INTEGER:= 0;
225
226 -- need to get these values
227 -- this has to be in MS BGR format instead of RGB
228 -- (would be 0xFF0000 in RGB)
229
230 DEFAULT_LOGIC_COLOR_LF CONSTANT INTEGER:=255; --0x0000FF; -- red
231 DEFAULT_LOGIC_COLOR_LT CONSTANT INTEGER:=32768; --0x008000; -- green
232 DEFAULT_LOGIC_COLOR_UF CONSTANT INTEGER:= 0;
233 DEFAULT_LOGIC_COLOR_UN CONSTANT INTEGER:= 0;
234 DEFAULT_LOGIC_COLOR_UT CONSTANT INTEGER:= 0;
235
236 DEFAULT_COLOR CONSTANT INTEGER:= 12632256;
237
238 DEFAULT_LOGIC_COLOR CONSTANT INTEGER:= 1;
239 DEFAULT_LOGIC_BOLD CONSTANT INTEGER:= 0;
240 DEFAULT_LOGIC_PIC CONSTANT VARCHAR2(50):= '';
241
242 USE_NAMES CONSTANT VARCHAR2(10):= '0';
243 USE_DESCRIPTIONS CONSTANT VARCHAR2(10):= '1';
244 USE_PROPERTY_DESCRIPTIONS CONSTANT VARCHAR2(10):= '2';
245 USE_NAMES_AND_DESCRIPTIONS CONSTANT VARCHAR2(10):= '3';
246
247 DEFAULT_LOGIC_LGB_LF CONSTANT VARCHAR2(50):= 'czlgblf.gif';
248 DEFAULT_LOGIC_LGB_LT CONSTANT VARCHAR2(50):= 'czlgblt.gif';
249 DEFAULT_LOGIC_LGB_UF CONSTANT VARCHAR2(50):= 'czlgbuf.gif';
250 DEFAULT_LOGIC_LGB_UN CONSTANT VARCHAR2(50):= 'czlgbun.gif';
251 DEFAULT_LOGIC_LGB_UT CONSTANT VARCHAR2(50):= 'czlgbut.gif';
252
253 DEFAULT_LOGIC_COM_LF CONSTANT VARCHAR2(50):= 'czcomlf.gif';
254 DEFAULT_LOGIC_COM_LT CONSTANT VARCHAR2(50):= 'czcomlt.gif';
255 DEFAULT_LOGIC_COM_UF CONSTANT VARCHAR2(50):= 'czcomuf.gif';
256 DEFAULT_LOGIC_COM_UN CONSTANT VARCHAR2(50):= 'czcomun.gif';
257 DEFAULT_LOGIC_COM_UT CONSTANT VARCHAR2(50):= 'czcomut.gif';
258
259 DEFAULT_LOGIC_BOL_LF CONSTANT VARCHAR2(50):= 'czbollf.gif';
260 DEFAULT_LOGIC_BOL_LT CONSTANT VARCHAR2(50):= 'czbollt.gif';
261 DEFAULT_LOGIC_BOL_UF CONSTANT VARCHAR2(50):= 'czboluf.gif';
262 DEFAULT_LOGIC_BOL_UN CONSTANT VARCHAR2(50):= 'czbolun.gif';
263 DEFAULT_LOGIC_BOL_UT CONSTANT VARCHAR2(50):= 'czbolut.gif';
264
265 DEFAULT_LOGIC_OPT_LF CONSTANT VARCHAR2(50):= 'czoptlf.gif';
266 DEFAULT_LOGIC_OPT_LT CONSTANT VARCHAR2(50):= 'czoptlt.gif';
267 DEFAULT_LOGIC_OPT_UF CONSTANT VARCHAR2(50):= 'czoptuf.gif';
268 DEFAULT_LOGIC_OPT_UN CONSTANT VARCHAR2(50):= 'czoptun.gif';
269 DEFAULT_LOGIC_OPT_UT CONSTANT VARCHAR2(50):= 'czoptut.gif';
270
271 DEFAULT_HEADER_BAR CONSTANT VARCHAR2(50):= 'czblbar.gif';
272 DEFAULT_DIVIDER_BAR CONSTANT VARCHAR2(50):= 'czdiv.jpg';
273
274 DEFAULT_LOGIC_USE_COLORS CONSTANT INTEGER:= 0;
275 DEFAULT_LOGIC_USE_ICONS CONSTANT INTEGER:= 1;
276
277 DEFAULT_LEFT_POS CONSTANT INTEGER:=32;
278 DEFAULT_TOP_POS CONSTANT INTEGER:=41;
279
280 --
281 -- PS Tree node Types --
282 --
283 MODEL_NODE_TYPE CONSTANT INTEGER:=256;
284 PRODUCT_NODE_TYPE CONSTANT INTEGER:=258;
285 COMPONENT_NODE_TYPE CONSTANT INTEGER:=259;
286 FEATURE_NODE_TYPE CONSTANT INTEGER:=261;
287 OPTION_NODE_TYPE CONSTANT INTEGER:=262;
288 TOTAL_NODE_TYPE CONSTANT INTEGER:=272;
289 RESOURCE_NODE_TYPE CONSTANT INTEGER:=273;
290 REFERENCE_NODE_TYPE CONSTANT INTEGER:=263;
291 CONNECTOR_NODE_TYPE CONSTANT INTEGER:=264;
292 BOM_MODEL_NODE_TYPE CONSTANT INTEGER:=436;
293 BOM_CLASS_NODE_TYPE CONSTANT INTEGER:=437;
294 BOM_STANDART_NODE_TYPE CONSTANT INTEGER:=438;
295
296 --
297 -- UI Tree node Types --
298 --
299 DEFAULT_UI_TEXT CONSTANT INTEGER:=1;
300 DEFAULT_UI_BITMAP CONSTANT INTEGER:=2;
301 DEFAULT_UI_FEATURE CONSTANT INTEGER:=3;
302 DEFAULT_UI_OPTION CONSTANT INTEGER:=4;
303
304 --
305 --Default Rel Top and Left positions and Row spaces --
306 --
307 DEFAULT_REL_TOP CONSTANT INTEGER:=10;
308 DEFAULT_REL_LEFT CONSTANT INTEGER:=60;
309 DEFAULT_LABEL_HEIGHT CONSTANT INTEGER:=20;
310 DEFAULT_FEATURE_HEIGHT CONSTANT INTEGER:=20;
311 DEFAULT_ROW_SPACE CONSTANT INTEGER:=6;
312 DEFAULT_ROW_EXTRA_SPACE CONSTANT INTEGER:=6;
313 DEFAULT_LEFT CONSTANT INTEGER:=0;
314
315 --
316 -- enumertaion for UI property types --
317 --
318 DEF_PRODUCT_USER_IFACE CONSTANT INTEGER:=1;
319 DEF_PRODUCT_SELECTION CONSTANT INTEGER:=4;
320 DEF_PRODUCT_SCREEN CONSTANT INTEGER:=11;
321 DEF_COMPONENT_SCREEN CONSTANT INTEGER:=12;
322 DEF_COMPONENT_TREE CONSTANT INTEGER:=5;
323 DEF_PRODUCT CONSTANT INTEGER:=10;
324 DEF_COMPONENT CONSTANT INTEGER:=2;
325 DEF_FEATURE CONSTANT INTEGER:=3;
326 DEF_TITLE_BITMAP CONSTANT INTEGER:=6;
327 DEF_TEXT_LABEL CONSTANT INTEGER:=7;
328 DEF_TOTAL_ELEMENT CONSTANT INTEGER:=13;
329 DEF_RESOURCE_ELEMENT CONSTANT INTEGER:=14;
330 DEF_RECYCLE_BIN CONSTANT INTEGER:=8;
331 DEF_LIMBO CONSTANT INTEGER:=9;
332 DEF_REFERENCE CONSTANT INTEGER:=15;
333 DEF_INST_BOM CONSTANT INTEGER:=16;
334 DEF_CONNECTOR_ELEMENT CONSTANT INTEGER:=17;
335 DEF_DELETE_BUTTON CONSTANT INTEGER:=100;
336 DEF_ADD_BUTTON CONSTANT INTEGER:=101;
337 DEF_FUNC_BUTTON1 CONSTANT INTEGER:=102;
338 DEF_FUNC_BUTTON2 CONSTANT INTEGER:=103;
339 DEF_GOTO_BUTTON CONSTANT INTEGER:=104;
340 DEF_HOME_SCREEN CONSTANT INTEGER:=105;
341 DEF_PREV_SCREEN CONSTANT INTEGER:=106;
342 DEF_NEXT_SCREEN CONSTANT INTEGER:=107;
343 DEF_CONNECTOR_BUTTON CONSTANT INTEGER:=108;
344
345 DEF_CLASS CONSTANT INTEGER:=1000;
346 DEF_CLASSES CONSTANT INTEGER:=1001;
347 DEF_STANDART CONSTANT INTEGER:=1000;
348 DEF_MODEL CONSTANT INTEGER:=1000;
349 DEF_MODELBOM CONSTANT INTEGER:=1111;
350 DEF_MODELBOM_TREE CONSTANT INTEGER:=1112;
351 DEF_CLASSBOM_TREE CONSTANT INTEGER:=1113;
352
353 DEF_FRAMESET CONSTANT INTEGER:=155;
354 DEF_FRAME CONSTANT INTEGER:=156;
355 DEF_PANEL CONSTANT INTEGER:=165;
356 DEF_BUTTON CONSTANT INTEGER:=150;
357 DEF_FIND_CONTROL CONSTANT INTEGER:=164;
358 DEF_TAGGED_VALUE CONSTANT INTEGER:=166;
359 DEF_TEXT CONSTANT INTEGER:=152;
360 DEF_TEXT_CONTROL CONSTANT INTEGER:=117;
361 DEF_GRID CONSTANT INTEGER:=159;
362 DEF_COLUMN CONSTANT INTEGER:=160;
363 DEF_DATASET CONSTANT INTEGER:=161;
364 DEF_MODELTREE CONSTANT INTEGER:=157;
365
366 --
367 -- UI nodes types --
368 --
369 UI_ROOT_SYSTEM_TYPE CONSTANT INTEGER:=141;
370 UI_PRODUCT_REF_TYPE CONSTANT INTEGER:=144;
371 UI_COMPONENT_REF_TYPE CONSTANT INTEGER:=144;
372 UI_PRODUCT_TYPE CONSTANT INTEGER:=146;
373 UI_COMPONENT_TYPE CONSTANT INTEGER:=146;
374 UI_SCREEN_TYPE CONSTANT INTEGER:=146;
375 UI_FEATURE_TYPE CONSTANT INTEGER:=148;
376 UI_OPTION_TYPE CONSTANT INTEGER:=145;
377 UI_RESOURCE_TYPE CONSTANT INTEGER:=149;
378 UI_TOTAL_TYPE CONSTANT INTEGER:=149;
379 UI_CONNECTOR_TYPE CONSTANT INTEGER:=168;
380 UI_SYS_TYPE CONSTANT INTEGER:=142;
381 UI_BUTTON_TYPE CONSTANT INTEGER:=150;
382 UI_PICTURE_TYPE CONSTANT INTEGER:=151;
383 UI_REFERENCE_REF_TYPE CONSTANT INTEGER:=167;
384 UI_TEXT_LABEL_TYPE CONSTANT INTEGER:=152;
385 UI_BOM_OPTION_CLASS_TYPE CONSTANT INTEGER:=146;
386 UI_BOM_STANDART_TYPE CONSTANT INTEGER:=154;
387 UI_BOM_INST_ITEM_TYPE CONSTANT INTEGER:=190;
388 UI_APPLET_TREE_NODE_TYPE CONSTANT INTEGER:=158;
389 DEFAULT_CONNECTOR_HEIGHT CONSTANT INTEGER:=24;
390 STAR_SYMBOL_WIDTH CONSTANT INTEGER:=3;
391
392 DEFAULT_TOTAL_WIDTH CZ_UI_NODES.width%TYPE;
393 DEFAULT_RESOURCE_WIDTH CZ_UI_NODES.width%TYPE;
394 DEFAULT_CONNECTOR_WIDTH CZ_UI_NODES.width%TYPE;
395 BOOLEAN_FEATURE_WIDTH CZ_UI_NODES.width%TYPE;
396 NUMERIC_FEATURE_WIDTH CZ_UI_NODES.width%TYPE;
397 OPTION_FEATURE_WIDTH CZ_UI_NODES.width%TYPE;
398 CONNECTOR_GAP CZ_UI_NODES.width%TYPE;
399
400 GLOBAL_RUN_ID INTEGER:=0;
401 GLOBAL_GEN_VERSION VARCHAR2(25):='11.5.8.18.9';
402 GLOBAL_GEN_HEADER VARCHAR2(100):='$Header: czuigenb.pls 120.5 2007/11/26 12:12:38 kdande ship $';
403
404 last_TOP_POS CZ_UI_NODES.rel_top_pos%TYPE;
405 last_WIDTH CZ_UI_NODES.width%TYPE;
406 last_HEIGHT CZ_UI_NODES.height%TYPE;
407
408 DELETE_BUTTON_LEFT_POS CZ_UI_NODES.rel_left_pos%TYPE;
409 DELETE_BUTTON_TOP_POS CZ_UI_NODES.rel_top_pos%TYPE:=10;
410 DELETE_BUTTON_WIDTH CZ_UI_NODES.width%TYPE:=75;
411
412 START_TOP_POS CZ_UI_NODES.rel_top_pos%TYPE:=DEFAULT_HEADER_HEIGHT+DEFAULT_DIVIDER_HEIGHT;
413
414 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
415 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
416
417 PROCEDURE LOG_REPORT
418 (in_caller IN VARCHAR2,
419 in_error_message IN VARCHAR2,
420 in_urgency IN INTEGER -- DEFAULT CZ_ERROR_URGENCY
421 ) IS
422 PRAGMA AUTONOMOUS_TRANSACTION;
423 var_error BOOLEAN;
424 var_status INTEGER;
425 BEGIN
426 var_status:=11276;
427 INSERT INTO CZ_DB_LOGS
428 (RUN_ID,
429 LOGTIME,
430 LOGUSER,
431 URGENCY,
432 CALLER,
433 STATUSCODE,
434 MESSAGE)
435 VALUES (GLOBAL_RUN_ID,
436 SYSDATE,
437 USER,
438 in_urgency,
439 in_caller,
440 var_status,
441 in_error_message);
442 COMMIT;
443 END LOG_REPORT;
444
445 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
446 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
447
448 PROCEDURE FND_REPORT
449 (in_message_name IN VARCHAR2,
450 in_token IN VARCHAR2 DEFAULT NULL,
451 in_value IN VARCHAR2 DEFAULT NULL,
452 in_urgency IN INTEGER -- DEFAULT CZ_ERROR_URGENCY
453 ) IS
454 ret VARCHAR2(255);
455 BEGIN
456 IF in_token IS NULL AND in_value IS NULL THEN
457 ret:=CZ_UTILS.GET_TEXT(in_message_name);
458 ELSE
459 ret:=CZ_UTILS.GET_TEXT(in_message_name,in_token,in_value);
460 END IF;
461 LOG_REPORT('CZ_UI_GENERATOR',ret,in_urgency);
462 EXCEPTION
463 WHEN NO_DATA_FOUND THEN
464 NULL;
465 WHEN OTHERS THEN
466 NULL;
467 END FND_REPORT;
468
469 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
470 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
471
472 FUNCTION getMessage(in_message IN VARCHAR2) RETURN VARCHAR IS
473 var_message_text FND_NEW_MESSAGES.MESSAGE_TEXT%TYPE;
474 BEGIN
475 var_message_text:=NULL;
476 SELECT MESSAGE_TEXT INTO var_message_text FROM FND_NEW_MESSAGES
477 WHERE MESSAGE_NAME=in_message AND language_code=mCURRENT_LANG;
478 RETURN var_message_text;
479 EXCEPTION
480 WHEN NO_DATA_FOUND THEN
481 RETURN var_message_text;
482 WHEN OTHERS THEN
483 RETURN var_message_text;
484 END getMessage;
485
486 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
487 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
488
489 FUNCTION get_Caption
490 (in_name IN VARCHAR2,
491 in_label IN VARCHAR2,
492 in_use_labels IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 IS
493
494 var_caption CZ_LOCALIZED_TEXTS.LOCALIZED_STR%TYPE;
495 var_use_labels VARCHAR2(3);
496
497 BEGIN
498 IF in_use_labels IS NULL THEN
499 var_use_labels:=mUSE_LABELS;
500 ELSE
501 var_use_labels:=in_use_labels;
502 END IF;
503
504 IF var_use_labels=USE_NAMES THEN
505 var_caption:=in_name;
506 ELSIF var_use_labels=USE_DESCRIPTIONS THEN
507 IF in_label IS NULL OR in_label='' THEN
508 var_caption := in_name;
509 ELSE
510 var_caption:=in_label;
511 END IF;
512 ELSIF var_use_labels=USE_NAMES_AND_DESCRIPTIONS THEN
513 IF in_label IS NULL OR in_label='' THEN
514 var_caption:=in_name;
515 ELSE
516 var_caption:=in_name||mCONCAT_SYMBOL||in_label;
517 END IF;
518 END IF;
519
520 RETURN var_caption;
521 END get_Caption;
522
523 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
524 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
525
526 PROCEDURE Translate_Labels IS
527
528 BEGIN
529 IF CZ_FIND_LABEL_CAPTION IS NULL THEN
530
531 CZ_FIND_LABEL_CAPTION :=getMessage('CZ_FIND_LABEL_CAPTION');
532 CZ_FIND_BUTTON_CAPTION :=getMessage('CZ_FIND_BUTTON_CAPTION');
533 CZ_ORDER_QUANTITY_CAPTION :=getMessage('CZ_ORDER_QUANTITY_LABEL_CAPTION');
534 CZ_TOTAL_PRC_LABEL_CAPTION :=getMessage('CZ_TOTAL_PRICE_LABEL_CAPTION');
535 CZ_AVAILABILITY_CAPTION :=getMessage('CZ_AVAILABILITY_LABEL_CAPTION');
536 CZ_DONE_BUTTON_CAPTION :=getMessage('CZ_DONE_BUTTON_CAPTION');
537 CZ_GRID_ITEM_CAPTION :=getMessage('CZ_GRID_ITEM_CAPTION');
538 CZ_GRID_DESCRIPTION_CAPTION :=getMessage('CZ_GRID_DESCRIPTION_CAPTION');
539 CZ_GRID_UOM_CAPTION :=getMessage('CZ_GRID_UOM_CAPTION');
540 CZ_GRID_QUANTITY_CAPTION :=getMessage('CZ_GRID_QUANTITY_CAPTION');
541 CZ_GRID_UNIT_LIST_PRC_CAPTION :=getMessage('CZ_GRID_UNIT_LIST_PRICE_CAPTION') ;
542 CZ_GRID_SELLING_PRC_CAPTION :=getMessage('CZ_GRID_SELLING_PRICE_CAPTION');
543 CZ_GRID_EXTENDED_PRC_CAPTION :=getMessage('CZ_GRID_EXTENDED_PRICE_CAPTION');
544 CZ_UPDATE_BUTTON_CAPTION :=getMessage('CZ_UPDATE_BUTTON_CAPTION');
545 CZ_CANCEL_BUTTON_CAPTION :=getMessage('CZ_CANCEL_CAPTION');
546
547 IF CZ_FIND_LABEL_CAPTION IS NULL THEN
548 CZ_FIND_LABEL_CAPTION :='Find: ' ;
549 END IF;
550
551 IF CZ_FIND_BUTTON_CAPTION IS NULL THEN
552 CZ_FIND_BUTTON_CAPTION :='Go';
553 END IF;
554 CZ_ORDER_QUANTITY_CAPTION :='Order Quantity:';
555 CZ_TOTAL_PRC_LABEL_CAPTION :='Total Price:';
556 CZ_AVAILABILITY_CAPTION :='Availability:';
557 CZ_DONE_BUTTON_CAPTION :=' Done ';
558 CZ_GRID_ITEM_CAPTION :='Item';
559 CZ_GRID_DESCRIPTION_CAPTION :='Description';
560 CZ_GRID_UOM_CAPTION :='UOM';
561 CZ_GRID_QUANTITY_CAPTION :='Quantity';
562 CZ_GRID_UNIT_LIST_PRC_CAPTION :='Unit List Price' ;
563 CZ_GRID_SELLING_PRC_CAPTION :='Selling Price' ;
564 CZ_GRID_EXTENDED_PRC_CAPTION :='Extended Price';
565 CZ_UPDATE_BUTTON_CAPTION :='Update';
566 CZ_CANCEL_BUTTON_CAPTION :='Cancel';
567 END IF;
568
569 END Translate_Labels;
570
571 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
572 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
573
574 FUNCTION getUISeqVal RETURN INTEGER IS
575 BEGIN
576 --
577 -- this will be in the next build --
578 --
579 IF currentUINode<currUISeqVal+mINCREMENT-1 THEN
580 currentUINode:=currentUINode+1;
581 ELSE
582 SELECT CZ_UI_NODES_S.nextval INTO currUISeqVal FROM dual;
583 currentUINode:=currUISeqVal;
584 END IF;
585 RETURN currentUINode;
586 END getUISeqVal;
587
588 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
589 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
590
591 FUNCTION set_Text_Width(in_name IN VARCHAR2) RETURN INTEGER IS
592 ret INTEGER;
593 BEGIN
594 ret:=LENGTH(in_name)*7+3;
595 IF ret IS NULL OR ret=0 THEN
596 ret:=1;
597 END IF;
598 RETURN ret;
599 END set_Text_Width;
600
601 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
602 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
603
604 FUNCTION set_Title_Width(in_name IN VARCHAR2) RETURN INTEGER IS
605 ret INTEGER;
606 BEGIN
607 ret:=LENGTH(in_name)*14+20;
608 IF ret IS NULL OR ret=0 THEN
609 ret:=1;
610 END IF;
611 RETURN ret;
612 END set_Title_Width;
613
614 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
615 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
616
617 FUNCTION getTXTSeqVal RETURN INTEGER IS
618 BEGIN
619 IF currentTXTNode<currTXTSeqVal+mINCREMENT-1 THEN
620 currentTXTNode:=currentTXTNode+1;
621 ELSE
622 SELECT CZ_INTL_TEXTS_S.nextval INTO currTXTSeqVal FROM dual;
623 currentTXTNode:=currTXTSeqVal;
624 END IF;
625 RETURN currentTXTNode;
626 END getTXTSeqVal;
627
628 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
629 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
630
631 FUNCTION getNextY
632 (in_ui_def_id IN INTEGER,
633 in_parent_id IN INTEGER) RETURN INTEGER IS
634
635 var_top_pos INTEGER;
636 var_height INTEGER;
637 ret INTEGER;
638
639 BEGIN
640 SELECT NVL(MAX(rel_top_pos),50) INTO var_top_pos FROM CZ_UI_NODES
641 WHERE ui_def_id=in_ui_def_id AND parent_id=in_parent_id AND
642 deleted_flag=NO_FLAG;
643
644 SELECT NVL(MAX(height),DEFAULT_CONTROL_HEIGHT)
645 INTO var_height FROM CZ_UI_NODES
646 WHERE ui_def_id=in_ui_def_id AND parent_id=in_parent_id
647 AND rel_top_pos=var_top_pos
648 AND deleted_flag=NO_FLAG;
649
650 ret:=var_top_pos+var_height+DEFAULT_SPACE_BETWEEN;
651 RETURN ret;
652 END getNextY;
653
654 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
655 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
656
657 PROCEDURE Initialize IS
658 BEGIN
659 news.DELETE;
660 boms.DELETE;
661 features.DELETE;
662 Options.DELETE;
663 add_buttons.DELETE;
664 latest_buttons.DELETE;
665 footer_buttons.DELETE;
666 ref_boms.DELETE;
667
668 SELECT CZ_UI_NODES_S.NEXTVAL INTO currentUINode FROM dual;
669 currUISeqVal:=currentUINode;
670 SELECT CZ_INTL_TEXTS_S.NEXTVAL INTO currTXTSeqVal FROM dual;
671 currentTXTNode:=currTXTSeqVal;
672
673 SELECT TO_NUMBER(value) INTO mINCREMENT FROM cz_db_settings
674 WHERE UPPER(setting_id)=UPPER('OracleSequenceIncr') AND section_name='SCHEMA';
675 EXCEPTION
676 WHEN NO_DATA_FOUND THEN
677 mINCREMENT:=20;
678 WHEN OTHERS THEN
679 mINCREMENT:=20;
680 END Initialize;
681
682 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
683 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
684
685 PROCEDURE remove_UI_Subtree
686 (in_ui_node_id IN INTEGER,
687 in_ui_node_type IN INTEGER) IS
688 var_start_ui_node CZ_UI_NODES.ui_node_id%TYPE;
689 END_OPERATION1 EXCEPTION;
690 END_OPERATION2 EXCEPTION;
691 BEGIN
692 var_start_ui_node:=in_ui_node_id;
693 IF in_ui_node_type<>UI_COMPONENT_REF_TYPE THEN
694 BEGIN
695 BEGIN
696 SELECT ui_node_id INTO var_start_ui_node FROM CZ_UI_NODES
697 WHERE ui_node_ref_id=in_ui_node_id AND ui_node_type=UI_COMPONENT_REF_TYPE;
698 RAISE END_OPERATION1;
699 EXCEPTION
700 WHEN NO_DATA_FOUND THEN
701 NULL;
702 END;
703
704 FOR l IN (SELECT ui_node_id,ui_node_ref_id FROM CZ_UI_NODES
705 START WITH ui_node_id=in_ui_node_id
706 CONNECT BY PRIOR ui_node_id=parent_id)
707 LOOP
708 DELETE FROM CZ_UI_NODES WHERE ui_node_id=l.ui_node_id AND deleted_flag=NO_FLAG;
709 DELETE FROM CZ_UI_NODES WHERE ui_node_id=l.ui_node_ref_id AND
710 ui_node_type=UI_TEXT_LABEL_TYPE AND deleted_flag=NO_FLAG;
711 END LOOP;
712 RAISE END_OPERATION2;
713 EXCEPTION
714 WHEN END_OPERATION1 THEN
715 NULL;
716 END;
717 END IF;
718
719 --
720 -- remove starting with node of UI Model Tree --
721 --
722 FOR i IN (SELECT ui_node_id,ui_node_ref_id FROM CZ_UI_NODES
723 START WITH ui_node_id=var_start_ui_node
724 CONNECT BY PRIOR ui_node_id=parent_id)
725 LOOP
726 FOR l IN (SELECT ui_node_id,ui_node_ref_id FROM CZ_UI_NODES
727 START WITH ui_node_id=i.ui_node_ref_id
728 CONNECT BY PRIOR ui_node_id=parent_id)
729 LOOP
730 DELETE FROM CZ_UI_NODES WHERE ui_node_id=l.ui_node_id AND deleted_flag=NO_FLAG;
731 DELETE FROM CZ_UI_NODES WHERE ui_node_id=l.ui_node_ref_id AND
732 ui_node_type=UI_TEXT_LABEL_TYPE AND deleted_flag=NO_FLAG;
733 END LOOP;
734 DELETE FROM CZ_UI_NODES WHERE ui_node_id=i.ui_node_id AND deleted_flag=NO_FLAG;
735 END LOOP;
736
737 EXCEPTION
738 WHEN END_OPERATION2 THEN
739 NULL;
740 END remove_UI_Subtree;
741
742 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
743 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
744 /* NOT NULL DEFAULTS
745 in_width IN INTEGER DEFAULT 100,
746 in_height IN INTEGER DEFAULT 20,
747 in_tree_display_flag IN VARCHAR2 DEFAULT NO_FLAG,
748 in_use_default_font IN VARCHAR2 DEFAULT YES_FLAG,
749 in_use_default_pic IN VARCHAR2 DEFAULT YES_FLAG,
750 in_use_default_color IN VARCHAR2 DEFAULT YES_FLAG,
751 in_tree_seq IN INTEGER DEFAULT -1,
752 in_top_pos IN INTEGER DEFAULT 0,
753 in_left_pos IN INTEGER DEFAULT 0,
754 in_font_name IN VARCHAR2 DEFAULT 'Arial',
755 in_font_size IN INTEGER DEFAULT 9,
756 in_modified_flag IN INTEGER DEFAULT 0,
757 in_page_id IN INTEGER DEFAULT 1,
758 */
759
760 PROCEDURE set_UI_NODES
761 (in_ui_node_id IN INTEGER,
762 in_parent_id IN INTEGER,
763 in_ui_def_id IN INTEGER,
764 in_ps_node_id IN INTEGER,
765 in_ui_node_ref_id IN INTEGER,
766 in_name IN VARCHAR2,
767 in_ui_node_type IN VARCHAR2,
768 in_background_color IN INTEGER DEFAULT NULL,
769 in_component_id IN INTEGER DEFAULT NULL,
770 in_width IN INTEGER DEFAULT NULL, -- 100
771 in_height IN INTEGER DEFAULT NULL, -- 20
772 in_lce_id IN VARCHAR2 DEFAULT NULL,
773 in_tree_display_flag IN VARCHAR2 DEFAULT NULL, -- NO_FLAG
774 in_use_default_font IN VARCHAR2 DEFAULT NULL, -- YES_FLAG
775 in_use_default_pic IN VARCHAR2 DEFAULT NULL, -- YES_FLAG
776 in_use_default_color IN VARCHAR2 DEFAULT NULL, -- YES_FLAG
777 in_tree_seq IN INTEGER DEFAULT NULL, -- -1
778 in_top_pos IN INTEGER DEFAULT NULL, -- 0
779 in_left_pos IN INTEGER DEFAULT NULL, -- 0
780 in_text_label IN VARCHAR2 DEFAULT NULL,
781 in_caption IN VARCHAR2 DEFAULT NULL,
782 in_font_name IN VARCHAR2 DEFAULT NULL, -- 'Arial'
783 in_font_bold IN VARCHAR2 DEFAULT NULL,
784 in_font_color IN INTEGER DEFAULT NULL,
785 in_font_italic IN VARCHAR2 DEFAULT NULL,
786 in_font_size IN INTEGER DEFAULT NULL, -- 9
787 in_font_underline IN VARCHAR2 DEFAULT NULL,
788 in_bkgrnd_style IN VARCHAR2 DEFAULT NULL,
789 in_controltype IN INTEGER DEFAULT NULL,
790 in_bkgrnd_picture IN VARCHAR2 DEFAULT NULL,
791 in_borders IN VARCHAR2 DEFAULT NULL,
792 in_picname IN VARCHAR2 DEFAULT NULL,
793 in_func_comp_id IN INTEGER DEFAULT NULL,
794 in_intl_text_id IN INTEGER DEFAULT NULL,
795 in_parent_name IN VARCHAR2 DEFAULT NULL,
796 in_page_number IN VARCHAR2 DEFAULT NULL,
797 in_modified_flag IN INTEGER DEFAULT NULL, -- 0
798 in_page_id IN INTEGER DEFAULT NULL, -- 1
799 in_model_ref_expl_id IN INTEGER DEFAULT NULL,
800 in_use_labels IN VARCHAR2 DEFAULT NULL,
801 in_cx_command_name IN VARCHAR2 DEFAULT NULL ) IS
802
803 var_caption_id CZ_UI_NODES.caption_id%TYPE;
804 var_tool_tip_id CZ_UI_NODES.tool_tip_id%TYPE;
805 var_use_default_color CZ_UI_NODES.default_bkgrnd_color_flag%TYPE:=YES_FLAG;
806 var_background_color CZ_UI_NODES.background_color%TYPE;
807 var_font_color CZ_UI_NODES.fontcolor%TYPE;
808 var_name CZ_INTL_TEXTS.text_str%TYPE;
809 var_label CZ_LOCALIZED_TEXTS.localized_str%TYPE;
810 var_use_labels VARCHAR2(1);
811 var_insert_flag BOOLEAN;
812
813 BEGIN
814
815 var_caption_id:=getTXTSeqVal;
816 var_tool_tip_id:=NULL;
817
818 IF in_use_labels IS NULL THEN
819 var_use_labels:=mUSE_LABELS;
820 ELSE
821 var_use_labels:=in_use_labels ;
822 END IF;
823
824 var_name:=in_name;
825 var_insert_flag:=FALSE;
826 IF in_intl_text_id IS NOT NULL THEN
827 FOR i IN(SELECT INTL_TEXT_ID,LANGUAGE,LOCALIZED_STR,SOURCE_LANG FROM CZ_LOCALIZED_TEXTS
828 WHERE intl_text_id=in_intl_text_id AND deleted_flag=NO_FLAG)
829 LOOP
830 var_label:=i.LOCALIZED_STR;
831 IF (in_ps_node_id IS NOT NULL AND in_ui_node_type<>UI_BUTTON_TYPE) OR in_ui_node_type=UI_COMPONENT_REF_TYPE THEN
832 var_label:=get_Caption(in_name,i.localized_str);
833 END IF;
834 IF (in_ui_node_type=UI_TEXT_LABEL_TYPE AND in_parent_name IS NOT NULL) THEN
835 var_label:=get_Caption(in_parent_name,i.localized_str);
836 END IF;
837
838 IF in_ui_node_type=UI_BOM_STANDART_TYPE THEN
839 var_label:=get_Caption(in_name,i.localized_str,var_use_labels);
840 END IF;
841
842 IF in_page_number IS NOT NULL THEN
843 var_label:=var_label||' '||in_page_number;
844 END IF;
845 var_insert_flag:=TRUE;
846
847 INSERT INTO CZ_LOCALIZED_TEXTS
848 (INTL_TEXT_ID,
849 LOCALIZED_STR,
850 LANGUAGE,
851 SOURCE_LANG,
852 DELETED_FLAG,
853 SECURITY_MASK,
854 checkout_user,
855 model_id,
856 ui_def_id)
857 SELECT
858 var_caption_id,
859 var_label,
860 LANGUAGE,
861 SOURCE_LANG,
862 DELETED_FLAG,
863 SECURITY_MASK,
864 CHECKOUT_USER,
865 MODEL_ID,
866 in_ui_def_id
867 FROM CZ_LOCALIZED_TEXTS
868 WHERE intl_text_id=i.INTL_TEXT_ID AND
869 LANGUAGE=i.LANGUAGE AND
870 SOURCE_LANG=i.SOURCE_LANG;
871 END LOOP;
872 END IF;
873
874 --
875 -- if there is no Decsription for PS Node or --
876 -- nothing was inserted in the previous loop --
877 --
878 IF (in_intl_text_id IS NULL OR var_insert_flag=FALSE) THEN
879 --
880 -- if there is no particular caption --
881 -- then PS Node name is used --
882 --
883 IF in_caption IS NULL THEN
884 var_label:=var_name;
885 ELSE
886 var_label:=in_caption;
887 END IF;
888
889 --
890 -- it is used for BOM Option Class multi pages UI --
891 --
892 IF in_page_number IS NOT NULL THEN
893 var_label:=var_label||' '||in_page_number;
894 END IF;
895
896 --
897 -- currently it is used just for Dividers --
898 --
899 IF in_text_label IS NOT NULL THEN
900 var_label:=in_text_label;
901 END IF;
902
903 --
904 -- by default label for CX button = in_cx_command_name
905 --
906 IF in_cx_command_name IS NOT NULL THEN
907 var_label := in_cx_command_name;
908 END IF;
909
910 INSERT INTO CZ_INTL_TEXTS(intl_text_id,text_str,ui_def_id,model_id,deleted_flag)
911 VALUES(var_caption_id,var_label,in_ui_def_id,Project_Id,NO_FLAG);
912 END IF;
913
914 var_use_default_color:=in_use_default_color;
915 IF var_use_default_color IS NULL THEN
916 var_use_default_color := YES_FLAG;
917 END IF;
918
919 var_background_color:=in_background_color;
920 var_font_color:=in_font_color;
921
922 IF in_background_color IS NULL THEN
923 var_use_default_color:=YES_FLAG;
924 END IF;
925
926 IF mLOOK_AND_FEEL='FORMS' THEN
927 var_use_default_color:=YES_FLAG;
928 IF in_ui_node_type=UI_ROOT_SYSTEM_TYPE THEN
929 var_use_default_color:=NO_FLAG;
930 END IF;
931 var_background_color:=DEFAULT_BACKGROUND_COLOR;
932 var_font_color:=DEFAULT_FONT_COLOR;
933 END IF;
934
935 INSERT INTO CZ_UI_NODES
936 (ui_node_id,
937 parent_id,
938 ui_def_id,
939 ps_node_id,
940 ui_node_ref_id,
941 name,caption_id,tool_tip_id,ui_node_type,background_color,
942 component_id,width,height,lce_identifier,
943 tree_display_flag,tree_seq,
944 default_font_flag,default_bkgrnd_color_flag,
945 default_bkgrnd_picture_flag,modified_flags,tab_order,
946 rel_top_pos,rel_left_pos,
947 deleted_flag,
948 fontbold,fontcolor,fontunderline,fontsize,fontname,
949 backgroundstyle,controltype,backgroundpicture,borders,picturename,
950 func_comp_id,page_number,model_ref_expl_id,cx_command_name)
951 VALUES(in_ui_node_id,in_parent_id,in_ui_def_id,in_ps_node_id,in_ui_node_ref_id,
952 in_name,var_caption_id,var_tool_tip_id,in_ui_node_type,var_background_color,
953 in_component_id,
954 NVL(in_width, 100),
955 NVL(in_height, 20),
956 in_lce_id,
957 NVL(in_tree_display_flag,NO_FLAG),
958 NVL(in_tree_seq, -1),
959 NVL(in_use_default_font, YES_FLAG),
960 var_use_default_color,
961 NVL(in_use_default_pic, YES_FLAG),
962 NVL(in_modified_flag, 0),
963 NO_FLAG,
964 NVL(in_top_pos, 0),
965 NVL(in_left_pos, 0),
966 NO_FLAG,in_font_bold,var_font_color,in_font_underline,
967 NVL(in_font_size, 9),
968 NVL(in_font_name, 'Arial'),
969 in_bkgrnd_style,in_controltype,in_bkgrnd_picture,
970 in_borders,in_picname,in_func_comp_id,
971 NVL(in_page_id, 1),
972 in_model_ref_expl_id,
973 in_cx_command_name);
974 END set_UI_NODES;
975
976 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
977 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
978
979 PROCEDURE set_UI_NODE_PROPS
980 (in_ui_node_id IN INTEGER,
981 in_ui_def_id IN INTEGER,
982 in_name IN VARCHAR2,
983 in_value IN VARCHAR2,
984 in_update_flag IN VARCHAR2 -- DEFAULT NO_FLAG
985 ) IS
986
987 BEGIN
988 UPDATE CZ_UI_NODE_PROPS SET value_str=in_value WHERE ui_node_id=in_ui_node_id AND key_str=in_name;
989 IF SQL%ROWCOUNT=0 THEN
990 INSERT INTO CZ_UI_NODE_PROPS(ui_node_id,ui_def_id,key_str,value_str,deleted_flag)
991 VALUES(in_ui_node_id,in_ui_def_id,in_name,in_value,NO_FLAG);
992 END IF;
993 END set_UI_NODE_PROPS;
994
995 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
996 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
997
998 PROCEDURE set_UI_PROPERTIES
999 (in_ui_def_id IN INTEGER,
1000 in_name IN VARCHAR2,
1001 in_value IN VARCHAR2) IS
1002 BEGIN
1003 INSERT INTO CZ_UI_PROPERTIES(ui_def_id,key_str,value_str,deleted_flag)
1004 VALUES(in_ui_def_id,in_name,in_value,NO_FLAG);
1005 END set_UI_PROPERTIES;
1006
1007 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1008 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1009
1010 PROCEDURE set_UI_PROPERTIES
1011 (in_ui_def_id IN INTEGER,
1012 in_name IN VARCHAR2,
1013 in_value IN INTEGER) IS
1014 BEGIN
1015 INSERT INTO CZ_UI_PROPERTIES(ui_def_id,key_str,value_str,deleted_flag)
1016 VALUES(in_ui_def_id,in_name,to_char(in_value),NO_FLAG);
1017 END set_UI_PROPERTIES;
1018
1019 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1020 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1021 /* non-null defaulting
1022 in_feature_type IN INTEGER DEFAULT 0,
1023 in_min IN VARCHAR2 DEFAULT YES_FLAG,
1024 in_max IN VARCHAR2 DEFAULT YES_FLAG,
1025 in_counted_options IN VARCHAR2 DEFAULT NO_FLAG,
1026 in_update_flag IN VARCHAR2 DEFAULT NO_FLAG,
1027 in_virtual_flag IN VARCHAR2 DEFAULT NO_FLAG,
1028 in_ref_ui_def_id IN INTEGER DEFAULT 0,
1029 in_align IN VARCHAR2 DEFAULT 'left',
1030 in_show_all_nodes IN VARCHAR2 DEFAULT '0'
1031 */
1032
1033 PROCEDURE generateUIProps
1034 (in_ui_node_id IN INTEGER,
1035 in_ui_def_id IN INTEGER,
1036 in_ui_type IN INTEGER,
1037 in_feature_type IN INTEGER,
1038 in_min IN VARCHAR2,
1039 in_max IN VARCHAR2,
1040 in_counted_options IN VARCHAR2,
1041 in_update_flag IN VARCHAR2,
1042 in_virtual_flag IN VARCHAR2,
1043 in_ref_ui_def_id IN INTEGER,
1044 in_align IN VARCHAR2,
1045 in_show_all_nodes IN VARCHAR2,
1046 in_ps_node_id IN NUMBER DEFAULT NULL,
1047 in_rule_id IN NUMBER DEFAULT NULL) IS
1048
1049 var_ui_def_id CZ_UI_NODE_PROPS.ui_def_id%TYPE;
1050 var_persistent_node_id NUMBER;
1051 var_feature_type VARCHAR2(1);
1052 var_control_type VARCHAR2(1);
1053
1054 BEGIN
1055 var_ui_def_id:=in_ui_def_id;
1056 --
1057 -- Generate the UiNode Properties for the User Interface --
1058 --
1059 --
1060 -- Product-<...> User Interface --
1061 --
1062 IF in_ui_type=DEF_PRODUCT_USER_IFACE THEN
1063 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'UiStyle',NO_FLAG,in_update_flag);
1064 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLfBold', DEFAULT_LOGIC_BOLD_LF,in_update_flag);
1065 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLfForeColor', DEFAULT_LOGIC_COLOR_LF,in_update_flag);
1066 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLfPic', DEFAULT_LOGIC_LGB_LF,in_update_flag);
1067 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboLfPic', DEFAULT_LOGIC_COM_LF,in_update_flag);
1068 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanLfPic', DEFAULT_LOGIC_BOL_LF,in_update_flag);
1069 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionLfPic', DEFAULT_LOGIC_OPT_LF,in_update_flag);
1070
1071 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLtBold', DEFAULT_LOGIC_BOLD_LT,in_update_flag);
1072 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLtForeColor', DEFAULT_LOGIC_COLOR_LT,in_update_flag);
1073 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLtPic', DEFAULT_LOGIC_LGB_LT,in_update_flag);
1074 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboLtPic', DEFAULT_LOGIC_COM_LT,in_update_flag);
1075 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanLtPic', DEFAULT_LOGIC_BOL_LT,in_update_flag);
1076 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionLtPic', DEFAULT_LOGIC_OPT_LT,in_update_flag);
1077
1078 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUfBold', DEFAULT_LOGIC_BOLD_UF,in_update_flag);
1079 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUfForeColor', DEFAULT_LOGIC_COLOR_UF,in_update_flag);
1080 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUfPic',DEFAULT_LOGIC_LGB_UF,in_update_flag);
1081 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboUfPic', DEFAULT_LOGIC_COM_UF,in_update_flag);
1082 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanUfPic', DEFAULT_LOGIC_BOL_UF,in_update_flag);
1083 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionUfPic',DEFAULT_LOGIC_OPT_UF,in_update_flag);
1084
1085 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUnBold', DEFAULT_LOGIC_BOLD_UN,in_update_flag);
1086 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUnForeColor', DEFAULT_LOGIC_COLOR_UN,in_update_flag);
1087 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUnPic', DEFAULT_LOGIC_LGB_UN,in_update_flag);
1088 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboUnPic', DEFAULT_LOGIC_COM_UN,in_update_flag);
1089 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanUnPic', DEFAULT_LOGIC_BOL_UN,in_update_flag);
1090 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionUnPic', DEFAULT_LOGIC_OPT_UN,in_update_flag);
1091
1092 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUtBold', DEFAULT_LOGIC_BOLD_UT,in_update_flag);
1093 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUtForeColor', DEFAULT_LOGIC_COLOR_UT,in_update_flag);
1094 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUtPic', DEFAULT_LOGIC_LGB_UT,in_update_flag);
1095 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboUtPic', DEFAULT_LOGIC_COM_UT,in_update_flag);
1096 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanUtPic', DEFAULT_LOGIC_BOL_UT,in_update_flag);
1097 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionUtPic', DEFAULT_LOGIC_OPT_UT,in_update_flag);
1098
1099 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'LogicUseColors', DEFAULT_LOGIC_USE_COLORS,in_update_flag);
1100 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'LogicUseIcons', DEFAULT_LOGIC_USE_ICONS,in_update_flag);
1101
1102 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'PriceUpdate','2',in_update_flag);
1103 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'PriceDisplay','1',in_update_flag);
1104 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ShowAllNodes',in_show_all_nodes,in_update_flag);
1105 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'MaxBOMItemsOnPage',mITEMS_ON_PAGE,in_update_flag);
1106 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WizardStyle',mWIZARD_STYLE,in_update_flag);
1107
1108 IF GLOBAL_FRAME_ALLOCATION<>-1 THEN
1109 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'NavFrameAllocation',GLOBAL_FRAME_ALLOCATION,in_update_flag);
1110 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'NavFrameReservation',GLOBAL_FRAME_ALLOCATION,in_update_flag);
1111 END IF;
1112
1113 IF MODE_REFRESH=FALSE THEN
1114 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'UseLabels',mUSE_LABELS,in_update_flag);
1115 END IF;
1116 END IF;
1117
1118 -- Reference --
1119 IF in_ui_type=UI_REFERENCE_REF_TYPE THEN
1120 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'TargetUIDef',in_ref_ui_def_id,in_update_flag);
1121 END IF;
1122
1123 -- Feature --
1124 IF in_ui_type=DEF_FEATURE THEN
1125 IF in_feature_type=0 THEN
1126 var_feature_type:='0'; -- Options List --
1127 IF in_counted_options=YES_FLAG OR in_max>1 OR in_max IS NULL THEN
1128 var_control_type:='2';
1129 ELSE
1130 var_control_type:=YES_FLAG;
1131 END IF;
1132 END IF;
1133
1134 IF in_feature_type=3 THEN
1135 var_feature_type:='1'; -- True/False --
1136 var_control_type:='3';
1137 END IF;
1138
1139 IF in_feature_type=1 THEN
1140 var_feature_type:='2'; -- Integer --
1141 var_control_type:='4';
1142 END IF;
1143
1144 IF in_feature_type=2 THEN
1145 var_feature_type:='3'; -- Decimal --
1146 var_control_type:='5';
1147 END IF;
1148
1149 IF in_feature_type=4 THEN
1150 var_feature_type:='4'; -- Text --
1151 var_control_type:='6';
1152 END IF;
1153
1154 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'SpinButtons',NO_FLAG,in_update_flag);
1155 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'LabelEachOption',YES_FLAG,in_update_flag);
1156 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'DisplayPictures',NO_FLAG,in_update_flag);
1157 IF MODE_REFRESH=FALSE THEN
1158 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'UseLabels',mUSE_LABELS,in_update_flag);
1159 END IF;
1160 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'LabelPicture',NO_FLAG,in_update_flag);
1161 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CountedOptions',in_counted_options,in_update_flag);
1162 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'FeatureType',var_feature_type,in_update_flag);
1163 IF in_max IS NOT NULL THEN
1164 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Max',in_max,in_update_flag);
1165 ELSE
1166 IF in_update_flag=YES_FLAG THEN
1167 DELETE FROM CZ_UI_NODE_PROPS WHERE ui_node_id=in_ui_node_id AND key_str='Max';
1168 END IF;
1169 END IF;
1170 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Min',in_min,in_update_flag);
1171 END IF;
1172
1173 --
1174 -- Title bitmap --
1175 --
1176 IF in_ui_type=DEF_TITLE_BITMAP THEN
1177 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1178 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','-1',in_update_flag);
1179 END IF;
1180
1181 --
1182 -- Text label --
1183 --
1184 IF in_ui_type=DEF_TEXT_LABEL THEN
1185 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1186 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'HAlign',in_align,in_update_flag);
1187 END IF;
1188
1189 --
1190 -- Product selection --
1191 --
1192 IF in_ui_type=DEF_PRODUCT_SELECTION THEN
1193 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'SectionType','2',in_update_flag);
1194 END IF;
1195
1196 --
1197 -- Components tree --
1198 --
1199 IF in_ui_type=DEF_COMPONENT_TREE THEN
1200 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'UiStyle',NO_FLAG,in_update_flag);
1201 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1202 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'TreeStyle','2',in_update_flag);
1203 END IF;
1204
1205 --
1206 -- Recycle Bin --
1207 --
1208 IF in_ui_type=DEF_RECYCLE_BIN THEN
1209 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'SectionType','3',in_update_flag);
1210 END IF;
1211
1212 --
1213 -- Limbo --
1214 --
1215 IF in_ui_type=DEF_LIMBO THEN
1216 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'SectionType','4',in_update_flag);
1217 END IF;
1218
1219 --
1220 -- Product Screen --
1221 --
1222 IF in_ui_type=DEF_PRODUCT_SCREEN THEN
1223 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'IsVirtual',in_virtual_flag,in_update_flag);
1224 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Max',in_max,in_update_flag);
1225 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Min',in_min,in_update_flag);
1226 END IF;
1227
1228 --
1229 -- Reference --
1230 --
1231 IF in_ui_type=DEF_REFERENCE THEN
1232 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'IsVirtual',in_virtual_flag,in_update_flag);
1233 END IF;
1234
1235 --
1236 -- Instantiable BOM --
1237 --
1238 IF in_ui_type=DEF_INST_BOM THEN
1239 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','20',in_update_flag);
1240 END IF;
1241
1242
1243
1244 --
1245 -- Component Screen --
1246 --
1247 IF in_ui_type=DEF_COMPONENT_SCREEN THEN
1248 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'IsVirtual',in_virtual_flag,in_update_flag);
1249 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Max',in_max,in_update_flag);
1250 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Min',in_min,in_update_flag);
1251 END IF;
1252
1253 --
1254 -- BOM Model tree node --
1255 --
1256 IF in_ui_type=DEF_MODELBOM_TREE THEN
1257 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'IsVirtual',in_virtual_flag,in_update_flag);
1258 END IF;
1259
1260 --
1261 -- Total element --
1262 --
1263 IF in_ui_type=DEF_TOTAL_ELEMENT THEN
1264 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'FormatString',NULL,in_update_flag);
1265 END IF;
1266
1267 --
1268 -- Resource element --
1269 --
1270 IF in_ui_type=DEF_RESOURCE_ELEMENT THEN
1271 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'FormatString',NULL,in_update_flag);
1272 END IF;
1273
1274 --
1275 -- Delete Button --
1276 --
1277 IF in_ui_type=DEF_DELETE_BUTTON THEN
1278 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1279 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','1',in_update_flag);
1280 END IF;
1281
1282 --
1283 -- Add Component --
1284 --
1285 IF in_ui_type=DEF_ADD_BUTTON THEN
1286 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1287 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','0',in_update_flag);
1288 END IF;
1289
1290 --
1291 -- Goto button --
1292 --
1293 IF in_ui_type=DEF_GOTO_BUTTON THEN
1294 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1295 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','3',in_update_flag);
1296 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'MediaFile','',in_update_flag);
1297 END IF;
1298
1299 --
1300 -- Connector's button --
1301 --
1302 IF in_ui_type=DEF_CONNECTOR_BUTTON THEN
1303 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1304 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','21',in_update_flag);
1305 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'MediaFile','',in_update_flag);
1306 END IF;
1307
1308 IF in_ui_type=DEF_CONNECTOR_ELEMENT THEN
1309 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1310 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','18',in_update_flag);
1311 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Editable',NO_FLAG,in_update_flag);
1312 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'DisplayConnectionPath',NO_FLAG,in_update_flag);
1313 END IF;
1314
1315 --
1316 -- Execute Functional Companion 1 --
1317 --
1318 IF in_ui_type=DEF_FUNC_BUTTON1 THEN
1319 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1320 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','6',in_update_flag);
1321 END IF;
1322
1323 --
1324 -- Execute Functional Companion 2 --
1325 --
1326 IF in_ui_type=DEF_FUNC_BUTTON2 THEN
1327 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1328 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','5',in_update_flag);
1329 END IF;
1330
1331 --
1332 -- Execute CZ extension ( GENERATE OUTPUT ) --
1333 --
1334 IF in_ui_type=GENERATE_OUTPUT_EVENT THEN
1335 SELECT persistent_node_id INTO var_persistent_node_id FROM CZ_PS_NODES
1336 WHERE devl_project_id=(select devl_project_id from CZ_UI_DEFS
1337 WHERE ui_def_id=in_ui_def_id) AND ps_node_id=in_ps_node_id AND deleted_flag='0';
1338 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1339 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','31',in_update_flag);
1340 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CxCommandNode',TO_CHAR(var_persistent_node_id),in_update_flag);
1341 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'RuleId',TO_CHAR(in_rule_id),in_update_flag);
1342 END IF;
1343
1344 --
1345 -- Execute CZ extension ( AUTOCONFIGURE ) --
1346 --
1347 IF in_ui_type=RAISE_COMMAND_EVENT THEN
1348
1349 SELECT persistent_node_id INTO var_persistent_node_id FROM CZ_PS_NODES
1350 WHERE devl_project_id=(select devl_project_id from CZ_UI_DEFS
1351 WHERE ui_def_id=in_ui_def_id) AND ps_node_id=in_ps_node_id AND deleted_flag='0';
1352
1353 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1354 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','32',in_update_flag);
1355 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CxCommandNode',TO_CHAR(var_persistent_node_id),in_update_flag);
1356 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'RuleId',TO_CHAR(in_rule_id),in_update_flag);
1357 END IF;
1358
1359
1360 --
1361 -- Go Home Button --
1362 --
1363 IF in_ui_type=DEF_HOME_SCREEN THEN
1364 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1365 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','17',in_update_flag);
1366 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WizardNavigation','1',in_update_flag);
1367 END IF;
1368
1369 --
1370 -- Back button --
1371 --
1372 IF in_ui_type=DEF_PREV_SCREEN THEN
1373 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1374 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','16',in_update_flag);
1375 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ButtonStyle','1',in_update_flag);
1376 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WizardNavigation','1',in_update_flag);
1377 END IF;
1378
1379 --
1380 -- Next button --
1381 --
1382 IF in_ui_type=DEF_NEXT_SCREEN THEN
1383 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG,in_update_flag);
1384 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','15',in_update_flag);
1385 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ButtonStyle','2',in_update_flag);
1386 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WizardNavigation','1',in_update_flag);
1387 END IF;
1388
1389 --
1390 -- BOM Option Class screen --
1391 --
1392 IF in_ui_type=DEF_CLASSES THEN
1393 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'UseLabels',mUSE_LABELS,in_update_flag);
1394 END IF;
1395
1396 --
1397 -- BOM Option Class screen --
1398 --
1399 IF in_ui_type=DEF_CLASS THEN
1400 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ActionType','3',in_update_flag);
1401 END IF;
1402
1403 END generateUIProps;
1404
1405 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1406 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1407
1408 PROCEDURE generateBOMUIProps
1409 (in_ui_node_id IN INTEGER,
1410 in_ui_def_id IN INTEGER,
1411 in_ui_type IN INTEGER,
1412 in_allocations IN VARCHAR2, -- DEFAULT NULL,
1413 in_borders IN VARCHAR2, -- DEFAULT NO_FLAG,
1414 in_scrolling IN VARCHAR2, -- DEFAULT NO_FLAG,
1415 in_sizeable IN VARCHAR2, -- DEFAULT NO_FLAG,
1416 in_system_frm IN VARCHAR2, -- DEFAULT NO_FLAG,
1417 in_margin_width IN VARCHAR2, -- DEFAULT '10',
1418 in_margin_height IN VARCHAR2, -- DEFAULT '10',
1419 in_action IN VARCHAR2, -- DEFAULT NULL,
1420 in_action_type IN VARCHAR2, -- DEFAULT '-1',
1421 in_alt_color IN VARCHAR2, -- DEFAULT '15201271',
1422 in_data_tag IN VARCHAR2, -- DEFAULT NULL,
1423 in_editable IN VARCHAR2, -- DEFAULT NO_FLAG,
1424 in_control_type IN VARCHAR2, -- DEFAULT '-1',
1425 in_rowscols IN VARCHAR2, -- DEFAULT YES_FLAG,
1426 in_hierarchy IN VARCHAR2, -- DEFAULT NO_FLAG,
1427 in_align IN VARCHAR2 -- DEFAULT NULL
1428 ) IS
1429
1430 var_ui_def_id CZ_UI_NODE_PROPS.ui_def_id%TYPE;
1431 var_feature_type VARCHAR2(1);
1432 var_control_type VARCHAR2(1);
1433
1434 BEGIN
1435 var_ui_def_id:=in_ui_def_id;
1436
1437 IF in_align IS NOT NULL THEN
1438 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Alignment',in_align, NO_FLAG);
1439 END IF;
1440
1441 --
1442 -- Product-<...> User Interface --
1443 --
1444 IF in_ui_type=UI_ROOT_SYSTEM_TYPE THEN
1445 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'UiStyle','3', NO_FLAG);
1446 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLfBold', DEFAULT_LOGIC_BOLD_LF, NO_FLAG);
1447 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLfForeColor', 0, NO_FLAG);
1448 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLfPic', DEFAULT_LOGIC_BOL_LF, NO_FLAG);
1449 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboLfPic', DEFAULT_LOGIC_COM_LF, NO_FLAG);
1450 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanLfPic', DEFAULT_LOGIC_BOL_LF, NO_FLAG);
1451 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionLfPic', DEFAULT_LOGIC_OPT_LF, NO_FLAG);
1452
1453 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLtBold', DEFAULT_LOGIC_BOLD_LT, NO_FLAG);
1454 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLtForeColor', 0, NO_FLAG);
1455 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicLtPic', DEFAULT_LOGIC_BOL_LT, NO_FLAG);
1456 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboLtPic', DEFAULT_LOGIC_COM_LT, NO_FLAG);
1457 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanLtPic', DEFAULT_LOGIC_BOL_LT, NO_FLAG);
1458 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionLtPic', DEFAULT_LOGIC_OPT_LT, NO_FLAG);
1459
1460 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUfBold', DEFAULT_LOGIC_BOLD_UF, NO_FLAG);
1461 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUfForeColor', DEFAULT_LOGIC_COLOR_UF, NO_FLAG);
1462 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUfPic',DEFAULT_LOGIC_BOL_UF, NO_FLAG);
1463 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboUfPic', DEFAULT_LOGIC_COM_UF, NO_FLAG);
1464 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanUfPic', DEFAULT_LOGIC_BOL_UF, NO_FLAG);
1465 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionUfPic',DEFAULT_LOGIC_OPT_UF, NO_FLAG);
1466
1467 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUnBold', DEFAULT_LOGIC_BOLD_UN, NO_FLAG);
1468 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUnForeColor', DEFAULT_LOGIC_COLOR_UN, NO_FLAG);
1469 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUnPic', DEFAULT_LOGIC_BOL_UN, NO_FLAG);
1470 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboUnPic', DEFAULT_LOGIC_COM_UN, NO_FLAG);
1471 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanUnPic', DEFAULT_LOGIC_BOL_UN, NO_FLAG);
1472 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionUnPic', DEFAULT_LOGIC_OPT_UN, NO_FLAG);
1473
1474 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUtBold', DEFAULT_LOGIC_BOLD_UT,NO_FLAG);
1475 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUtForeColor', DEFAULT_LOGIC_COLOR_UT,NO_FLAG);
1476 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicUtPic', DEFAULT_LOGIC_BOL_UT,NO_FLAG);
1477 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicComboUtPic', DEFAULT_LOGIC_COM_UT,NO_FLAG);
1478 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicBooleanUtPic', DEFAULT_LOGIC_BOL_UT,NO_FLAG);
1479 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'CfgLogicOptionUtPic', DEFAULT_LOGIC_OPT_UT,NO_FLAG);
1480
1481 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'LogicUseColors', DEFAULT_LOGIC_USE_COLORS,NO_FLAG);
1482 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'LogicUseIcons', DEFAULT_LOGIC_USE_ICONS,NO_FLAG);
1483
1484 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'UseLabels',mUSE_LABELS, NO_FLAG);
1485
1486 END IF;
1487
1488 IF in_ui_type=DEF_FRAMESET THEN
1489 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Allocations',in_allocations, NO_FLAG);
1490 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'RowOrColumns',in_rowscols, NO_FLAG);
1491 END IF;
1492
1493 IF in_ui_type=DEF_FRAME THEN
1494 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'BackgroundStyle','1', NO_FLAG);
1495 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Borders',in_borders, NO_FLAG);
1496 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'MarginWidth',in_margin_width, NO_FLAG);
1497 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'MarginHeight',in_margin_height, NO_FLAG);
1498 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Sizeable',in_sizeable, NO_FLAG);
1499 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Scrolling',in_scrolling, NO_FLAG);
1500 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'SystemFrame',in_system_frm, NO_FLAG);
1501 END IF;
1502
1503 IF in_ui_type=DEF_PANEL THEN
1504 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'AlternateRowColor',in_alt_color, NO_FLAG);
1505 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Borders',in_borders, NO_FLAG);
1506 END IF;
1507
1508 IF in_ui_type=DEF_TAGGED_VALUE THEN
1509 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'DataTag',in_data_tag, NO_FLAG);
1510 END IF;
1511
1512 IF in_ui_type=DEF_BUTTON THEN
1513 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG, NO_FLAG);
1514 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Action',in_action, NO_FLAG);
1515 END IF;
1516
1517 IF in_ui_type=DEF_GRID THEN
1518 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'AlternateRowColor',in_alt_color, NO_FLAG);
1519 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Rowheaders',NO_FLAG, NO_FLAG);
1520 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'ColumnHeaders',YES_FLAG, NO_FLAG);
1521 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'GridLines',NO_FLAG, NO_FLAG);
1522 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Hierarchy',in_hierarchy, NO_FLAG);
1523 END IF;
1524
1525 IF in_ui_type=DEF_COLUMN THEN
1526 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'Editable',in_editable, NO_FLAG);
1527 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'DataTag',in_data_tag, NO_FLAG);
1528 END IF;
1529
1530 IF in_ui_type=DEF_MODELTREE THEN
1531 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG, NO_FLAG);
1532 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'TreeStyle','2', NO_FLAG);
1533 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'UiStyle','3', NO_FLAG);
1534 END IF;
1535
1536 IF in_ui_type=DEF_TEXT THEN
1537 set_UI_NODE_PROPS(in_ui_node_id,var_ui_def_id,'WindowDressing',YES_FLAG, NO_FLAG);
1538 END IF;
1539 END generateBOMUIProps;
1540
1541 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1542 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1543
1544 PROCEDURE generateUIProperties(in_ui_def_id IN INTEGER) IS
1545 BEGIN
1546 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicLfBold', DEFAULT_LOGIC_BOLD_LF);
1547 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicLfForeColor', DEFAULT_LOGIC_COLOR_LF);
1548 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicLfPic', DEFAULT_LOGIC_LGB_LF);
1549 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicComboLfPic', DEFAULT_LOGIC_COM_LF);
1550 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicBooleanLfPic', DEFAULT_LOGIC_BOL_LF);
1551 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicOptionLfPic', DEFAULT_LOGIC_OPT_LF);
1552
1553 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicLtBold', DEFAULT_LOGIC_BOLD_LT);
1554 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicLtForeColor', DEFAULT_LOGIC_COLOR_LT);
1555 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicLtPic', DEFAULT_LOGIC_LGB_LT);
1556 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicComboLtPic', DEFAULT_LOGIC_COM_LT);
1557 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicBooleanLtPic', DEFAULT_LOGIC_BOL_LT);
1558 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicOptionLtPic', DEFAULT_LOGIC_OPT_LT);
1559
1560 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUfBold', DEFAULT_LOGIC_BOLD_UF);
1561 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUfForeColor', DEFAULT_LOGIC_COLOR_UF);
1562 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUfPic',DEFAULT_LOGIC_LGB_UF);
1563 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicComboUfPic', DEFAULT_LOGIC_COM_UF);
1564 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicBooleanUfPic', DEFAULT_LOGIC_BOL_UF);
1565 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicOptionUfPic',DEFAULT_LOGIC_OPT_UF);
1566
1567 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUnBold', DEFAULT_LOGIC_BOLD_UN);
1568 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUnForeColor', DEFAULT_LOGIC_COLOR_UN);
1569 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUnPic', DEFAULT_LOGIC_LGB_UN);
1570 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicComboUnPic', DEFAULT_LOGIC_COM_UN);
1571 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicBooleanUnPic', DEFAULT_LOGIC_BOL_UN);
1572 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicOptionUnPic', DEFAULT_LOGIC_OPT_UN);
1573
1574 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUtBold', DEFAULT_LOGIC_BOLD_UT);
1575 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUtForeColor', DEFAULT_LOGIC_COLOR_UT);
1576 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicUtPic', DEFAULT_LOGIC_LGB_UT);
1577 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicComboUtPic', DEFAULT_LOGIC_COM_UT);
1578 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicBooleanUtPic', DEFAULT_LOGIC_BOL_UT);
1579 SET_UI_PROPERTIES(in_ui_def_id,'CfgLogicOptionUtPic', DEFAULT_LOGIC_OPT_UT);
1580
1581 SET_UI_PROPERTIES(in_ui_def_id,'UiVersion',TO_CHAR(UI_Version));
1582
1583 SET_UI_PROPERTIES(in_ui_def_id,'NavFrameAllocation', GLOBAL_FRAME_ALLOCATION);
1584 SET_UI_PROPERTIES(in_ui_def_id,'NavFrameReservation', GLOBAL_FRAME_ALLOCATION);
1585
1586 END generateUIProperties;
1587
1588 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1589 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1590
1591 --
1592 -- find the number of version for the next UI --
1593 --
1594
1595 FUNCTION GenerateUiVersion(in_component_id IN INTEGER) RETURN INTEGER IS
1596 var_ui_version INTEGER:=0;
1597 max_ui_version INTEGER:=0;
1598 BEGIN
1599 FOR i IN(SELECT ui_def_id FROM CZ_UI_DEFS WHERE COMPONENT_ID=in_component_id
1600 AND deleted_flag=NO_FLAG)
1601 LOOP
1602 BEGIN
1603 SELECT TO_NUMBER(value_str) INTO var_ui_version
1604 FROM CZ_UI_PROPERTIES WHERE ui_def_id=i.ui_def_id AND UPPER(KEY_STR)='UIVERSION';
1605 IF var_ui_version>max_ui_version THEN
1606 max_ui_version:=var_ui_version;
1607 END IF;
1608 EXCEPTION
1609 WHEN NO_DATA_FOUND THEN
1610 NULL;
1611 END;
1612 END LOOP;
1613
1614 max_ui_version:=max_ui_version+1;
1615 RETURN max_ui_version;
1616 END GenerateUiVersion;
1617
1618 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1619 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1620
1621 --
1622 -- shift all non-customized buttons to the bottom of screen --
1623 --
1624
1625 PROCEDURE shift_BUTTONS
1626 (in_ui_node_id IN INTEGER) IS
1627
1628 var_parent_id CZ_UI_NODES.parent_id%TYPE;
1629 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
1630 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
1631 var_left_border CZ_UI_NODES.rel_left_pos%TYPE;
1632 var_height CZ_UI_NODES.height%TYPE;
1633 exist_Latest BOOLEAN:=FALSE;
1634 END_OPERATION1 EXCEPTION;
1635 END_OPERATION2 EXCEPTION;
1636
1637 BEGIN
1638 --
1639 -- find max rel_top_pos for this particular screen --
1640 -- if there are no controls on the screen then --
1641 -- max = DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN --
1642 --
1643 SELECT NVL(MAX(rel_top_pos),DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN)
1644 INTO var_top_pos FROM CZ_UI_NODES
1645 WHERE parent_id=in_ui_node_id AND deleted_flag=NO_FLAG;
1646
1647 --
1648 -- find a height of the UI control with max rel_top_pos --
1649 --
1650 SELECT NVL(MAX(height),DEFAULT_SPACE_BETWEEN) INTO var_height
1651 FROM CZ_UI_NODES WHERE parent_id=in_ui_node_id
1652 AND rel_top_pos=var_top_pos AND deleted_flag=NO_FLAG;
1653
1654 last_TOP_POS:=var_top_pos+var_height+DEFAULT_SPACE_BETWEEN;
1655 var_left_pos:=LEFT_MARGIN;
1656
1657 FOR i IN (SELECT ui_node_id,width,name FROM CZ_UI_NODES WHERE parent_id=in_ui_node_id
1658 AND ui_node_type=UI_BUTTON_TYPE AND name<>CZ_DELETE_BUTTON_CAPTION AND modified_flags=0 AND
1659 deleted_flag=NO_FLAG ORDER BY ui_node_id)
1660 LOOP
1661 var_left_border:=var_left_pos+i.width;
1662 IF var_left_border>LEFT_MARGIN+USABLE_WIDTH THEN
1663 last_TOP_POS:=last_TOP_POS+DEFAULT_BUTTON_HEIGHT+DEFAULT_SPACE_BETWEEN;
1664 var_left_pos:=LEFT_MARGIN;
1665 last_HEIGHT:=DEFAULT_BUTTON_HEIGHT;
1666 var_left_border:=LEFT_MARGIN+i.width;
1667 END IF;
1668
1669 UPDATE CZ_UI_NODES SET rel_top_pos=last_TOP_POS,
1670 rel_left_pos=var_left_pos
1671 WHERE ui_node_id=i.ui_node_id;
1672 var_left_pos:=var_left_border+SPACE_BETWEEN;
1673 END LOOP;
1674 last_TOP_POS:=last_TOP_POS+DEFAULT_BUTTON_HEIGHT;
1675 EXCEPTION
1676 WHEN NO_DATA_FOUND THEN
1677 NULL;
1678 WHEN OTHERS THEN
1679 NULL;
1680 END shift_BUTTONS;
1681
1682 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1683 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1684
1685 PROCEDURE shift_Latest_BUTTONS
1686 (in_ui_node_id IN INTEGER) IS
1687
1688 var_parent_id CZ_UI_NODES.parent_id%TYPE;
1689 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
1690 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
1691 var_left_border CZ_UI_NODES.rel_left_pos%TYPE;
1692 var_height CZ_UI_NODES.height%TYPE;
1693 exist_Latest BOOLEAN:=FALSE;
1694 END_OPERATION1 EXCEPTION;
1695 END_OPERATION2 EXCEPTION;
1696
1697 BEGIN
1698
1699 IF latest_buttons.Count=0 THEN
1700 RAISE END_OPERATION2;
1701 END IF;
1702
1703 SELECT NVL(MAX(rel_top_pos),DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN)
1704 INTO var_top_pos FROM CZ_UI_NODES
1705 WHERE parent_id=in_ui_node_id AND modified_flags<>CZ_NAVIGATION_MARK AND deleted_flag=NO_FLAG;
1706
1707 SELECT NVL(MAX(height),DEFAULT_SPACE_BETWEEN) INTO var_height FROM CZ_UI_NODES
1708 WHERE parent_id=in_ui_node_id
1709 AND rel_top_pos=var_top_pos AND deleted_flag=NO_FLAG;
1710
1711 last_TOP_POS:=var_top_pos+var_height+DEFAULT_SPACE_BETWEEN;
1712 var_left_pos:=LEFT_MARGIN;
1713
1714 FOR i IN (SELECT ui_node_id,width FROM CZ_UI_NODES WHERE parent_id=in_ui_node_id
1715 AND ui_node_type=UI_BUTTON_TYPE AND name<>CZ_DELETE_BUTTON_CAPTION
1716 AND modified_flags=0 AND deleted_flag=NO_FLAG ORDER BY ui_node_id)
1717 LOOP
1718 BEGIN
1719
1720 BEGIN
1721 FOR l IN latest_buttons.First..latest_buttons.Last
1722 LOOP
1723 IF latest_buttons(l).id=i.ui_node_id THEN
1724 RAISE END_OPERATION1;
1725 END IF;
1726 END LOOP;
1727 RAISE END_OPERATION2;
1728 EXCEPTION
1729 WHEN END_OPERATION1 THEN
1730 NULL;
1731 END;
1732
1733 var_left_border:=var_left_pos+i.width;
1734 IF var_left_border>LEFT_MARGIN+USABLE_WIDTH THEN
1735 last_TOP_POS:=last_TOP_POS+DEFAULT_BUTTON_HEIGHT+DEFAULT_SPACE_BETWEEN;
1736 var_left_pos:=LEFT_MARGIN;
1737 last_HEIGHT:=DEFAULT_BUTTON_HEIGHT;
1738 var_left_border:=LEFT_MARGIN+i.width;
1739 END IF;
1740 UPDATE CZ_UI_NODES SET rel_top_pos=last_TOP_POS,
1741 rel_left_pos=var_left_pos
1742 WHERE ui_node_id=i.ui_node_id;
1743 var_left_pos:=var_left_border+SPACE_BETWEEN;
1744
1745 EXCEPTION
1746 WHEN END_OPERATION2 THEN
1747 NULL;
1748 END;
1749 END LOOP;
1750 last_TOP_POS:=last_TOP_POS+DEFAULT_BUTTON_HEIGHT;
1751 EXCEPTION
1752 WHEN NO_DATA_FOUND THEN
1753 NULL;
1754 WHEN OTHERS THEN
1755 NULL;
1756 END shift_Latest_BUTTONS;
1757
1758 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1759 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1760
1761 PROCEDURE create_DIVIDER
1762 (in_ui_node_id IN INTEGER,
1763 in_parent_id IN INTEGER,
1764 in_ui_def_id IN INTEGER,
1765 in_top_pos IN INTEGER , -- DEFAULT 37,
1766 in_left_pos IN INTEGER , -- DEFAULT 45,
1767 in_modified_flag IN INTEGER -- DEFAULT 0
1768 ) IS
1769 var_num INTEGER;
1770 END_OPERATION EXCEPTION;
1771 BEGIN
1772 IF mLOOK_AND_FEEL='FORMS' THEN
1773 RAISE END_OPERATION;
1774 END IF;
1775
1776 var_num:=FLOOR(USABLE_WIDTH/7);
1777 set_UI_NODES(in_ui_node_id =>in_ui_node_id,
1778 in_parent_id =>in_parent_id,
1779 in_ui_def_id =>in_ui_def_id,
1780 in_ps_node_id =>NULL,
1781 in_ui_node_ref_id =>NULL,
1782 in_name =>'Horizontal Divider',
1783 in_ui_node_type =>UI_TEXT_LABEL_TYPE,
1784 in_background_color =>DEFAULT_DIVIDER_COLOR,
1785 in_component_id =>NULL,
1786 in_width =>USABLE_WIDTH,
1787 in_height =>2,
1788 in_tree_display_flag=>YES_FLAG,
1789 in_use_default_font =>NO_FLAG,
1790 in_top_pos =>in_top_pos,
1791 in_left_pos =>in_left_pos,
1792 in_text_label =>lpad(' ',var_num),
1793 in_font_name =>DEFAULT_FONT_NAME,
1794 in_font_bold =>NO_FLAG,
1795 in_font_color =>DEFAULT_DIVIDER_COLOR,
1796 in_font_italic =>NO_FLAG,
1797 in_font_size =>DEFAULT_FONT_SIZE,
1798 in_font_underline =>NO_FLAG,
1799 in_bkgrnd_style =>YES_FLAG,
1800 in_use_default_color=>NO_FLAG,
1801 in_modified_flag =>in_modified_flag);
1802
1803 generateUIProps(in_ui_node_id,in_ui_def_id,DEF_TEXT_LABEL,
1804 0, YES_FLAG, YES_FLAG,
1805 NO_FLAG, NO_FLAG, NO_FLAG,
1806 0, 'left', '0');
1807
1808 EXCEPTION
1809 WHEN END_OPERATION THEN
1810 NULL;
1811 END create_DIVIDER;
1812
1813 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1814 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1815
1816 PROCEDURE create_TEXT_LABEL
1817 (in_ui_node_id IN INTEGER,
1818 in_parent_id IN INTEGER,
1819 in_ui_def_id IN INTEGER,
1820 in_node_id IN INTEGER,
1821 in_top_pos IN INTEGER,
1822 in_left_pos IN INTEGER,
1823 in_text IN VARCHAR2,
1824 in_use_default_font IN VARCHAR2, -- DEFAULT YES_FLAG,
1825 in_display_flag IN VARCHAR2, -- DEFAULT NO_FLAG,
1826 in_font_name IN VARCHAR2, -- DEFAULT DEFAULT_FONT_NAME,
1827 in_font_bold IN VARCHAR2, -- DEFAULT NO_FLAG,
1828 in_font_color IN INTEGER , -- DEFAULT DEFAULT_FONT_COLOR,
1829 in_font_italic IN VARCHAR2, -- DEFAULT YES_FLAG,
1830 in_font_size IN INTEGER , -- DEFAULT DEFAULT_FONT_SIZE,
1831 in_font_underline IN VARCHAR2, -- DEFAULT NO_FLAG,
1832 in_title IN VARCHAR2, -- DEFAULT NO_FLAG,
1833 in_align IN VARCHAR2, -- DEFAULT 'right',
1834 in_name IN VARCHAR2 DEFAULT NULL,
1835 in_intl_text_id IN INTEGER DEFAULT NULL,
1836 in_parent_name IN VARCHAR2 DEFAULT NULL,
1837 in_page_number IN VARCHAR2 DEFAULT NULL,
1838 in_width IN INTEGER DEFAULT NULL,
1839 in_ui_node_ref_id IN INTEGER DEFAULT NULL) IS
1840
1841 var_text_width CZ_UI_NODES.width%TYPE;
1842 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
1843 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
1844 var_height CZ_UI_NODES.height%TYPE;
1845
1846 BEGIN
1847 IF in_title=YES_FLAG THEN
1848 var_top_pos:=11;
1849 var_left_pos:=LEFT_MARGIN;
1850 ----var_text_width:=set_Title_Width(in_text);----
1851 var_text_width:=USABLE_WIDTH-DELETE_BUTTON_WIDTH;
1852 var_height:=26;
1853 ELSE
1854 var_top_pos:=in_top_pos;
1855 var_left_pos:=in_left_pos;
1856 IF in_width IS NOT NULL THEN
1857 var_text_width:=in_width;
1858 ELSE
1859 var_text_width:=set_Text_Width(in_text);
1860 END IF;
1861 var_height:=DEFAULT_TEXT_HEIGHT;
1862 END IF;
1863
1864 set_UI_NODES(in_ui_node_id =>in_ui_node_id,
1865 in_parent_id =>in_parent_id,
1866 in_ui_def_id =>in_ui_def_id,
1867 in_ps_node_id =>NULL,
1868 in_ui_node_ref_id =>in_ui_node_ref_id,
1869 in_name =>NVL(in_name,'Text-'||TO_CHAR(in_node_id)),
1870 in_ui_node_type =>UI_TEXT_LABEL_TYPE,
1871 in_background_color =>DEFAULT_BACKGROUND_COLOR,
1872 in_component_id =>NULL,
1873 in_width =>var_text_width,
1874 in_height =>var_height,
1875 in_tree_display_flag=>in_display_flag,
1876 in_use_default_font =>in_use_default_font,
1877 in_top_pos =>var_top_pos,
1878 in_left_pos =>var_left_pos,
1879 in_font_name =>in_font_name,
1880 in_font_bold =>in_font_bold,
1881 in_font_color =>in_font_color,
1882 in_font_italic =>in_font_italic,
1883 in_font_size =>in_font_size,
1884 in_font_underline =>in_font_underline,
1885 in_use_default_color=>NO_FLAG,
1886 in_bkgrnd_style =>NO_FLAG,
1887 in_intl_text_id =>in_intl_text_id,
1888 in_parent_name =>in_parent_name,
1889 in_caption =>in_text,
1890 in_page_number =>in_page_number);
1891
1892 generateUIProps(in_ui_node_id,in_ui_def_id,DEF_TEXT_LABEL,
1893 0, YES_FLAG, YES_FLAG,
1894 NO_FLAG, NO_FLAG, NO_FLAG,
1895 0, in_align, '0');
1896 END create_TEXT_LABEL;
1897
1898 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1899 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1900
1901 PROCEDURE create_BUTTON
1902 (in_ui_node_id IN INTEGER,
1903 in_parent_id IN INTEGER,
1904 in_ui_def_id IN INTEGER,
1905 in_ps_node_id IN INTEGER,
1906 in_text IN VARCHAR2,
1907 in_top_pos IN INTEGER,
1908 in_left_pos IN INTEGER,
1909 in_button_type IN INTEGER,
1910 in_width IN INTEGER DEFAULT NULL,
1911 in_func_comp_id IN INTEGER DEFAULT NULL,
1912 in_ui_node_ref_id IN INTEGER DEFAULT NULL,
1913 in_intl_text_id IN INTEGER DEFAULT NULL,
1914 in_modified_flag IN INTEGER, -- DEFAULT 0
1915 in_cx_command_name IN VARCHAR2 DEFAULT NULL,
1916 in_rule_id IN NUMBER DEFAULT NULL
1917 ) IS
1918
1919 var_button_width CZ_UI_NODES.width%TYPE;
1920 var_text_str CZ_INTL_TEXTS.text_str%TYPE;
1921
1922 BEGIN
1923 IF in_intl_text_id IS NOT NULL THEN
1924 SELECT text_str INTO var_text_str FROM CZ_INTL_TEXTS
1925 WHERE intl_text_id=in_intl_text_id;
1926 ELSE
1927 var_text_str:=in_text;
1928 END IF;
1929
1930 IF in_width IS NULL THEN
1931 var_button_width:=8*LENGTH(var_text_str)+25;
1932 ELSE
1933 var_button_width:=DELETE_BUTTON_WIDTH;
1934 END IF;
1935 set_UI_NODES(in_ui_node_id,in_parent_id,in_ui_def_id,
1936 in_ps_node_id,in_ui_node_ref_id,in_text,
1937 UI_BUTTON_TYPE,DEFAULT_COLOR,in_ps_node_id,
1938 var_button_width,DEFAULT_BUTTON_HEIGHT,
1939 in_tree_display_flag=>YES_FLAG,
1940 in_use_default_color=>NO_FLAG,
1941 in_top_pos =>in_top_pos,
1942 in_left_pos =>in_left_pos,
1943 in_picname =>'',
1944 in_borders =>NO_FLAG,
1945 in_bkgrnd_style =>YES_FLAG,
1946 in_func_comp_id =>in_func_comp_id,
1947 in_intl_text_id =>in_intl_text_id,
1948 in_modified_flag =>in_modified_flag,
1949 in_cx_command_name =>in_cx_command_name);
1950
1951 generateUIProps(in_ui_node_id,in_ui_def_id,in_button_type,
1952 0, YES_FLAG, YES_FLAG,
1953 NO_FLAG, NO_FLAG, NO_FLAG,
1954 0, 'left', '0',
1955 in_ps_node_id => in_ps_node_id,
1956 in_rule_id => in_rule_id);
1957
1958 END create_BUTTON;
1959
1960 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1961 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1962
1963 PROCEDURE create_ADD_BUTTONS
1964 (in_ui_def_id IN INTEGER) IS
1965
1966 var_parent_id CZ_UI_NODES.parent_id%TYPE;
1967 k INTEGER;
1968
1969 BEGIN
1970 IF add_buttons.Count>0 THEN
1971 k:=add_buttons.First;
1972 LOOP
1973 IF k IS NULL THEN
1974 EXIT;
1975 END IF;
1976
1977 SELECT ui_node_id INTO var_parent_id FROM CZ_UI_NODES WHERE
1978 ui_def_id=in_ui_def_id AND ps_node_id=add_buttons(k).ps_parent_id
1979 AND ui_node_type IN(UI_COMPONENT_TYPE,UI_PRODUCT_TYPE) AND deleted_flag=NO_FLAG;
1980 create_BUTTON(add_buttons(k).id,var_parent_id,in_ui_def_id,
1981 k,'Add '||add_buttons(k).name,
1982 in_top_pos =>LEFT_MARGIN,
1983 in_left_pos =>LEFT_MARGIN,
1984 in_button_type =>DEF_ADD_BUTTON,
1985 in_modified_flag => 0);
1986
1987 k:=add_buttons.NEXT(k);
1988 END LOOP;
1989 END IF;
1990 EXCEPTION
1991 WHEN NO_DATA_FOUND THEN
1992 FND_REPORT(CZ_UI_GEN_NO_BUTTONS,TOKEN_UI_NODE,TO_CHAR(var_parent_id), CZ_ERROR_URGENCY);
1993 WHEN OTHERS THEN
1994 FND_REPORT(CZ_UI_GEN_NO_BUTTONS,TOKEN_UI_NODE,TO_CHAR(var_parent_id), CZ_ERROR_URGENCY);
1995 END create_ADD_BUTTONS;
1996
1997 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1998 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
1999
2000 --
2001 -- returns action type assoaciated with CZ Extensions button
2002 -- Parameters :
2003 -- p_rule_id - identifies CZ Extension
2004 --
2005 PROCEDURE check_for_CZEXT_Button
2006 (
2007 p_rule_id IN NUMBER,
2008 x_action_type OUT NOCOPY NUMBER,
2009 x_cx_command_name OUT NOCOPY VARCHAR2,
2010 x_event_scope OUT NOCOPY NUMBER
2011 )IS
2012
2013 var_cx_command CZ_EXPRESSION_NODES.data_value%TYPE;
2014 var_genoutput_flag VARCHAR2(1);
2015 var_action_type NUMBER;
2016
2017 BEGIN
2018 FOR i IN(SELECT expr_node_id,data_value,event_execution_scope FROM CZ_EXPRESSION_NODES
2019 WHERE rule_id=p_rule_id AND deleted_flag='0'
2020 AND argument_signature_id=EVENT_ON_COMMAND_SIGID AND data_value IS NOT NULL)
2021 LOOP
2022 x_action_type := RAISE_COMMAND_EVENT;
2023 x_event_scope := i.event_execution_scope;
2024 x_cx_command_name := i.data_value;
2025 END LOOP;
2026 END check_for_CZEXT_Button;
2027
2028 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2029 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2030
2031 PROCEDURE create_FUNC_BUTTONS
2032 (in_project_id IN INTEGER,
2033 in_ui_def_id IN INTEGER,
2034 in_limbo_id IN INTEGER) IS
2035
2036 var_button_id CZ_UI_NODES.ui_node_id%TYPE;
2037 var_parent_id CZ_UI_NODES.parent_id%TYPE;
2038 var_cx_command_name CZ_UI_NODES.cx_command_name%TYPE;
2039 var_nearest_comp_id CZ_PS_NODES.ps_node_id%TYPE;
2040 var_event_scope CZ_EXPRESSION_NODES.event_execution_scope%TYPE;
2041 var_ps_parent_id CZ_PS_NODES.parent_id%TYPE;
2042 var_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2043 var_component_id CZ_UI_NODES.ps_node_id%TYPE;
2044 var_button_type INTEGER;
2045 ind INTEGER;
2046 var_suff VARCHAR2(10):='';
2047 BEGIN
2048
2049 -- companion_type is 4 bits binary :
2050 -- AUTO-CONFIG 0001 = 1
2051 -- VALIDATION 0010 = 2
2052 -- OUTPUT 0100 = 4
2053 -- EVENT_DRIVEN 1000 = 8
2054 --
2055 -- companion_type IN(1,3,4,5,6,7,9,11,12,13,14,15) <=>
2056 -- combinations with AUTO-CONFIG bit = 1 or OUTPUT bit = 1
2057 --
2058
2059 FOR i IN (SELECT func_comp_id,component_id,companion_type,name FROM CZ_FUNC_COMP_SPECS a
2060 WHERE devl_project_id=in_project_id AND companion_type IN(1,3,4,5,6,7,9,11,12,13,14,15) AND
2061 NOT EXISTS(SELECT NULL FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND
2062 ps_node_id=a.component_id AND ui_node_type=UI_BUTTON_TYPE AND func_comp_id=a.func_comp_id
2063 AND parent_id<>in_limbo_id AND deleted_flag=NO_FLAG) AND deleted_flag=NO_FLAG)
2064 LOOP
2065 BEGIN
2066 var_button_id:=getUISeqVal;
2067
2068 --
2069 -- if the following select fails then
2070 -- this means that Component( Product,BOM OC/Model ) is not visible in UI
2071 -- in this case we just go to the EXCEPTION part and
2072 -- go to the next iterration of the loop ( buttons are not generated )
2073 --
2074 SELECT ui_node_id INTO var_parent_id FROM CZ_UI_NODES WHERE
2075 ui_def_id=in_ui_def_id AND ps_node_id=i.component_id
2076 AND ui_node_type IN(UI_COMPONENT_TYPE,UI_PRODUCT_TYPE) AND deleted_flag=NO_FLAG;
2077
2078 --
2079 -- AUTO-CONFIG =1 OUTPUT = 0 combinations :
2080 -- 0001 = 1
2081 -- 0011 = 3
2082 -- 1001 = 9
2083 -- 1011 = 11
2084 --
2085 IF i.companion_type IN(1,3,9,11) THEN -- AUTO-CONFIG
2086 var_button_type:=DEF_FUNC_BUTTON1;
2087
2088 --
2089 -- AUTO-CONFIG =0 OUTPUT = 1 combinations :
2090 -- 0100 = 4
2091 -- 0110 = 6
2092 -- 1100 = 12
2093 -- 1110 = 14
2094 --
2095 ELSIF i.companion_type IN(4,6,12,14) THEN -- OUTPUT
2096 var_button_type:=DEF_FUNC_BUTTON2;
2097
2098 --
2099 -- AUTO-CONFIG =1 OUTPUT = 1 combinations :
2100 -- 0101 = 5
2101 -- 0111 = 7
2102 -- 1101 = 13
2103 -- 1111 = 15
2104 --
2105 ELSIF i.companion_type IN(5,7,13,15) THEN -- AUTO-CONFIG + OUTPUT
2106 var_button_type:=DEF_FUNC_BUTTON1;
2107 var_suff:=' (1)';
2108 END IF;
2109 create_BUTTON(var_button_id,var_parent_id,in_ui_def_id,
2110 i.component_id,i.name||var_suff,
2111 in_top_pos =>LEFT_MARGIN,
2112 in_left_pos =>LEFT_MARGIN,
2113 in_button_type =>var_button_type,
2114 in_func_comp_id =>i.func_comp_id,
2115 in_modified_flag => 0);
2116
2117 IF latest_buttons.Count=0 THEN
2118 ind:=1;
2119 ELSE
2120 ind:=latest_buttons.Last+1;
2121 END IF;
2122 latest_buttons(ind).id:=var_button_id;
2123
2124 --
2125 -- in this case ( both Auto-Config and Output ) we need 2 buttons --
2126 --
2127 IF i.companion_type IN(5,7,13,15) THEN
2128 var_button_id:=getUISeqVal;
2129 create_BUTTON(var_button_id,var_parent_id,in_ui_def_id,
2130 i.component_id,i.name||' (2)',
2131 in_top_pos =>LEFT_MARGIN,
2132 in_left_pos =>LEFT_MARGIN,
2133 in_button_type =>DEF_FUNC_BUTTON2,
2134 in_func_comp_id =>i.func_comp_id,
2135 in_modified_flag => 0);
2136
2137 IF latest_buttons.Count=0 THEN
2138 ind:=1;
2139 ELSE
2140 ind:=latest_buttons.Last+1;
2141 END IF;
2142 latest_buttons(ind).id:=var_button_id;
2143 END IF;
2144
2145 EXCEPTION
2146 WHEN NO_DATA_FOUND THEN
2147 NULL;
2148 WHEN OTHERS THEN
2149 --LOG_REPORT('CZ_UI_GENERATOR.create_FUNC_BUTTONS','parent_id='||TO_CHAR(var_parent_id)||' : '||SQLERRM);
2150 FND_REPORT(CZ_UI_GEN_NO_BUTTONS,TOKEN_UI_NODE,TO_CHAR(var_parent_id), CZ_ERROR_URGENCY);
2151 END;
2152 END LOOP;
2153
2154 FOR i IN(SELECT rule_id,component_id,name FROM CZ_RULES
2155 WHERE devl_project_id=in_project_id AND
2156 rule_type=CZ_EXTENTSIONS_RULE_TYPE AND deleted_flag=NO_FLAG AND
2157 disabled_flag=NO_FLAG)
2158 LOOP
2159 check_for_CZEXT_Button(p_rule_id => i.rule_id,
2160 x_action_type => var_button_type,
2161 x_cx_command_name => var_cx_command_name,
2162 x_event_scope => var_event_scope);
2163
2164 IF var_button_type IN(GENERATE_OUTPUT_EVENT,RAISE_COMMAND_EVENT) THEN
2165 BEGIN
2166
2167 var_button_id:=getUISeqVal;
2168
2169 SELECT parent_id,ps_node_type INTO var_ps_parent_id,var_ps_node_type FROM CZ_PS_NODES
2170 WHERE ps_node_id=i.component_id;
2171
2172 IF var_ps_node_type IN(BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE,COMPONENT_NODE_TYPE,PRODUCT_NODE_TYPE) THEN
2173 var_nearest_comp_id := i.component_id;
2174 ELSIF var_ps_node_type IN(FEATURE_NODE_TYPE,TOTAL_NODE_TYPE,RESOURCE_NODE_TYPE,REFERENCE_NODE_TYPE,CONNECTOR_NODE_TYPE) THEN
2175 var_nearest_comp_id := var_ps_parent_id;
2176 ELSE
2177 NULL;
2178 END IF;
2179 --
2180 -- if the following select fails then
2181 -- this means that Component( Product,BOM OC/Model ) is not visible in UI
2182 -- in this case we just go to the EXCEPTION part and
2183 -- go to the next iterration of the loop ( buttons are not generated )
2184 --
2185 SELECT ui_node_id INTO var_parent_id FROM CZ_UI_NODES WHERE
2186 ui_def_id=in_ui_def_id AND ps_node_id=var_nearest_comp_id
2187 AND ui_node_type IN(UI_COMPONENT_TYPE,UI_PRODUCT_TYPE) AND deleted_flag=NO_FLAG;
2188
2189 create_BUTTON(var_button_id,var_parent_id,in_ui_def_id,
2190 i.component_id,i.name,
2191 in_top_pos => LEFT_MARGIN,
2192 in_left_pos => LEFT_MARGIN,
2193 in_button_type => var_button_type,
2194 in_cx_command_name => var_cx_command_name,
2195 in_modified_flag => 0,
2196 in_rule_id => i.rule_id);
2197 IF latest_buttons.Count=0 THEN
2198 ind:=1;
2199 ELSE
2200 ind:=latest_buttons.Last+1;
2201 END IF;
2202 latest_buttons(ind).id:=var_button_id;
2203
2204 EXCEPTION
2205 WHEN NO_DATA_FOUND THEN
2206 NULL;
2207 WHEN OTHERS THEN
2208 FND_REPORT(CZ_UI_GEN_NO_BUTTONS,TOKEN_UI_NODE,TO_CHAR(var_parent_id), CZ_ERROR_URGENCY);
2209 END;
2210 END IF;
2211 END LOOP;
2212
2213 EXCEPTION
2214 WHEN OTHERS THEN
2215 NULL;
2216 END create_FUNC_BUTTONS;
2217
2218 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2219 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2220
2221 --
2222 -- populate CZ_UI_NODES.model_ref_expl_id associated with References
2223 --
2224 PROCEDURE populate_RefSI(in_ui_def_id IN INTEGER) IS
2225 var_ui_node_ref_id CZ_UI_NODES.ui_node_ref_id%TYPE;
2226 var_ref_model_id CZ_MODEL_REF_EXPLS.component_id%TYPE;
2227 var_ref_root_screen CZ_UI_NODES.ui_node_id%TYPE;
2228 BEGIN
2229 FOR i IN(SELECT ps_node_id,model_ref_expl_id,ui_def_ref_id FROM CZ_UI_NODES
2230 WHERE ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG
2231 AND ui_node_type=UI_REFERENCE_REF_TYPE)
2232 LOOP
2233 FOR k IN(SELECT ui_node_id FROM CZ_UI_NODES
2234 WHERE ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG
2235 AND ps_node_id=i.ps_node_id AND ui_node_type=UI_BOM_STANDART_TYPE)
2236 LOOP
2237 var_ui_node_ref_id:=NULL;
2238 UPDATE CZ_UI_NODES
2239 SET model_ref_expl_id=i.model_ref_expl_id
2240 WHERE ui_def_id=in_ui_def_id AND ui_node_id=k.ui_node_id
2241 RETURNING ui_node_ref_id INTO var_ui_node_ref_id;
2242
2243 --
2244 -- this block will be executed just in case
2245 -- when we have a corrupted data
2246 -- in this case it will fix it
2247 --
2248 IF var_ui_node_ref_id IS NULL THEN
2249 BEGIN
2250 SELECT component_id INTO var_ref_model_id
2251 FROM CZ_MODEL_REF_EXPLS a
2252 WHERE model_id=Project_Id AND deleted_flag=NO_FLAG
2253 AND referring_node_id=i.ps_node_id AND ps_node_type=REFERENCE_NODE_TYPE AND rownum<2;
2254
2255 SELECT ui_node_id INTO var_ref_root_screen FROM CZ_UI_NODES
2256 WHERE ui_def_id=i.ui_def_ref_id AND ui_node_type=UI_SCREEN_TYPE
2257 AND ps_node_id=var_ref_model_id AND deleted_flag=NO_FLAG AND rownum<2;
2258
2259 UPDATE CZ_UI_NODES
2260 SET ui_node_ref_id=var_ref_root_screen
2261 WHERE ui_def_id=in_ui_def_id
2262 AND ui_node_id=k.ui_node_id AND ui_node_ref_id IS NULL;
2263 EXCEPTION
2264 WHEN OTHERS THEN
2265 NULL;
2266 END;
2267 END IF;
2268 END LOOP;
2269 END LOOP;
2270 END;
2271
2272 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2273 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2274
2275 PROCEDURE create_Wizard_Style_Buttons
2276 (in_ui_def_id IN INTEGER,
2277 in_limbo_id IN INTEGER -- DEFAULT -1
2278 ) IS
2279 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
2280 var_height CZ_UI_NODES.height%TYPE;
2281 var_ui_node_id CZ_UI_NODES.ui_node_id%TYPE;
2282 var_screen_width CZ_UI_NODES.width%TYPE;
2283 var_id CZ_UI_NODES.ui_node_id%TYPE;
2284 BEGIN
2285 var_screen_width:=USABLE_WIDTH+RIGHT_MARGIN;
2286 IF footer_buttons.Count>0 THEN
2287 var_top_pos:=LEFT_MARGIN;
2288
2289 FOR i IN footer_buttons.First..footer_buttons.Last
2290 LOOP
2291 var_ui_node_id:=footer_buttons(i).ui_parent_id;
2292 var_id:=footer_buttons(i).id;
2293
2294 IF var_id>0 THEN
2295
2296 create_DIVIDER(getUISeqVal,var_ui_node_id,in_ui_def_id,0,45,
2297 in_modified_flag=>CZ_NAVIGATION_MARK);
2298
2299 create_BUTTON(getUISeqVal,var_ui_node_id,in_ui_def_id,
2300 NULL,'Home',
2301 in_top_pos =>0,
2302 in_left_pos =>var_screen_width-195,
2303 in_button_type =>DEF_HOME_SCREEN,
2304 in_modified_flag =>CZ_NAVIGATION_MARK);
2305
2306 create_BUTTON(getUISeqVal,var_ui_node_id,in_ui_def_id,
2307 NULL,'Back',
2308 in_top_pos =>0,
2309 in_left_pos =>var_screen_width-126,
2310 in_button_type =>DEF_PREV_SCREEN,
2311 in_modified_flag =>CZ_NAVIGATION_MARK);
2312
2313 create_BUTTON(getUISeqVal,var_ui_node_id,in_ui_def_id,
2314 NULL,'Next',
2315 in_top_pos =>0,
2316 in_left_pos =>var_screen_width-57,
2317 in_button_type =>DEF_NEXT_SCREEN,
2318 in_modified_flag =>CZ_NAVIGATION_MARK);
2319 END IF;
2320 END LOOP;
2321 END IF;
2322
2323 FOR i IN(SELECT ui_node_id FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
2324 AND deleted_flag='0' AND ui_node_type=UI_COMPONENT_TYPE)
2325 LOOP
2326 SELECT NVL(MAX(rel_top_pos),0)
2327 INTO var_top_pos FROM CZ_UI_NODES
2328 WHERE parent_id=i.ui_node_id AND modified_flags<>CZ_NAVIGATION_MARK
2329 AND parent_id<>in_limbo_id AND deleted_flag=NO_FLAG;
2330
2331 SELECT NVL(MAX(height),DEFAULT_SPACE_BETWEEN) INTO var_height FROM CZ_UI_NODES
2332 WHERE parent_id=i.ui_node_id
2333 AND rel_top_pos=var_top_pos AND modified_flags<>CZ_NAVIGATION_MARK AND
2334 parent_id<>in_limbo_id AND deleted_flag=NO_FLAG;
2335
2336 IF var_top_pos<=DEFAULT_HEADER_HEIGHT+DEFAULT_DIVIDER_HEIGHT THEN
2337 var_top_pos:=DEFAULT_HEADER_HEIGHT+DEFAULT_DIVIDER_HEIGHT;
2338 ELSE
2339 var_top_pos:=var_top_pos+var_height+DEFAULT_SPACE_BETWEEN;
2340 END IF;
2341
2342 UPDATE CZ_UI_NODES a SET rel_top_pos=var_top_pos
2343 WHERE ui_def_id=in_ui_def_id AND parent_id=i.ui_node_id AND ui_node_type=UI_TEXT_LABEL_TYPE AND
2344 modified_flags=CZ_NAVIGATION_MARK AND deleted_flag=NO_FLAG;
2345
2346 var_top_pos:=var_top_pos+DEFAULT_DIVIDER_HEIGHT+DEFAULT_SPACE_BETWEEN;
2347 UPDATE CZ_UI_NODES a SET rel_top_pos=var_top_pos
2348 WHERE ui_def_id=in_ui_def_id AND parent_id=i.ui_node_id AND ui_node_type=UI_BUTTON_TYPE AND
2349 modified_flags=CZ_NAVIGATION_MARK AND deleted_flag=NO_FLAG;
2350 END LOOP;
2351
2352 END;
2353
2354 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2355 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2356
2357 PROCEDURE create_PRODUCT
2358 (in_node_id IN INTEGER,
2359 in_parent_id IN INTEGER,
2360 in_ui_def_id IN INTEGER,
2361 in_arr IN UIStructure) IS
2362
2363 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
2364 curr_bitmap_id CZ_UI_NODES.ui_node_id%TYPE;
2365 curr_button_id CZ_UI_NODES.ui_node_id%TYPE;
2366 ind INTEGER;
2367
2368 BEGIN
2369 last_TOP_POS:=DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN;
2370 curr_label_id:=getUISeqVal;
2371 curr_bitmap_id:=getUISeqVal;
2372
2373 set_UI_NODES(in_node_id,
2374 in_parent_id,
2375 in_ui_def_id,
2376 in_arr.ps_node_id,
2377 curr_label_id,
2378 in_arr.name,
2379 UI_PRODUCT_TYPE,
2380 DEFAULT_BACKGROUND_COLOR,
2381 in_tree_display_flag=>YES_FLAG,
2382 in_tree_seq =>in_arr.tree_seq,
2383 in_use_default_font =>YES_FLAG,
2384 in_use_default_color=>YES_FLAG,
2385 in_use_default_pic =>YES_FLAG,
2386 in_top_pos =>DEFAULT_PROD_TOP,
2387 in_left_pos =>DEFAULT_PROD_LEFT,
2388 in_font_name =>DEFAULT_FONT_NAME,
2389 in_font_bold =>NO_FLAG,
2390 in_font_color =>0,
2391 in_font_italic =>NO_FLAG,
2392 in_font_size =>9,
2393 in_font_underline =>NO_FLAG);
2394
2395 --
2396 -- create Text Label for PRODUCT --
2397 --
2398 create_TEXT_LABEL(curr_label_id,in_node_id,in_ui_def_id,curr_label_id,
2399 DEFAULT_REL_TOP,DEFAULT_REL_LEFT,in_arr.caption_name,
2400 in_font_color =>DEFAULT_TITLE_COLOR,
2401 in_font_size =>DEFAULT_CAPTION_FONT_SIZE,
2402 in_display_flag =>YES_FLAG,
2403 in_use_default_font =>NO_FLAG,
2404 in_title =>YES_FLAG,
2405 in_name =>'Page Title',
2406 in_align =>'left',
2407 in_intl_text_id =>in_arr.intl_text_id,
2408 in_parent_name =>in_arr.name
2409 ,in_font_name => DEFAULT_FONT_NAME
2410 ,in_font_bold => NO_FLAG
2411 ,in_font_italic => YES_FLAG
2412 ,in_font_underline => NO_FLAG
2413 );
2414
2415 --
2416 -- create DIVIDER for PRODUCT --
2417 --
2418 create_DIVIDER(curr_bitmap_id,in_node_id,in_ui_def_id, 37, 45, 0);
2419
2420 IF in_arr.virtual_flag=NO_FLAG AND in_arr.parent_id IS NOT NULL
2421 AND mUI_STYLE=DHTML_STYLE_UI THEN
2422
2423 UPDATE CZ_UI_NODES SET component_id=in_arr.ps_node_id,ps_node_id=in_arr.ps_node_id
2424 WHERE ui_node_ref_id=in_node_id;
2425
2426 -- Delete Button --
2427 create_BUTTON(getUISeqVal,in_node_id,in_ui_def_id,
2428 in_arr.ps_node_id,CZ_DELETE_BUTTON_CAPTION,
2429 in_top_pos =>DELETE_BUTTON_TOP_POS,
2430 in_left_pos =>DELETE_BUTTON_LEFT_POS,
2431 in_button_type=>DEF_DELETE_BUTTON,
2432 in_width =>DELETE_BUTTON_WIDTH,
2433 in_modified_flag => 0);
2434
2435 -- Add Button --
2436 curr_button_id:=getUISeqVal;
2437
2438 add_buttons(in_arr.ps_node_id).id:=curr_button_id;
2439 add_buttons(in_arr.ps_node_id).name:=in_arr.caption_name;
2440 add_buttons(in_arr.ps_node_id).ps_parent_id:=in_arr.parent_id;
2441
2442 IF latest_buttons.Count=0 THEN
2443 ind:=1;
2444 ELSE
2445 ind:=latest_buttons.Last+1;
2446 END IF;
2447 latest_buttons(ind).id:=curr_button_id;
2448 END IF;
2449
2450 END create_PRODUCT;
2451
2452 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2453 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2454
2455 PROCEDURE create_PRODUCT_Model
2456 (in_node_id IN INTEGER,
2457 in_parent_id IN INTEGER,
2458 in_ui_def_id IN INTEGER,
2459 in_node_ref_id IN INTEGER,
2460 in_arr IN UIStructure) IS
2461 var_ps_id CZ_UI_NODES.ps_node_id%TYPE;
2462 BEGIN
2463 -- IF in_arr.virtual_flag=NO_FLAG THEN
2464 var_ps_id:=in_arr.ps_node_id;
2465 -- ELSE
2466 -- var_ps_id:=NULL;
2467 -- END IF;
2468
2469 --
2470 -- create PRODUCT node for Model Tree --
2471 --
2472 set_UI_NODES(in_ui_node_id =>in_node_id,
2473 in_parent_id =>in_parent_id,
2474 in_ui_def_id =>in_ui_def_id,
2475 in_ps_node_id =>var_ps_id,
2476 in_ui_node_ref_id =>in_node_ref_id,
2477 in_name =>in_arr.name,
2478 in_ui_node_type =>UI_PRODUCT_REF_TYPE,
2479 in_tree_display_flag=>NO_FLAG,
2480 in_component_id =>var_ps_id,
2481 in_tree_seq =>in_arr.tree_seq,
2482 in_font_name =>DEFAULT_FONT_NAME,
2483 in_font_bold =>NO_FLAG,
2484 in_font_color =>0,
2485 in_font_italic =>NO_FLAG,
2486 in_font_size =>DEFAULT_FONT_SIZE,
2487 in_font_underline =>NO_FLAG,
2488 in_intl_text_id =>in_arr.intl_text_id);
2489
2490 generateUIProps(in_node_id,in_ui_def_id,DEF_PRODUCT_SCREEN,
2491 0, in_arr.minimum, in_arr.maximum,
2492 NO_FLAG, NO_FLAG, in_arr.virtual_flag,
2493 0, 'left', '0');
2494
2495 END create_PRODUCT_Model;
2496
2497 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2498 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2499
2500 FUNCTION get_last_UI
2501 (in_ref_id IN INTEGER) RETURN NUMBER IS
2502 var_date DATE;
2503 ret INTEGER:=0;
2504 BEGIN
2505 BEGIN
2506 SELECT MAX(creation_date) INTO var_date FROM CZ_UI_DEFS
2507 WHERE component_id=in_ref_id AND ui_style=mUI_STYLE AND look_and_feel=mLOOK_AND_FEEL
2508 AND deleted_flag=NO_FLAG;
2509
2510 SELECT NVL(MAX(ui_def_id),0) INTO ret FROM CZ_UI_DEFS
2511 WHERE component_id=in_ref_id AND ui_style=mUI_STYLE AND look_and_feel=mLOOK_AND_FEEL
2512 AND creation_date=var_date AND deleted_flag=NO_FLAG;
2513
2514 EXCEPTION
2515 WHEN NO_DATA_FOUND THEN
2516 NULL;
2517 WHEN OTHERS THEN
2518 NULL;
2519 END;
2520
2521 RETURN ret;
2522
2523 END get_last_UI;
2524
2525 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2526 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2527
2528 PROCEDURE add_BOM_MODEL_ITEM
2529 (in_ui_parent_id IN INTEGER,
2530 in_ref_model_id IN INTEGER,
2531 in_ui_def_id IN INTEGER,
2532 in_ref_ps_id IN INTEGER,
2533 in_maximum IN INTEGER , -- DEFAULT 1,
2534 in_minimum IN INTEGER , -- DEFAULT 1,
2535 in_virtual_flag IN VARCHAR2 , -- DEFAULT '1',
2536 in_t_ref_uis IN IntArray) IS
2537
2538 var_ui_node_id CZ_UI_NODES.ui_node_id%TYPE;
2539 var_ui_parent_id CZ_UI_NODES.parent_id%TYPE;
2540 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
2541 var_ui_node_type CZ_UI_NODES.ui_node_type%TYPE;
2542 var_width CZ_UI_NODES.width%TYPE;
2543 var_text_width CZ_UI_NODES.width%TYPE;
2544 var_height CZ_UI_NODES.height%TYPE;
2545 var_text_label_id CZ_UI_NODES.ui_node_id%TYPE;
2546 var_borders CZ_UI_NODES.borders%TYPE:=NO_FLAG;
2547 var_prev_height CZ_UI_NODES.height%TYPE;
2548 var_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
2549 var_root_ps_type CZ_PS_NODES.ps_node_type%TYPE;
2550 var_name CZ_PS_NODES.name%TYPE;
2551 var_tree_seq CZ_PS_NODES.tree_seq%TYPE;
2552 var_intl_text_id CZ_PS_NODES.intl_text_id%TYPE;
2553 var_text_str CZ_INTL_TEXTS.text_str%TYPE;
2554 var_caption_name CZ_INTL_TEXTS.text_str%TYPE;
2555 var_align CZ_UI_NODE_PROPS.value_str%TYPE;
2556 var_ref_root_screen CZ_UI_NODES.ui_node_id%TYPE;
2557 var_model_ref_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
2558 var_use_labels VARCHAR2(1);
2559 Top_Labeled BOOLEAN:=FALSE;
2560
2561 BEGIN
2562 SELECT ui_node_ref_id INTO var_ui_parent_id
2563 FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
2564 AND ui_node_id=in_ui_parent_id;
2565
2566 SELECT ps_node_id,name,tree_seq,intl_text_id,ps_node_type
2567 INTO var_ps_node_id,var_name,var_tree_seq,var_intl_text_id,var_root_ps_type
2568 FROM CZ_PS_NODES WHERE devl_project_id=in_ref_model_id AND parent_id IS NULL
2569 AND deleted_flag=NO_FLAG;
2570
2571 IF var_root_ps_type=BOM_MODEL_NODE_TYPE THEN
2572 NULL;
2573 ELSIF var_root_ps_type=PRODUCT_NODE_TYPE THEN
2574 SELECT ps_node_id,name,tree_seq,intl_text_id
2575 INTO var_ps_node_id,var_name,var_tree_seq,var_intl_text_id
2576 FROM CZ_PS_NODES WHERE devl_project_id=in_ref_model_id AND parent_id=in_ref_model_id
2577 AND ps_node_type=BOM_MODEL_NODE_TYPE AND deleted_flag=NO_FLAG;
2578 ELSE
2579 RETURN;
2580 END IF;
2581
2582 BEGIN
2583 SELECT MIN(model_ref_expl_id) INTO var_model_ref_expl_id
2584 FROM CZ_MODEL_REF_EXPLS a WHERE model_id=Project_Id AND component_id=in_ref_model_id
2585 AND referring_node_id=in_ref_ps_id AND ps_node_type=REFERENCE_NODE_TYPE
2586 AND deleted_flag=NO_FLAG;
2587 EXCEPTION
2588 WHEN OTHERS THEN
2589 var_model_ref_expl_id:=NULL;
2590 END;
2591 BEGIN
2592 SELECT text_str INTO var_text_str FROM CZ_INTL_TEXTS
2593 WHERE intl_text_id=var_intl_text_id;
2594 EXCEPTION
2595 WHEN OTHERS THEN
2596 --
2597 -- if there is a problem with description
2598 -- then use PS name instead
2599 --
2600 var_text_str:=var_name;
2601 var_intl_text_id:=NULL;
2602 END;
2603
2604 SELECT MAX(rel_top_pos) INTO var_top_pos FROM CZ_UI_NODES
2605 WHERE ui_def_id=in_ui_def_id AND parent_id=var_ui_parent_id
2606 AND modified_flags<>CZ_NAVIGATION_MARK AND deleted_flag=NO_FLAG;
2607
2608 SELECT NVL(max(height),DEFAULT_SPACE_BETWEEN) INTO var_prev_height FROM CZ_UI_NODES
2609 WHERE ui_def_id=in_ui_def_id AND parent_id=var_ui_parent_id
2610 AND modified_flags<>CZ_NAVIGATION_MARK AND rel_top_pos=var_top_pos AND deleted_flag=NO_FLAG;
2611
2612 IF var_top_pos<=DEFAULT_HEADER_HEIGHT+DEFAULT_DIVIDER_HEIGHT THEN
2613 var_top_pos:=DEFAULT_HEADER_HEIGHT+DEFAULT_DIVIDER_HEIGHT+DEFAULT_SPACE_BETWEEN;
2614 ELSE
2615 var_top_pos:=var_top_pos+var_prev_height+DEFAULT_SPACE_BETWEEN;
2616 END IF;
2617
2618 --
2619 -- find the value of "UseLabels" property of the screen which is
2620 -- a parent screen for STANDTART ITEM associated with the reference
2621 --
2622 BEGIN
2623 --
2624 -- by default global "UseLabels" property is used
2625 --
2626 var_use_labels:=mUSE_LABELS;
2627
2628 --
2629 -- the nested SELECT statement should always return 1 record
2630 -- because there is just one screen that contains a STANDART ITEM
2631 -- associated with the given reference
2632 -- ( the reference and the STANDART ITEM have the same ps_node_id )
2633 --
2634 SELECT value_str INTO var_use_labels FROM CZ_UI_NODE_PROPS
2635 WHERE ui_node_id=var_ui_parent_id
2636 AND UPPER(key_str)='USELABELS' AND deleted_flag=NO_FLAG;
2637 EXCEPTION
2638 WHEN NO_DATA_FOUND THEN
2639 NULL;
2640 END;
2641
2642 var_ui_node_id:=getUISeqVal;
2643
2644 IF in_t_ref_uis.Count>0 THEN
2645 BEGIN
2646 SELECT ui_node_id INTO var_ref_root_screen FROM CZ_UI_NODES
2647 WHERE ui_def_id=in_t_ref_uis(in_ref_ps_id) AND ui_node_type=UI_SCREEN_TYPE
2648 AND ps_node_id=in_ref_model_id AND deleted_flag=NO_FLAG AND rownum<2;
2649 EXCEPTION
2650 WHEN OTHERS THEN
2651 NULL;
2652 END;
2653 END IF;
2654
2655 IF NOT (in_maximum=1 AND in_minimum=1) OR in_virtual_flag=NO_FLAG THEN
2656
2657 BEGIN
2658 SELECT text_str||' Configurations' INTO var_caption_name
2659 FROM CZ_INTL_TEXTS WHERE intl_text_id=var_intl_text_id;
2660 var_text_width:=set_Text_Width(var_caption_name);
2661 EXCEPTION
2662 WHEN OTHERS THEN
2663 var_text_width:=0;
2664 END;
2665
2666 var_align:='left';
2667 var_text_width:=USABLE_WIDTH;
2668 var_text_label_id:=getUISeqVal;
2669 var_ref_root_screen:=var_text_label_id;
2670 create_TEXT_LABEL(var_text_label_id,var_ui_parent_id,in_ui_def_id,var_ui_node_id,
2671 in_top_pos =>var_top_pos,
2672 in_left_pos =>LEFT_MARGIN,
2673 in_text =>var_caption_name,
2674 in_font_name =>DEFAULT_FONT_NAME_,
2675 in_font_color =>0,
2676 in_font_size =>DEFAULT_FONT_SIZE,
2677 in_align =>var_align,
2678 in_intl_text_id =>null,
2679 in_parent_name =>var_name,
2680 in_width =>var_text_width
2681 ,in_use_default_font => YES_FLAG
2682 ,in_display_flag => NO_FLAG
2683 ,in_font_bold => NO_FLAG
2684 ,in_font_italic => YES_FLAG
2685 ,in_font_underline => NO_FLAG
2686 ,in_title => NO_FLAG
2687 );
2688
2689 var_top_pos:=var_top_pos+DEFAULT_CONTROL_HEIGHT+DEFAULT_SPACE_BETWEEN;
2690
2691 var_ui_node_type:=UI_BOM_INST_ITEM_TYPE;
2692 var_width:=FLOOR(USABLE_WIDTH/2);
2693 create_BUTTON(getUiSeqVal,var_ui_parent_id,in_ui_def_id,in_ref_ps_id,
2694 ' Add ',
2695 in_top_pos => var_top_pos,
2696 in_left_pos => CENTER_LINE+DEFAULT_SPACE_BETWEEN,
2697 in_button_type => DEF_ADD_BUTTON,
2698 in_modified_flag => YES_FLAG,
2699 in_ui_node_ref_id => var_ui_node_id);
2700
2701 generateUIProps(var_ui_node_id, in_ui_def_id, DEF_INST_BOM,
2702 0, YES_FLAG, YES_FLAG,
2703 NO_FLAG, NO_FLAG, NO_FLAG,
2704 0, 'left', '0');
2705
2706 var_height:=DEFAULT_BOM_INST_ITEM_HEIGHT;
2707 var_borders:=YES_FLAG;
2708 ELSE
2709 var_ui_node_type:=UI_BOM_STANDART_TYPE;
2710 var_width:=USABLE_WIDTH;
2711 var_height:=DEFAULT_BOM_HEIGHT;
2712 var_ui_node_type:=UI_BOM_STANDART_TYPE;
2713 generateUIProps(var_ui_node_id,in_ui_def_id,DEF_CLASS,
2714 0, YES_FLAG, YES_FLAG,
2715 NO_FLAG, NO_FLAG, NO_FLAG,
2716 0, 'left', '0');
2717 END IF;
2718
2719 set_UI_NODES(in_ui_node_id =>var_ui_node_id,
2720 in_parent_id =>var_ui_parent_id,
2721 in_ui_def_id =>in_ui_def_id,
2722 in_ps_node_id =>in_ref_ps_id,
2723 in_ui_node_ref_id =>var_ref_root_screen,
2724 in_name =>var_name,
2725 in_component_id =>in_ref_ps_id,
2726 in_ui_node_type =>var_ui_node_type,
2727 in_lce_id =>'P_'||to_char(var_ps_node_id),
2728 in_tree_display_flag=>YES_FLAG,
2729 in_tree_seq =>var_tree_seq*mMAX_NUMBER_PAGES,
2730 in_width =>var_width,
2731 in_height =>var_height,
2732 in_top_pos =>var_top_pos,
2733 in_left_pos =>LEFT_MARGIN,
2734 in_font_name =>DEFAULT_FONT_NAME,
2735 in_font_bold =>NO_FLAG,
2736 in_font_color =>0,
2737 in_font_italic =>NO_FLAG,
2738 in_font_size =>DEFAULT_FONT_SIZE,
2739 in_font_underline =>NO_FLAG,
2740 in_controltype =>9,
2741 in_bkgrnd_style =>YES_FLAG,
2742 in_intl_text_id =>var_intl_text_id,
2743 in_borders =>var_borders,
2744 in_model_ref_expl_id=>var_model_ref_expl_id,
2745 in_use_labels =>var_use_labels);
2746 last_TOP_POS:=var_top_pos+DEFAULT_BOM_HEIGHT+DEFAULT_SPACE_BETWEEN;
2747 last_HEIGHT:=DEFAULT_BOM_HEIGHT;
2748
2749 EXCEPTION
2750 WHEN NO_DATA_FOUND THEN
2751 NULL;
2752 WHEN OTHERS THEN
2753 LOG_REPORT('CZ_UI_GENERATOR.add_BOM_MODEL_ITEM','Procedure add_BOM_MODEL_ITEM() failed : '||SQLERRM, CZ_ERROR_URGENCY);
2754 END add_BOM_MODEL_ITEM;
2755
2756 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2757 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
2758
2759 PROCEDURE create_REFERENCE_Model
2760 (in_node_id IN INTEGER,
2761 in_parent_id IN INTEGER,
2762 in_ui_def_id IN INTEGER,
2763 in_node_ref_id IN INTEGER,
2764 in_arr IN UIStructure,
2765 out_ref_ui_id OUT NOCOPY INTEGER) IS
2766
2767 curr_button_id CZ_UI_NODES.ui_node_id%TYPE;
2768 var_button_width CZ_UI_NODES.width%TYPE;
2769 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
2770 var_butt_pos CZ_UI_NODES.rel_top_pos%TYPE;
2771 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
2772 var_ui_tempo CZ_UI_NODES.ui_node_ref_id%TYPE;
2773 var_ps_id CZ_PS_NODES.ps_node_id%TYPE;
2774 var_ref_id CZ_PS_NODES.reference_id%TYPE;
2775 var_name CZ_PS_NODES.name%TYPE;
2776 var_ref_name CZ_PS_NODES.name%TYPE;
2777 var_button_name CZ_PS_NODES.name%TYPE;
2778 var_ui_name CZ_PS_NODES.name%TYPE;
2779 var_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
2780 var_model_id CZ_PS_NODES.devl_project_id%TYPE;
2781 var_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
2782 var_ref_root_screen INTEGER;
2783 counter INTEGER;
2784 ind INTEGER;
2785 existsDeleteMe VARCHAR2(1);
2786 NO_MODEL_REF_EXPL_ID EXCEPTION;
2787
2788 BEGIN
2789 BEGIN
2790 ERROR_CODE:='00191';
2791 SELECT MIN(model_ref_expl_id) INTO var_expl_id FROM CZ_MODEL_REF_EXPLS a
2792 WHERE referring_node_id=in_arr.ps_node_id AND model_id=Project_Id AND
2793 deleted_flag=NO_FLAG;
2794 ERROR_CODE:='00192';
2795 EXCEPTION
2796 WHEN NO_DATA_FOUND THEN
2797 LOG_REPORT('CZ_UI_GENERATOR.create_REF_Model',
2798 'Reference'||'"'||in_arr.name||'" can not be created : there is no model_ref_exl_id for this reference.'||
2799 SQLERRM, CZ_ERROR_URGENCY);
2800
2801 RAISE NO_MODEL_REF_EXPL_ID;
2802 END;
2803
2804 SELECT name INTO var_name FROM CZ_PS_NODES
2805 WHERE ps_node_id=in_arr.reference_id AND deleted_flag=NO_FLAG;
2806 out_ref_ui_id:=get_last_UI(in_arr.reference_id);
2807 ERROR_CODE:='00193';
2808
2809 var_ref_name:=in_arr.name;
2810
2811 set_UI_NODES(in_ui_node_id =>in_node_id,
2812 in_parent_id =>in_parent_id,
2813 in_ui_def_id =>in_ui_def_id,
2814 in_ps_node_id =>in_arr.ps_node_id,
2815 in_ui_node_ref_id =>NULL,
2816 in_name =>var_ref_name,
2817 in_component_id =>in_arr.ps_node_id,
2818 in_ui_node_type =>UI_REFERENCE_REF_TYPE,
2819 in_tree_display_flag=>NO_FLAG,
2820 in_tree_seq =>in_arr.tree_seq,
2821 in_font_name =>DEFAULT_FONT_NAME,
2822 in_font_bold =>NO_FLAG,
2823 in_font_color =>0,
2824 in_font_italic =>NO_FLAG,
2825 in_font_size =>DEFAULT_FONT_SIZE,
2826 in_font_underline =>NO_FLAG,
2827 in_intl_text_id =>in_arr.intl_text_id);
2828 ERROR_CODE:='00194';
2829
2830 UPDATE CZ_UI_NODES SET model_ref_expl_id=var_expl_id,ui_def_ref_id=out_ref_ui_id
2831 WHERE ui_node_id=in_node_id AND ui_def_id=in_ui_def_id;
2832
2833 ERROR_CODE:='00195';
2834
2835 generateUIProps(in_node_id,in_ui_def_id,
2836 DEF_REFERENCE,
2837 0, TO_CHAR(in_arr.minimum), TO_CHAR(in_arr.maximum),
2838 NO_FLAG, NO_FLAG, in_arr.virtual_flag,
2839 0, 'left', '0');
2840
2841 ERROR_CODE:='00196';
2842
2843 IF mUI_STYLE=DHTML_STYLE_UI THEN
2844 var_model_id:=in_arr.reference_id;
2845
2846 SELECT ps_node_type INTO var_ps_node_type
2847 FROM CZ_PS_NODES
2848 WHERE devl_project_id=var_model_id
2849 AND parent_id IS NULL AND deleted_flag=NO_FLAG;
2850 ERROR_CODE:='00197';
2851
2852 IF var_ps_node_type=BOM_MODEL_NODE_TYPE THEN
2853 counter:=ref_boms.Count+1;
2854 ref_boms(counter).ui_parent_id:=in_parent_id;
2855 ref_boms(counter).model_id:=var_model_id;
2856 ref_boms(counter).ps_node_id:=in_arr.ps_node_id;
2857 ref_boms(counter).maximum:=in_arr.maximum;
2858 ref_boms(counter).minimum:=in_arr.minimum;
2859 ref_boms(counter).virtual_flag:=in_arr.virtual_flag;
2860 END IF;
2861 ERROR_CODE:='00198';
2862
2863 END IF;
2864
2865 BEGIN
2866 -- Add Button --
2867 IF ((in_arr.virtual_flag=NO_FLAG OR NOT(in_arr.maximum=1 AND in_arr.minimum=1))
2868 AND var_ps_node_type<>BOM_MODEL_NODE_TYPE)
2869 AND mUI_STYLE=DHTML_STYLE_UI THEN
2870
2871 curr_button_id:=getUISeqVal;
2872 var_button_name:='Add '||var_ref_name;
2873
2874 var_ui_tempo:=in_node_ref_id;
2875
2876 IF MODE_REFRESH THEN
2877
2878 SELECT NVL(MAX(rel_top_pos),0) INTO var_butt_pos FROM CZ_UI_NODES
2879 WHERE parent_id=in_node_ref_id AND deleted_flag=NO_FLAG;
2880 ERROR_CODE:='00199';
2881
2882 IF var_butt_pos=0 OR var_butt_pos<=DEFAULT_HEADER_HEIGHT+DEFAULT_DIVIDER_HEIGHT THEN
2883 var_butt_pos:=START_TOP_POS;
2884 ELSE
2885 var_butt_pos:=DEFAULT_SPACE_BETWEEN;
2886 END IF;
2887 last_HEIGHT:=DEFAULT_CONTROL_HEIGHT;
2888 END IF;
2889
2890 create_BUTTON(curr_button_id,in_node_ref_id,in_ui_def_id,
2891 in_arr.ps_node_id,var_button_name,
2892 in_top_pos =>var_butt_pos,
2893 in_left_pos =>LEFT_MARGIN,
2894 in_button_type=>DEF_ADD_BUTTON,
2895 in_modified_flag => 0);
2896 ERROR_CODE:='00200';
2897
2898
2899 IF latest_buttons.Count=0 THEN
2900 ind:=1;
2901 ELSE
2902 ind:=latest_buttons.Last+1;
2903 END IF;
2904 latest_buttons(ind).id:=curr_button_id;
2905 ERROR_CODE:='00201';
2906
2907 BEGIN
2908 existsDeleteMe:=NO_FLAG;
2909 ERROR_CODE:='00202';
2910
2911 SELECT YES_FLAG INTO existsDeleteMe FROM dual
2912 WHERE EXISTS(SELECT 1 FROM CZ_UI_NODES
2913 WHERE ui_def_id=in_ui_def_id AND ps_node_id=Project_Id AND
2914 name=CZ_DELETE_BUTTON_CAPTION);
2915 ERROR_CODE:='00203';
2916 EXCEPTION
2917 WHEN NO_DATA_FOUND THEN
2918 NULL;
2919 END;
2920
2921 IF existsDeleteMe=NO_FLAG THEN
2922
2923 ERROR_CODE:='00204';
2924
2925 -- Delete Button --
2926 SELECT ui_node_id,name INTO var_ui_tempo,var_ui_name FROM CZ_UI_NODES
2927 WHERE ui_def_id=in_ui_def_id AND ps_node_id=Project_Id AND
2928 ui_node_type<>UI_COMPONENT_REF_TYPE AND ui_node_ref_id IS NOT NULL;
2929 ERROR_CODE:='00205';
2930
2931 curr_button_id:=getUISeqVal;
2932 create_BUTTON(curr_button_id,var_ui_tempo,in_ui_def_id,
2933 Project_Id,CZ_DELETE_BUTTON_CAPTION,
2934 in_top_pos =>DELETE_BUTTON_TOP_POS,
2935 in_left_pos =>DELETE_BUTTON_LEFT_POS,
2936 in_button_type=>DEF_DELETE_BUTTON,
2937 in_width =>DELETE_BUTTON_WIDTH,
2938 in_modified_flag => 0);
2939 ERROR_CODE:='00206';
2940
2941
2942 END IF;
2943
2944 BEGIN
2945 existsDeleteMe:=NO_FLAG;
2946 ERROR_CODE:='00207';
2947
2948 SELECT devl_project_id INTO var_model_id FROM CZ_UI_DEFS
2949 WHERE ui_def_id=out_ref_ui_id AND deleted_flag=NO_FLAG;
2950 ERROR_CODE:='00208';
2951
2952 SELECT YES_FLAG INTO existsDeleteMe FROM dual
2953 WHERE EXISTS(SELECT 1 FROM CZ_UI_NODES
2954 WHERE ui_def_id=out_ref_ui_id AND ps_node_id=var_model_Id AND
2955 name=CZ_DELETE_BUTTON_CAPTION);
2956 ERROR_CODE:='00209';
2957
2958 EXCEPTION
2959 WHEN NO_DATA_FOUND THEN
2960 NULL;
2961 END;
2962
2963 IF existsDeleteMe=NO_FLAG THEN
2964 BEGIN
2965 ERROR_CODE:='00210';
2966
2967 -- Delete Button --
2968 SELECT ui_node_id,name INTO var_ui_tempo,var_ui_name FROM CZ_UI_NODES
2969 WHERE ui_def_id=out_ref_ui_id AND ps_node_id=var_model_Id AND
2970 ui_node_type<>UI_COMPONENT_REF_TYPE AND ui_node_ref_id IS NOT NULL;
2971 ERROR_CODE:='00211';
2972
2973 curr_button_id:=getUISeqVal;
2974 create_BUTTON(curr_button_id,var_ui_tempo,out_ref_ui_id,
2975 var_model_id,CZ_DELETE_BUTTON_CAPTION,
2976 in_top_pos =>DELETE_BUTTON_TOP_POS,
2977 in_left_pos =>DELETE_BUTTON_LEFT_POS,
2978 in_button_type=>DEF_DELETE_BUTTON,
2979 in_width =>DELETE_BUTTON_WIDTH,
2980 in_modified_flag => 0);
2981 ERROR_CODE:='00212';
2982
2983 EXCEPTION
2984 WHEN NO_DATA_FOUND THEN
2985 NULL;
2986 END;
2987 END IF;
2988 END IF;
2989
2990 EXCEPTION
2991 WHEN NO_MODEL_REF_EXPL_ID THEN
2992 LOG_REPORT('CZ_UI_GENERATOR.create_REFERENCE_Model',
2993 'Reference'||'"'||in_arr.name||'" can not be created : there is no model_ref_exl_id for this reference.'||
2994 SQLERRM, CZ_ERROR_URGENCY);
2995 WHEN NO_DATA_FOUND THEN
2996 FND_REPORT(CZ_UI_GEN_NO_BUTTONS,TOKEN_UI_NODE,var_ui_name, CZ_ERROR_URGENCY);
2997 END;
2998
2999 END create_REFERENCE_Model;
3000
3001 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3002 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3003
3004 PROCEDURE create_COMPONENT
3005 (in_node_id IN INTEGER,
3006 in_parent_id IN INTEGER,
3007 in_ui_def_id IN INTEGER,
3008 in_prod_id IN INTEGER,
3009 in_arr IN UIStructure) IS
3010
3011 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
3012 curr_bitmap_id CZ_UI_NODES.ui_node_id%TYPE;
3013 curr_button_id CZ_UI_NODES.ui_node_id%TYPE;
3014 curr_tree_seq CZ_UI_NODES.tree_seq%TYPE;
3015 ind INTEGER;
3016
3017 BEGIN
3018
3019 last_TOP_POS:=DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN;
3020 curr_label_id:=getUISeqVal;
3021 curr_bitmap_id:=getUISeqVal;
3022
3023 set_UI_NODES(in_node_id,in_parent_id,in_ui_def_id,
3024 in_arr.ps_node_id,curr_label_id,
3025 in_arr.name,UI_COMPONENT_TYPE,DEFAULT_BACKGROUND_COLOR,NULL,
3026 in_tree_display_flag=>YES_FLAG,
3027 in_tree_seq =>in_arr.tree_seq,
3028 in_use_default_font =>YES_FLAG,
3029 in_use_default_color=>YES_FLAG,
3030 in_use_default_pic =>YES_FLAG,
3031 in_font_name =>DEFAULT_FONT_NAME,
3032 in_font_bold =>NO_FLAG,
3033 in_font_color =>0,
3034 in_font_italic =>NO_FLAG,
3035 in_font_size =>DEFAULT_FONT_SIZE,
3036 in_font_underline =>NO_FLAG);
3037
3038 generateUIProps(in_node_id,in_ui_def_id,
3039 DEF_COMPONENT,
3040 0, TO_CHAR(in_arr.minimum), TO_CHAR(in_arr.maximum),
3041 NO_FLAG, NO_FLAG, NO_FLAG,
3042 0, 'left', '0');
3043
3044 --
3045 -- create Text Label for COMPONENT --
3046 --
3047 create_TEXT_LABEL(curr_label_id,in_node_id,in_ui_def_id,curr_label_id,
3048 in_top_pos =>DEFAULT_REL_TOP,
3049 in_left_pos =>DEFAULT_REL_LEFT,
3050 in_text =>in_arr.caption_name,
3051 in_font_size =>DEFAULT_CAPTION_FONT_SIZE,
3052 in_font_color =>DEFAULT_TITLE_COLOR,
3053 in_display_flag =>YES_FLAG,
3054 in_use_default_font =>NO_FLAG,
3055 in_title =>YES_FLAG,
3056 in_name =>'Page Title',
3057 in_align =>'left',
3058 in_intl_text_id =>in_arr.intl_text_id,
3059 in_parent_name =>in_arr.name
3060 ,in_font_name => DEFAULT_FONT_NAME
3061 ,in_font_bold => NO_FLAG
3062 ,in_font_italic => YES_FLAG
3063 ,in_font_underline => NO_FLAG
3064 );
3065
3066 --
3067 -- create DIVIDER for COMPONENT --
3068 --
3069 create_DIVIDER(curr_bitmap_id,in_node_id,in_ui_def_id, 37,45, 0);
3070
3071 IF in_arr.virtual_flag=NO_FLAG
3072 AND mUI_STYLE=DHTML_STYLE_UI THEN
3073
3074 UPDATE CZ_UI_NODES SET component_id=in_arr.ps_node_id,ps_node_id=in_arr.ps_node_id
3075 WHERE ui_node_ref_id=in_node_id;
3076
3077 -- Delete Button --
3078 create_BUTTON(getUISeqVal,in_node_id,in_ui_def_id,
3079 in_arr.ps_node_id,CZ_DELETE_BUTTON_CAPTION,
3080 in_top_pos =>DELETE_BUTTON_TOP_POS,
3081 in_left_pos =>DELETE_BUTTON_LEFT_POS,
3082 in_button_type=>DEF_DELETE_BUTTON,
3083 in_width =>DELETE_BUTTON_WIDTH,
3084 in_modified_flag => 0);
3085
3086 -- Add Button --
3087
3088 curr_button_id:=getUISeqVal;
3089 IF in_prod_id IS NULL THEN
3090 add_buttons(in_arr.ps_node_id).id:=getUISeqVal;
3091 add_buttons(in_arr.ps_node_id).name:=in_arr.caption_name;
3092 add_buttons(in_arr.ps_node_id).ps_parent_id:=in_arr.parent_id;
3093 ELSE
3094 create_BUTTON(curr_button_id,in_prod_id,in_ui_def_id,
3095 in_arr.ps_node_id,'Add '||in_arr.caption_name,
3096 in_top_pos =>LEFT_MARGIN,
3097 in_left_pos =>LEFT_MARGIN,
3098 in_button_type =>DEF_ADD_BUTTON,
3099 in_modified_flag => 0);
3100
3101 END IF;
3102 IF latest_buttons.Count=0 THEN
3103 ind:=1;
3104 ELSE
3105 ind:=latest_buttons.Last+1;
3106 END IF;
3107 latest_buttons(ind).id:=curr_button_id;
3108 END IF; ---- end of Maximum>1 case ----
3109
3110 END create_COMPONENT;
3111
3112 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3113 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3114
3115 PROCEDURE create_COMPONENT_Model
3116 (in_node_id IN INTEGER,
3117 in_parent_id IN INTEGER,
3118 in_ui_def_id IN INTEGER,
3119 in_node_ref_id IN INTEGER,
3120 in_arr IN UIStructure) IS
3121
3122 var_ps_id CZ_UI_NODES.ps_node_id%TYPE;
3123
3124 BEGIN
3125
3126 -- IF in_arr.virtual_flag=NO_FLAG THEN
3127 var_ps_id:=in_arr.ps_node_id;
3128 -- ELSE
3129 -- var_ps_id:=NULL;
3130 -- END IF;
3131
3132 set_UI_NODES(in_ui_node_id =>in_node_id,
3133 in_parent_id =>in_parent_id,
3134 in_ui_def_id =>in_ui_def_id,
3135 in_ps_node_id =>var_ps_id,
3136 in_ui_node_ref_id =>in_node_ref_id,
3137 in_name =>in_arr.name,
3138 in_component_id =>var_ps_id,
3139 in_ui_node_type =>UI_COMPONENT_REF_TYPE,
3140 in_tree_display_flag=>NO_FLAG,
3141 in_tree_seq =>in_arr.tree_seq,
3142 in_font_name =>DEFAULT_FONT_NAME,
3143 in_font_bold =>NO_FLAG,
3144 in_font_color =>0,
3145 in_font_italic =>NO_FLAG,
3146 in_font_size =>DEFAULT_FONT_SIZE,
3147 in_font_underline =>NO_FLAG,
3148 in_intl_text_id =>in_arr.intl_text_id);
3149
3150 generateUIProps(in_node_id,in_ui_def_id,DEF_COMPONENT_SCREEN,
3151 0, in_arr.minimum, in_arr.maximum,
3152 NO_FLAG, NO_FLAG, in_arr.virtual_flag,
3153 0, 'left', '0');
3154
3155 END create_COMPONENT_Model;
3156
3157 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3158 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3159
3160 PROCEDURE createBOM_MODEL
3161 (in_node_id IN INTEGER,
3162 in_parent_id IN INTEGER,
3163 in_ui_def_id IN INTEGER,
3164 in_arr IN UIStructure) IS
3165
3166 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
3167 curr_bitmap_id CZ_UI_NODES.ui_node_id%TYPE;
3168
3169 BEGIN
3170
3171 ERROR_CODE:='00300';
3172
3173 last_TOP_POS:=DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN;
3174 curr_label_id:=getUISeqVal;
3175 curr_bitmap_id:=getUISeqVal;
3176
3177 set_UI_NODES(in_node_id,in_parent_id,in_ui_def_id,in_arr.ps_node_id,
3178 curr_label_id,in_arr.name,UI_COMPONENT_TYPE,DEFAULT_BACKGROUND_COLOR,NULL,
3179 in_tree_display_flag=>YES_FLAG,
3180 in_tree_seq =>in_arr.tree_seq,
3181 in_use_default_font =>YES_FLAG,
3182 in_use_default_color=>YES_FLAG,
3183 in_use_default_pic =>YES_FLAG,
3184 in_top_pos =>10,
3185 in_left_pos =>32,
3186 in_font_name =>DEFAULT_FONT_NAME,
3187 in_font_bold =>NO_FLAG,
3188 in_font_color =>0,
3189 in_font_italic =>NO_FLAG,
3190 in_font_size =>DEFAULT_FONT_SIZE,
3191 in_font_underline =>NO_FLAG);
3192
3193 ERROR_CODE:='00301';
3194
3195 generateUIProps(in_node_id,in_ui_def_id,DEF_MODELBOM,
3196 0, YES_FLAG, YES_FLAG,
3197 NO_FLAG, NO_FLAG, NO_FLAG,
3198 0, 'left', '0');
3199
3200 ERROR_CODE:='00302';
3201
3202 /* ************** create Text Label for BOM_MODEL ************** */
3203 create_TEXT_LABEL(curr_label_id,in_node_id,in_ui_def_id,curr_label_id,
3204 in_top_pos =>DEFAULT_REL_TOP,
3205 in_left_pos =>DEFAULT_REL_LEFT,
3206 in_text =>in_arr.caption_name,
3207 in_font_color =>DEFAULT_TITLE_COLOR,
3208 in_font_size =>DEFAULT_CAPTION_FONT_SIZE,
3209 in_display_flag =>YES_FLAG,
3210 in_use_default_font =>NO_FLAG,
3211 in_title =>YES_FLAG,
3212 in_name =>'Page Title',
3213 in_align =>'left',
3214 in_intl_text_id =>in_arr.intl_text_id,
3215 in_parent_name =>in_arr.name
3216 ,in_font_name => DEFAULT_FONT_NAME
3217 ,in_font_bold => NO_FLAG
3218 ,in_font_italic => YES_FLAG
3219 ,in_font_underline => NO_FLAG
3220 );
3221
3222 ERROR_CODE:='00303';
3223
3224 /* ************** create DIVIDER Bitmap for BOM_MODEL ********** */
3225 create_DIVIDER(curr_bitmap_id,in_node_id,in_ui_def_id, 37, 45, 0);
3226
3227 ERROR_CODE:='00304';
3228
3229 --
3230 -- set ui_node_ref_id for UI BOM STANDART ITEMS associted with BOM MODEL --
3231 --
3232 BEGIN
3233 UPDATE CZ_UI_NODES SET ui_node_ref_id=in_node_id
3234 WHERE ui_def_id=in_ui_def_id AND ui_node_id IN
3235 (SELECT ui_node_id FROM CZ_UI_NODES
3236 WHERE ui_def_id=in_ui_def_id AND ui_node_type=UI_BOM_STANDART_TYPE
3237 AND ps_node_id=in_arr.ps_node_id AND deleted_flag=NO_FLAG);
3238
3239 ERROR_CODE:='00305';
3240 EXCEPTION
3241 WHEN OTHERS THEN
3242 FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME,'CZ_UI_GENERATOR.createBOM_MODEL at point '||ERROR_CODE,
3243 CZ_ERROR_URGENCY);
3244 END;
3245
3246 END createBOM_MODEL;
3247
3248 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3249 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3250
3251 PROCEDURE createBOM_MODEL_Model
3252 (in_node_id IN INTEGER,
3253 in_parent_id IN INTEGER,
3254 in_ui_def_id IN INTEGER,
3255 in_node_ref_id IN INTEGER,
3256 in_arr IN UIStructure) IS
3257
3258 curr_tree_seq CZ_UI_NODES.tree_seq%TYPE;
3259
3260 BEGIN
3261
3262 set_UI_NODES(in_ui_node_id =>in_node_id,
3263 in_parent_id =>in_parent_id,
3264 in_ui_def_id =>in_ui_def_id,
3265 in_ps_node_id =>in_arr.ps_node_id,
3266 in_ui_node_ref_id =>in_node_ref_id,
3267 in_name =>in_arr.name,
3268 in_component_id =>NULL,
3269 in_ui_node_type =>UI_COMPONENT_REF_TYPE,
3270 in_tree_display_flag=>NO_FLAG,
3271 in_tree_seq =>in_arr.tree_seq,
3272 in_font_name =>DEFAULT_FONT_NAME,
3273 in_font_bold =>NO_FLAG,
3274 in_font_color =>0,
3275 in_font_italic =>NO_FLAG,
3276 in_font_size =>DEFAULT_FONT_SIZE,
3277 in_font_underline =>NO_FLAG,
3278 in_intl_text_id =>in_arr.intl_text_id);
3279
3280 generateUIProps(in_node_id,in_ui_def_id,DEF_MODELBOM_TREE,
3281 0, YES_FLAG, YES_FLAG,
3282 NO_FLAG, NO_FLAG, in_arr.virtual_flag,
3283 0, 'left', '0');
3284
3285 END createBOM_MODEL_Model;
3286
3287 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3288 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3289
3290 PROCEDURE createBOM_CLASS
3291 (in_node_id IN INTEGER,
3292 in_parent_id IN INTEGER,
3293 in_ui_def_id IN INTEGER,
3294 in_arr IN UIStructure) IS
3295
3296 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
3297 curr_bitmap_id CZ_UI_NODES.ui_node_id%TYPE;
3298 var_screen_oc_id CZ_UI_NODES.ui_node_id%TYPE;
3299
3300 BEGIN
3301
3302 ERROR_CODE:='00310';
3303
3304 last_TOP_POS:=DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN;
3305 curr_label_id:=getUISeqVal;
3306 curr_bitmap_id:=getUISeqVal;
3307
3308 set_UI_NODES(in_ui_node_id =>in_node_id,
3309 in_parent_id =>in_parent_id,
3310 in_ui_def_id =>in_ui_def_id,
3311 in_ps_node_id =>in_arr.ps_node_id,
3312 in_ui_node_ref_id =>curr_label_id,
3313 in_name =>in_arr.name,
3314 in_ui_node_type =>UI_BOM_OPTION_CLASS_TYPE,
3315 in_background_color =>DEFAULT_BACKGROUND_COLOR,
3316 in_component_id =>NULL,
3317 in_width =>384,
3318 in_height =>DEFAULT_BOM_HEIGHT,
3319 in_lce_id =>NULL,
3320 in_tree_display_flag=>YES_FLAG,
3321 in_tree_seq =>in_arr.tree_seq,
3322 in_use_default_font =>YES_FLAG,
3323 in_use_default_color=>YES_FLAG,
3324 in_use_default_pic =>YES_FLAG,
3325 in_top_pos =>10,
3326 in_left_pos =>32,
3327 in_font_name =>DEFAULT_FONT_NAME,
3328 in_font_bold =>NO_FLAG,
3329 in_font_color =>0,
3330 in_font_italic =>NO_FLAG,
3331 in_font_size =>DEFAULT_FONT_SIZE,
3332 in_font_underline =>NO_FLAG);
3333
3334 ERROR_CODE:='00311';
3335
3336 generateUIProps(in_node_id,in_ui_def_id,DEF_CLASSES,
3337 0, YES_FLAG, YES_FLAG,
3338 NO_FLAG, NO_FLAG, NO_FLAG,
3339 0, 'left', '0');
3340
3341 ERROR_CODE:='00312';
3342
3343 --
3344 -- create Text Label for BOM_OPTION_CLASS --
3345 --
3346 create_TEXT_LABEL(curr_label_id,in_node_id,in_ui_def_id,in_node_id,
3347 in_top_pos =>DEFAULT_REL_TOP,
3348 in_left_pos =>DEFAULT_REL_LEFT,
3349 in_text =>in_arr.caption_name,
3350 in_font_name =>DEFAULT_FONT_NAME,
3351 in_font_color =>DEFAULT_TITLE_COLOR,
3352 in_font_italic =>YES_FLAG,
3353 in_font_size =>DEFAULT_CAPTION_FONT_SIZE,
3354 in_display_flag =>YES_FLAG,
3355 in_use_default_font =>NO_FLAG,
3356 in_title =>YES_FLAG,
3357 in_name =>'Page Title',
3358 in_align =>'left',
3359 in_intl_text_id =>in_arr.intl_text_id,
3360 in_parent_name =>in_arr.name
3361 ,in_font_bold => NO_FLAG
3362 ,in_font_underline => NO_FLAG
3363 );
3364
3365 ERROR_CODE:='00313';
3366
3367 --
3368 -- create DIVIDER for BOM_OPTION_CLASS --
3369 --
3370 create_DIVIDER(curr_bitmap_id,in_node_id,in_ui_def_id, 37, 45, 0);
3371
3372 ERROR_CODE:='00314';
3373
3374 --
3375 -- set ui_node_ref_id for UI BOM STANDART ITEMS associted with BOM MODEL --
3376 --
3377 BEGIN
3378 UPDATE CZ_UI_NODES SET ui_node_ref_id=in_node_id
3379 WHERE ui_def_id=in_ui_def_id AND ui_node_id IN
3380 (SELECT ui_node_id FROM CZ_UI_NODES
3381 WHERE ui_def_id=in_ui_def_id AND ui_node_type=UI_BOM_STANDART_TYPE
3382 AND ps_node_id=in_arr.ps_node_id AND deleted_flag=NO_FLAG);
3383
3384 ERROR_CODE:='00315';
3385 EXCEPTION
3386 WHEN OTHERS THEN
3387 FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME,'CZ_UI_GENERATOR.createBOM_CLASS at point '||ERROR_CODE,
3388 CZ_ERROR_URGENCY);
3389 END;
3390
3391 END createBOM_CLASS;
3392
3393 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3394 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3395
3396 PROCEDURE createBOM_CLASS_Model
3397 (in_node_id IN INTEGER,
3398 in_parent_id IN INTEGER,
3399 in_ui_def_id IN INTEGER,
3400 in_node_ref_id IN INTEGER,
3401 in_arr IN UIStructure) IS
3402
3403 BEGIN
3404
3405 set_UI_NODES(in_ui_node_id =>in_node_id,
3406 in_parent_id =>in_parent_id,
3407 in_ui_def_id =>in_ui_def_id,
3408 in_ps_node_id =>in_arr.ps_node_id,
3409 in_ui_node_ref_id =>in_node_ref_id,
3410 in_name =>in_arr.name,
3411 in_component_id =>NULL,
3412 in_ui_node_type =>UI_COMPONENT_REF_TYPE,
3413 in_tree_display_flag=>NO_FLAG,
3414 in_tree_seq =>in_arr.tree_seq,
3415 in_font_name =>DEFAULT_FONT_NAME,
3416 in_font_bold =>NO_FLAG,
3417 in_font_color =>0,
3418 in_font_italic =>NO_FLAG,
3419 in_font_size =>DEFAULT_FONT_SIZE,
3420 in_font_underline =>NO_FLAG,
3421 in_intl_text_id =>in_arr.intl_text_id);
3422
3423 --generateUIProps(in_node_id,in_ui_def_id,DEF_CLASSBOM_TREE);
3424
3425 END createBOM_CLASS_Model;
3426
3427 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3428 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3429
3430 FUNCTION generate_UI_DEF RETURN NUMBER IS
3431 var_ui_def_id CZ_UI_DEFS.ui_def_id%TYPE:=-1;
3432 var_devl_project_id CZ_UI_DEFS.DEVL_PROJECT_ID%TYPE;
3433 var_component_id CZ_UI_DEFS.COMPONENT_ID%TYPE;
3434 var_ui_style CZ_UI_DEFS.UI_STYLE%TYPE;
3435 var_tree_seq CZ_UI_DEFS.TREE_SEQ%TYPE;
3436 CURSOR c1 IS
3437 SELECT ui_def_id FROM CZ_UI_DEFS
3438 WHERE devl_project_id=Project_Id AND component_id IS NULL;
3439 var_c1 INTEGER;
3440
3441 BEGIN
3442
3443 OPEN c1;
3444 FETCH c1 INTO var_c1;
3445 IF c1%NOTFOUND THEN
3446 SELECT CZ_UI_DEFS_S.NEXTVAL INTO MUID FROM DUAL;
3447
3448 INSERT INTO CZ_UI_DEFS(ui_def_id,name,devl_project_id,component_id,
3449 ui_style,gen_version,gen_header,look_and_feel,deleted_flag)
3450 VALUES(MUID,'MUID',Project_Id,NULL,-1,GLOBAL_GEN_VERSION,GLOBAL_GEN_HEADER,NULL,NO_FLAG);
3451
3452 END IF;
3453 CLOSE c1;
3454
3455 SELECT CZ_UI_DEFS_S.NEXTVAL INTO var_ui_def_id FROM DUAL;
3456
3457 UI_Version:=generateUIVersion(Project_id);
3458 IF UI_Version>1 THEN
3459 InterfaceName:=SUBSTR(Model_Name||' User Interface '||TO_CHAR(UI_Version),1,255);
3460 ELSE
3461 InterfaceName:=SUBSTR(Model_Name||' User Interface',1,255);
3462 END IF;
3463
3464 BEGIN
3465 SELECT NVL(MAX(tree_seq),0)+1 INTO var_tree_seq FROM CZ_UI_DEFS
3466 WHERE component_id=Project_Id AND deleted_flag=NO_FLAG;
3467 EXCEPTION
3468 WHEN OTHERS THEN
3469 var_tree_seq:=1;
3470 END;
3471
3472 INSERT INTO CZ_UI_DEFS(ui_def_id,name,devl_project_id,component_id,ui_style,gen_version,
3473 gen_header,look_and_feel,tree_seq,deleted_flag)
3474 VALUES(var_ui_def_id,InterfaceName,Project_Id,Model_Id,mUI_STYLE,GLOBAL_GEN_VERSION,
3475 GLOBAL_GEN_HEADER,mLOOK_AND_FEEL,var_tree_seq,NO_FLAG);
3476
3477 RETURN var_ui_def_id;
3478
3479 EXCEPTION
3480 WHEN NO_DATA_FOUND THEN
3481 FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME,'CZ_UI_GENERATOR.generate_UI_DEF',
3482 CZ_ERROR_URGENCY);
3483 WHEN OTHERS THEN
3484 FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME,'CZ_UI_GENERATOR.generate_UI_DEF',
3485 CZ_ERROR_URGENCY);
3486 END generate_UI_DEF;
3487
3488 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3489 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3490
3491 FUNCTION create_Page
3492 (in_ui_tree_parent_id IN INTEGER,
3493 in_ui_parent_id IN INTEGER,
3494 in_ps_node_id IN INTEGER,
3495 in_intl_text_id IN INTEGER,
3496 in_tree_seq IN INTEGER,
3497 in_page_name IN VARCHAR2,
3498 in_ui_def_id IN INTEGER,
3499 in_counter IN INTEGER) RETURN INTEGER IS
3500 var_tree_node_id CZ_UI_NODES.ui_node_id%TYPE;
3501 var_screen_node_id CZ_UI_NODES.ui_node_id%TYPE:=-1;
3502 var_curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
3503 var_curr_bitmap_id CZ_UI_NODES.ui_node_id%TYPE;
3504 var_page_number VARCHAR2(50);
3505 BEGIN
3506 --
3507 -- set suffix for the page name --
3508 --
3509 IF in_counter>1 THEN
3510 var_page_number:=' ('||TO_CHAR(in_counter)||')';
3511 ELSE
3512 var_page_number:=' (1)';
3513 END IF;
3514 var_tree_node_id:=getUISeqVal;
3515 var_screen_node_id:=getUISeqVal;
3516
3517 set_UI_NODES(in_ui_node_id =>var_tree_node_id,
3518 in_parent_id =>in_ui_tree_parent_id,
3519 in_ui_def_id =>in_ui_def_id,
3520 in_ps_node_id =>NULL,
3521 in_ui_node_ref_id =>var_screen_node_id,
3522 in_name =>in_page_name||var_page_number,
3523 in_component_id =>NULL,
3524 in_ui_node_type =>UI_COMPONENT_REF_TYPE,
3525 in_tree_display_flag=>NO_FLAG,
3526 in_tree_seq =>in_tree_seq+in_counter,
3527 in_font_name =>DEFAULT_FONT_NAME,
3528 in_font_bold =>NO_FLAG,
3529 in_font_color =>0,
3530 in_font_italic =>NO_FLAG,
3531 in_font_size =>DEFAULT_FONT_SIZE,
3532 in_font_underline =>NO_FLAG,
3533 in_intl_text_id =>in_intl_text_id,
3534 in_page_number =>var_page_number);
3535
3536 var_curr_label_id:=getUISeqVal;
3537 var_curr_bitmap_id:=getUISeqVal;
3538 set_UI_NODES(var_screen_node_id,in_ui_parent_id,in_ui_def_id,
3539 in_ps_node_id,var_curr_label_id,
3540 in_page_name||var_page_number,
3541 UI_COMPONENT_TYPE,DEFAULT_BACKGROUND_COLOR,NULL,
3542 in_tree_display_flag=>YES_FLAG,
3543 in_tree_seq =>in_tree_seq+in_counter,
3544 in_use_default_font =>YES_FLAG,
3545 in_use_default_color=>YES_FLAG,
3546 in_use_default_pic =>YES_FLAG,
3547 in_font_name =>DEFAULT_FONT_NAME,
3548 in_font_bold =>NO_FLAG,
3549 in_font_color =>0,
3550 in_font_italic =>NO_FLAG,
3551 in_font_size =>DEFAULT_FONT_SIZE,
3552 in_font_underline =>NO_FLAG,
3553 in_intl_text_id =>in_intl_text_id,
3554 in_page_id =>in_counter);
3555
3556 create_TEXT_LABEL(var_curr_label_id,var_screen_node_id,
3557 in_ui_def_id,var_curr_label_id,
3558 in_top_pos =>DEFAULT_REL_TOP,
3559 in_left_pos =>DEFAULT_REL_LEFT,
3560 in_text =>in_page_name,
3561 in_font_size =>DEFAULT_CAPTION_FONT_SIZE,
3562 in_font_color =>DEFAULT_TITLE_COLOR,
3563 in_display_flag =>YES_FLAG,
3564 in_use_default_font =>NO_FLAG,
3565 in_title =>YES_FLAG,
3566 in_name =>'Page Title',
3567 in_align =>'left',
3568 in_intl_text_id =>in_intl_text_id,
3569 in_parent_name =>in_page_name,
3570 in_page_number =>var_page_number
3571 ,in_font_name => DEFAULT_FONT_NAME
3572 ,in_font_bold => NO_FLAG
3573 ,in_font_italic => YES_FLAG
3574 ,in_font_underline => NO_FLAG
3575 );
3576
3577 /* ************** create DIVIDER for COMPONENT ************ */
3578 create_DIVIDER(var_curr_bitmap_id,var_screen_node_id,in_ui_def_id, 37, 45, 0);
3579
3580 RETURN var_screen_node_id;
3581
3582 END;
3583
3584 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3585 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3586
3587 PROCEDURE create_Tree_Header
3588 (in_ui_def_id IN INTEGER,
3589 in_product_id IN INTEGER,
3590 out_component_tree_id OUT NOCOPY INTEGER,
3591 out_interface_id OUT NOCOPY INTEGER,
3592 in_screen_width IN INTEGER , -- DEFAULT 640,
3593 in_screen_height IN INTEGER , -- DEFAULT 480,
3594 in_show_all_nodes IN VARCHAR2 -- DEFAULT '0'
3595 ) IS
3596
3597 nIface1 CZ_UI_NODES.ui_node_id%TYPE;
3598 BEGIN
3599 IF MUID IS NOT NULL THEN
3600 nIface1:=currUISeqVal;
3601 set_UI_NODES(in_ui_node_id =>nIface1,
3602 in_parent_id =>nIface1,
3603 in_ui_def_id =>MUID,
3604 in_ps_node_id =>NULL,
3605 in_ui_node_ref_id =>NULL,
3606 in_name =>'User Interfaces',
3607 in_ui_node_type =>51,
3608 in_background_color =>DEFAULT_BACKGROUND_COLOR,
3609 in_component_id =>NULL,
3610 in_width =>100,
3611 in_height =>20,
3612 in_tree_display_flag=>YES_FLAG,
3613 in_use_default_font =>YES_FLAG,
3614 in_use_default_pic =>YES_FLAG,
3615 in_use_default_color=>YES_FLAG,
3616 in_tree_seq =>-1);
3617 END IF;
3618
3619 out_interface_id:=getUISeqVal;
3620 set_UI_NODES( in_ui_node_id =>out_interface_id,
3621 in_parent_id =>out_interface_id,
3622 in_ui_def_id =>in_ui_def_id,
3623 in_ps_node_id =>in_product_id,
3624 in_ui_node_ref_id =>NULL,
3625 in_name =>InterfaceName,
3626 in_ui_node_type =>UI_ROOT_SYSTEM_TYPE,
3627 in_background_color =>DEFAULT_BACKGROUND_COLOR,
3628 in_component_id =>NULL,
3629 in_width =>in_screen_width,
3630 in_height =>in_screen_height,
3631 in_tree_display_flag=>YES_FLAG,
3632 in_use_default_font =>NO_FLAG,
3633 in_use_default_pic =>NO_FLAG,
3634 in_use_default_color=>NO_FLAG,
3635 in_tree_seq =>1,
3636 in_font_name =>DEFAULT_FONT_NAME,
3637 in_font_bold =>NO_FLAG,
3638 in_font_color =>0,
3639 in_font_italic =>NO_FLAG,
3640 in_font_size =>DEFAULT_FONT_SIZE,
3641 in_font_underline =>NO_FLAG);
3642
3643 generateUIProps(out_interface_id,in_ui_def_id,DEF_PRODUCT_USER_IFACE,
3644 0, YES_FLAG, YES_FLAG,
3645 NO_FLAG, NO_FLAG, NO_FLAG,
3646 0, 'left', in_show_all_nodes);
3647
3648 out_component_tree_id :=getUISeqVal;
3649 set_UI_NODES(in_ui_node_id =>out_component_tree_id,
3650 in_parent_id =>out_interface_id,
3651 in_ui_def_id =>in_ui_def_id,
3652 in_ps_node_id =>NULL,
3653 in_ui_node_ref_id =>NULL,
3654 in_name =>'Components Tree',
3655 in_ui_node_type =>143,
3656 in_background_color =>DEFAULT_BACKGROUND_COLOR,
3657 in_tree_display_flag=>YES_FLAG,
3658 in_font_name =>DEFAULT_FONT_NAME,
3659 in_font_bold =>YES_FLAG,
3660 in_font_color =>0,
3661 in_font_italic =>NO_FLAG,
3662 in_font_size =>DEFAULT_FONT_SIZE,
3663 in_font_underline =>NO_FLAG,
3664 in_borders =>NO_FLAG,
3665 in_bkgrnd_picture =>TREE_TILING_BMP);
3666
3667 generateUIProps(out_component_tree_id,in_ui_def_id,DEF_COMPONENT_TREE,
3668 0, YES_FLAG, YES_FLAG,
3669 NO_FLAG, NO_FLAG, NO_FLAG,
3670 0, 'left', '0');
3671
3672 END create_Tree_Header;
3673
3674 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3675 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3676
3677 PROCEDURE create_Footprints
3678 (in_ui_def_id IN INTEGER,
3679 in_interface_id IN INTEGER) IS
3680
3681 var_ui_node CZ_UI_NODES.ui_node_id%TYPE;
3682
3683 BEGIN
3684 --
3685 -- create Recycle Bin --
3686 --
3687 var_ui_node:=getUISeqVal;
3688 set_UI_NODES(var_ui_node,in_interface_id,in_ui_def_id,NULL,NULL,
3689 'Recycle Bin',UI_SYS_TYPE,DEFAULT_BACKGROUND_COLOR,
3690 in_tree_display_flag=>NO_FLAG,
3691 in_font_name =>DEFAULT_FONT_NAME,
3692 in_font_bold =>NO_FLAG,
3693 in_font_color =>0,
3694 in_font_italic =>NO_FLAG,
3695 in_font_size =>DEFAULT_FONT_SIZE,
3696 in_font_underline =>NO_FLAG);
3697 generateUIProps(var_ui_node,in_ui_def_id,DEF_RECYCLE_BIN,
3698 0, YES_FLAG, YES_FLAG,
3699 NO_FLAG, NO_FLAG, NO_FLAG,
3700 0, 'left', '0');
3701
3702 --
3703 -- create Limbo --
3704 --
3705 var_ui_node:=getUISeqVal;
3706 set_UI_NODES(var_ui_node,in_interface_id,in_ui_def_id,
3707 NULL,NULL,'Limbo',UI_SYS_TYPE,DEFAULT_BACKGROUND_COLOR,
3708 in_tree_display_flag=>NO_FLAG,
3709 in_font_name =>DEFAULT_FONT_NAME,
3710 in_font_bold =>NO_FLAG,
3711 in_font_color =>0,
3712 in_font_italic =>NO_FLAG,
3713 in_font_size =>DEFAULT_FONT_SIZE,
3714 in_font_underline =>NO_FLAG);
3715 generateUIProps(var_ui_node,in_ui_def_id,DEF_LIMBO,
3716 0, YES_FLAG, YES_FLAG,
3717 NO_FLAG, NO_FLAG, NO_FLAG,
3718 0, 'left', '0');
3719
3720 END create_Footprints;
3721
3722 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3723 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3724
3725 PROCEDURE create_OPTION
3726 (in_node_id IN INTEGER,
3727 in_parent_id IN INTEGER,
3728 in_ui_def_id IN INTEGER,
3729 in_arr IN optionStructure) IS
3730
3731 BEGIN
3732 set_UI_NODES(in_ui_node_id =>in_node_id,
3733 in_parent_id =>in_parent_id,
3734 in_ui_def_id =>in_ui_def_id,
3735 in_ps_node_id =>in_arr.ps_node_id,
3736 in_ui_node_ref_id =>NULL,
3737 in_component_id =>NULL,
3738 in_name =>in_arr.name,
3739 in_ui_node_type =>UI_OPTION_TYPE,
3740 in_lce_id =>'P_'||TO_CHAR(in_arr.ps_node_id),
3741 in_tree_display_flag=>NO_FLAG,
3742 in_tree_seq =>in_arr.tree_seq,
3743 in_font_size =>DEFAULT_FONT_SIZE,
3744 in_intl_text_id =>in_arr.intl_text_id);
3745 END create_OPTION;
3746
3747 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3748 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3749
3750 PROCEDURE generate_Options
3751 (in_parent_node_id IN INTEGER,
3752 in_new_parent_id IN INTEGER,
3753 in_ui_def_id IN INTEGER,
3754 out_counter OUT NOCOPY INTEGER) IS
3755
3756 curr_node_id CZ_UI_NODES.ui_node_id%TYPE;
3757 var_counter INTEGER:=0;
3758 i INTEGER;
3759
3760 BEGIN
3761
3762 i:=Options.First;
3763 LOOP
3764 IF i IS NULL THEN
3765 EXIT;
3766 END IF;
3767
3768 IF Options(i).parent_id=in_parent_node_id THEN
3769 curr_node_id:=getUISeqVal;
3770 var_counter:=var_counter+1;
3771 create_OPTION(curr_node_id,in_new_parent_id,in_ui_def_id,Options(i));
3772 END IF;
3773 i:=Options.NEXT(i);
3774 END LOOP;
3775 out_counter:=var_counter;
3776
3777 END generate_Options;
3778
3779 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3780 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3781
3782 PROCEDURE create_FEATURE
3783 (in_node_id IN INTEGER,
3784 in_parent_id IN INTEGER,
3785 in_ui_def_id IN INTEGER,
3786 in_arr IN featureStructure) IS
3787
3788 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
3789 var_width CZ_UI_NODES.width%TYPE;
3790 var_height CZ_UI_NODES.height%TYPE;
3791 var_control_type CZ_UI_NODES.controltype%TYPE;
3792 var_label_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
3793 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
3794 var_label_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
3795 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
3796 var_text_width CZ_UI_NODES.width%TYPE;
3797 var_borders CZ_UI_NODES.borders%TYPE:=YES_FLAG;
3798 var_use_default_color CZ_UI_NODES.default_bkgrnd_color_flag%TYPE:=YES_FLAG;
3799 var_align VARCHAR2(10);
3800 Top_Labeled BOOLEAN:=FALSE;
3801
3802 BEGIN
3803
3804 curr_label_id:=getUISeqVal;
3805 var_left_pos:=CENTER_LINE;
3806 var_text_width:=set_Text_Width(in_arr.caption_name);
3807 var_align:='right';
3808
3809 var_height:=last_HEIGHT;
3810 IF in_arr.feature_type IN (1,2) THEN
3811 --
3812 -- Integer, Decimal Features --
3813 --
3814 var_height:=DEFAULT_CONTROL_HEIGHT;
3815 var_width:=NUMERIC_FEATURE_WIDTH;
3816 ELSIF in_arr.feature_type=3 THEN
3817 var_height:=DEFAULT_CONTROL_HEIGHT;
3818 var_width:=BOOLEAN_FEATURE_WIDTH;
3819 var_align:='left';
3820 ELSIF in_arr.feature_type=4 THEN
3821 var_height:=DEFAULT_CONTROL_HEIGHT;
3822 var_width:=OPTION_FEATURE_WIDTH;
3823 ELSE
3824 var_width:=OPTION_FEATURE_WIDTH;
3825 END IF;
3826
3827 --
3828 -- atp_flag=TRUE means - it can be used in pricing stuff --
3829 --
3830 IF in_arr.atp_flag=TRUE THEN
3831 var_label_top_pos:=last_TOP_POS;
3832 var_top_pos:=last_TOP_POS+DEFAULT_TEXT_HEIGHT+TOP_LABELED_SPACE_ABOVE;
3833
3834 var_label_left_pos:=LEFT_MARGIN;
3835 var_left_pos:=LEFT_MARGIN;
3836 var_width:=USABLE_WIDTH;
3837 Top_Labeled:=TRUE;
3838 ELSE
3839 IF var_text_width>CENTER_LINE-LEFT_MARGIN THEN
3840 var_text_width:=USABLE_WIDTH;
3841 var_label_top_pos:=last_TOP_POS;
3842 var_top_pos:=last_TOP_POS+DEFAULT_TEXT_HEIGHT+TOP_LABELED_SPACE_ABOVE;
3843
3844 var_label_left_pos:=LEFT_MARGIN;
3845 var_left_pos:=LEFT_MARGIN;
3846 Top_Labeled:=TRUE;
3847 var_align:='left';
3848 ELSE
3849 var_text_width:=FLOOR(USABLE_WIDTH/2)-DEFAULT_SPACE_BETWEEN;
3850 var_left_pos:=CENTER_LINE;
3851 var_label_left_pos:=LEFT_MARGIN;
3852 -----var_label_left_pos:=var_left_pos-var_text_width-SPACE_BETWEEN;---
3853
3854 var_label_top_pos:=last_TOP_POS;
3855 var_top_pos:=last_TOP_POS;
3856 END IF;
3857 END IF;
3858
3859 var_borders:=YES_FLAG;
3860
3861 IF in_arr.feature_type=0 THEN
3862 var_borders:=NO_FLAG;
3863 IF in_arr.counted_options_flag=YES_FLAG OR in_arr.maximum>1 OR in_arr.maximum IS NULL THEN
3864 var_borders:=YES_FLAG;
3865 var_control_type:=2;
3866 ELSE
3867 var_control_type:=1;
3868 END IF;
3869 END IF;
3870
3871 IF in_arr.feature_type=3 THEN
3872 var_borders:=NO_FLAG;
3873 var_control_type:=3;
3874 var_top_pos:=last_TOP_POS;
3875 var_label_top_pos:=last_TOP_POS;
3876
3877 var_left_pos:=CENTER_LINE;
3878 var_label_left_pos:=var_left_pos+BOOLEAN_FEATURE_WIDTH+SPACE_BETWEEN;
3879 END IF;
3880
3881 IF in_arr.feature_type=1 THEN
3882 var_control_type:=4;
3883 END IF;
3884
3885 IF in_arr.feature_type=2 THEN
3886 var_control_type:=5;
3887 END IF;
3888
3889 IF in_arr.feature_type=4 THEN
3890 var_control_type:=6;
3891 END IF;
3892
3893 IF mLOOK_AND_FEEL='BLAF' THEN
3894 var_use_default_color:=YES_FLAG;
3895 ELSE
3896 var_use_default_color:=NO_FLAG;
3897 END IF;
3898
3899 set_UI_NODES(in_ui_node_id =>in_node_id,
3900 in_parent_id =>in_parent_id,
3901 in_ui_def_id =>in_ui_def_id,
3902 in_ps_node_id =>in_arr.ps_node_id,
3903 in_ui_node_ref_id =>curr_label_id,
3904 in_name =>in_arr.name,
3905 in_ui_node_type =>UI_FEATURE_TYPE,
3906 in_background_color =>DEFAULT_BACKGROUND_COLOR,
3907 in_component_id =>in_arr.parent_id,
3908 in_width =>var_width,
3909 in_height =>var_height,
3910 in_lce_id =>'P_'||TO_CHAR(in_arr.ps_node_id),
3911 in_tree_display_flag=>YES_FLAG,
3912 in_tree_seq =>in_arr.tree_seq,
3913 in_use_default_font =>YES_FLAG,
3914 in_use_default_color=>var_use_default_color,
3915 in_use_default_pic =>YES_FLAG,
3916 in_top_pos =>var_top_pos,
3917 in_left_pos =>var_left_pos,
3918 in_font_name =>DEFAULT_FONT_NAME,
3919 in_font_bold =>NO_FLAG,
3920 in_font_color =>0,
3921 in_font_italic =>NO_FLAG,
3922 in_font_size =>DEFAULT_FONT_SIZE,
3923 in_font_underline =>NO_FLAG,
3924 in_controltype =>var_control_type,
3925 in_borders =>var_borders);
3926
3927 generateUIProps(in_node_id,in_ui_def_id,DEF_FEATURE,
3928 in_arr.feature_type,
3929 TO_CHAR(in_arr.minimum), TO_CHAR(in_arr.maximum),
3930 in_arr.counted_options_flag, NO_FLAG, NO_FLAG,
3931 0, 'left', '0');
3932
3933 create_TEXT_LABEL(curr_label_id,in_parent_id,in_ui_def_id,in_node_id,
3934 in_top_pos =>var_label_top_pos,
3935 in_left_pos =>var_label_left_pos,
3936 in_text =>in_arr.caption_name,
3937 in_font_name =>DEFAULT_FONT_NAME_,
3938 in_font_color =>0,
3939 in_font_size =>DEFAULT_FONT_SIZE,
3940 in_align =>var_align,
3941 in_intl_text_id=>in_arr.intl_text_id,
3942 in_parent_name =>in_arr.name,
3943 in_width =>var_text_width
3944 ,in_use_default_font => YES_FLAG
3945 ,in_display_flag => NO_FLAG
3946 ,in_font_bold => NO_FLAG
3947 ,in_font_italic => YES_FLAG
3948 ,in_font_underline => NO_FLAG
3949 ,in_title => NO_FLAG
3950 );
3951
3952 last_HEIGHT:=var_height;
3953
3954 IF Top_Labeled THEN
3955 last_TOP_POS:=last_TOP_POS+DEFAULT_CONTROL_HEIGHT+last_HEIGHT+2*DEFAULT_SPACE_BETWEEN;
3956 ELSE
3957 last_TOP_POS:=last_TOP_POS+last_HEIGHT+DEFAULT_SPACE_BETWEEN;
3958 END IF;
3959
3960 END create_FEATURE;
3961
3962 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3963 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
3964
3965 PROCEDURE create_TOTAL
3966 (in_node_id IN INTEGER,
3967 in_parent_id IN INTEGER,
3968 in_ui_def_id IN INTEGER,
3969 in_arr IN featureStructure) IS
3970
3971 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
3972 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
3973 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
3974 var_left_pos_txt CZ_UI_NODES.rel_left_pos%TYPE;
3975 var_text_width CZ_UI_NODES.width%TYPE;
3976 var_label_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
3977 var_label_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
3978 var_use_default_color CZ_UI_NODES.default_bkgrnd_color_flag%TYPE:=YES_FLAG;
3979 var_borders CZ_UI_NODES.borders%TYPE:=YES_FLAG;
3980 var_align VARCHAR2(10):='right';
3981 Top_Labeled BOOLEAN:=FALSE;
3982
3983 BEGIN
3984
3985 curr_label_id:=getUISeqVal;
3986
3987 var_top_pos:=last_TOP_POS;
3988 var_left_pos:=CENTER_LINE;
3989 var_text_width:=set_Text_Width(in_arr.caption_name);
3990
3991 IF var_text_width>CENTER_LINE-LEFT_MARGIN THEN
3992 var_label_top_pos:=last_TOP_POS;
3993 var_top_pos:=last_TOP_POS+DEFAULT_TEXT_HEIGHT+TOP_LABELED_SPACE_ABOVE;
3994 var_label_left_pos:=LEFT_MARGIN;
3995 var_left_pos:=LEFT_MARGIN;
3996 Top_Labeled:=TRUE;
3997 var_align:='left';
3998 var_text_width:=USABLE_WIDTH;
3999 ELSE
4000 var_left_pos:=CENTER_LINE;
4001 var_label_top_pos:=last_TOP_POS;
4002 var_top_pos:=last_TOP_POS;
4003 var_text_width:=FLOOR(USABLE_WIDTH/2)-DEFAULT_SPACE_BETWEEN;
4004 var_label_left_pos:=LEFT_MARGIN;
4005 END IF;
4006
4007 IF mLOOK_AND_FEEL='BLAF' THEN
4008 var_use_default_color:=YES_FLAG;
4009 ELSE
4010 var_use_default_color:=NO_FLAG;
4011 END IF;
4012
4013 set_UI_NODES(in_node_id,in_parent_id,in_ui_def_id,in_arr.ps_node_id,
4014 curr_label_id,in_arr.name,UI_TOTAL_TYPE,NULL,in_arr.ps_node_id,
4015 DEFAULT_TOTAL_WIDTH,
4016 DEFAULT_CONTROL_HEIGHT,
4017 in_tree_display_flag=>YES_FLAG,
4018 in_tree_seq =>in_arr.tree_seq,
4019 in_lce_id =>'P_'||TO_CHAR(in_arr.ps_node_id),
4020 in_top_pos =>var_top_pos,
4021 in_left_pos =>var_left_pos,
4022 in_font_name =>DEFAULT_FONT_NAME,
4023 in_font_bold =>NO_FLAG,
4024 in_font_color =>0,
4025 in_font_italic =>NO_FLAG,
4026 in_font_size =>DEFAULT_FONT_SIZE,
4027 in_font_underline =>NO_FLAG,
4028 in_controltype =>TOTAL_CONTROL_TYPE,
4029 in_borders =>YES_FLAG,
4030 in_use_default_color =>var_use_default_color);
4031
4032 generateUIProps(in_node_id,in_ui_def_id,DEF_TOTAL_ELEMENT,
4033 0, YES_FLAG, YES_FLAG,
4034 NO_FLAG, NO_FLAG, NO_FLAG,
4035 0, 'left', '0');
4036
4037 create_TEXT_LABEL(curr_label_id,in_parent_id,in_ui_def_id,in_node_id,
4038 in_top_pos =>var_label_top_pos,
4039 in_left_pos =>var_label_left_pos,
4040 in_text =>in_arr.caption_name,
4041 in_font_name =>DEFAULT_FONT_NAME_,
4042 in_font_color =>0,
4043 in_font_size =>DEFAULT_FONT_SIZE,
4044 in_align =>var_align,
4045 in_intl_text_id =>in_arr.intl_text_id,
4046 in_parent_name =>in_arr.name,
4047 in_width =>var_text_width
4048 ,in_use_default_font => YES_FLAG
4049 ,in_display_flag => NO_FLAG
4050 ,in_font_bold => NO_FLAG
4051 ,in_font_italic => YES_FLAG
4052 ,in_font_underline => NO_FLAG
4053 ,in_title => NO_FLAG
4054 );
4055
4056 IF Top_Labeled THEN
4057 last_TOP_POS:=last_TOP_POS+DEFAULT_CONTROL_HEIGHT+DEFAULT_SPACE_BETWEEN;
4058 END IF;
4059
4060 END create_TOTAL;
4061
4062 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4063 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
4064
4065 PROCEDURE create_RESOURCE
4066 (in_node_id IN INTEGER,
4067 in_parent_id IN INTEGER,
4068 in_ui_def_id IN INTEGER,
4069 in_arr IN featureStructure) IS
4070
4071 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
4072 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
4073 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
4074 var_left_pos_txt CZ_UI_NODES.rel_left_pos%TYPE;
4075 var_text_width CZ_UI_NODES.width%TYPE;
4076 var_label_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
4077 var_label_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
4078 var_use_default_color CZ_UI_NODES.default_bkgrnd_color_flag%TYPE:=YES_FLAG;
4079 var_borders CZ_UI_NODES.borders%TYPE:=YES_FLAG;
4080 var_align VARCHAR2(10):='right';
4081 Top_Labeled BOOLEAN:=FALSE;
4082
4083 BEGIN
4084
4085 curr_label_id:=getUISeqVal;
4086
4087 var_top_pos:=last_TOP_POS;
4088 var_left_pos:=CENTER_LINE;
4089 var_text_width:=set_Text_Width(in_arr.caption_name);
4090
4091 IF var_text_width>CENTER_LINE-LEFT_MARGIN THEN
4092 var_label_top_pos:=last_TOP_POS;
4093 var_top_pos:=last_TOP_POS+DEFAULT_TEXT_HEIGHT+TOP_LABELED_SPACE_ABOVE;
4094
4095 var_label_left_pos:=LEFT_MARGIN;
4096 var_left_pos:=LEFT_MARGIN;
4097 Top_Labeled:=TRUE;
4098 var_align:='left';
4099 var_text_width:=USABLE_WIDTH;
4100 ELSE
4101 var_left_pos:=CENTER_LINE;
4102 --var_label_left_pos:=var_left_pos-var_text_width-SPACE_BETWEEN;--
4103 var_label_top_pos:=last_TOP_POS;
4104 var_top_pos:=last_TOP_POS;
4105 var_text_width:=FLOOR(USABLE_WIDTH/2)-DEFAULT_SPACE_BETWEEN;
4106 var_label_left_pos:=LEFT_MARGIN;
4107 END IF;
4108
4109 IF mLOOK_AND_FEEL='BLAF' THEN
4110 var_use_default_color:=YES_FLAG;
4111 ELSE
4112 var_use_default_color:=NO_FLAG;
4113 END IF;
4114
4115 set_UI_NODES(in_node_id,in_parent_id,in_ui_def_id,in_arr.ps_node_id,
4116 curr_label_id,in_arr.name,UI_RESOURCE_TYPE,NULL,in_arr.ps_node_id,
4117 DEFAULT_RESOURCE_WIDTH,
4118 DEFAULT_CONTROL_HEIGHT,
4119 in_tree_display_flag=>YES_FLAG,
4120 in_tree_seq =>in_arr.tree_seq,
4121 in_lce_id =>'P_'||TO_CHAR(in_arr.ps_node_id),
4122 in_top_pos =>var_top_pos,
4123 in_left_pos =>var_left_pos,
4124 in_font_name =>DEFAULT_FONT_NAME,
4125 in_font_bold =>NO_FLAG,
4126 in_font_color =>0,
4127 in_font_italic =>NO_FLAG,
4128 in_font_size =>DEFAULT_FONT_SIZE,
4129 in_font_underline =>NO_FLAG,
4130 in_controltype =>RESOURCE_CONTROL_TYPE,
4131 in_borders =>YES_FLAG,
4132 in_use_default_color=>var_use_default_color);
4133
4134 generateUIProps(in_node_id,in_ui_def_id,DEF_RESOURCE_ELEMENT,
4135 0, YES_FLAG, YES_FLAG,
4136 NO_FLAG, NO_FLAG, NO_FLAG,
4137 0, 'left', '0');
4138
4139 create_TEXT_LABEL(curr_label_id,in_parent_id,in_ui_def_id,in_node_id,
4140 in_top_pos =>var_label_top_pos,
4141 in_left_pos =>var_label_left_pos,
4142 in_text =>in_arr.caption_name,
4143 in_font_name =>DEFAULT_FONT_NAME_,
4144 in_font_color =>DEFAULT_FONT_COLOR,
4145 in_font_italic =>YES_FLAG,
4146 in_font_size =>DEFAULT_FONT_SIZE,
4147 in_align =>var_align,
4148 in_intl_text_id=>in_arr.intl_text_id,
4149 in_parent_name =>in_arr.name,
4150 in_width =>var_text_width
4151 ,in_use_default_font => YES_FLAG
4152 ,in_display_flag => NO_FLAG
4153 ,in_font_bold => NO_FLAG
4154 ,in_font_underline => NO_FLAG
4155 ,in_title => NO_FLAG
4156 );
4157
4158 IF Top_Labeled THEN
4159 last_TOP_POS:=last_TOP_POS+DEFAULT_CONTROL_HEIGHT+DEFAULT_SPACE_BETWEEN;
4160 END IF;
4161
4162 END create_RESOURCE;
4163
4164 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4165 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
4166
4167 PROCEDURE create_CONNECTOR
4168 (in_node_id IN INTEGER,
4169 in_parent_id IN INTEGER,
4170 in_ui_def_id IN INTEGER,
4171 in_arr IN featureStructure) IS
4172
4173 var_curr_label_id CZ_UI_NODES.caption_id%TYPE;
4174 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
4175 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
4176 var_left_pos_txt CZ_UI_NODES.rel_left_pos%TYPE;
4177 var_label_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
4178 var_label_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
4179 var_txt_id CZ_UI_NODES.caption_id%TYPE;
4180 var_button_name CZ_UI_NODES.name%TYPE;
4181 var_button_caption CZ_INTL_TEXTS.text_str%TYPE;
4182 var_ref_name CZ_UI_NODES.name%TYPE;
4183 var_ref_label_id CZ_PS_NODES.intl_text_id%TYPE;
4184 var_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
4185 var_ref_label CZ_INTL_TEXTS.text_str%TYPE;
4186 var_text_width CZ_UI_NODES.width%TYPE;
4187 var_borders CZ_UI_NODES.borders%TYPE:=YES_FLAG;
4188 var_use_default_color CZ_UI_NODES.default_bkgrnd_color_flag%TYPE:=YES_FLAG;
4189 var_align VARCHAR2(10):='right';
4190 Top_Labeled BOOLEAN:=FALSE;
4191
4192 NO_MODEL_REF_EXPL_ID EXCEPTION;
4193
4194 BEGIN
4195
4196 BEGIN
4197 SELECT MIN(model_ref_expl_id) INTO var_expl_id FROM CZ_MODEL_REF_EXPLS a
4198 WHERE referring_node_id=in_arr.ps_node_id AND model_id=Project_Id
4199 AND deleted_flag=NO_FLAG;
4200 EXCEPTION
4201 WHEN NO_DATA_FOUND THEN
4202 RAISE NO_MODEL_REF_EXPL_ID;
4203 END;
4204
4205 var_curr_label_id:=getUISeqVal;
4206
4207 var_top_pos:=last_TOP_POS;
4208 var_left_pos:=CENTER_LINE;
4209 var_text_width:=set_Text_Width(in_arr.caption_name);
4210
4211 IF var_text_width>CENTER_LINE-LEFT_MARGIN THEN
4212 var_label_top_pos:=last_TOP_POS;
4213 var_top_pos:=last_TOP_POS+DEFAULT_TEXT_HEIGHT+TOP_LABELED_SPACE_ABOVE;
4214
4215 var_label_left_pos:=LEFT_MARGIN;
4216 var_left_pos:=LEFT_MARGIN;
4217 Top_Labeled:=TRUE;
4218 var_align:='left';
4219 var_text_width:=USABLE_WIDTH;
4220 ELSE
4221 var_left_pos:=CENTER_LINE;
4222 var_label_top_pos:=last_TOP_POS;
4223 var_top_pos:=last_TOP_POS;
4224 var_text_width:=FLOOR(USABLE_WIDTH/2)-DEFAULT_SPACE_BETWEEN;
4225 var_label_left_pos:=LEFT_MARGIN;
4226 END IF;
4227
4228 IF mLOOK_AND_FEEL='BLAF' THEN
4229 var_use_default_color:=YES_FLAG;
4230 ELSE
4231 var_use_default_color:=NO_FLAG;
4232 END IF;
4233
4234 set_UI_NODES(in_node_id,in_parent_id,in_ui_def_id,in_arr.ps_node_id,
4235 var_curr_label_id,in_arr.name,UI_CONNECTOR_TYPE,NULL,in_arr.ps_node_id,
4236 DEFAULT_CONNECTOR_WIDTH,
4237 DEFAULT_CONNECTOR_HEIGHT,
4238 in_tree_display_flag=>YES_FLAG,
4239 in_tree_seq =>in_arr.tree_seq,
4240 in_lce_id =>'P_'||TO_CHAR(in_arr.ps_node_id),
4241 in_top_pos =>var_top_pos,
4242 in_left_pos =>var_left_pos,
4243 in_font_name =>DEFAULT_FONT_NAME,
4244 in_font_bold =>NO_FLAG,
4245 in_font_color =>0,
4246 in_font_italic =>NO_FLAG,
4247 in_font_size =>DEFAULT_FONT_SIZE,
4248 in_font_underline =>NO_FLAG,
4249 in_controltype =>CONNECTOR_CONTROL_TYPE,
4250 in_borders =>YES_FLAG,
4251 in_use_default_color=>var_use_default_color,
4252 in_model_ref_expl_id=>var_expl_id);
4253
4254 generateUIProps(in_node_id,in_ui_def_id,DEF_CONNECTOR_ELEMENT,
4255 0, YES_FLAG, YES_FLAG,
4256 NO_FLAG, NO_FLAG, NO_FLAG,
4257 0, 'left', '0');
4258
4259 create_TEXT_LABEL(var_curr_label_id,in_parent_id,in_ui_def_id,in_node_id,
4260 in_top_pos =>var_label_top_pos,
4261 in_left_pos =>var_label_left_pos,
4262 in_text =>in_arr.caption_name,
4263 in_font_name =>DEFAULT_FONT_NAME_,
4264 in_font_color =>0,
4265 in_font_size =>DEFAULT_FONT_SIZE,
4266 in_align =>var_align,
4267 in_intl_text_id =>in_arr.intl_text_id,
4268 in_parent_name =>in_arr.name,
4269 in_width =>var_text_width
4270 ,in_use_default_font => YES_FLAG
4271 ,in_display_flag => NO_FLAG
4272 ,in_font_bold => NO_FLAG
4273 ,in_font_italic => YES_FLAG
4274 ,in_font_underline => NO_FLAG
4275 ,in_title => NO_FLAG
4276 );
4277
4278 var_txt_id:=getTXTSeqVal;
4279
4280 SELECT name,intl_text_id
4281 INTO var_ref_name,var_ref_label_id
4282 FROM CZ_PS_NODES
4283 WHERE ps_node_id=in_arr.reference_id AND deleted_flag=NO_FLAG;
4284
4285 var_button_name:=CZ_CONNECTOR_BUTTON_CAPTION||' '||var_ref_name;
4286
4287 var_button_caption:=CZ_CONNECTOR_BUTTON_CAPTION;
4288
4289 INSERT INTO CZ_INTL_TEXTS(intl_text_id,text_str,ui_def_id,model_id,deleted_flag)
4290 VALUES(var_txt_id,var_button_caption,in_ui_def_id,Project_Id,NO_FLAG);
4291
4292 create_BUTTON(getUISeqVal,in_parent_id,in_ui_def_id,
4293 in_arr.ps_node_id,var_button_name,
4294 in_top_pos =>var_top_pos,
4295 in_left_pos =>var_left_pos+CONNECTOR_GAP,
4296 in_button_type =>DEF_CONNECTOR_BUTTON,
4297 in_ui_node_ref_id =>in_node_id,
4298 in_modified_flag =>YES_FLAG,
4299 in_intl_text_id =>var_txt_id);
4300
4301 IF Top_Labeled THEN
4302 last_TOP_POS:=last_TOP_POS+DEFAULT_CONTROL_HEIGHT+DEFAULT_SPACE_BETWEEN;
4303 END IF;
4304
4305 EXCEPTION
4306 WHEN NO_MODEL_REF_EXPL_ID THEN
4307 NULL;
4308 END create_CONNECTOR;
4309
4310 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4311 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
4312
4313 PROCEDURE generate_FTR
4314 (in_parent_node_id IN INTEGER,
4315 in_new_parent_id IN INTEGER,
4316 in_ui_def_id IN INTEGER) IS
4317
4318 temp featureArray;
4319 curr_node_id CZ_UI_NODES.ui_node_id%TYPE;
4320 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
4321 var_name CZ_UI_NODES.name%TYPE;
4322 options_number INTEGER;
4323 ind INTEGER;
4324 i INTEGER;
4325 END_OPERATION EXCEPTION;
4326
4327 BEGIN
4328
4329 IF Features.Count=0 THEN
4330 RAISE END_OPERATION;
4331 END IF;
4332
4333 ind:=Features.First;
4334 LOOP
4335 IF ind IS NULL THEN
4336 EXIT;
4337 END IF;
4338 IF Features(ind).parent_id=in_parent_node_id THEN
4339 BEGIN
4340 temp(Features(ind).tree_seq):=Features(ind);
4341 EXCEPTION
4342 WHEN NO_DATA_FOUND THEN
4343 NULL;
4344 END;
4345 END IF;
4346 ind:=Features.NEXT(ind);
4347 END LOOP;
4348
4349 i:=temp.First;
4350
4351 LOOP
4352 IF i IS NULL THEN
4353 EXIT;
4354 END IF;
4355
4356 IF temp(i).parent_id=in_parent_node_id THEN
4357 curr_node_id:=getUISeqVal;
4358 curr_label_id:=getUISeqVal;
4359 var_name:='Text-'||TO_CHAR(curr_node_id);
4360 last_HEIGHT:=DEFAULT_CONTROL_HEIGHT;
4361
4362 IF temp(i).ps_node_type=FEATURE_NODE_TYPE THEN
4363 IF temp(i).feature_type=0 THEN
4364 generate_Options(in_parent_node_id=>temp(i).ps_node_id,
4365 in_new_parent_id =>curr_node_id,
4366 in_ui_def_id =>in_ui_def_id,
4367 out_counter =>options_number);
4368 END IF;
4369
4370 IF temp(i).counted_options_flag=YES_FLAG OR
4371 temp(i).maximum>1 OR temp(i).maximum IS NULL THEN
4372 last_HEIGHT:=DEFAULT_CONTROL_HEIGHT*options_number+DEFAULT_CONTROL_HEIGHT;
4373 ELSE
4374 last_HEIGHT:=DEFAULT_CONTROL_HEIGHT;
4375 END IF;
4376
4377 create_FEATURE(curr_node_id,in_new_parent_id,in_ui_def_id,temp(i));
4378
4379 END IF; -- for FEATURE
4380
4381 IF temp(i).ps_node_type=TOTAL_NODE_TYPE THEN
4382
4383 last_HEIGHT:=DEFAULT_CONTROL_HEIGHT;
4384 create_TOTAL(curr_node_id,in_new_parent_id,in_ui_def_id,temp(i));
4385
4386 --
4387 -- calculate TOP POS --
4388 --
4389 last_TOP_POS:=last_TOP_POS+last_HEIGHT+DEFAULT_SPACE_BETWEEN;
4390
4391 END IF; -- for TOTAL
4392
4393 IF temp(i).ps_node_type=RESOURCE_NODE_TYPE THEN
4394
4395 last_HEIGHT:=DEFAULT_CONTROL_HEIGHT;
4396
4397 create_RESOURCE(curr_node_id,in_new_parent_id,in_ui_def_id,temp(i));
4398
4399 --
4400 -- calculate TOP POS --
4401 --
4402 last_TOP_POS:=last_TOP_POS+last_HEIGHT+DEFAULT_SPACE_BETWEEN;
4403
4404 END IF; -- for RESOURCE
4405
4406 IF temp(i).ps_node_type=CONNECTOR_NODE_TYPE THEN
4407
4408 last_HEIGHT:=DEFAULT_CONTROL_HEIGHT;
4409
4410 create_Connector(curr_node_id,in_new_parent_id,in_ui_def_id,temp(i));
4411
4412 --
4413 -- calculate TOP POS --
4414 --
4415 last_TOP_POS:=last_TOP_POS+last_HEIGHT+DEFAULT_SPACE_BETWEEN;
4416
4417 END IF; -- for Connector
4418
4419 END IF;
4420 i:=temp.NEXT(i);
4421 END LOOP;
4422
4423 /* ****
4424 IF mUI_STYLE=DHTML_STYLE_UI THEN
4425 UPDATE CZ_UI_NODES SET rel_top_pos=last_TOP_POS
4426 WHERE ui_def_id=in_ui_def_id AND ui_node_id=in_new_parent_id;
4427 END IF;
4428 */
4429
4430 EXCEPTION
4431 WHEN END_OPERATION THEN
4432 NULL;
4433 END generate_FTR;
4434
4435 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4436 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
4437
4438 PROCEDURE generate_MCS
4439 (in_parent_node_id IN INTEGER,
4440 in_new_parent_id IN INTEGER,
4441 in_ui_def_id IN INTEGER,
4442 in_mode IN VARCHAR2 , -- DEFAULT NO_FLAG,
4443 in_ui_tree_parent_id IN INTEGER DEFAULT NULL ,
4444 in_ui_parent_id IN INTEGER DEFAULT NULL,
4445 in_parent_text_id IN INTEGER DEFAULT NULL,
4446 in_parent_name IN VARCHAR2 DEFAULT NULL,
4447 in_tree_seq IN INTEGER DEFAULT NULL) IS
4448
4449 opt_bom UIArray;
4450 temp_bom UIArray;
4451
4452 curr_node_id CZ_UI_NODES.ui_node_id%TYPE;
4453 var_component_id CZ_UI_NODES.component_id%TYPE;
4454 var_width CZ_UI_NODES.width%TYPE;
4455 var_height CZ_UI_NODES.height%TYPE;
4456 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
4457 var_left_pos CZ_UI_NODES.rel_left_pos%TYPE;
4458 var_new_parent_id CZ_UI_NODES.parent_id%TYPE;
4459 var_prev_parent_id CZ_UI_NODES.parent_id%TYPE;
4460 var_curr_parent_id CZ_UI_NODES.parent_id%TYPE;
4461 var_ui_node_ref_id CZ_UI_NODES.ui_node_ref_id%TYPE;
4462 var_screen_oc_id CZ_UI_NODES.ui_node_id%TYPE;
4463 var_model_ref_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
4464 var_use_default_color CZ_UI_NODES.default_bkgrnd_color_flag%TYPE:=YES_FLAG;
4465
4466 var_type INTEGER;
4467 var_temp INTEGER;
4468 ind INTEGER;
4469 page_counter INTEGER:=1;
4470 counter INTEGER:=0;
4471 ind_arr INTEGER:=0;
4472 i INTEGER;
4473 var_modified_flag INTEGER;
4474 var_opt_class_scr INTEGER;
4475 var_suffix VARCHAR2(50);
4476 EMPTY_ARRAY EXCEPTION;
4477 EMPTY_ARRAY_1 EXCEPTION;
4478 EMPTY_ARRAY_2 EXCEPTION;
4479
4480 BEGIN
4481
4482 IF boms.Count=0 THEN
4483 RAISE EMPTY_ARRAY;
4484 END IF;
4485
4486 var_new_parent_id:=in_new_parent_id;
4487
4488 ind:=boms.First;
4489 LOOP
4490 IF ind IS NULL THEN
4491 EXIT;
4492 END IF;
4493 IF boms(ind).parent_id=in_parent_node_id THEN
4494 IF boms(ind).ps_node_type IN (BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE) THEN
4495 BEGIN
4496 IF boms(ind).ui_omit=NO_FLAG OR mSHOW_ALL_NODES=YES_FLAG THEN
4497 opt_bom(boms(ind).tree_seq):=boms(ind);
4498 END IF;
4499 EXCEPTION
4500 WHEN NO_DATA_FOUND THEN
4501 NULL;
4502 END;
4503 ELSE
4504 BEGIN
4505 IF boms(ind).ui_omit=NO_FLAG THEN
4506 temp_bom(boms(ind).tree_seq):=boms(ind);
4507 END IF;
4508 EXCEPTION
4509 WHEN NO_DATA_FOUND THEN
4510 NULL;
4511 END;
4512 END IF;
4513 END IF;
4514 ind:=boms.NEXT(ind);
4515 END LOOP;
4516
4517 IF in_mode=NO_FLAG THEN
4518 var_width:=USABLE_WIDTH;
4519 var_height:=DEFAULT_BOM_HEIGHT;
4520 var_left_pos:=LEFT_MARGIN;
4521 ELSE
4522 var_width:=100;
4523 var_height:=20;
4524 var_left_pos:=0;
4525 END IF;
4526
4527 BEGIN
4528 IF opt_bom.Count=0 THEN
4529 RAISE EMPTY_ARRAY_1;
4530 END IF;
4531
4532 i:=opt_bom.First;
4533 LOOP
4534 IF i IS NULL THEN
4535 EXIT;
4536 END IF;
4537
4538 IF in_mode=NO_FLAG THEN
4539 var_top_pos:=last_TOP_POS;
4540 var_component_id:=opt_bom(i).parent_id;
4541 var_type:=UI_BOM_STANDART_TYPE;
4542 var_width:=set_Text_Width(opt_bom(i).caption_name)+80;
4543 IF var_width<=USABLE_WIDTH THEN
4544 var_width:=USABLE_WIDTH;
4545 END IF;
4546 ELSE
4547 var_top_pos:=0;
4548 var_component_id:=NULL;
4549 var_type:=163;
4550 END IF;
4551
4552 IF mLOOK_AND_FEEL='BLAF' THEN
4553 var_use_default_color:=YES_FLAG;
4554 ELSE
4555 var_use_default_color:=NO_FLAG;
4556 END IF;
4557
4558 counter:=counter+1;
4559 IF counter>mITEMS_ON_PAGE AND in_ui_tree_parent_id IS NOT NULL
4560 AND page_counter<=mMAX_NUMBER_PAGES AND mUI_STYLE=DHTML_STYLE_UI THEN
4561
4562 var_prev_parent_id:=var_new_parent_id;
4563 var_curr_parent_id:=var_new_parent_id;
4564
4565 var_suffix:=TO_CHAR(page_counter);
4566
4567 --
4568 -- handle first page --
4569 --
4570 IF page_counter=1 THEN
4571 BEGIN
4572 SELECT caption_id,modified_flags
4573 INTO var_temp,var_modified_flag FROM CZ_UI_NODES
4574 WHERE ui_def_id=in_ui_def_id AND ui_node_ref_id=var_new_parent_id
4575 AND ui_node_type=UI_COMPONENT_REF_TYPE AND deleted_flag='0';
4576
4577 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=localized_str||var_suffix
4578 WHERE intl_text_id=var_temp AND var_modified_flag=0;
4579
4580 SELECT caption_id,ui_node_ref_id,modified_flags
4581 INTO var_temp,var_ui_node_ref_id,var_modified_flag
4582 FROM CZ_UI_NODES
4583 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_new_parent_id
4584 AND deleted_flag='0';
4585
4586 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=localized_str||var_suffix
4587 WHERE intl_text_id=var_temp AND var_modified_flag=0;
4588
4589 SELECT caption_id,modified_flags
4590 INTO var_temp,var_modified_flag FROM CZ_UI_NODES
4591 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_ui_node_ref_id
4592 AND deleted_flag='0';
4593
4594 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=localized_str||var_suffix
4595 WHERE intl_text_id=var_temp AND var_modified_flag=0;
4596 EXCEPTION
4597 WHEN OTHERS THEN
4598 NULL;
4599 END;
4600 END IF;
4601
4602 page_counter:=page_counter+1;
4603 var_new_parent_id:=create_Page(in_ui_tree_parent_id=>in_ui_tree_parent_id,
4604 in_ui_parent_id =>in_ui_parent_id,
4605 in_ps_node_id =>in_parent_node_id,
4606 in_intl_text_id =>in_parent_text_id,
4607 in_tree_seq =>in_tree_seq,
4608 in_page_name =>in_parent_name,
4609 in_ui_def_id =>in_ui_def_id,
4610 in_counter =>page_counter);
4611
4612 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
4613 ind_arr:=footer_buttons.Count+1;
4614 footer_buttons(ind_arr).id:=getUISeqVal;
4615 footer_buttons(ind_arr).ui_parent_id:=var_new_parent_id;
4616 footer_buttons(ind_arr).rel_top_pos:=last_TOP_POS;
4617 END IF;
4618
4619 last_TOP_POS:=START_TOP_POS+DEFAULT_SPACE_BETWEEN;
4620 var_top_pos:=last_TOP_POS;
4621 counter:=0;
4622 END IF;
4623
4624 var_opt_class_scr:=var_new_parent_id;
4625
4626 curr_node_id :=getUISeqVal;
4627
4628 BEGIN
4629 SELECT ui_node_id INTO var_screen_oc_id FROM CZ_UI_NODES
4630 WHERE ui_def_id=in_ui_def_id AND ui_node_type=UI_BOM_OPTION_CLASS_TYPE AND ps_node_id=opt_bom(i).ps_node_id
4631 AND rownum<2 AND deleted_flag=NO_FLAG;
4632 EXCEPTION
4633 WHEN OTHERS THEN
4634 NULL;
4635 END;
4636
4637 BEGIN
4638 SELECT model_ref_expl_id INTO var_model_ref_expl_id
4639 FROM CZ_MODEL_REF_EXPLS WHERE model_id=Project_Id
4640 AND parent_expl_node_id IS NULL AND deleted_flag=NO_FLAG;
4641 EXCEPTION
4642 WHEN OTHERS THEN
4643 var_model_ref_expl_id:=NULL;
4644 END;
4645
4646 set_UI_NODES(in_ui_node_id =>curr_node_id,
4647 in_parent_id =>var_new_parent_id,
4648 in_ui_def_id =>in_ui_def_id,
4649 in_ps_node_id =>opt_bom(i).ps_node_id,
4650 in_ui_node_ref_id =>var_screen_oc_id,
4651 in_name =>opt_bom(i).name,
4652 in_component_id =>var_component_id,
4653 in_ui_node_type =>var_type,
4654 in_lce_id =>'P_'||to_char(opt_bom(i).ps_node_id),
4655 in_tree_display_flag=>YES_FLAG,
4656 in_tree_seq =>opt_bom(i).tree_seq,
4657 in_width =>var_width,
4658 in_height =>var_height,
4659 in_top_pos =>var_top_pos,
4660 in_left_pos =>var_left_pos,
4661 in_font_name =>DEFAULT_FONT_NAME,
4662 in_font_bold =>NO_FLAG,
4663 in_font_color =>0,
4664 in_font_italic =>NO_FLAG,
4665 in_font_size =>DEFAULT_FONT_SIZE,
4666 in_font_underline =>NO_FLAG,
4667 in_controltype =>9,
4668 in_bkgrnd_style =>YES_FLAG,
4669 in_intl_text_id =>opt_bom(i).intl_text_id,
4670 in_use_default_color=>var_use_default_color,
4671 in_model_ref_expl_id=>var_model_ref_expl_id);
4672
4673 generateUIProps(curr_node_id,in_ui_def_id,DEF_CLASS,
4674 0, YES_FLAG, YES_FLAG,
4675 NO_FLAG, NO_FLAG, NO_FLAG,
4676 0, 'left', '0');
4677
4678 last_TOP_POS:=last_TOP_POS+var_height+DEFAULT_SPACE_BETWEEN;
4679 last_HEIGHT:=var_height;
4680
4681 i:=opt_bom.NEXT(i);
4682 END LOOP;
4683
4684 EXCEPTION
4685 WHEN EMPTY_ARRAY_1 THEN
4686 NULL;
4687 WHEN NO_DATA_FOUND THEN
4688 NULL;
4689 END;
4690
4691 BEGIN
4692
4693 IF temp_bom.Count=0 THEN
4694 RAISE EMPTY_ARRAY_2;
4695 END IF;
4696
4697 IF opt_bom.Count>0 AND in_mode=NO_FLAG THEN
4698 create_DIVIDER(getUISeqVal,var_new_parent_id,in_ui_def_id,
4699 last_TOP_POS+DEFAULT_DIVIDER_HEIGHT,LEFT_MARGIN, 0);
4700 last_TOP_POS:=last_TOP_POS+DEFAULT_DIVIDER_HEIGHT+DEFAULT_SPACE_BETWEEN;
4701 END IF;
4702
4703 i:=temp_bom.First;
4704 LOOP
4705 IF i IS NULL THEN
4706 EXIT;
4707 END IF;
4708 IF in_mode=NO_FLAG THEN
4709 var_top_pos:=last_TOP_POS;
4710 var_component_id:=temp_bom(i).parent_id;
4711 var_type:=UI_BOM_STANDART_TYPE;
4712 var_width:=set_Text_Width(temp_bom(i).caption_name)+80;
4713 IF var_width<=USABLE_WIDTH THEN
4714 var_width:=USABLE_WIDTH;
4715 END IF;
4716 ELSE
4717 var_top_pos:=0;
4718 var_component_id:=NULL;
4719 var_type:=163;
4720 END IF;
4721
4722 IF mLOOK_AND_FEEL='BLAF' THEN
4723 var_use_default_color:=YES_FLAG;
4724 ELSE
4725 var_use_default_color:=NO_FLAG;
4726 END IF;
4727
4728 counter:=counter+1;
4729
4730 IF counter>mITEMS_ON_PAGE AND in_ui_tree_parent_id IS NOT NULL
4731 AND page_counter<=mMAX_NUMBER_PAGES AND mUI_STYLE=DHTML_STYLE_UI THEN
4732
4733 var_prev_parent_id:=var_new_parent_id;
4734 var_curr_parent_id:=var_new_parent_id;
4735
4736 var_suffix:=' ('||TO_CHAR(page_counter)||')';
4737
4738 IF page_counter=1 THEN
4739 BEGIN
4740 SELECT caption_id,modified_flags
4741 INTO var_temp,var_modified_flag FROM CZ_UI_NODES
4742 WHERE ui_def_id=in_ui_def_id AND ui_node_ref_id=var_new_parent_id
4743 AND ui_node_type=UI_COMPONENT_REF_TYPE AND deleted_flag='0';
4744
4745 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=localized_str||var_suffix
4746 WHERE intl_text_id=var_temp AND var_modified_flag=0;
4747
4748 UPDATE CZ_UI_NODES SET name=name||var_suffix
4749 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_new_parent_id
4750 AND deleted_flag='0'
4751 RETURNING caption_id,ui_node_ref_id,modified_flags
4752 INTO var_temp,var_ui_node_ref_id,var_modified_flag;
4753
4754 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=localized_str||var_suffix
4755 WHERE intl_text_id=var_temp AND var_modified_flag=0;
4756
4757 SELECT caption_id,modified_flags
4758 INTO var_temp,var_modified_flag FROM CZ_UI_NODES
4759 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_ui_node_ref_id
4760 AND deleted_flag='0';
4761
4762 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=localized_str||var_suffix
4763 WHERE intl_text_id=var_temp AND var_modified_flag=0;
4764
4765 EXCEPTION
4766 WHEN OTHERS THEN
4767 NULL;
4768 END;
4769 END IF;
4770
4771 page_counter:=page_counter+1;
4772
4773 var_new_parent_id:=create_Page(in_ui_tree_parent_id=>in_ui_tree_parent_id,
4774 in_ui_parent_id =>in_ui_parent_id,
4775 in_ps_node_id =>in_parent_node_id,
4776 in_intl_text_id =>in_parent_text_id,
4777 in_tree_seq =>in_tree_seq,
4778 in_page_name =>in_parent_name,
4779 in_ui_def_id =>in_ui_def_id,
4780 in_counter =>page_counter);
4781
4782 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
4783 ind_arr:=footer_buttons.Count+1;
4784 footer_buttons(ind_arr).id:=getUISeqVal;
4785 footer_buttons(ind_arr).ui_parent_id:=var_new_parent_id;
4786 footer_buttons(ind_arr).rel_top_pos:=last_TOP_POS;
4787 END IF;
4788
4789 last_TOP_POS:=START_TOP_POS+DEFAULT_SPACE_BETWEEN;
4790 var_top_pos:=last_TOP_POS;
4791 counter:=1;
4792 END IF;
4793
4794 curr_node_id :=getUISeqVal;
4795 set_UI_NODES( in_ui_node_id =>curr_node_id,
4796 in_parent_id =>var_new_parent_id,
4797 in_ui_def_id =>in_ui_def_id,
4798 in_ps_node_id =>temp_bom(i).ps_node_id,
4799 in_ui_node_ref_id =>NULL,
4800 in_component_id =>var_component_id,
4801 in_name =>temp_bom(i).name,
4802 in_ui_node_type =>var_type,
4803 in_lce_id =>'P_'||to_char(temp_bom(i).ps_node_id),
4804 in_tree_display_flag=>YES_FLAG,
4805 in_tree_seq =>temp_bom(i).tree_seq,
4806 in_width =>var_width,
4807 in_height =>var_height,
4808 in_top_pos =>var_top_pos,
4809 in_left_pos =>var_left_pos,
4810 in_font_name =>DEFAULT_FONT_NAME,
4811 in_font_bold =>NO_FLAG,
4812 in_font_color =>0,
4813 in_font_italic =>NO_FLAG,
4814 in_font_size =>DEFAULT_FONT_SIZE,
4815 in_font_underline =>NO_FLAG,
4816 in_controltype =>9,
4817 in_bkgrnd_style =>YES_FLAG,
4818 in_intl_text_id =>temp_bom(i).intl_text_id,
4819 in_use_default_color=>var_use_default_color);
4820 last_TOP_POS:=last_TOP_POS+var_height+DEFAULT_SPACE_BETWEEN;
4821 last_HEIGHT:=var_height;
4822
4823 i:=temp_bom.NEXT(i);
4824 END LOOP;
4825
4826 /* *** VB code needs this update for Preview *** */
4827 /* *** if we add a new control then VB should add *** */
4828 /* *** the control under all others control on the screen *** */
4829 --IF mUI_STYLE=DHTML_STYLE_UI THEN
4830 -- UPDATE CZ_UI_NODES SET rel_top_pos=last_TOP_POS
4831 -- WHERE ui_def_id=in_ui_def_id AND ui_node_id=in_new_parent_id;
4832 --END IF;
4833
4834 EXCEPTION
4835 WHEN EMPTY_ARRAY_2 THEN
4836 NULL;
4837 WHEN NO_DATA_FOUND THEN
4838 NULL;
4839 END;
4840
4841 EXCEPTION
4842 WHEN EMPTY_ARRAY THEN
4843 NULL;
4844 WHEN NO_DATA_FOUND THEN
4845 NULL;
4846 WHEN OTHERS THEN
4847 --LOG_REPORT('CZ_UI_GENERATOR.generate_MCS','ui_def_id='||TO_CHAR(in_ui_def_id)||' : '||SQLERRM);
4848 FND_REPORT(CZ_UI_GEN_FATAL_ERR,TOKEN_SQLERRM,SQLERRM, CZ_ERROR_URGENCY);
4849 END generate_MCS;
4850
4851 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4852 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
4853
4854 PROCEDURE create_Component_Tree
4855 (in_product_id IN INTEGER,
4856 out_ui_def_id OUT NOCOPY INTEGER,
4857 in_screen_width IN INTEGER, -- DEFAULT DEFAULT_TARGET_FRAME_WIDTH,
4858 in_screen_height IN INTEGER, -- DEFAULT DEFAULT_TARGET_FRAME_HEIGHT,
4859 in_show_all_nodes IN VARCHAR2, -- DEFAULT '0',
4860 in_use_labels IN VARCHAR2 -- DEFAULT '1'
4861 ) IS
4862
4863 t_ref_uis IntArray;
4864 var_ref_ui INTEGER;
4865 new_id INTEGER;
4866 new_parent INTEGER;
4867 new_child INTEGER;
4868 new_ui_def_id INTEGER;
4869 new_node_ref_id INTEGER;
4870 curr_node_id INTEGER;
4871 curr_label_id INTEGER;
4872 curr_bitmap_id INTEGER;
4873 curr_button_id INTEGER;
4874
4875 var_comp_tree_id INTEGER;
4876 var_ui_root_id INTEGER;
4877
4878 default_PROD_TOP INTEGER;
4879 default_PROD_LEFT INTEGER;
4880 var_component_id INTEGER;
4881 var_model_id INTEGER;
4882 var_parent_id INTEGER;
4883 var_prev_ps_id INTEGER;
4884 ind INTEGER;
4885 ind_arr INTEGER;
4886 k INTEGER;
4887
4888 var_name CZ_UI_NODES.name%TYPE;
4889 var_caption_name CZ_INTL_TEXTS.text_str%TYPE;
4890
4891 BEGIN
4892
4893 ERROR_CODE:='0000';
4894 Initialize;
4895 ERROR_CODE:='0001';
4896
4897 /* ************ Calculate usable width and height *************** */
4898
4899 USABLE_WIDTH:=FLOOR(in_screen_width*(100-DEFAULT_TREE_ALLOCATION)/100)-LEFT_MARGIN-RIGHT_MARGIN;
4900 USABLE_HEIGHT:=in_screen_height;
4901
4902 OPTION_FEATURE_WIDTH:=FLOOR(USABLE_WIDTH/2);
4903 CENTER_LINE:=LEFT_MARGIN+OPTION_FEATURE_WIDTH;
4904 DELETE_BUTTON_LEFT_POS:=USABLE_WIDTH+LEFT_MARGIN-DELETE_BUTTON_WIDTH;
4905
4906 NUMERIC_FEATURE_WIDTH:=FLOOR(OPTION_FEATURE_WIDTH/2);
4907 BOOLEAN_FEATURE_WIDTH:=16;
4908 DEFAULT_TOTAL_WIDTH:=NUMERIC_FEATURE_WIDTH;
4909 DEFAULT_RESOURCE_WIDTH:=NUMERIC_FEATURE_WIDTH;
4910 DEFAULT_CONNECTOR_WIDTH:=NUMERIC_FEATURE_WIDTH;
4911
4912 CONNECTOR_GAP := DEFAULT_CONNECTOR_WIDTH+DEFAULT_SPACE_BETWEEN+STAR_SYMBOL_WIDTH+DEFAULT_SPACE_BETWEEN;
4913 /* ************ Calculate Default Tops and Lefts *************** */
4914
4915 last_TOP_POS:=START_TOP_POS;
4916 last_HEIGHT:=0;
4917
4918 /* *** If in_ui_product_id is not NULL then it means ******* */
4919 /* *** that current procedure is executed by BOM gen and *** */
4920 /* *** in this case we use in_ui_def_id *** */
4921 /* *** otherwize new ui_def is created *** */
4922
4923 ERROR_CODE:='0002';
4924
4925 new_ui_def_id:=generate_UI_DEF;
4926
4927 ERROR_CODE:='0003';
4928
4929 /* *** generate common properties for current UI DEF *** */
4930 generateUIProperties(new_ui_def_id);
4931
4932 ERROR_CODE:='0004';
4933
4934 /* *** create Component Tree Header ( User Interfaces,Interface,Components Tree ) *** */
4935 create_Tree_Header(in_ui_def_id => new_ui_def_id,
4936 in_product_id =>in_product_id,
4937 out_component_tree_id =>var_comp_tree_id,
4938 out_interface_id =>var_ui_root_id,
4939 in_screen_width =>in_screen_width,
4940 in_screen_height =>in_screen_height,
4941 in_show_all_nodes =>in_show_all_nodes);
4942
4943 ERROR_CODE:='0005';
4944
4945 SELECT parent_id INTO var_model_id FROM CZ_PS_NODES
4946 WHERE ps_node_id=in_product_id;
4947
4948 ERROR_CODE:='0006';
4949
4950 curr_node_id:=getUISeqVal;
4951
4952 news(Model_Id).id:=var_comp_tree_id;
4953 news(Model_Id).ps_node_id:=Model_Id;
4954 news(Model_Id).parent_id:=NULL;
4955
4956 FOR i IN
4957 (SELECT ps_node_id,parent_id,name,ps_node_type,
4958 tree_seq,counted_options_flag,maximum,minimum,
4959 ui_omit,item_id,feature_type,intl_text_id,reference_id,virtual_flag,orig_sys_ref FROM CZ_PS_NODES
4960 WHERE devl_project_id=Project_Id AND ps_node_type
4961 in (PRODUCT_NODE_TYPE,COMPONENT_NODE_TYPE,FEATURE_NODE_TYPE,RESOURCE_NODE_TYPE,TOTAL_NODE_TYPE,OPTION_NODE_TYPE,
4962 BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE,BOM_STANDART_NODE_TYPE,REFERENCE_NODE_TYPE,CONNECTOR_NODE_TYPE)
4963 START WITH ps_node_id=in_product_id
4964 CONNECT BY PRIOR ps_node_id=parent_id
4965 AND (ui_omit=NO_FLAG OR in_show_all_nodes=YES_FLAG) AND deleted_flag=NO_FLAG)
4966 LOOP
4967 ERROR_CODE:='0006';
4968
4969 curr_node_id:=getUISeqVal;
4970 var_caption_name:=i.name;
4971
4972 IF i.intl_text_id IS NOT NULL AND in_use_labels<>'0' THEN
4973 BEGIN
4974 SELECT RTRIM(text_str,' ') INTO var_caption_name FROM CZ_INTL_TEXTS
4975 WHERE intl_text_id=i.intl_text_id;
4976
4977 -- if there is caption_id that does not point to CZ_INTL_TEXTS --
4978 -- then just ignore it and use name from PS tree --
4979 EXCEPTION
4980 WHEN NO_DATA_FOUND THEN
4981 var_caption_name:=i.name;
4982 END;
4983
4984 IF var_caption_name IS NULL OR var_caption_name='' THEN
4985 var_caption_name:=i.name;
4986 ELSE
4987 IF in_use_labels IN('2','3') THEN
4988 IF length(var_caption_name)<=length(i.name||mCONCAT_SYMBOL||var_caption_name) THEN
4989 var_caption_name := i.name||mCONCAT_SYMBOL||var_caption_name;
4990 ELSE
4991 var_caption_name := i.name;
4992 END IF;
4993 END IF;
4994 END IF;
4995
4996 END IF;
4997
4998 IF i.ps_node_type IN (PRODUCT_NODE_TYPE,COMPONENT_NODE_TYPE,
4999 BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE,REFERENCE_NODE_TYPE) THEN
5000 news(i.ps_node_id).id:=curr_node_id;
5001 news(i.ps_node_id).ps_node_id:=i.ps_node_id;
5002 news(i.ps_node_id).parent_id:=i.parent_id;
5003 news(i.ps_node_id).ps_node_type:=i.ps_node_type;
5004 news(i.ps_node_id).name:=i.name;
5005 news(i.ps_node_id).caption_name:=var_caption_name;
5006 news(i.ps_node_id).tree_seq:=i.tree_seq*mMAX_NUMBER_PAGES;
5007 news(i.ps_node_id).maximum:=i.maximum;
5008 news(i.ps_node_id).minimum:=i.minimum;
5009 news(i.ps_node_id).ui_omit:=i.ui_omit;
5010 news(i.ps_node_id).virtual_flag:=i.virtual_flag;
5011 news(i.ps_node_id).intl_text_id:=i.intl_text_id;
5012
5013 IF i.ps_node_type IN(REFERENCE_NODE_TYPE) THEN
5014 news(i.ps_node_id).reference_id:=i.reference_id;
5015 END IF;
5016 news(i.ps_node_id).ui_node_ref_id:=getUISeqVal;
5017 END IF;
5018
5019 IF i.ps_node_type IN (FEATURE_NODE_TYPE,RESOURCE_NODE_TYPE,TOTAL_NODE_TYPE,CONNECTOR_NODE_TYPE) THEN
5020 features(i.ps_node_id).id:=curr_node_id;
5021 features(i.ps_node_id).ps_node_id:=i.ps_node_id;
5022 features(i.ps_node_id).parent_id:=i.parent_id;
5023 features(i.ps_node_id).ps_node_type:=i.ps_node_type;
5024 features(i.ps_node_id).name:=i.name;
5025 features(i.ps_node_id).caption_name:=var_caption_name;
5026 features(i.ps_node_id).counted_options_flag:=i.counted_options_flag;
5027 features(i.ps_node_id).tree_seq:=i.tree_seq*mMAX_NUMBER_PAGES;
5028 features(i.ps_node_id).maximum:=i.maximum;
5029 features(i.ps_node_id).minimum:=i.minimum;
5030 features(i.ps_node_id).feature_type:=i.feature_type;
5031 features(i.ps_node_id).intl_text_id:=i.intl_text_id;
5032
5033 IF i.ps_node_type IN(CONNECTOR_NODE_TYPE) THEN
5034 features(i.ps_node_id).reference_id:=i.reference_id;
5035 END IF;
5036
5037 --
5038 -- atp_flag=TRUE means - it can be used in pricing stuff --
5039 -- atp_flag = TRUE just when it's BOM node --
5040 --
5041 -- this is an old condition --
5042 -- IF i.item_id IS NOT NULL THEN --
5043 --
5044 IF i.orig_sys_ref IS NOT NULL THEN
5045 features(i.ps_node_id).atp_flag:=TRUE;
5046 ELSE
5047 features(i.ps_node_id).atp_flag:=FALSE;
5048 END IF;
5049 END IF;
5050
5051 IF i.ps_node_type=OPTION_NODE_TYPE THEN
5052 options(i.ps_node_id).id:=curr_node_id;
5053 options(i.ps_node_id).ps_node_id:=i.ps_node_id;
5054 options(i.ps_node_id).parent_id:=i.parent_id;
5055 options(i.ps_node_id).name:=i.name;
5056 options(i.ps_node_id).caption_name:=var_caption_name;
5057 options(i.ps_node_id).tree_seq:=i.tree_seq;
5058 options(i.ps_node_id).intl_text_id:=i.intl_text_id;
5059 END IF;
5060
5061 IF i.ps_node_type IN (BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE,BOM_STANDART_NODE_TYPE) THEN
5062 boms(i.ps_node_id).id:=curr_node_id;
5063 boms(i.ps_node_id).ps_node_id:=i.ps_node_id;
5064 boms(i.ps_node_id).parent_id:=i.parent_id;
5065 boms(i.ps_node_id).ps_node_type:=i.ps_node_type;
5066 boms(i.ps_node_id).name:=i.name;
5067 boms(i.ps_node_id).caption_name:=var_caption_name;
5068 boms(i.ps_node_id).tree_seq:=i.tree_seq*mMAX_NUMBER_PAGES;
5069 boms(i.ps_node_id).maximum:=i.maximum;
5070 boms(i.ps_node_id).minimum:=i.minimum;
5071 boms(i.ps_node_id).ui_omit:=i.ui_omit;
5072 boms(i.ps_node_id).virtual_flag:=i.virtual_flag;
5073 boms(i.ps_node_id).intl_text_id:=i.intl_text_id;
5074 boms(i.ps_node_id).ui_node_ref_id:=getUISeqVal;
5075 END IF;
5076 ERROR_CODE:='0007';
5077 END LOOP; -- for main LOOP
5078
5079 UI_Product_Id:=news(in_product_id).id;
5080
5081 /* *** main LOOP for UI creation *** */
5082
5083 k:=news.First;
5084 LOOP
5085 BEGIN
5086 ERROR_CODE:='0007';
5087
5088 IF news(k).parent_id IS NOT NULL THEN
5089 new_parent:=news(news(k).parent_id).id; -- find new parent node id
5090 ELSE
5091 new_parent:=var_comp_tree_id; -- 1st Tree node reference to Components Tree node
5092 END IF;
5093 EXCEPTION
5094 WHEN NO_DATA_FOUND THEN
5095 new_parent:=Model_Id;
5096 END;
5097 ERROR_CODE:='0008';
5098 new_child:=news(k).id; -- find new Tree node id
5099
5100 curr_node_id:=getUISeqVal;
5101
5102 /* ************************** create PRODUCTs ******************************* */
5103
5104 IF news(k).ps_node_type=PRODUCT_NODE_TYPE THEN
5105 ERROR_CODE:='0008';
5106
5107 var_parent_id:=curr_node_id;
5108 create_PRODUCT(news(k).ui_node_ref_id,var_ui_root_id,new_ui_def_id,news(k));
5109 ERROR_CODE:='0009';
5110
5111 /* ****** create PRODUCT node for Model Tree ****** */
5112
5113 create_PRODUCT_Model(new_child,new_parent,new_ui_def_id,news(k).ui_node_ref_id,news(k));
5114 ERROR_CODE:='0010';
5115
5116 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
5117 ind_arr:=footer_buttons.Count+1;
5118 footer_buttons(ind_arr).id:=getUISeqVal;
5119 footer_buttons(ind_arr).ui_parent_id:=news(k).ui_node_ref_id;
5120 footer_buttons(ind_arr).rel_top_pos:=0;
5121 END IF;
5122
5123 generate_MCS(in_parent_node_id =>news(k).ps_node_id,
5124 in_new_parent_id =>news(k).ui_node_ref_id,
5125 in_ui_def_id =>new_ui_def_id,
5126 in_mode =>'0');
5127 ERROR_CODE:='0011';
5128
5129 generate_FTR(news(k).ps_node_id,news(k).ui_node_ref_id,new_ui_def_id);
5130 ERROR_CODE:='0012';
5131
5132 END IF; -- for PRODUCT
5133
5134 /* ************************** create COMPONENTs ******************************* */
5135
5136 IF news(k).ps_node_type=COMPONENT_NODE_TYPE THEN
5137 ERROR_CODE:='0013';
5138
5139 IF news(k).parent_id IS NULL THEN
5140 var_prev_ps_id:=-1;
5141 ELSE
5142 var_prev_ps_id:=news(news(k).parent_id).ui_node_ref_id;
5143 END IF;
5144 ERROR_CODE:='0014';
5145
5146 create_COMPONENT(news(k).ui_node_ref_id,var_ui_root_id,new_ui_def_id,var_prev_ps_id,news(k));
5147 ERROR_CODE:='0015';
5148
5149 create_COMPONENT_Model(new_child,new_parent,new_ui_def_id,news(k).ui_node_ref_id,news(k));
5150 ERROR_CODE:='0016';
5151
5152 generate_FTR(news(k).ps_node_id,news(k).ui_node_ref_id,new_ui_def_id);
5153 ERROR_CODE:='0017';
5154
5155 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
5156 ind_arr:=footer_buttons.Count+1;
5157 footer_buttons(ind_arr).id:=getUISeqVal;
5158 footer_buttons(ind_arr).ui_parent_id:=news(k).ui_node_ref_id;
5159 footer_buttons(ind_arr).rel_top_pos:=last_TOP_POS;
5160 END IF;
5161 ERROR_CODE:='0018';
5162
5163 END IF; ---- for COMPONENT
5164
5165 /* ************************** create REFERENCEs ******************************* */
5166
5167
5168 IF news(k).ps_node_type=REFERENCE_NODE_TYPE THEN
5169 ERROR_CODE:='0019';
5170 create_REFERENCE_Model(new_child,new_parent,new_ui_def_id,
5171 news(news(k).parent_id).ui_node_ref_id,news(k),var_ref_ui);
5172 ERROR_CODE:='0020';
5173 END IF;
5174
5175 /* ***************************************************************** */
5176 /* ************************* BOM section *************************** */
5177 /* ***************************************************************** */
5178
5179 IF news(k).ps_node_type=BOM_MODEL_NODE_TYPE THEN
5180 ERROR_CODE:='0021';
5181
5182 createBOM_MODEL(news(k).ui_node_ref_id,var_ui_root_id,new_ui_def_id,news(k));
5183 ERROR_CODE:='0022';
5184
5185 /* *** create record for Model Tree *** */
5186 createBOM_MODEL_Model(new_child,new_parent,
5187 new_ui_def_id,news(k).ui_node_ref_id,news(k));
5188 ERROR_CODE:='0023';
5189
5190
5191 /* *** create OPTION CLASSES AND STANDARTS for the screen *** */
5192
5193 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
5194 ind_arr:=footer_buttons.Count+1;
5195 footer_buttons(ind_arr).id:=getUISeqVal;
5196 footer_buttons(ind_arr).ui_parent_id:=news(k).ui_node_ref_id;
5197 footer_buttons(ind_arr).rel_top_pos:=last_TOP_POS;
5198 END IF;
5199 ERROR_CODE:='0024';
5200
5201 generate_MCS(in_parent_node_id =>news(k).ps_node_id,
5202 in_new_parent_id =>news(k).ui_node_ref_id,
5203 in_ui_def_id =>new_ui_def_id,
5204 in_mode =>'0');
5205 ERROR_CODE:='0025';
5206
5207
5208 /* *** create Features, Totals, Resources for the screen *** */
5209 generate_FTR(news(k).ps_node_id,news(k).ui_node_ref_id,new_ui_def_id);
5210 ERROR_CODE:='0026';
5211
5212 END IF; -- for BOM_MODEL
5213
5214 IF news(k).ps_node_type=BOM_CLASS_NODE_TYPE
5215 AND (news(k).ui_omit=NO_FLAG OR in_show_all_nodes=YES_FLAG) THEN
5216
5217 ERROR_CODE:='0027';
5218
5219 createBOM_CLASS(news(k).ui_node_ref_id,var_ui_root_id,new_ui_def_id,news(k));
5220 ERROR_CODE:='0028';
5221
5222 /* *** create record for Model Tree *** */
5223 createBOM_CLASS_Model(new_child,new_parent,
5224 new_ui_def_id,news(k).ui_node_ref_id,news(k));
5225 ERROR_CODE:='0029';
5226
5227
5228 /* *** create OPTION CLASSES AND STANDARTS for the screen *** */
5229 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
5230 ind_arr:=footer_buttons.Count+1;
5231 footer_buttons(ind_arr).id:=getUISeqVal;
5232 footer_buttons(ind_arr).ui_parent_id:=news(k).ui_node_ref_id;
5233 footer_buttons(ind_arr).rel_top_pos:=0;
5234 END IF;
5235 ERROR_CODE:='0030';
5236
5237 generate_MCS(in_parent_node_id =>news(k).ps_node_id,
5238 in_new_parent_id =>news(k).ui_node_ref_id,
5239 in_ui_def_id =>new_ui_def_id,
5240 in_mode =>'0',
5241 in_ui_tree_parent_id =>new_parent,
5242 in_ui_parent_id =>var_ui_root_id,
5243 in_parent_text_id =>news(k).intl_text_id,
5244 in_parent_name =>news(k).name,
5245 in_tree_seq =>news(k).tree_seq);
5246 ERROR_CODE:='0031';
5247
5248 --IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
5249 -- create_Wizard_Style_Buttons(news(k).ui_node_ref_id,new_ui_def_id);
5250 --END IF;
5251
5252 END IF; -- for BOM classes
5253
5254 k:=news.NEXT(k);
5255 IF k IS NULL THEN
5256 EXIT;
5257 END IF;
5258
5259 END LOOP; -- main LOOP for creation
5260
5261
5262 /***********************************/
5263 IF ref_boms.Count>0 THEN
5264 FOR i IN ref_boms.First..ref_boms.Last LOOP
5265 ERROR_CODE:='0032';
5266 add_BOM_MODEL_ITEM(ref_boms(i).ui_parent_id,ref_boms(i).model_id,
5267 new_ui_def_id,ref_boms(i).ps_node_id,
5268 ref_boms(i).maximum,ref_boms(i).minimum,ref_boms(i).virtual_flag,t_ref_uis);
5269 ERROR_CODE:='0033';
5270 END LOOP;
5271 END IF;
5272
5273 ERROR_CODE:='0034';
5274
5275 --
5276 -- create ADD buttons for instantable Components and Products --
5277 --
5278 create_ADD_BUTTONS(new_ui_def_id);
5279
5280 --
5281 -- create EXECUTE buttons for Functional Companions --
5282 --
5283 create_FUNC_BUTTONS(Project_Id,new_ui_def_id,-1);
5284 ERROR_CODE:='0035';
5285 --
5286 -- shift all ADD and EXECUTE buttons to the bottom of the screen --
5287 --
5288 FOR i IN (SELECT ui_node_ref_id FROM CZ_UI_NODES
5289 WHERE ui_def_id=new_ui_def_id AND
5290 ui_node_type IN (UI_PRODUCT_REF_TYPE,UI_COMPONENT_REF_TYPE) AND
5291 deleted_flag=NO_FLAG)
5292 LOOP
5293 ERROR_CODE:='0036';
5294 shift_BUTTONS(i.ui_node_ref_id);
5295 ERROR_CODE:='0037';
5296 END LOOP;
5297
5298 --
5299 -- create "Home","Back" and "Next" buttons --
5300 --
5301 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
5302 ERROR_CODE:='0038';
5303 create_Wizard_Style_Buttons(new_ui_def_id, -1);
5304 ERROR_CODE:='0039';
5305 END IF;
5306
5307 populate_RefSI(new_ui_def_id);
5308
5309 ERROR_CODE:='0040';
5310 /* *** create Limbo and Recycle Bin *** */
5311 create_Footprints(new_ui_def_id,var_ui_root_id);
5312 ERROR_CODE:='0041';
5313
5314 /* *** OUT NOCOPY variable is ID of the generated UI *** */
5315 UPDATE CZ_UI_NODES SET name=InterfaceName WHERE ui_node_id=parent_id AND ui_def_id=new_ui_def_id;
5316 out_ui_def_id:=new_ui_def_id;
5317
5318 ERROR_CODE:='0042';
5319
5320 EXCEPTION
5321 WHEN OTHERS THEN
5322 LOG_REPORT('CZ_UI_GENERATOR.create_Component_tree','ERROR CODE :'||ERROR_CODE||' : '||SQLERRM,
5323 CZ_ERROR_URGENCY);
5324 FND_REPORT(CZ_UI_GEN_FATAL_ERR,TOKEN_SQLERRM,SQLERRM, CZ_ERROR_URGENCY);
5325 RAISE;
5326 END create_Component_Tree;
5327
5328 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5329 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
5330
5331 /******************************************************************/
5332 /*********** BOM style UI ( Applet UI )section ********************/
5333 /******************************************************************/
5334
5335 PROCEDURE create_UI_element
5336 (in_id IN INTEGER,
5337 in_par_id IN INTEGER,
5338 in_def_id IN INTEGER,
5339 in_ui_type IN INTEGER,
5340 in_tree_seq IN INTEGER,
5341 in_width IN INTEGER,
5342 in_height IN INTEGER,
5343 in_caption IN VARCHAR2 DEFAULT NULL,
5344 in_allocations IN VARCHAR2 DEFAULT NULL,
5345 in_borders IN VARCHAR2 DEFAULT NULL, -- NO_FLAG,
5346 in_scrolling IN VARCHAR2 DEFAULT NULL, -- NO_FLAG,
5347 in_sizeable IN VARCHAR2 DEFAULT NULL, -- YES_FLAG,
5348 in_system_frm IN VARCHAR2 DEFAULT NULL, -- NO_FLAG,
5349 in_top_pos IN INTEGER DEFAULT NULL, -- 0,
5350 in_left_pos IN INTEGER DEFAULT NULL, -- 0,
5351 in_margin_width IN VARCHAR2 DEFAULT NULL, -- '10',
5352 in_margin_height IN VARCHAR2 DEFAULT NULL, -- '10',
5353 in_action IN VARCHAR2 DEFAULT NULL, -- NO_FLAG,
5354 in_action_type IN VARCHAR2 DEFAULT NULL, -- '-1',
5355 in_alt_color IN VARCHAR2 DEFAULT NULL, -- '15201271',
5356 in_data_tag IN VARCHAR2 DEFAULT NULL,
5357 in_editable IN VARCHAR2 DEFAULT NULL, -- NO_FLAG,
5358 in_control_type IN VARCHAR2 DEFAULT NULL, -- '-1',
5359 in_rowscols IN VARCHAR2 DEFAULT NULL, -- YES_FLAG,
5360 in_hierarchy IN VARCHAR2 DEFAULT NULL, -- NO_FLAG,
5361 in_picture IN VARCHAR2 DEFAULT NULL,
5362 in_align IN VARCHAR2 DEFAULT NULL,
5363 in_bkgrnd_style IN VARCHAR2 DEFAULT NULL -- YES_FLAG
5364 ) IS
5365
5366 var_caption_id INTEGER;
5367 var_tool_tip_id INTEGER;
5368 var_name VARCHAR2(255);
5369 var_use_def_font VARCHAR2(1):=YES_FLAG;
5370 var_use_def_pic VARCHAR2(1):=YES_FLAG;
5371 var_use_def_color VARCHAR2(1):=YES_FLAG;
5372 var_font_name CZ_UI_NODES.fontname%type;
5373 var_font_bold CZ_UI_NODES.fontbold%type;
5374 var_font_color CZ_UI_NODES.fontcolor%type;
5375 var_font_italic CZ_UI_NODES.fontitalic%type;
5376 var_font_size CZ_UI_NODES.fontsize%type;
5377 var_font_underline CZ_UI_NODES.fontunderline%type;
5378 var_bkgrnd_style CZ_UI_NODES.backgroundstyle%type;
5379 var_borders CZ_UI_NODES.borders%type;
5380 var_picname CZ_UI_NODES.picturename%type;
5381
5382 BEGIN
5383
5384 IF in_ui_type=DEF_BUTTON THEN
5385 var_use_def_pic:=NO_FLAG;
5386 var_use_def_color:=NO_FLAG;
5387 END IF;
5388
5389 var_font_name:=NULL;
5390 var_font_bold:=NULL;
5391 var_font_color:=NULL;
5392 var_font_italic:=NULL;
5393 var_font_size:=NULL;
5394 var_font_underline :=NULL;
5395 var_bkgrnd_style:=NULL;
5396 var_borders:=NVL(in_borders, NO_FLAG);
5397
5398 IF in_ui_type=DEF_FRAMESET THEN
5399 var_name:='FrameSet-';
5400 ELSIF in_ui_type=DEF_FRAME THEN
5401 var_name:='Frame-';
5402 var_bkgrnd_style:=YES_FLAG;
5403 ELSIF in_ui_type=DEF_PANEL THEN
5404 var_name:='Panel-';
5405 var_borders:=NO_FLAG;
5406 ELSIF in_ui_type=DEF_BUTTON THEN
5407 var_name:='Button-';
5408 var_bkgrnd_style:=YES_FLAG;
5409 var_borders:=NO_FLAG;
5410 ELSIF in_ui_type=DEF_TEXT_CONTROL THEN
5411 var_name:='TextControl-';
5412 ELSIF in_ui_type=DEF_TEXT THEN
5413 var_name:='Text-';
5414 var_font_name:=DEFAULT_FONT_NAME;
5415 var_font_bold:=NO_FLAG;
5416 var_font_color:=0;
5417 var_font_italic:=NO_FLAG;
5418 var_font_size:=DEFAULT_FONT_SIZE;
5419 var_font_underline :=NO_FLAG;
5420 var_bkgrnd_style:=YES_FLAG;
5421 ELSIF in_ui_type=DEF_TAGGED_VALUE THEN
5422 var_name:='TaggedValueDisplay-';
5423 ELSIF in_ui_type=DEF_FIND_CONTROL THEN
5424 var_name:='Find Control-';
5425 ELSIF in_ui_type=DEF_GRID THEN
5426 var_name:='Grid-';
5427 ELSIF in_ui_type=DEF_COLUMN THEN
5428 var_name:='Column-';
5429 ELSIF in_ui_type=DEF_DATASET THEN
5430 var_name:='DataSetList-';
5431 ELSE
5432 NULL;
5433 END IF;
5434
5435 var_name:=var_name||TO_CHAR(in_id);
5436 IF in_ui_type=DEF_MODELTREE THEN
5437 var_name:='Model Tree';
5438 var_font_name:=DEFAULT_FONT_NAME;
5439 var_font_bold:=YES_FLAG;
5440 var_font_color:=0;
5441 var_font_italic:=NO_FLAG;
5442 var_font_size:=DEFAULT_FONT_SIZE;
5443 var_font_underline :=NO_FLAG;
5444 var_bkgrnd_style:=YES_FLAG;
5445 var_borders:=NO_FLAG;
5446 var_picname:=TREE_TILING_BMP;
5447 END IF;
5448
5449 set_UI_NODES
5450 (in_ui_node_id =>in_id,
5451 in_parent_id =>in_par_id,
5452 in_ui_def_id =>in_def_id,
5453 in_ps_node_id =>NULL,
5454 in_ui_node_ref_id =>NULL,
5455 in_name =>var_name,
5456 in_ui_node_type =>in_ui_type,
5457 in_background_color =>DEFAULT_BACKGROUND_COLOR,
5458 in_component_id =>NULL,
5459 in_width =>in_width,
5460 in_height =>in_height,
5461 in_tree_display_flag=>NO_FLAG,
5462 in_use_default_font =>var_use_def_font,
5463 in_use_default_pic =>var_use_def_pic,
5464 in_use_default_color=>var_use_def_color,
5465 in_tree_seq =>in_tree_seq,
5466 in_top_pos =>NVL(in_top_pos, 0),
5467 in_left_pos =>NVL(in_left_pos, 0),
5468 in_caption =>in_caption,
5469 in_picname =>in_picture,
5470 in_font_name =>DEFAULT_FONT_NAME,
5471 in_font_bold =>NO_FLAG,
5472 in_font_color =>0,
5473 in_font_italic =>NO_FLAG,
5474 in_font_size =>9,
5475 in_font_underline =>NO_FLAG,
5476 in_controltype =>NVL(in_control_type, '-1'),
5477 in_bkgrnd_style =>NVL(in_bkgrnd_style, YES_FLAG),
5478 in_borders =>NVL(in_borders, NO_FLAG));
5479
5480 generateBOMUIProps(in_id,in_def_id,in_ui_type,
5481 in_allocations,
5482 NVL(in_borders, NO_FLAG),
5483 NVL(in_scrolling, NO_FLAG),
5484 NVL(in_sizeable, YES_FLAG),
5485 NVL(in_system_frm, NO_FLAG),
5486 NVL(in_margin_width, '10'),
5487 NVL(in_margin_height, '10'),
5488 NVL(in_action, NO_FLAG),
5489 NVL(in_action_type, '-1'),
5490 NVL(in_alt_color, '15201271'),
5491 in_data_tag,
5492 NVL(in_editable, NO_FLAG),
5493 NVL(in_control_type, '-1'),
5494 NVL(in_rowscols, YES_FLAG),
5495 null,
5496 in_align);
5497
5498 /* ***
5499 BEGIN
5500 IF in_caption IS NOT NULL THEN
5501 var_caption_id:=getTXTSeqVal;
5502 UPDATE CZ_UI_NODES SET caption_id=var_caption_id
5503 WHERE ui_def_id=in_def_id AND ui_node_id=in_id;
5504 FOR i IN(SELECT message_text,language_code FROM FND_NEW_MESSAGES WHERE message_name=in_caption)
5505 LOOP
5506 INSERT INTO CZ_LOCALIZED_TEXTS
5507 (INTL_TEXT_ID,
5508 LOCALIZED_STR,
5509 LANGUAGE,
5510 SOURCE_LANG,
5511 DELETED_FLAG,
5512 SECURITY_MASK,
5513 CHECKOUT_USER)
5514 VALUES(
5515 var_caption_id,
5516 i.message_text,
5517 i.language_code,
5518 i.language_code,
5519 '0',
5520 NULL,
5521 NULL);
5522
5523 END LOOP;
5524 END IF;
5525 EXCEPTION
5526 WHEN OTHERS THEN
5527 NULL;
5528 END;
5529 *** */
5530
5531
5532 END create_UI_element;
5533
5534 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5535 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
5536
5537 PROCEDURE create_OptionsGrid
5538 (in_parent_id IN INTEGER,
5539 in_ui_def_id IN INTEGER) IS
5540
5541 Grid_Id CZ_UI_NODES.ui_node_id%TYPE;
5542 Column_Id CZ_UI_NODES.ui_node_id%TYPE;
5543
5544 BEGIN
5545 Grid_Id:=getUISeqVal;
5546 create_UI_element(in_ui_type =>DEF_GRID,
5547 in_id =>Grid_Id,
5548 in_par_id =>in_parent_id,
5549 in_def_id =>in_ui_def_id,
5550 in_tree_seq =>1,
5551 in_width =>100,
5552 in_height =>20,
5553 in_caption =>'',
5554 in_alt_color=>'15201271',
5555 in_hierarchy=>NO_FLAG);
5556
5557 Column_Id:=getUISeqVal;
5558 create_UI_element(in_ui_type =>DEF_COLUMN,
5559 in_id =>Column_Id,
5560 in_par_id =>Grid_Id,
5561 in_def_id =>in_ui_def_id,
5562 in_tree_seq =>1,
5563 in_width =>25,
5564 in_height =>20,
5565 in_caption =>' ',
5566 in_data_tag =>'cfg:logic-state',
5567 in_editable =>YES_FLAG,
5568 in_control_type=>'3');
5569
5570 Column_Id:=getUISeqVal;
5571 create_UI_element(in_ui_type =>DEF_COLUMN,
5572 in_id =>Column_Id,
5573 in_par_id =>Grid_Id,
5574 in_def_id =>in_ui_def_id,
5575 in_tree_seq =>2,
5576 in_width =>120,
5577 in_height =>20,
5578 in_caption =>CZ_GRID_ITEM_CAPTION,
5579 in_data_tag =>'cfg:name');
5580
5581 Column_Id:=getUISeqVal;
5582 create_UI_element(in_ui_type =>DEF_COLUMN,
5583 in_id =>Column_Id,
5584 in_par_id =>Grid_Id,
5585 in_def_id =>in_ui_def_id,
5586 in_tree_seq =>3,
5587 in_width =>450,
5588 in_height =>20,
5589 in_caption =>CZ_GRID_DESCRIPTION_CAPTION,
5590 in_data_tag =>'cfg:description');
5591
5592 Column_Id:=getUISeqVal;
5593 create_UI_element(in_ui_type =>DEF_COLUMN,
5594 in_id =>Column_Id,
5595 in_par_id =>Grid_Id,
5596 in_def_id =>in_ui_def_id,
5597 in_tree_seq =>4,
5598 in_width =>50,
5599 in_height =>20,
5600 in_caption =>CZ_GRID_UOM_CAPTION,
5601 in_data_tag =>'cfg:units-of-measure');
5602
5603 Column_Id:=getUISeqVal;
5604 create_UI_element(in_ui_type =>DEF_COLUMN,
5605 in_id =>Column_Id,
5606 in_par_id =>Grid_Id,
5607 in_def_id =>in_ui_def_id,
5608 in_tree_seq =>5,
5609 in_width =>70,
5610 in_height =>20,
5611 in_caption =>CZ_GRID_QUANTITY_CAPTION,
5612 in_data_tag =>'cfg:quantity',
5613 in_control_type=>14,
5614 in_editable =>YES_FLAG);
5615
5616 Column_Id:=getUISeqVal;
5617 create_UI_element(in_ui_type =>DEF_COLUMN,
5618 in_id =>Column_Id,
5619 in_par_id =>Grid_Id,
5620 in_def_id =>in_ui_def_id,
5621 in_tree_seq =>6,
5622 in_width =>70,
5623 in_height =>20,
5624 in_caption =>CZ_GRID_UNIT_LIST_PRC_CAPTION,
5625 in_data_tag =>'cfg:list-price');
5626
5627 END create_OptionsGrid;
5628
5629 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5630 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
5631
5632 PROCEDURE create_SelectionsGrid
5633 (in_parent_id IN INTEGER,
5634 in_ui_def_id IN INTEGER) IS
5635
5636 Grid_Id CZ_UI_NODES.ui_node_id%TYPE;
5637 Column_Id CZ_UI_NODES.ui_node_id%TYPE;
5638
5639 BEGIN
5640
5641 Grid_Id:=getUISeqVal;
5642 create_UI_element(in_ui_type =>DEF_GRID,
5643 in_id =>Grid_Id,
5644 in_par_id =>in_parent_id,
5645 in_def_id =>in_ui_def_id,
5646 in_tree_seq =>1,
5647 in_width =>100,
5648 in_height =>20,
5649 in_caption =>'',
5650 in_alt_color=>'15201271',
5651 in_hierarchy=>YES_FLAG);
5652
5653 Column_Id:=getUISeqVal;
5654 create_UI_element(in_ui_type =>DEF_COLUMN,
5655 in_id =>Column_Id,
5656 in_par_id =>Grid_Id,
5657 in_def_id =>in_ui_def_id,
5658 in_tree_seq =>1,
5659 in_width =>120,
5660 in_height =>20,
5661 in_caption =>CZ_GRID_ITEM_CAPTION,
5662 in_data_tag =>'cfg:name');
5663
5664 Column_Id:=getUISeqVal;
5665 create_UI_element(in_ui_type =>DEF_COLUMN,
5666 in_id =>Column_Id,
5667 in_par_id =>Grid_Id,
5668 in_def_id =>in_ui_def_id,
5669 in_tree_seq =>2,
5670 in_width =>450,
5671 in_height =>20,
5672 in_caption =>CZ_GRID_DESCRIPTION_CAPTION,
5673 in_data_tag =>'cfg:description');
5674
5675 Column_Id:=getUISeqVal;
5676 create_UI_element(in_ui_type =>DEF_COLUMN,
5677 in_id =>Column_Id,
5678 in_par_id =>Grid_Id,
5679 in_def_id =>in_ui_def_id,
5680 in_tree_seq =>3,
5681 in_width =>50,
5682 in_height =>20,
5683 in_caption =>CZ_GRID_UOM_CAPTION,
5684 in_data_tag =>'cfg:units-of-measure');
5685
5686 Column_Id:=getUISeqVal;
5687 create_UI_element(in_ui_type =>DEF_COLUMN,
5688 in_id =>Column_Id,
5689 in_par_id =>Grid_Id,
5690 in_def_id =>in_ui_def_id,
5691 in_tree_seq =>4,
5692 in_width =>70,
5693 in_height =>20,
5694 in_caption =>CZ_GRID_QUANTITY_CAPTION,
5695 in_data_tag =>'cfg:quantity',
5696 in_control_type=>-1,
5697 in_editable =>NO_FLAG);
5698
5699 Column_Id:=getUISeqVal;
5700 create_UI_element(in_ui_type =>DEF_COLUMN,
5701 in_id =>Column_Id,
5702 in_par_id =>Grid_Id,
5703 in_def_id =>in_ui_def_id,
5704 in_tree_seq=>5,
5705 in_width =>70,
5706 in_height =>20,
5707 in_caption =>CZ_GRID_UNIT_LIST_PRC_CAPTION,
5708 in_data_tag =>'cfg:list-price');
5709
5710 Column_Id:=getUISeqVal;
5711 create_UI_element(in_ui_type =>DEF_COLUMN,
5712 in_id =>Column_Id,
5713 in_par_id =>Grid_Id,
5714 in_def_id =>in_ui_def_id,
5715 in_tree_seq=>6,
5716 in_width =>70,
5717 in_height =>20,
5718 in_caption =>CZ_GRID_SELLING_PRC_CAPTION,
5719 in_data_tag =>'cfg:net-price');
5720
5721 Column_Id:=getUISeqVal;
5722 create_UI_element(in_ui_type =>DEF_COLUMN,
5723 in_id =>Column_Id,
5724 in_par_id =>Grid_Id,
5725 in_def_id =>in_ui_def_id,
5726 in_tree_seq=>7,
5727 in_width =>80,
5728 in_height =>20,
5729 in_caption =>CZ_GRID_EXTENDED_PRC_CAPTION,
5730 in_data_tag =>'cfg:ext-price');
5731
5732 Column_Id:=getUISeqVal;
5733 create_UI_element(in_ui_type =>DEF_COLUMN,
5734 in_id =>Column_Id,
5735 in_par_id =>Grid_Id,
5736 in_def_id =>in_ui_def_id,
5737 in_tree_seq=>8,
5738 in_width =>70,
5739 in_height =>20,
5740 in_caption =>CZ_AVAILABILITY_CAPTION,
5741 in_data_tag =>'cfg:atp-date');
5742
5743 END create_SelectionsGrid;
5744
5745 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5746 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
5747
5748 PROCEDURE create_BOM_Tree
5749 (in_product_id IN INTEGER,
5750 in_model_tree_id IN INTEGER,
5751 in_dataset_tree_id IN INTEGER,
5752 in_ui_def_id IN INTEGER,
5753 in_show_all_nodes IN VARCHAR2, -- DEFAULT '0',
5754 in_use_labels IN VARCHAR2 -- DEFAULT '1'
5755 ) IS
5756
5757 new_id CZ_UI_NODES.ui_node_id%TYPE;
5758 new_parent CZ_UI_NODES.parent_id%TYPE;
5759 new_child CZ_UI_NODES.ui_node_id%TYPE;
5760 var_ref_ui CZ_UI_NODES.ui_def_ref_id%TYPE;
5761 new_ui_def_id CZ_UI_NODES.ui_def_id%TYPE;
5762 new_node_ref_id CZ_UI_NODES.ui_node_ref_id%TYPE;
5763 curr_node_id CZ_UI_NODES.ui_node_id%TYPE;
5764 curr_label_id CZ_UI_NODES.ui_node_id%TYPE;
5765 curr_bitmap_id CZ_UI_NODES.ui_node_id%TYPE;
5766 curr_button_id CZ_UI_NODES.ui_node_id%TYPE;
5767 var_comp_tree_id CZ_UI_NODES.ui_node_id%TYPE;
5768 var_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
5769 var_ui_root_id CZ_UI_NODES.ui_node_id%TYPE;
5770 default_PROD_TOP CZ_UI_NODES.rel_top_pos%TYPE;
5771 default_PROD_LEFT CZ_UI_NODES.rel_left_pos%TYPE;
5772 var_component_id CZ_UI_NODES.component_id%TYPE;
5773 var_parent_id CZ_UI_NODES.parent_id%TYPE;
5774 temp_node CZ_UI_NODES.ps_node_id%TYPE;
5775 var_name CZ_UI_NODES.name%TYPE;
5776 var_caption_name CZ_INTL_TEXTS.text_str%TYPE;
5777 ind INTEGER;
5778 k INTEGER;
5779
5780 BEGIN
5781
5782 new_ui_def_id:=in_ui_def_id;
5783
5784 ERROR_CODE:='2001';
5785 curr_node_id:=getUISeqVal;
5786 Model_Id:=in_product_id;
5787
5788 boms(in_product_id).id:=in_model_tree_id;
5789 boms(in_product_id).ps_node_id:=Model_Id;
5790 boms(in_product_id).parent_id:=NULL;
5791
5792 ERROR_CODE:='2002';
5793
5794 FOR i IN
5795 (SELECT ps_node_id,parent_id,ps_node_type,name,counted_options_flag,tree_seq,
5796 maximum,minimum,ui_omit,intl_text_id,reference_id FROM CZ_PS_NODES
5797 WHERE devl_project_id=Project_Id AND ps_node_type
5798 in (BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE,BOM_STANDART_NODE_TYPE,REFERENCE_NODE_TYPE)
5799 START WITH ps_node_id=in_product_id
5800 CONNECT BY PRIOR ps_node_id=parent_id AND (ui_omit=NO_FLAG OR in_show_all_nodes=YES_FLAG)
5801 AND deleted_flag=NO_FLAG)
5802 LOOP
5803 ERROR_CODE:='2003';
5804
5805 IF i.intl_text_id IS NOT NULL AND in_use_labels<>'0' THEN
5806 BEGIN
5807 SELECT NVL(text_str,' ') INTO var_caption_name FROM CZ_INTL_TEXTS
5808 WHERE intl_text_id=i.intl_text_id;
5809 IF in_use_labels IN('2','3') THEN
5810 var_caption_name:=i.name||mCONCAT_SYMBOL||var_caption_name;
5811 END IF;
5812
5813 -- if there is caption_id that does not point to CZ_INTL_TEXTS --
5814 -- then just ignore it and use name from PS tree --
5815 EXCEPTION
5816 WHEN OTHERS THEN
5817 var_caption_name:=i.name;
5818 END;
5819 END IF;
5820
5821 ERROR_CODE:='2004';
5822
5823 curr_node_id:=getUISeqVal;
5824 boms(i.ps_node_id).id:=curr_node_id;
5825 boms(i.ps_node_id).ps_node_id:=i.ps_node_id;
5826 boms(i.ps_node_id).parent_id:=i.parent_id;
5827 boms(i.ps_node_id).ps_node_type:=i.ps_node_type;
5828 boms(i.ps_node_id).name:=i.name;
5829 boms(i.ps_node_id).caption_name:=var_caption_name;
5830 boms(i.ps_node_id).tree_seq:=i.tree_seq;
5831 boms(i.ps_node_id).maximum:=i.maximum;
5832 boms(i.ps_node_id).minimum:=i.minimum;
5833 boms(i.ps_node_id).ui_omit:=i.ui_omit;
5834 boms(i.ps_node_id).intl_text_id:=i.intl_text_id;
5835
5836 IF i.ps_node_type=REFERENCE_NODE_TYPE THEN
5837 BEGIN
5838 SELECT ps_node_id INTO temp_node FROM CZ_PS_NODES
5839 WHERE devl_project_id=i.reference_id AND ps_node_type=BOM_MODEL_NODE_TYPE AND deleted_flag='0';
5840 boms(i.ps_node_id).reference_id:=i.reference_id;
5841 EXCEPTION
5842 WHEN NO_DATA_FOUND THEN
5843 boms(i.ps_node_id).ui_omit:=YES_FLAG;
5844 END;
5845 END IF;
5846
5847 ERROR_CODE:='2005';
5848
5849 END LOOP; -- for main LOOP
5850
5851 /* *** main LOOP for UI creation *** */
5852
5853 k:=boms.First;
5854 LOOP
5855 BEGIN
5856 IF boms(k).parent_id IS NOT NULL THEN
5857 new_parent:=boms(boms(k).parent_id).id; -- find new parent node id
5858 ELSE
5859 new_parent:=in_model_tree_id; -- 1st Tree node reference to Components Tree node
5860 END IF;
5861 EXCEPTION
5862 WHEN NO_DATA_FOUND THEN
5863 new_parent:=in_model_tree_id;
5864 END;
5865
5866 new_child:=boms(k).id; -- find new Tree node id
5867 curr_node_id:=getUISeqVal;
5868
5869 IF boms(k).ps_node_type=BOM_MODEL_NODE_TYPE THEN
5870
5871 var_top_pos:=DEFAULT_TOP_POS;
5872
5873 set_UI_NODES(curr_node_id,in_dataset_tree_id,new_ui_def_id,boms(k).ps_node_id,
5874 NULL,boms(k).name,162,DEFAULT_BACKGROUND_COLOR,NULL,
5875 in_tree_display_flag=>YES_FLAG,
5876 in_tree_seq=>boms(k).tree_seq,
5877 in_use_default_font=>YES_FLAG,
5878 in_use_default_color=>YES_FLAG,
5879 in_use_default_pic=>YES_FLAG,
5880 in_top_pos =>0,
5881 in_left_pos=>0,
5882 in_width =>100,
5883 in_height =>20,
5884 in_font_name =>DEFAULT_FONT_NAME,
5885 in_font_bold =>NO_FLAG,
5886 in_font_color =>0,
5887 in_font_italic =>NO_FLAG,
5888 in_font_size =>DEFAULT_FONT_SIZE,
5889 in_font_underline =>NO_FLAG,
5890 in_intl_text_id =>boms(k).intl_text_id);
5891
5892 /* *** create record for Model Tree *** */
5893 set_UI_NODES(in_ui_node_id =>new_child,
5894 in_parent_id =>new_parent,
5895 in_ui_def_id =>new_ui_def_id,
5896 in_ps_node_id =>boms(k).ps_node_id,
5897 in_ui_node_ref_id =>curr_node_id,
5898 in_name =>boms(k).name,
5899 in_component_id =>NULL,
5900 in_ui_node_type =>UI_APPLET_TREE_NODE_TYPE,
5901 in_tree_display_flag=>NO_FLAG,
5902 in_tree_seq =>boms(k).tree_seq,
5903 in_font_name =>DEFAULT_FONT_NAME,
5904 in_font_bold =>NO_FLAG,
5905 in_font_color =>0,
5906 in_font_italic =>NO_FLAG,
5907 in_font_size =>DEFAULT_FONT_SIZE,
5908 in_font_underline =>NO_FLAG,
5909 in_intl_text_id =>boms(k).intl_text_id);
5910
5911 /* *** create OPTION CLASESSES and STANDARTS for the screen *** */
5912 generate_MCS(boms(k).ps_node_id,curr_node_id,new_ui_def_id,'3');
5913
5914 END IF; -- for BOM_MODEL
5915
5916 IF boms(k).ps_node_type=REFERENCE_NODE_TYPE AND boms(k).ui_omit=NO_FLAG THEN
5917
5918 /* *** create record for Model Tree *** */
5919
5920 create_REFERENCE_Model(new_child,new_parent,new_ui_def_id,curr_node_id,boms(k),var_ref_ui);
5921
5922 END IF; -- for REFERENCE
5923
5924 IF boms(k).ps_node_type=BOM_CLASS_NODE_TYPE AND (boms(k).ui_omit=NO_FLAG OR in_show_all_nodes=YES_FLAG) THEN
5925
5926 var_top_pos:=DEFAULT_TOP_POS;
5927
5928 set_UI_NODES(in_ui_node_id =>curr_node_id,
5929 in_parent_id =>in_dataset_tree_id,
5930 in_ui_def_id =>new_ui_def_id,
5931 in_ps_node_id =>boms(k).ps_node_id,
5932 in_ui_node_ref_id =>NULL,
5933 in_name =>boms(k).name,
5934 in_ui_node_type =>162,
5935 in_background_color =>DEFAULT_BACKGROUND_COLOR,
5936 in_component_id =>NULL,
5937 in_width =>100,
5938 in_height =>20,
5939 in_lce_id =>NULL,
5940 in_tree_display_flag=>YES_FLAG,
5941 in_tree_seq =>boms(k).tree_seq,
5942 in_use_default_font =>YES_FLAG,
5943 in_use_default_color=>YES_FLAG,
5944 in_use_default_pic =>YES_FLAG,
5945 in_top_pos =>0,
5946 in_left_pos =>0,
5947 in_font_name =>DEFAULT_FONT_NAME,
5948 in_font_bold =>NO_FLAG,
5949 in_font_color =>0,
5950 in_font_italic =>NO_FLAG,
5951 in_font_size =>DEFAULT_FONT_SIZE,
5952 in_font_underline =>NO_FLAG,
5953 in_intl_text_id =>boms(k).intl_text_id);
5954
5955 /* *** create record for Model Tree *** */
5956 set_UI_NODES(in_ui_node_id =>new_child,
5957 in_parent_id =>new_parent,
5958 in_ui_def_id =>new_ui_def_id,
5959 in_ps_node_id =>boms(k).ps_node_id,
5960 in_ui_node_ref_id =>curr_node_id,
5961 in_name =>boms(k).name,
5962 in_component_id =>NULL,
5963 in_ui_node_type =>UI_APPLET_TREE_NODE_TYPE,
5964 in_tree_display_flag=>NO_FLAG,
5965 in_tree_seq =>boms(k).tree_seq,
5966 in_font_name =>DEFAULT_FONT_NAME,
5967 in_font_bold =>NO_FLAG,
5968 in_font_color =>0,
5969 in_font_italic =>NO_FLAG,
5970 in_font_size =>DEFAULT_FONT_SIZE,
5971 in_font_underline =>NO_FLAG,
5972 in_intl_text_id =>boms(k).intl_text_id);
5973
5974 generate_MCS(boms(k).ps_node_id,curr_node_id,new_ui_def_id,'3');
5975
5976 END IF; -- for BOM classes
5977
5978 k:=boms.NEXT(k);
5979 IF k IS NULL THEN
5980 EXIT;
5981 END IF;
5982
5983 END LOOP; -- main LOOP for creation
5984 ERROR_CODE:='2006';
5985
5986 END create_BOM_Tree;
5987
5988 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
5989 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
5990
5991 PROCEDURE generate_BOM_UI
5992 (in_product_id IN INTEGER,
5993 out_ui_def_id OUT NOCOPY INTEGER,
5994 in_screen_width IN INTEGER , -- DEFAULT DEFAULT_TARGET_FRAME_WIDTH
5995 in_screen_height IN INTEGER , -- DEFAULT DEFAULT_TARGET_FRAME_HEIGHT
5996 in_show_all_nodes IN VARCHAR2, -- DEFAULT '0'
5997 in_use_labels IN VARCHAR2 -- DEFAULT '1'
5998 ) IS
5999
6000
6001 ref_id INTEGER;
6002 new_id INTEGER;
6003 new_parent INTEGER;
6004 new_child INTEGER;
6005 ind INTEGER:=1;
6006 new_ui_def_id INTEGER;
6007 new_node_ref_id INTEGER;
6008 curr_ui_node INTEGER;
6009 var_ui_root_id INTEGER;
6010 ui_product_id INTEGER;
6011
6012 var_ui_visible CZ_PS_NODES.ui_omit%TYPE;
6013
6014 FrameSet1_Id CZ_UI_NODES.ui_node_id%TYPE;
6015 FrameSet2_Id CZ_UI_NODES.ui_node_id%TYPE;
6016 FrameSet3_Id CZ_UI_NODES.ui_node_id%TYPE;
6017 FrameSet4_Id CZ_UI_NODES.ui_node_id%TYPE;
6018 FrameSet5_Id CZ_UI_NODES.ui_node_id%TYPE;
6019
6020 Frame1_Id CZ_UI_NODES.ui_node_id%TYPE;
6021 Frame2_Id CZ_UI_NODES.ui_node_id%TYPE;
6022 Frame3_Id CZ_UI_NODES.ui_node_id%TYPE;
6023 Frame4_Id CZ_UI_NODES.ui_node_id%TYPE;
6024 Frame5_Id CZ_UI_NODES.ui_node_id%TYPE;
6025 Frame6_Id CZ_UI_NODES.ui_node_id%TYPE;
6026
6027 Panel1_Id CZ_UI_NODES.ui_node_id%TYPE;
6028 Panel2_Id CZ_UI_NODES.ui_node_id%TYPE;
6029 Panel3_Id CZ_UI_NODES.ui_node_id%TYPE;
6030 Panel4_Id CZ_UI_NODES.ui_node_id%TYPE;
6031 Panel5_Id CZ_UI_NODES.ui_node_id%TYPE;
6032 Panel51_Id CZ_UI_NODES.ui_node_id%TYPE;
6033 Panel52_Id CZ_UI_NODES.ui_node_id%TYPE;
6034 Panel53_Id CZ_UI_NODES.ui_node_id%TYPE;
6035
6036 FindControl_Id CZ_UI_NODES.ui_node_id%TYPE;
6037
6038 Text_Id CZ_UI_NODES.ui_node_id%TYPE;
6039 TextControl_Id CZ_UI_NODES.ui_node_id%TYPE;
6040
6041 Button_Id CZ_UI_NODES.ui_node_id%TYPE;
6042 TaggedValue_Id CZ_UI_NODES.ui_node_id%TYPE;
6043
6044 DataSet_Id CZ_UI_NODES.ui_node_id%TYPE;
6045 ModelTree_Id CZ_UI_NODES.ui_node_id%TYPE;
6046 temp_node CZ_UI_NODES.ui_node_id%TYPE;
6047
6048 BEGIN
6049
6050 Initialize;
6051
6052 new_ui_def_id:=generate_UI_DEF;
6053
6054 generateUIProperties(new_ui_def_id);
6055
6056 UI_Product_Id:=getUISeqVal;
6057
6058 IF MUID IS NOT NULL THEN
6059 temp_node:=currUISeqVal;
6060 set_UI_NODES(in_ui_node_id =>temp_node,
6061 in_parent_id =>temp_node,
6062 in_ui_def_id =>MUID,
6063 in_ps_node_id =>NULL,
6064 in_ui_node_ref_id =>NULL,
6065 in_name =>'User Interfaces',
6066 in_ui_node_type =>51,
6067 in_background_color =>DEFAULT_BACKGROUND_COLOR,
6068 in_component_id =>NULL,
6069 in_width =>100,
6070 in_height =>20,
6071 in_tree_display_flag=>YES_FLAG,
6072 in_use_default_font =>YES_FLAG,
6073 in_use_default_pic =>YES_FLAG,
6074 in_use_default_color=>YES_FLAG,
6075 in_tree_seq =>-1);
6076 END IF;
6077
6078 set_UI_NODES
6079 (in_ui_node_id =>UI_Product_Id,
6080 in_parent_id =>UI_Product_Id,
6081 in_ui_def_id =>new_ui_def_id,
6082 in_ps_node_id =>Model_Id,
6083 in_ui_node_ref_id =>NULL,
6084 in_name =>Model_Name||' User Interface',
6085 in_ui_node_type =>UI_ROOT_SYSTEM_TYPE,
6086 in_background_color =>DEFAULT_BACKGROUND_COLOR,
6087 in_component_id =>NULL,
6088 in_width =>640,
6089 in_height =>480,
6090 in_tree_display_flag=>YES_FLAG,
6091 in_use_default_font =>NO_FLAG,
6092 in_use_default_pic =>NO_FLAG,
6093 in_use_default_color=>NO_FLAG,
6094 in_tree_seq =>NULL);
6095
6096 generateBOMUIProps(UI_Product_Id,new_ui_def_id,UI_ROOT_SYSTEM_TYPE,
6097 NULL, NO_FLAG, NO_FLAG, NO_FLAG, NO_FLAG,
6098 '10', '10', NULL, '-1', '15201271',
6099 NULL, NO_FLAG, '-1', YES_FLAG, NO_FLAG, NULL);
6100
6101 /***** Create FrameSet1 *********/
6102
6103 FrameSet1_Id :=getUISeqVal;
6104 create_UI_element(in_ui_type =>DEF_FRAMESET,
6105 in_id =>FrameSet1_Id,
6106 in_par_id =>UI_Product_Id,
6107 in_def_id =>new_ui_def_id,
6108 in_width =>100,
6109 in_height =>20,
6110 in_tree_seq =>1,
6111 in_allocations =>'48,*');
6112
6113 Frame1_Id :=getUISeqVal;
6114 create_UI_element(in_ui_type =>DEF_FRAME,
6115 in_id =>Frame1_Id,
6116 in_par_id =>FrameSet1_Id,
6117 in_def_id =>new_ui_def_id,
6118 in_width =>640,
6119 in_height =>48,
6120 in_tree_seq =>1,
6121 in_system_frm =>NO_FLAG,
6122 in_margin_width =>'10',
6123 in_margin_height =>'10',
6124 in_sizeable =>NO_FLAG,
6125 in_borders =>NO_FLAG);
6126
6127 Panel1_Id :=getUISeqVal;
6128 create_UI_element(in_ui_type =>DEF_PANEL,
6129 in_id =>Panel1_Id,
6130 in_par_id =>Frame1_Id,
6131 in_def_id =>new_ui_def_id,
6132 in_width =>640,
6133 in_height =>48,
6134 in_tree_seq =>1);
6135
6136
6137 /* *********** Create Find Control ***************** */
6138
6139 FindControl_Id :=getUISeqVal;
6140 create_UI_element(in_ui_type =>DEF_FIND_CONTROL,
6141 in_id =>FindControl_Id,
6142 in_par_id =>Panel1_Id,
6143 in_def_id =>new_ui_def_id,
6144 in_width =>314,
6145 in_height =>41,
6146 in_tree_seq =>1,
6147 in_top_pos =>9,
6148 in_left_pos =>6);
6149
6150 Text_Id :=getUISeqVal;
6151 create_UI_element(in_ui_type =>DEF_TEXT,
6152 in_id =>Text_Id,
6153 in_par_id =>FindControl_Id,
6154 in_def_id =>new_ui_def_id,
6155 in_width =>42,
6156 in_height =>20,
6157 in_tree_seq =>1,
6158 in_caption =>CZ_FIND_LABEL_CAPTION,
6159 in_top_pos =>6,
6160 in_left_pos =>9);
6161
6162 TextControl_Id :=getUISeqVal;
6163 create_UI_element(in_ui_type =>117,
6164 in_id =>TextControl_Id,
6165 in_par_id =>FindControl_Id,
6166 in_def_id =>new_ui_def_id,
6167 in_width =>200,
6168 in_height =>19,
6169 in_tree_seq =>2,
6170 in_caption =>'',
6171 in_top_pos =>6,
6172 in_left_pos =>55);
6173
6174 /* ************** Create <Go> Button ******************* */
6175
6176 Button_Id :=getUISeqVal;
6177 create_UI_element(in_ui_type =>DEF_BUTTON,
6178 in_id =>Button_Id,
6179 in_par_id =>FindControl_Id,
6180 in_def_id =>new_ui_def_id,
6181 in_width =>42,
6182 in_height =>23,
6183 in_tree_seq =>3,
6184 in_caption =>CZ_FIND_BUTTON_CAPTION,
6185 in_top_pos =>5,
6186 in_left_pos =>263,
6187 in_action_type=>'-1',
6188 in_action =>'12');
6189
6190 /* ************** Create label <Order Quantity:> **** */
6191
6192 Text_Id :=getUISeqVal;
6193 create_UI_element(in_ui_type =>DEF_TEXT,
6194 in_id =>Text_Id,
6195 in_par_id =>Panel1_Id,
6196 in_def_id =>new_ui_def_id,
6197 in_width =>100,
6198 in_height =>35,
6199 in_tree_seq =>2,
6200 in_caption =>CZ_ORDER_QUANTITY_CAPTION,
6201 in_top_pos =>8,
6202 in_left_pos =>450);
6203
6204 TaggedValue_Id :=getUISeqVal;
6205 create_UI_element(in_ui_type =>DEF_TAGGED_VALUE,
6206 in_id =>TaggedValue_Id,
6207 in_par_id =>Panel1_Id,
6208 in_def_id =>new_ui_def_id,
6209 in_width =>70,
6210 in_height =>20,
6211 in_tree_seq =>3,
6212 in_top_pos =>16,
6213 in_left_pos =>550,
6214 in_data_tag =>'cfg:bom-initial-quantity');
6215
6216
6217 FrameSet2_Id :=getUISeqVal;
6218 create_UI_element(in_ui_type =>DEF_FRAMESET,
6219 in_Id =>FrameSet2_Id,
6220 in_par_id =>FrameSet1_Id,
6221 in_def_id =>new_ui_def_id,
6222 in_width =>100,
6223 in_height =>20,
6224 in_tree_seq =>2,
6225 in_allocations =>'100%,*');
6226
6227 FrameSet3_Id:=getUISeqVal;
6228 create_UI_element(in_ui_type =>DEF_FRAMESET,
6229 in_id =>FrameSet3_Id,
6230 in_par_id =>FrameSet2_Id,
6231 in_def_id =>new_ui_def_id,
6232 in_width =>100,
6233 in_height =>20,
6234 in_tree_seq =>1,
6235 in_allocations =>'*,48');
6236
6237 FrameSet4_Id :=getUISeqVal;
6238 create_UI_element(in_ui_type =>DEF_FRAMESET,
6239 in_id =>FrameSet4_Id,
6240 in_par_id =>FrameSet3_Id,
6241 in_def_id =>new_ui_def_id,
6242 in_width =>100,
6243 in_height =>20,
6244 in_tree_seq =>1,
6245 in_allocations =>'30%,*',
6246 in_rowscols =>'2');
6247
6248 Frame2_Id:=getUISeqVal;
6249 create_UI_element(in_ui_type =>DEF_FRAME,
6250 in_id =>Frame2_Id,
6251 in_par_id =>FrameSet4_Id,
6252 in_def_id =>new_ui_def_id,
6253 in_width =>100,
6254 in_height =>20,
6255 in_tree_seq =>1,
6256 in_system_frm =>NO_FLAG,
6257 in_margin_width =>'10',
6258 in_margin_height =>'10',
6259 in_sizeable =>YES_FLAG,
6260 in_borders =>YES_FLAG);
6261
6262 Panel2_Id :=getUISeqVal;
6263 create_UI_element(in_ui_type =>DEF_PANEL,
6264 in_id =>Panel2_Id,
6265 in_par_id =>Frame2_Id,
6266 in_def_id =>new_ui_def_id,
6267 in_width =>100,
6268 in_height =>20,
6269 in_tree_seq =>1);
6270
6271
6272 ModelTree_Id :=getUISeqVal;
6273 create_UI_element(in_ui_type =>DEF_MODELTREE,
6274 in_id =>ModelTree_Id,
6275 in_par_id =>Panel2_Id,
6276 in_def_id =>new_ui_def_id,
6277 in_width =>100,
6278 in_height =>20,
6279 in_tree_seq =>2);
6280
6281
6282 FrameSet5_Id:=getUISeqVal;
6283 create_UI_element(in_ui_type =>DEF_FRAMESET,
6284 in_id =>FrameSet5_Id,
6285 in_par_id =>FrameSet4_Id,
6286 in_def_id =>new_ui_def_id,
6287 in_width =>100,
6288 in_height =>20,
6289 in_tree_seq =>2,
6290 in_allocations =>'60%,40%',
6291 in_rowscols =>YES_FLAG);
6292
6293 Frame3_Id :=getUISeqVal;
6294 create_UI_element(in_ui_type =>DEF_FRAME,
6295 in_id =>Frame3_Id,
6296 in_par_id =>FrameSet5_Id,
6297 in_def_id =>new_ui_def_id,
6298 in_width =>100,
6299 in_height =>20,
6300 in_tree_seq =>1,
6301 in_system_frm =>NO_FLAG,
6302 in_margin_width =>'10',
6303 in_margin_height=>'10',
6304 in_sizeable =>YES_FLAG,
6305 in_borders =>YES_FLAG);
6306
6307 Panel3_Id :=getUISeqVal;
6308 create_UI_element(in_ui_type =>DEF_PANEL,
6309 in_id =>Panel3_Id,
6310 in_par_id =>Frame3_Id,
6311 in_def_id =>new_ui_def_id,
6312 in_width =>100,
6313 in_height =>20,
6314 in_tree_seq =>1);
6315
6316 create_OptionsGrid(in_parent_id=>Panel3_Id,in_ui_def_id=>new_ui_def_id);
6317
6318 Frame4_Id :=getUISeqVal;
6319 create_UI_element(in_ui_type =>DEF_FRAME,
6320 in_id =>Frame4_Id,
6321 in_par_id =>FrameSet5_Id,
6322 in_def_id =>new_ui_def_id,
6323 in_width =>100,
6324 in_height =>20,
6325 in_tree_seq =>2,
6326 in_system_frm =>NO_FLAG,
6327 in_margin_width =>'10',
6328 in_margin_height=>'10',
6329 in_sizeable =>YES_FLAG,
6330 in_borders =>YES_FLAG,
6331 in_scrolling =>NO_FLAG);
6332
6333 Panel4_Id:=getUISeqVal;
6334 create_UI_element(in_ui_type =>DEF_PANEL,
6335 in_id =>Panel4_Id,
6336 in_par_id =>Frame4_Id,
6337 in_def_id =>new_ui_def_id,
6338 in_width =>100,
6339 in_height =>20,
6340 in_tree_seq =>1);
6341
6342 create_SelectionsGrid(in_parent_id=>Panel4_Id,in_ui_def_id=>new_ui_def_id);
6343
6344 Frame5_Id :=getUISeqVal;
6345 create_UI_element(in_ui_type =>DEF_FRAME,
6346 in_id =>Frame5_Id,
6347 in_par_id =>FrameSet3_Id,
6348 in_def_id =>new_ui_def_id,
6349 in_width =>640,
6350 in_height =>48,
6351 in_tree_seq =>2,
6352 in_system_frm =>NO_FLAG,
6353 in_margin_width =>'10',
6354 in_margin_height=>'10',
6355 in_sizeable =>NO_FLAG,
6356 in_borders =>NO_FLAG);
6357
6358 Panel5_Id :=getUISeqVal;
6359 create_UI_element(in_ui_type =>DEF_PANEL,
6360 in_id =>Panel5_Id,
6361 in_par_id =>Frame5_Id,
6362 in_def_id =>new_ui_def_id,
6363 in_width =>640,
6364 in_height =>48,
6365 in_tree_seq =>1,
6366 in_alt_color=>'15201271',
6367 in_borders =>NO_FLAG);
6368
6369 /* *** Additional Panels *** */
6370
6371 Panel51_Id :=getUISeqVal;
6372 create_UI_element(in_ui_type =>DEF_PANEL,
6373 in_id =>Panel51_Id,
6374 in_par_id =>Panel5_Id,
6375 in_def_id =>new_ui_def_id,
6376 in_width =>212,
6377 in_height =>40,
6378 in_tree_seq =>1,
6379 in_alt_color=>'15201271',
6380 in_borders =>NO_FLAG,
6381 in_top_pos =>3,
6382 in_left_pos =>8,
6383 in_align =>'left');
6384
6385 Panel52_Id :=getUISeqVal;
6386 create_UI_element(in_ui_type =>DEF_PANEL,
6387 in_id =>Panel52_Id,
6388 in_par_id =>Panel5_Id,
6389 in_def_id =>new_ui_def_id,
6390 in_width =>220,
6391 in_height =>40,
6392 in_tree_seq =>2,
6393 in_alt_color=>'15201271',
6394 in_borders =>NO_FLAG,
6395 in_top_pos =>3,
6396 in_left_pos =>248,
6397 in_align =>'center');
6398
6399 Panel53_Id :=getUISeqVal;
6400 create_UI_element(in_ui_type =>DEF_PANEL,
6401 in_id =>Panel53_Id,
6402 in_par_id =>Panel5_Id,
6403 in_def_id =>new_ui_def_id,
6404 in_width =>130,
6405 in_height =>40,
6406 in_tree_seq =>3,
6407 in_alt_color=>'15201271',
6408 in_borders =>NO_FLAG,
6409 in_top_pos =>3,
6410 in_left_pos =>505,
6411 in_align =>'right');
6412
6413 /* ************************ */
6414
6415 Text_Id :=getUISeqVal;
6416 create_UI_element(in_ui_type =>DEF_TEXT,
6417 in_id =>Text_Id,
6418 in_par_id =>Panel51_Id,
6419 in_def_id =>new_ui_def_id,
6420 in_width =>65,
6421 in_height =>35,
6422 in_tree_seq =>1,
6423 in_top_pos =>3,
6424 in_left_pos =>10,
6425 in_caption =>CZ_TOTAL_PRC_LABEL_CAPTION);
6426
6427 TaggedValue_Id :=getUISeqVal;
6428 create_UI_element(in_ui_type =>DEF_TAGGED_VALUE,
6429 in_id =>TaggedValue_Id,
6430 in_par_id =>Panel51_Id,
6431 in_def_id =>new_ui_def_id,
6432 in_width =>80,
6433 in_height =>20,
6434 in_tree_seq =>2,
6435 in_top_pos =>11,
6436 in_left_pos =>80,
6437 in_data_tag =>'cfg:total-price',
6438 in_borders =>YES_FLAG);
6439
6440 Button_Id:=getUISeqVal;
6441 create_UI_element(in_ui_type =>DEF_BUTTON,
6442 in_id =>Button_Id,
6443 in_par_id =>Panel51_Id,
6444 in_def_id =>new_ui_def_id,
6445 in_width =>72,
6446 in_height =>28,
6447 in_tree_seq =>3,
6448 in_caption =>CZ_UPDATE_BUTTON_CAPTION,
6449 in_top_pos =>7,
6450 in_left_pos =>155,
6451 in_action =>'13',
6452 in_borders =>NO_FLAG,
6453 in_picture =>'czreload.gif');
6454
6455 Text_Id :=getUISeqVal;
6456 create_UI_element(in_ui_type =>DEF_TEXT,
6457 in_id =>Text_Id,
6458 in_par_id =>Panel52_Id,
6459 in_def_id =>new_ui_def_id,
6460 in_width =>65,
6461 in_height =>35,
6462 in_tree_seq =>1,
6463 in_top_pos =>3,
6464 in_left_pos =>10,
6465 in_caption =>'Availability:');
6466
6467 TaggedValue_Id :=getUISeqVal;
6468 create_UI_element(in_ui_type =>DEF_TAGGED_VALUE,
6469 in_id =>TaggedValue_Id,
6470 in_par_id =>Panel52_Id,
6471 in_def_id =>new_ui_def_id,
6472 in_width =>80,
6473 in_height =>20,
6474 in_tree_seq =>2,
6475 in_top_pos =>11,
6476 in_left_pos =>80,
6477 in_data_tag =>'cfg:atp-rollup-date',
6478 in_borders =>YES_FLAG);
6479
6480 Button_Id :=getUISeqVal;
6481 create_UI_element(in_ui_type =>DEF_BUTTON,
6482 in_id =>Button_Id,
6483 in_par_id =>Panel52_Id,
6484 in_def_id =>new_ui_def_id,
6485 in_width =>72,
6486 in_height =>28,
6487 in_tree_seq =>3,
6488 in_caption =>CZ_UPDATE_BUTTON_CAPTION,
6489 in_top_pos =>7,
6490 in_left_pos =>155,
6491 in_action =>'11',
6492 in_borders =>NO_FLAG,
6493 in_picture =>'czreload.gif');
6494
6495 Button_Id :=getUISeqVal;
6496 create_UI_element(in_ui_type =>DEF_BUTTON,
6497 in_id =>Button_Id,
6498 in_par_id =>Panel53_Id,
6499 in_def_id =>new_ui_def_id,
6500 in_width =>72,
6501 in_height =>35,
6502 in_tree_seq =>1,
6503 in_caption =>CZ_DONE_BUTTON_CAPTION,
6504 in_top_pos =>4,
6505 in_left_pos =>1,
6506 in_action =>'9',
6507 in_borders =>NO_FLAG);
6508
6509 Button_Id :=getUISeqVal;
6510 create_UI_element (in_ui_type =>DEF_BUTTON,
6511 in_id =>Button_Id,
6512 in_par_id =>Panel53_Id,
6513 in_def_id =>new_ui_def_id,
6514 in_width =>72,
6515 in_height =>35,
6516 in_tree_seq=>2,
6517 in_caption =>CZ_CANCEL_BUTTON_CAPTION,
6518 in_top_pos =>4,
6519 in_left_pos=>60,
6520 in_action =>'10',
6521 in_borders =>NO_FLAG);
6522
6523 Frame6_Id :=getUISeqVal;
6524 create_UI_element(in_ui_type =>DEF_FRAME,
6525 in_id =>Frame6_Id,
6526 in_par_id =>FrameSet2_Id,
6527 in_def_id =>new_ui_def_id,
6528 in_width =>100,
6529 in_height =>20,
6530 in_tree_seq =>2,
6531 in_system_frm =>YES_FLAG,
6532 in_margin_width =>'10',
6533 in_margin_height=>'10',
6534 in_sizeable =>NO_FLAG,
6535 in_borders =>NO_FLAG);
6536
6537 DataSet_Id :=getUISeqVal;
6538 create_UI_element(in_ui_type =>DEF_DATASET,
6539 in_id =>DataSet_Id,
6540 in_par_id =>UI_Product_Id,
6541 in_def_id =>new_ui_def_id,
6542 in_width =>100,
6543 in_height =>20,
6544 in_tree_seq =>2);
6545
6546 create_BOM_Tree(in_product_id =>in_product_id,
6547 in_model_tree_id =>ModelTree_Id,
6548 in_dataset_tree_id=>DataSet_Id,
6549 in_ui_def_id =>new_ui_def_id,
6550 in_show_all_nodes =>in_show_all_nodes,
6551 in_use_labels =>in_use_labels);
6552
6553 UPDATE CZ_UI_NODES SET name=InterfaceName
6554 WHERE ui_node_id=parent_id AND ui_def_id=new_ui_def_id;
6555
6556 out_ui_def_id:=new_ui_def_id;
6557
6558 END generate_BOM_UI;
6559
6560 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
6561 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
6562
6563 PROCEDURE createUI
6564 (in_product_id IN INTEGER,
6565 out_ui_def_id OUT NOCOPY INTEGER,
6566 out_run_id OUT NOCOPY INTEGER,
6567 in_ui_style IN VARCHAR2 , -- DEFAULT 'COMPONENTS',
6568 in_frame_allocation IN INTEGER , -- DEFAULT 30,
6569 in_width IN INTEGER , -- DEFAULT 640,
6570 in_height IN INTEGER , -- DEFAULT 480,
6571 in_show_all_nodes IN VARCHAR2 , -- DEFAULT '0',
6572 in_use_labels IN VARCHAR2 , -- DEFAULT '1',
6573 in_look_and_feel IN VARCHAR2 , -- DEFAULT 'BLAF',
6574 in_max_bom_per_page IN INTEGER , -- DEFAULT 10,
6575 in_wizard_style IN VARCHAR2 -- DEFAULT '0'
6576 ) IS
6577
6578 var_num_products INTEGER;
6579 var_ui_def_id INTEGER;
6580 var_reference_id INTEGER;
6581 var_run_id INTEGER;
6582
6583 curr_button_id INTEGER;
6584 var_ui_root_id INTEGER;
6585 var_top_pos INTEGER;
6586 var_button_width INTEGER;
6587 var_max INTEGER;
6588 var_min INTEGER;
6589 out_instanciable INTEGER;
6590 var_ref_root_screen INTEGER;
6591
6592 k INTEGER;
6593
6594 existsDeleteMe VARCHAR2(1);
6595 var_virt_flag VARCHAR2(1);
6596 var_wizard_style VARCHAR2(1):='0';
6597
6598 NO_PROJECT EXCEPTION;
6599
6600 BEGIN
6601 out_run_id:=0;
6602 SELECT CZ_XFR_RUN_INFOS_S.NEXTVAL INTO GLOBAL_RUN_ID FROM dual;
6603
6604 mSHOW_ALL_NODES:=in_show_all_nodes;
6605 mITEMS_ON_PAGE:=in_max_bom_per_page;
6606 mWIZARD_STYLE:=in_wizard_style;
6607
6608 Model_id:=in_product_id;
6609 Project_id:=in_product_id;
6610
6611 BEGIN
6612 SELECT name INTO Model_Name FROM CZ_DEVL_PROJECTS
6613 WHERE devl_project_id=in_product_id;
6614 EXCEPTION
6615 WHEN NO_DATA_FOUND THEN
6616 RAISE NO_PROJECT;
6617 END;
6618 MODE_REFRESH:=FALSE;
6619 MUID:=NULL;
6620
6621 mUSE_LABELS:=in_use_labels;
6622 IF in_use_labels='2' THEN
6623 mUSE_LABELS:='3';
6624 END IF;
6625
6626 IF in_ui_style='COMPONENTS' OR in_ui_style=DHTML_STYLE_UI THEN
6627 mUI_STYLE:=DHTML_STYLE_UI;
6628 mLOOK_AND_FEEL:=in_look_and_feel;
6629
6630 GLOBAL_FRAME_ALLOCATION:=in_frame_allocation;
6631 create_Component_Tree(in_product_id,out_ui_def_id,in_width,in_height,
6632 in_show_all_nodes,in_use_labels);
6633 k:=NVL(UIS.Last,0)+1;
6634 UIS(k):=out_ui_def_id;
6635 ELSE
6636 cz_refs.SolutionBasedModelcheck(in_product_id,out_instanciable);
6637 IF out_instanciable>0 THEN
6638 out_ui_def_id:=0;
6639 out_run_id:=GLOBAL_RUN_ID;
6640 --LOG_REPORT('CZ_UI_GENERATOR.createUI',
6641 --'UI can not be generated for Model that has BOM instanciable parts.');
6642 FND_REPORT(CZ_UI_GEN_BOM_STYLE_FOR_IB, NULL, NULL, CZ_ERROR_URGENCY);
6643 RETURN;
6644 END IF;
6645
6646 mUI_STYLE:=APPLET_STYLE_UI;
6647 mLOOK_AND_FEEL:='APPLET';
6648 Translate_Labels;
6649 generate_BOM_UI(in_product_id,out_ui_def_id,in_width,in_height,
6650 in_show_all_nodes,in_use_labels);
6651 END IF;
6652
6653 FOR i IN (SELECT ui_node_id,component_id,ui_def_ref_id,ps_node_id FROM CZ_UI_NODES
6654 WHERE ui_def_id=out_ui_def_id AND ui_def_ref_id IS NOT NULL
6655 AND ui_node_type=UI_REFERENCE_REF_TYPE
6656 AND deleted_flag='0' )
6657 LOOP
6658 --
6659 -- find devl_project_id of referenced Model
6660 --
6661 SELECT reference_id INTO var_reference_id FROM CZ_PS_NODES
6662 WHERE ps_node_id=i.component_id AND deleted_flag=NO_FLAG;
6663
6664 --
6665 -- find latest UI of reference Model with the same UI type
6666 --
6667 SELECT MAX(ui_def_id) INTO var_ui_def_id FROM CZ_UI_DEFS
6668 WHERE component_id=var_reference_id AND ui_style=mUI_STYLE AND
6669 look_and_feel=mLOOK_AND_FEEL AND deleted_flag=NO_FLAG;
6670
6671 BEGIN
6672 SELECT value_str INTO var_wizard_style FROM CZ_UI_NODE_PROPS
6673 WHERE ui_def_id=var_ui_def_id AND ui_node_id=
6674 (SELECT ui_node_id FROM CZ_UI_NODES WHERE ui_def_id=var_ui_def_id AND
6675 ui_node_id=parent_id AND deleted_flag=NO_FLAG) AND key_str='WizardStyle' AND
6676 deleted_flag=NO_FLAG;
6677 EXCEPTION
6678 WHEN NO_DATA_FOUND THEN
6679 var_wizard_style:='0';
6680 END;
6681 --
6682 -- if there are node UIs in the referenced Model then create a new UI
6683 --
6684 IF var_ui_def_id IS NULL OR var_wizard_style<>in_wizard_style THEN
6685 createUI
6686 (var_reference_id,var_ui_def_id,out_run_id,in_ui_style,
6687 in_frame_allocation,in_width,in_height,
6688 in_show_all_nodes,in_use_labels,
6689 in_look_and_feel,
6690 in_max_bom_per_page,
6691 in_wizard_style);
6692 END IF;
6693
6694 IF in_ui_style=DHTML_STYLE_UI THEN
6695 BEGIN
6696 SELECT ui_node_id INTO var_ref_root_screen FROM CZ_UI_NODES
6697 WHERE ui_def_id=var_ui_def_id AND ui_node_type=UI_SCREEN_TYPE
6698 AND ps_node_id=var_reference_id AND deleted_flag=NO_FLAG AND rownum<2;
6699
6700 UPDATE CZ_UI_NODES SET ui_node_ref_id=var_ref_root_screen
6701 WHERE ui_def_id=out_ui_def_id AND ui_node_type=UI_BOM_STANDART_TYPE AND ps_node_id=i.ps_node_id
6702 AND deleted_flag=NO_FLAG;
6703 END;
6704 END IF;
6705
6706 --
6707 -- update ui_def_ref_id of UI reference
6708 --
6709 UPDATE CZ_UI_NODES SET ui_def_ref_id=var_ui_def_id
6710 WHERE ui_node_id=i.ui_node_id;
6711
6712
6713 IF in_ui_style=DHTML_STYLE_UI THEN
6714 BEGIN
6715 existsDeleteMe:=NO_FLAG;
6716 SELECT YES_FLAG INTO existsDeleteMe FROM dual
6717 WHERE EXISTS(SELECT 1 FROM CZ_UI_NODES
6718 WHERE ui_def_id=var_ui_def_id AND ps_node_id=var_reference_id
6719 AND ui_node_type=UI_BUTTON_TYPE AND name=CZ_DELETE_BUTTON_CAPTION);
6720 EXCEPTION
6721 WHEN NO_DATA_FOUND THEN
6722 NULL;
6723 END;
6724
6725 SELECT virtual_flag INTO var_virt_flag FROM CZ_PS_NODES
6726 WHERE ps_node_id=i.ps_node_id AND deleted_flag=NO_FLAG;
6727
6728 IF existsDeleteMe=NO_FLAG AND var_virt_flag=NO_FLAG THEN
6729 SELECT ui_node_id INTO var_ui_root_id FROM CZ_UI_NODES
6730 WHERE ui_def_id=var_ui_def_id AND ps_node_id=var_reference_id AND
6731 ui_node_type<>UI_COMPONENT_REF_TYPE AND ui_node_ref_id IS NOT NULL;
6732
6733 curr_button_id:=getUISeqVal;
6734 create_BUTTON(curr_button_id,var_ui_root_id,var_ui_def_id,
6735 var_reference_id,CZ_DELETE_BUTTON_CAPTION,
6736 in_top_pos =>DELETE_BUTTON_TOP_POS,
6737 in_left_pos =>DELETE_BUTTON_LEFT_POS,
6738 in_button_type=>DEF_DELETE_BUTTON,
6739 in_modified_flag => 0);
6740 END IF;
6741 END IF;
6742 END LOOP;
6743
6744 EXCEPTION
6745 WHEN NO_PROJECT THEN
6746 out_run_id:=GLOBAL_RUN_ID;
6747 FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME,'CZ_UI_GENERATOR.createUI', CZ_ERROR_URGENCY);
6748 LOG_REPORT('CZ_UI_GENERATOR.createUI','There is no project with Project_Id='||TO_CHAR(in_product_id),
6749 CZ_ERROR_URGENCY);
6750 WHEN NO_DATA_FOUND THEN
6751 out_run_id:=GLOBAL_RUN_ID;
6752 --LOG_REPORT('CZ_UI_GENERATOR.createUI','ERROR CODE :'||ERROR_CODE||' : '||SQLERRM);
6753 FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME,'CZ_UI_GENERATOR.createUI', CZ_ERROR_URGENCY);
6754 WHEN OTHERS THEN
6755 out_run_id:=GLOBAL_RUN_ID;
6756 --LOG_REPORT('CZ_UI_GENERATOR.createUI','in_product_id='||TO_CHAR(in_product_id)||' : '||SQLERRM);
6757 FND_REPORT(CZ_UI_GEN_FATAL_ERR,TOKEN_SQLERRM,SQLERRM, CZ_ERROR_URGENCY);
6758 END createUI;
6759
6760 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
6761 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
6762
6763 PROCEDURE create_UI
6764 (in_product_id IN INTEGER,
6765 in_ui_style IN VARCHAR2, -- DEFAULT 'COMPONENTS',
6766 in_show_all_nodes IN VARCHAR2, -- DEFAULT '0',
6767 in_frame_allocation IN INTEGER , -- DEFAULT 30,
6768 in_width IN INTEGER , -- DEFAULT 640,
6769 in_height IN INTEGER , -- DEFAULT 480,
6770 in_use_labels IN VARCHAR2, -- DEFAULT '1',
6771 in_look_and_feel IN VARCHAR2, -- DEFAULT 'BLAF',
6772 in_max_bom_per_page IN INTEGER , -- DEFAULT 10,
6773 in_wizard_style IN VARCHAR2 -- DEFAULT '0'
6774 ) IS
6775
6776 var_root_id INTEGER;
6777 var_num_products INTEGER;
6778 out_ui_def_id INTEGER;
6779 var_run_id INTEGER;
6780
6781 BEGIN
6782 createUI(in_product_id,out_ui_def_id,var_run_id,
6783 in_ui_style,in_frame_allocation,in_width,in_height,
6784 in_show_all_nodes,in_use_labels,in_look_and_feel,
6785 in_max_bom_per_page,in_wizard_style);
6786 END create_UI;
6787
6788 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
6789 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
6790
6791 FUNCTION display_in_UI(in_ps_node_id IN INTEGER,in_parent_id IN INTEGER) RETURN VARCHAR2 IS
6792 var_parent_id INTEGER;
6793 var_next_id INTEGER;
6794 var_ui_omit INTEGER;
6795 var_deleted_flag INTEGER;
6796 curr_ps_node_id INTEGER;
6797 Flag VARCHAR2(1):=NO_FLAG;
6798
6799 BEGIN
6800 BEGIN
6801 curr_ps_node_id:=in_parent_id;
6802 LOOP
6803 SELECT ui_omit,deleted_flag,parent_id INTO var_ui_omit,var_deleted_flag,var_next_id FROM CZ_PS_NODES
6804 WHERE ps_node_id=curr_ps_node_id;
6805 IF var_ui_omit=YES_FLAG OR var_deleted_flag=YES_FLAG THEN
6806 Flag:=YES_FLAG;
6807 EXIT;
6808 END IF;
6809 curr_ps_node_id:=var_next_id;
6810 END LOOP;
6811 EXCEPTION
6812 WHEN NO_DATA_FOUND THEN
6813 --LOG_REPORT('CZ_UI_GENERATOR.display_in_UI','in_ps_node_id='||TO_CHAR(in_ps_node_id)||' : '||SQLERRM);
6814 NULL;
6815 END;
6816
6817 RETURN Flag;
6818
6819 END display_in_UI;
6820
6821 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
6822 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
6823
6824 FUNCTION is_EqualPS
6825 (in_ui_def_id IN INTEGER,
6826 in_project_id IN INTEGER) RETURN BOOLEAN IS
6827
6828 var_ui_id INTEGER;
6829 var_parent_id INTEGER;
6830 var_ps_id INTEGER;
6831 var_ref_id INTEGER;
6832 var_ui_type INTEGER;
6833 var_limbo_id INTEGER;
6834 var_ui_ref_id INTEGER;
6835 var_curr_ui_id INTEGER;
6836 new_parent_id INTEGER;
6837 var_id INTEGER;
6838 var_curr_id INTEGER;
6839 var_temp INTEGER;
6840 var_top_pos INTEGER;
6841 var_old_tree_seq INTEGER;
6842 var_choose_conn INTEGER;
6843 ind INTEGER;
6844 ret BOOLEAN:=TRUE;
6845
6846 TYPE DragDropStructure IS RECORD(new_parent_id INTEGER,
6847 ui_ref_id INTEGER,
6848 ps_node_id INTEGER,
6849 parent_id INTEGER,
6850 tree_seq INTEGER,
6851 button_id INTEGER);
6852 TYPE DragDropArray IS TABLE OF DragDropStructure INDEX BY BINARY_INTEGER;
6853
6854 movedReferences DragDropArray;
6855 movedComponents DragDropArray;
6856 movedFeatures DragDropArray;
6857 movedOptions DragDropArray;
6858
6859 BEGIN
6860
6861 SELECT ui_node_id INTO var_limbo_id FROM CZ_UI_NODES
6862 WHERE ui_def_id=in_ui_def_id AND name='Limbo' AND deleted_flag=NO_FLAG;
6863
6864 FOR i IN (SELECT ps_node_id,parent_id,ps_node_type,tree_seq FROM CZ_PS_NODES
6865 WHERE devl_project_id=in_project_id AND deleted_flag=NO_FLAG)
6866 LOOP
6867 var_choose_conn:=NULL;
6868 IF i.ps_node_type=REFERENCE_NODE_TYPE THEN
6869 BEGIN
6870 SELECT ui_node_id,parent_id INTO var_curr_ui_id,var_ui_id FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND parent_id<>var_limbo_id
6871 AND ps_node_id=i.ps_node_id AND ui_node_type=UI_REFERENCE_REF_TYPE AND deleted_flag=NO_FLAG;
6872
6873 SELECT ui_node_ref_id INTO var_ref_id FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
6874 AND ui_node_id=var_ui_id;
6875
6876 SELECT ps_node_id INTO var_ps_id FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
6877 AND ui_node_id=var_ref_id;
6878
6879 IF var_ps_id<>i.parent_id AND var_ps_id IS NOT NULL THEN
6880 SELECT ui_node_id INTO var_id FROM CZ_UI_NODES
6881 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.parent_id AND parent_id<>var_limbo_id AND ui_node_type IN
6882 (UI_PRODUCT_TYPE,UI_COMPONENT_TYPE,UI_BOM_OPTION_CLASS_TYPE) AND deleted_flag=NO_FLAG;
6883
6884 SELECT ui_node_id INTO new_parent_id FROM CZ_UI_NODES
6885 WHERE ui_node_ref_id=var_id AND parent_id<>var_limbo_id AND ui_node_type=UI_COMPONENT_REF_TYPE AND
6886 ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG;
6887
6888 movedReferences(var_curr_ui_id).new_parent_id:=new_parent_id;
6889 movedReferences(var_curr_ui_id).ps_node_id:=i.ps_node_id;
6890 END IF;
6891
6892 EXCEPTION
6893 WHEN NO_DATA_FOUND THEN
6894 NULL;
6895 WHEN OTHERS THEN
6896 NULL;
6897 END;
6898 END IF;
6899
6900 IF i.ps_node_type IN (COMPONENT_NODE_TYPE,PRODUCT_NODE_TYPE,
6901 BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE) THEN
6902
6903 BEGIN
6904 SELECT ui_node_id,tree_seq
6905 INTO var_ui_id,var_old_tree_seq
6906 FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
6907 AND parent_id<>var_limbo_id AND ps_node_id=i.ps_node_id
6908 AND ui_node_type IN (UI_PRODUCT_TYPE,UI_COMPONENT_TYPE)
6909 AND deleted_flag=NO_FLAG;
6910
6911 SELECT ui_node_id,parent_id INTO var_curr_ui_id,var_parent_id FROM CZ_UI_NODES
6912 WHERE ui_node_ref_id=var_ui_id AND parent_id<>var_limbo_id AND ui_node_type NOT IN(UI_BUTTON_TYPE,UI_PICTURE_TYPE) AND
6913 ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG;
6914
6915 BEGIN
6916 SELECT ui_node_type INTO var_ui_type FROM CZ_UI_NODES WHERE
6917 ui_node_id=var_parent_id AND ui_def_id=in_ui_def_id;
6918 EXCEPTION
6919 WHEN NO_DATA_FOUND THEN
6920 NULL;
6921 WHEN OTHERS THEN
6922 NULL;
6923 END;
6924
6925 IF var_ui_type<>143 THEN
6926 SELECT ui_node_ref_id INTO var_ref_id FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND
6927 ui_node_id=var_parent_id;
6928 SELECT ps_node_id INTO var_ps_id FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND
6929 ui_node_id=var_ref_id;
6930
6931 IF (var_ps_id<>i.parent_id AND var_ps_id IS NOT NULL) THEN
6932 --OR (var_old_tree_seq<>i.tree_seq*mMAX_NUMBER_PAGES AND var_old_tree_seq<>i.tree_seq) THEN --
6933
6934 SELECT ui_node_id INTO var_id FROM CZ_UI_NODES
6935 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.parent_id AND parent_id<>var_limbo_id AND ui_node_type IN
6936 (UI_PRODUCT_TYPE,UI_COMPONENT_TYPE,UI_BOM_OPTION_CLASS_TYPE) AND deleted_flag=NO_FLAG;
6937
6938 SELECT ui_node_id INTO new_parent_id FROM CZ_UI_NODES
6939 WHERE ui_node_ref_id=var_id AND parent_id<>var_limbo_id AND ui_node_type=UI_COMPONENT_REF_TYPE AND
6940 ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG;
6941
6942 movedComponents(var_curr_ui_id).new_parent_id:=new_parent_id;
6943 movedComponents(var_curr_ui_id).ps_node_id:=i.ps_node_id;
6944 movedComponents(var_curr_ui_id).parent_id:=var_ref_id;
6945 movedComponents(var_curr_ui_id).tree_seq:=i.tree_seq;
6946 END IF;
6947 END IF;
6948
6949 EXCEPTION
6950 WHEN NO_DATA_FOUND THEN
6951 NULL;
6952 WHEN OTHERS THEN
6953 NULL;
6954 END;
6955
6956 END IF;
6957
6958 IF i.ps_node_type IN (FEATURE_NODE_TYPE,RESOURCE_NODE_TYPE,TOTAL_NODE_TYPE,CONNECTOR_NODE_TYPE) THEN
6959
6960 BEGIN
6961 SELECT ui_node_id,parent_id,ui_node_ref_id,tree_seq
6962 INTO var_curr_ui_id,var_ui_id,var_ui_ref_id,var_old_tree_seq FROM CZ_UI_NODES
6963 WHERE ui_def_id=in_ui_def_id
6964 AND ps_node_id=i.ps_node_id AND parent_id<>var_limbo_id AND ui_node_type IN
6965 (UI_FEATURE_TYPE,UI_OPTION_TYPE,UI_RESOURCE_TYPE,UI_TOTAL_TYPE,UI_CONNECTOR_TYPE)
6966 AND deleted_flag=NO_FLAG;
6967
6968 IF i.ps_node_type=CONNECTOR_NODE_TYPE THEN
6969 BEGIN
6970 SELECT ui_node_id INTO var_choose_conn
6971 FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
6972 AND parent_id<>var_limbo_id AND
6973 ui_node_ref_id=var_curr_ui_id AND deleted_flag=NO_FLAG;
6974 EXCEPTION
6975 WHEN OTHERS THEN
6976 NULL;
6977 END;
6978 END IF;
6979
6980 SELECT ps_node_id INTO var_ps_id FROM CZ_UI_NODES
6981 WHERE ui_node_id=var_ui_id AND ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG;
6982
6983 IF (var_ps_id<>i.parent_id AND var_ps_id IS NOT NULL) THEN
6984 SELECT ui_node_id INTO new_parent_id FROM CZ_UI_NODES
6985 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.parent_id AND parent_id<>var_limbo_id AND ui_node_type IN
6986 (UI_COMPONENT_TYPE) AND deleted_flag=NO_FLAG;
6987
6988 movedFeatures(var_curr_ui_id).new_parent_id:=new_parent_id;
6989 movedFeatures(var_curr_ui_id).ui_ref_id:=var_ui_ref_id;
6990 movedFeatures(var_curr_ui_id).tree_seq:=i.tree_seq;
6991
6992 IF var_choose_conn IS NOT NULL THEN
6993 movedFeatures(var_curr_ui_id).button_id:=var_choose_conn;
6994 END IF;
6995 END IF;
6996
6997 EXCEPTION
6998 WHEN NO_DATA_FOUND THEN
6999 NULL;
7000 WHEN OTHERS THEN
7001 NULL;
7002 END;
7003
7004 END IF;
7005
7006 IF i.ps_node_type IN(OPTION_NODE_TYPE) THEN
7007 BEGIN
7008 SELECT ui_node_id,parent_id,tree_seq
7009 INTO var_curr_ui_id,var_ui_id,var_old_tree_seq FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
7010 AND ps_node_id=i.ps_node_id AND parent_id<>var_limbo_id AND
7011 ui_node_type IN (UI_OPTION_TYPE,UI_BOM_STANDART_TYPE) AND deleted_flag=NO_FLAG;
7012
7013 SELECT ps_node_id INTO var_ps_id FROM CZ_UI_NODES
7014 WHERE ui_node_id=var_ui_id AND ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG;
7015
7016 IF (var_ps_id<>i.parent_id AND var_ps_id IS NOT NULL) THEN
7017 SELECT ui_node_id INTO new_parent_id FROM CZ_UI_NODES
7018 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.parent_id AND parent_id<>var_limbo_id AND ui_node_type IN
7019 (UI_FEATURE_TYPE) AND deleted_flag=NO_FLAG;
7020
7021 movedOptions(var_curr_ui_id).new_parent_id:=new_parent_id;
7022 movedOptions(var_curr_ui_id).tree_seq:=i.tree_seq;
7023 END IF;
7024
7025 EXCEPTION
7026 WHEN NO_DATA_FOUND THEN
7027 NULL;
7028 WHEN OTHERS THEN
7029 NULL;
7030 END;
7031 END IF;
7032
7033 END LOOP;
7034
7035 IF movedReferences.Count>0 THEN
7036 ind:=movedReferences.First;
7037 LOOP
7038 UPDATE CZ_UI_NODES SET parent_id=movedReferences(ind).new_parent_id
7039 WHERE ui_def_id=in_ui_def_id
7040 AND ui_node_id=ind AND ui_node_type=UI_REFERENCE_REF_TYPE AND
7041 parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
7042
7043 SELECT ui_node_ref_id INTO var_id FROM CZ_UI_NODES
7044 WHERE ui_def_id=in_ui_def_id AND ui_node_id=movedReferences(ind).new_parent_id AND
7045 parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
7046
7047 var_top_pos:=getNextY(in_ui_def_id,var_id);
7048
7049 UPDATE CZ_UI_NODES SET parent_id=var_id,rel_top_pos=var_top_pos
7050 WHERE ui_def_id=in_ui_def_id
7051 AND ps_node_id=movedReferences(ind).ps_node_id AND ui_node_type=UI_BUTTON_TYPE
7052 AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
7053
7054 ind:=movedReferences.NEXT(ind);
7055 IF ind IS NULL THEN
7056 EXIT;
7057 END IF;
7058 END LOOP;
7059 END IF;
7060
7061 IF movedComponents.Count>0 THEN
7062 ind:=movedComponents.First;
7063 LOOP
7064 UPDATE CZ_UI_NODES
7065 SET parent_id=movedComponents(ind).new_parent_id,
7066 tree_seq=movedComponents(ind).tree_seq
7067 WHERE ui_def_id=in_ui_def_id
7068 AND ui_node_id=ind AND ui_node_type=UI_COMPONENT_REF_TYPE AND
7069 deleted_flag=NO_FLAG;
7070 BEGIN
7071 SELECT ui_node_ref_id INTO var_id FROM CZ_UI_NODES
7072 WHERE ui_def_id=in_ui_def_id AND ui_node_id=movedComponents(ind).new_parent_id AND
7073 parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
7074
7075 EXCEPTION
7076 WHEN NO_DATA_FOUND THEN
7077 NULL;
7078 WHEN OTHERS THEN
7079 NULL;
7080 END;
7081
7082 var_top_pos:=getNextY(in_ui_def_id,var_id);
7083
7084 UPDATE CZ_UI_NODES SET parent_id=var_id,rel_top_pos=var_top_pos
7085 WHERE ui_def_id=in_ui_def_id AND parent_id=movedComponents(ind).parent_id
7086 AND ps_node_id=movedComponents(ind).ps_node_id AND ui_node_type=UI_BUTTON_TYPE
7087 AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
7088
7089 ind:=movedComponents.NEXT(ind);
7090 IF ind IS NULL THEN
7091 EXIT;
7092 END IF;
7093 END LOOP;
7094 END IF;
7095
7096 IF movedFeatures.Count>0 THEN
7097 ind:=movedFeatures.First;
7098 LOOP
7099
7100 var_top_pos:=getNextY(in_ui_def_id,movedFeatures(ind).new_parent_id);
7101
7102 UPDATE CZ_UI_NODES
7103 SET parent_id=movedFeatures(ind).new_parent_id,
7104 rel_top_pos=var_top_pos,
7105 tree_seq=movedFeatures(ind).tree_seq
7106 WHERE ui_def_id=in_ui_def_id
7107 AND ui_node_id=ind AND ui_node_type IN(UI_FEATURE_TYPE,UI_RESOURCE_TYPE,UI_TOTAL_TYPE,UI_CONNECTOR_TYPE) AND
7108 deleted_flag=NO_FLAG;
7109
7110 UPDATE CZ_UI_NODES SET parent_id=movedFeatures(ind).new_parent_id,rel_top_pos=var_top_pos
7111 WHERE ui_def_id=in_ui_def_id
7112 AND ui_node_id=movedFeatures(ind).ui_ref_id AND ui_node_type=UI_TEXT_LABEL_TYPE AND
7113 deleted_flag=NO_FLAG;
7114
7115 IF movedFeatures(ind).button_id IS NOT NULL THEN
7116 UPDATE CZ_UI_NODES
7117 SET parent_id=movedFeatures(ind).new_parent_id,
7118 rel_top_pos=var_top_pos
7119 WHERE ui_def_id=in_ui_def_id
7120 AND ui_node_id=movedFeatures(ind).button_id AND ui_node_type=UI_BUTTON_TYPE AND
7121 deleted_flag=NO_FLAG;
7122 END IF;
7123
7124 ind:=movedFeatures.NEXT(ind);
7125 IF ind IS NULL THEN
7126 EXIT;
7127 END IF;
7128 END LOOP;
7129 END IF;
7130
7131 IF movedOptions.Count>0 THEN
7132 ind:=movedOptions.First;
7133 LOOP
7134 UPDATE CZ_UI_NODES
7135 SET parent_id=movedOptions(ind).new_parent_id,
7136 tree_seq=movedOptions(ind).tree_seq
7137 WHERE ui_def_id=in_ui_def_id
7138 AND ui_node_id=ind AND ui_node_type=UI_OPTION_TYPE AND
7139 deleted_flag=NO_FLAG;
7140
7141 ind:=movedOptions.NEXT(ind);
7142 IF ind IS NULL THEN
7143 EXIT;
7144 END IF;
7145 END LOOP;
7146 END IF;
7147
7148 IF movedReferences.Count>0 OR movedComponents.Count>0 OR movedFeatures.Count>0 THEN
7149 ret:=FALSE;
7150 END IF;
7151
7152 RETURN ret;
7153
7154 EXCEPTION
7155 WHEN NO_DATA_FOUND THEN
7156 RETURN ret;
7157 WHEN OTHERS THEN
7158 --LOG_REPORT('CZ_UI_GENERATOR.is_EqualPS','ui_def_id='||TO_CHAR(in_ui_def_id)||' : '||SQLERRM);
7159 RETURN ret;
7160 END is_EqualPS;
7161
7162 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7163 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
7164
7165 PROCEDURE clone_it
7166 (in_old_def_id IN INTEGER,
7167 in_new_def_id IN INTEGER,
7168 in_project_id IN INTEGER,
7169 in_replace_flag IN VARCHAR2 -- DEFAULT NO_FLAG
7170 ) IS
7171
7172 TYPE Map_Table IS TABLE OF CZ_UI_NODES.NAME%TYPE INDEX BY VARCHAR2(15);
7173 Map Map_Table;
7174 new_ui_def_id INTEGER;
7175 var_id INTEGER;
7176 var_ui_type INTEGER;
7177 var_id_ INTEGER;
7178 var_ui_type_ INTEGER;
7179 var_parent_id INTEGER;
7180 var_ui_ref_id INTEGER;
7181 var_new_button INTEGER;
7182 var_parent_tb_id INTEGER;
7183 var_ps_node_id INTEGER;
7184 var_err INTEGER;
7185 new_ui_node_id INTEGER;
7186 new_caption_id INTEGER;
7187 var_old_limbo_id INTEGER;
7188 var_new_limbo_id INTEGER;
7189 var_old_id CZ_UI_NODES%ROWTYPE;
7190 var_new_id CZ_UI_NODES%ROWTYPE;
7191 var_header CZ_UI_NODES%ROWTYPE;
7192 var_ui_name CZ_UI_DEFS.name%TYPE;
7193 var_name CZ_UI_NODES.name%TYPE;
7194 END_OPERATION EXCEPTION;
7195
7196 BEGIN
7197 IF in_replace_flag=YES_FLAG THEN
7198 SELECT name INTO var_ui_name FROM CZ_UI_DEFS WHERE ui_def_id=in_old_def_id;
7199 UPDATE CZ_UI_DEFS SET deleted_flag=YES_FLAG WHERE ui_def_id=in_old_def_id;
7200 UPDATE CZ_UI_DEFS SET name=var_ui_name WHERE ui_def_id=in_new_def_id;
7201 UPDATE CZ_UI_NODES SET name=var_ui_name WHERE ui_node_id=parent_id AND ui_def_id=in_new_def_id;
7202 UPDATE CZ_UI_NODES SET ui_def_ref_id=in_new_def_id WHERE ui_def_ref_id=in_old_def_id;
7203 END IF;
7204
7205 SELECT ui_node_id INTO var_old_limbo_id FROM CZ_UI_NODES
7206 WHERE ui_def_id=in_old_def_id AND name='Limbo' AND deleted_flag=NO_FLAG;
7207
7208 SELECT ui_node_id INTO var_new_limbo_id FROM CZ_UI_NODES
7209 WHERE ui_def_id=in_new_def_id AND name='Limbo' AND deleted_flag=NO_FLAG;
7210
7211 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG WHERE ui_def_id=in_new_def_id
7212 AND ui_node_type=UI_BUTTON_TYPE;
7213
7214 SELECT * INTO var_header FROM CZ_UI_NODES WHERE ui_def_id=in_old_def_id AND
7215 ui_node_type=UI_ROOT_SYSTEM_TYPE AND deleted_flag=NO_FLAG;
7216 UPDATE CZ_UI_NODES
7217 SET FONTBOLD=var_header.FONTBOLD,
7218 FONTCOLOR=var_header.FONTCOLOR,
7219 FONTITALIC=var_header.FONTITALIC,
7220 FONTUNDERLINE=var_header.FONTUNDERLINE,
7221 FONTSIZE=var_header.FONTSIZE,
7222 FONTNAME=var_header.FONTNAME,
7223 BACKGROUNDSTYLE=var_header.BACKGROUNDSTYLE,
7224 BACKGROUNDPICTURE=var_header.BACKGROUNDPICTURE,
7225 DEFAULT_BKGRND_COLOR_FLAG=var_header.DEFAULT_BKGRND_COLOR_FLAG,
7226 DEFAULT_BKGRND_PICTURE_FLAG=var_header.DEFAULT_BKGRND_PICTURE_FLAG,
7227 DEFAULT_FONT_FLAG=var_header.DEFAULT_FONT_FLAG
7228 WHERE ui_def_id=in_new_def_id AND ui_node_type=UI_ROOT_SYSTEM_TYPE AND deleted_flag=NO_FLAG;
7229
7230 FOR i IN(SELECT ui_node_id,parent_id,ps_node_id,ui_node_ref_id,ui_node_type,name
7231 FROM CZ_UI_NODES WHERE ui_def_id=in_old_def_id
7232 AND deleted_flag=NO_FLAG)
7233 LOOP
7234 IF i.parent_id=var_old_limbo_id THEN
7235 UPDATE CZ_UI_NODES SET parent_id=var_new_limbo_id WHERE
7236 ui_def_id=in_new_def_id AND ps_node_id=i.ps_node_id AND ui_node_type=i.ui_node_type
7237 AND deleted_flag=NO_FLAG;
7238 END IF;
7239 IF i.ui_node_type IN(UI_PRODUCT_TYPE,UI_COMPONENT_TYPE,UI_FEATURE_TYPE,UI_RESOURCE_TYPE,UI_TOTAL_TYPE,UI_BOM_STANDART_TYPE)
7240 AND i.ps_node_id IS NOT NULL AND i.ui_node_ref_id IS NOT NULL AND i.parent_id<>var_old_limbo_id THEN
7241
7242 SELECT name INTO var_name FROM CZ_UI_NODES WHERE ui_def_id=in_old_def_id
7243 AND ui_node_id=i.ui_node_ref_id;
7244 Map(i.ps_node_id):=var_name;
7245 END IF;
7246 END LOOP;
7247
7248 UPDATE CZ_UI_NODES SET parent_id=var_new_limbo_id WHERE
7249 ui_def_id=in_new_def_id AND ui_node_ref_id IN(SELECT ui_node_id FROM CZ_UI_NODES
7250 WHERE ui_def_id=in_new_def_id AND parent_id=var_new_limbo_id) AND ui_node_type=UI_COMPONENT_REF_TYPE;
7251
7252 FOR i IN(SELECT ps_node_id FROM CZ_PS_NODES WHERE devl_project_id=in_project_id AND
7253 ps_node_type IN(PRODUCT_NODE_TYPE,COMPONENT_NODE_TYPE,
7254 BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE) AND deleted_flag=NO_FLAG)
7255 LOOP
7256 UPDATE CZ_UI_NODES SET deleted_flag='1' WHERE ui_def_id=in_new_def_id AND
7257 parent_id IN(SELECT ui_node_id FROM CZ_UI_NODES WHERE ps_node_id=i.ps_node_id
7258 AND ui_node_type IN(UI_PRODUCT_TYPE,UI_COMPONENT_TYPE) AND deleted_flag=NO_FLAG)
7259 AND ui_node_type NOT IN(UI_FEATURE_TYPE,UI_RESOURCE_TYPE,UI_TOTAL_TYPE,UI_BOM_STANDART_TYPE)
7260 AND parent_id<>var_new_limbo_id;
7261 END LOOP;
7262
7263 FOR i IN(SELECT * FROM CZ_PS_NODES WHERE devl_project_id=in_project_id AND deleted_flag=NO_FLAG)
7264 LOOP
7265 IF i.ps_node_type IN (PRODUCT_NODE_TYPE,COMPONENT_NODE_TYPE,BOM_MODEL_NODE_TYPE,
7266 BOM_CLASS_NODE_TYPE) THEN
7267 BEGIN
7268 SELECT * INTO var_old_id FROM CZ_UI_NODES WHERE ui_def_id=in_old_def_id
7269 AND ps_node_id=i.ps_node_id AND ui_node_type IN(UI_PRODUCT_TYPE,UI_COMPONENT_TYPE) AND
7270 parent_id <> var_old_limbo_id AND deleted_flag=NO_FLAG;
7271
7272 SELECT * INTO var_new_id FROM CZ_UI_NODES WHERE ui_def_id=in_new_def_id
7273 AND ps_node_id=i.ps_node_id AND ui_node_type IN(UI_PRODUCT_TYPE,UI_COMPONENT_TYPE) AND
7274 parent_id<>var_new_limbo_id AND deleted_flag=NO_FLAG;
7275
7276 FOR k IN(SELECT * FROM CZ_UI_NODES WHERE ui_def_id=in_old_def_id
7277 AND parent_id=var_old_id.ui_node_id AND parent_id<>var_old_limbo_id
7278 AND ui_node_type NOT IN(UI_FEATURE_TYPE,UI_RESOURCE_TYPE,
7279 UI_TOTAL_TYPE,UI_BOM_STANDART_TYPE) AND deleted_flag=NO_FLAG)
7280 LOOP
7281 BEGIN
7282 new_ui_node_id:=getUISeqVal;
7283 new_caption_id:=getTXTSeqVal;
7284
7285 INSERT INTO CZ_INTL_TEXTS(intl_text_id,text_str,ui_def_id,model_id,deleted_flag)
7286 SELECT new_caption_id,text_str,in_new_def_id,in_project_id,'0' FROM CZ_INTL_TEXTS
7287 WHERE intl_text_id=(SELECT caption_id FROM CZ_UI_NODES
7288 WHERE ui_def_id=in_old_def_id AND ui_node_id=k.ui_node_id);
7289
7290 INSERT INTO CZ_UI_NODES
7291 (ui_node_id,
7292 parent_id,
7293 ui_def_id,
7294 ps_node_id,
7295 ui_node_ref_id,
7296 name,caption_id,tool_tip_id,ui_node_type,background_color,
7297 component_id,width,height,lce_identifier,
7298 tree_display_flag,tree_seq,
7299 default_font_flag,default_bkgrnd_color_flag,
7300 default_bkgrnd_picture_flag,modified_flags,tab_order,
7301 rel_top_pos,rel_left_pos,
7302 deleted_flag,
7303 fontbold,fontcolor,fontunderline,fontsize,fontname,
7304 backgroundstyle,controltype,backgroundpicture,borders,picturename,func_comp_id)
7305 SELECT new_ui_node_id,var_new_id.ui_node_id,in_new_def_id,ps_node_id,ui_node_ref_id,
7306 name,new_caption_id,tool_tip_id,ui_node_type,background_color,component_id,width,height,lce_identifier,
7307 tree_display_flag,tree_seq,
7308 default_font_flag,default_bkgrnd_color_flag,default_bkgrnd_picture_flag,
7309 NO_FLAG,NO_FLAG,rel_top_pos,rel_left_pos,NO_FLAG,
7310 fontbold,fontcolor,fontunderline,fontsize,fontname,
7311 backgroundstyle,controltype,backgroundpicture,borders,picturename,func_comp_id
7312 FROM CZ_UI_NODES WHERE ui_def_id=in_old_def_id AND ui_node_id=k.ui_node_id;
7313
7314 INSERT INTO CZ_UI_NODE_PROPS(ui_def_id,ui_node_id,key_str,value_str,deleted_flag)
7315 SELECT in_new_def_id,new_ui_node_id,key_str,value_str,'0' FROM CZ_UI_NODE_PROPS
7316 WHERE ui_def_id=in_old_def_id AND ui_node_id=k.ui_node_id;
7317
7318 EXCEPTION
7319 WHEN NO_DATA_FOUND THEN
7320 NULL;
7321 WHEN OTHERS THEN
7322 NULL;
7323 END;
7324 END LOOP;
7325
7326 UPDATE CZ_UI_NODES
7327 SET
7328 REL_TOP_POS=var_old_id.REL_TOP_POS,
7329 REL_LEFT_POS=var_old_id.REL_LEFT_POS,
7330 CAPTION_ID=var_old_id.CAPTION_ID,
7331 WIDTH=var_old_id.WIDTH,
7332 HEIGHT=var_old_id.HEIGHT,
7333 FONTBOLD=var_old_id.FONTBOLD,
7334 FONTCOLOR=var_old_id.FONTCOLOR,
7335 FONTITALIC=var_old_id.FONTITALIC,
7336 FONTUNDERLINE=var_old_id.FONTUNDERLINE,
7337 FONTSIZE=var_old_id.FONTSIZE,
7338 FONTNAME=var_old_id.FONTNAME,
7339 BACKGROUNDSTYLE=var_old_id.BACKGROUNDSTYLE,
7340 BACKGROUNDPICTURE=var_old_id.BACKGROUNDPICTURE,
7341 BORDERS=var_old_id.BORDERS,
7342 PICTURENAME=var_old_id.PICTURENAME,
7343 MODIFIED_FLAGS=var_old_id.MODIFIED_FLAGS,
7344 DEFAULT_BKGRND_COLOR_FLAG=var_old_id.DEFAULT_BKGRND_COLOR_FLAG,
7345 DEFAULT_BKGRND_PICTURE_FLAG=var_old_id.DEFAULT_BKGRND_PICTURE_FLAG,
7346 DEFAULT_FONT_FLAG=var_old_id.DEFAULT_FONT_FLAG
7347 WHERE ui_node_id=var_new_id.ui_node_id;
7348
7349 EXCEPTION
7350 WHEN NO_DATA_FOUND THEN
7351 NULL;
7352 WHEN OTHERS THEN
7353 NULL;
7354 END;
7355 END IF;
7356
7357 IF i.ps_node_type IN (FEATURE_NODE_TYPE,RESOURCE_NODE_TYPE,
7358 TOTAL_NODE_TYPE,BOM_MODEL_NODE_TYPE) THEN
7359 BEGIN
7360 SELECT * INTO var_old_id FROM CZ_UI_NODES WHERE ui_def_id=in_old_def_id
7361 AND ps_node_id=i.ps_node_id AND ui_node_type IN(UI_FEATURE_TYPE,UI_RESOURCE_TYPE,
7362 UI_TOTAL_TYPE,UI_BOM_STANDART_TYPE)
7363 AND parent_id<>var_old_limbo_id AND deleted_flag=NO_FLAG;
7364
7365 SELECT * INTO var_new_id FROM CZ_UI_NODES WHERE ui_def_id=in_new_def_id
7366 AND ps_node_id=i.ps_node_id AND ui_node_type IN(UI_FEATURE_TYPE,UI_RESOURCE_TYPE,UI_TOTAL_TYPE,UI_BOM_STANDART_TYPE)
7367 AND parent_id<>var_new_limbo_id AND deleted_flag=NO_FLAG;
7368
7369 UPDATE CZ_UI_NODES
7370 SET
7371 REL_TOP_POS=var_old_id.REL_TOP_POS,
7372 REL_LEFT_POS=var_old_id.REL_LEFT_POS,
7373 CAPTION_ID=var_old_id.CAPTION_ID,
7374 WIDTH=var_old_id.WIDTH,
7375 HEIGHT=var_old_id.HEIGHT,
7376 FONTBOLD=var_old_id.FONTBOLD,
7377 FONTCOLOR=var_old_id.FONTCOLOR,
7378 FONTITALIC=var_old_id.FONTITALIC,
7379 FONTUNDERLINE=var_old_id.FONTUNDERLINE,
7380 FONTSIZE=var_old_id.FONTSIZE,
7381 FONTNAME=var_old_id.FONTNAME,
7382 BACKGROUNDSTYLE=var_old_id.BACKGROUNDSTYLE,
7383 BACKGROUNDPICTURE=var_old_id.BACKGROUNDPICTURE,
7384 BORDERS=var_old_id.BORDERS,
7385 PICTURENAME=var_old_id.PICTURENAME,
7386 MODIFIED_FLAGS=var_old_id.MODIFIED_FLAGS,
7387 DEFAULT_BKGRND_COLOR_FLAG=var_old_id.DEFAULT_BKGRND_COLOR_FLAG,
7388 DEFAULT_BKGRND_PICTURE_FLAG=var_old_id.DEFAULT_BKGRND_PICTURE_FLAG,
7389 DEFAULT_FONT_FLAG=var_old_id.DEFAULT_FONT_FLAG
7390 WHERE ui_node_id=var_new_id.ui_node_id;
7391
7392 EXCEPTION
7393 WHEN NO_DATA_FOUND THEN
7394 NULL;
7395 WHEN OTHERS THEN
7396 NULL;
7397 END;
7398 END IF;
7399 END LOOP;
7400
7401 FOR i IN(SELECT ui_node_id,parent_id,ui_node_ref_id,ps_node_id,ui_node_type,name
7402 FROM CZ_UI_NODES WHERE ui_def_id=in_new_def_id
7403 AND ui_node_type IN(UI_PRODUCT_TYPE,UI_COMPONENT_TYPE,
7404 UI_FEATURE_TYPE,UI_RESOURCE_TYPE,UI_TOTAL_TYPE,UI_BOM_STANDART_TYPE)
7405 AND ui_node_ref_id IS NOT NULL AND
7406 parent_id<>var_new_limbo_id AND deleted_flag=NO_FLAG)
7407 LOOP
7408 BEGIN
7409 var_name:=Map(i.ps_node_id);
7410 IF i.ui_node_type IN(UI_PRODUCT_TYPE,UI_COMPONENT_TYPE) THEN
7411 FOR n IN(SELECT ui_node_id FROM CZ_UI_NODES
7412 WHERE ui_def_id=in_new_def_id AND parent_id=i.ui_node_id AND
7413 name=var_name AND ui_node_type=UI_TEXT_LABEL_TYPE AND
7414 parent_id<>var_new_limbo_id AND deleted_flag=NO_FLAG)
7415 LOOP
7416 UPDATE CZ_UI_NODES
7417 SET ui_node_ref_id=n.ui_node_id
7418 WHERE ui_def_id=in_new_def_id
7419 AND ui_node_id=i.ui_node_id;
7420 END LOOP;
7421 END IF;
7422
7423 IF i.ui_node_type IN(UI_FEATURE_TYPE,UI_RESOURCE_TYPE,UI_TOTAL_TYPE,UI_BOM_STANDART_TYPE) THEN
7424 FOR n IN(SELECT ui_node_id FROM CZ_UI_NODES
7425 WHERE ui_def_id=in_new_def_id AND parent_id=i.parent_id AND
7426 name=var_name AND ui_node_type=UI_TEXT_LABEL_TYPE AND
7427 parent_id<>var_new_limbo_id AND deleted_flag=NO_FLAG)
7428 LOOP
7429 UPDATE CZ_UI_NODES
7430 SET ui_node_ref_id=n.ui_node_id
7431 WHERE ui_def_id=in_new_def_id
7432 AND ui_node_id=i.ui_node_id;
7433 END LOOP;
7434 END IF;
7435 EXCEPTION
7436 WHEN OTHERS THEN
7437 NULL;
7438 END;
7439 END LOOP;
7440
7441 EXCEPTION
7442 WHEN NO_DATA_FOUND THEN
7443 LOG_REPORT('CZ_UI_GENERATOR.clone_it','ui_def_id='||TO_CHAR(in_new_def_id)||' : '||SQLERRM,
7444 CZ_ERROR_URGENCY);
7445 --FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME,'CZ_UI_GENERATOR.clone_it');
7446 WHEN OTHERS THEN
7447 LOG_REPORT('CZ_UI_GENERATOR.clone_it','ui_def_id='||TO_CHAR(in_new_def_id)||' : '||SQLERRM,
7448 CZ_ERROR_URGENCY);
7449 --FND_REPORT(CZ_UI_GEN_FATAL_ERR,TOKEN_SQLERRM,SQLERRM);
7450 END clone_it;
7451
7452 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7453 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
7454
7455 PROCEDURE delete_UI_NODES
7456 (in_project_id IN INTEGER,
7457 in_ui_def_id IN INTEGER) IS
7458
7459 BEGIN
7460
7461 --
7462 -- deleting nodes from PS Tree case --
7463 --
7464 FOR i IN (SELECT ps_node_id FROM CZ_PS_NODES
7465 WHERE devl_project_id=in_project_id
7466 AND (deleted_flag=YES_FLAG OR (ui_omit=YES_FLAG AND mSHOW_ALL_NODES='0')))
7467 LOOP
7468 --
7469 -- remove an associated buttons and references --
7470 --
7471 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG WHERE
7472 ps_node_id=i.ps_node_id AND ui_node_type IN (UI_BUTTON_TYPE,UI_PICTURE_TYPE,UI_REFERENCE_REF_TYPE)
7473 AND ui_def_id=in_ui_def_id;
7474
7475 --
7476 -- remove UI subtrees --
7477 --
7478 FOR l IN (SELECT ui_node_id,ps_node_id,ui_node_ref_id,ui_node_type FROM CZ_UI_NODES
7479 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.ps_node_id AND ui_node_type NOT IN(UI_BUTTON_TYPE,
7480 UI_REFERENCE_REF_TYPE) AND deleted_flag=NO_FLAG)
7481 LOOP
7482 remove_UI_Subtree(l.ui_node_id,l.ui_node_type);
7483 END LOOP;
7484 END LOOP;
7485
7486 FOR i IN(SELECT b.ui_node_id FROM CZ_PS_NODES a,CZ_UI_NODES b
7487 WHERE b.ui_def_id=in_ui_def_id AND a.ps_node_id=b.ps_node_id
7488 AND a.ps_node_type=437 AND b.ui_node_type=UI_BOM_OPTION_CLASS_TYPE AND b.page_number<>1 AND
7489 NOT EXISTS(SELECT NULL FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
7490 AND parent_id=b.ui_node_id AND ui_node_type=UI_BOM_STANDART_TYPE AND deleted_flag=NO_FLAG))
7491 LOOP
7492 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG
7493 WHERE ui_def_id=in_ui_def_id AND ui_node_id=i.ui_node_id;
7494 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG
7495 WHERE ui_def_id=in_ui_def_id AND ui_node_ref_id=i.ui_node_id;
7496 END LOOP;
7497
7498 END delete_UI_NODES;
7499
7500 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7501 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
7502
7503 FUNCTION getUseLabelsProperty(p_ui_node_id IN NUMBER ,p_property_name IN VARCHAR2) RETURN VARCHAR2 IS
7504
7505 v_use_labels CZ_UI_NODE_PROPS.value_str%TYPE:='1';
7506
7507 BEGIN
7508 SELECT value_str INTO v_use_labels FROM CZ_UI_NODE_PROPS
7509 WHERE ui_node_id=p_ui_node_id AND key_str=p_property_name AND deleted_flag='0';
7510 RETURN v_use_labels;
7511 EXCEPTION
7512 WHEN OTHERS THEN
7513 RETURN v_use_labels;
7514 END getUseLabelsProperty;
7515
7516 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7517 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
7518
7519 FUNCTION get_Property_Value(p_node_id IN cz_ps_nodes.ps_node_id%TYPE,
7520 p_property_id IN cz_properties.property_id%TYPE,
7521 p_item_id IN cz_item_masters.item_id%TYPE)
7522 RETURN VARCHAR2 IS
7523 TYPE tStringArray IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;
7524 v_def_value cz_properties.def_value%TYPE;
7525 v_tab tStringArray;
7526 BEGIN
7527
7528 SELECT NVL(TO_CHAR(def_num_value), def_value) INTO v_def_value
7529 FROM cz_properties
7530 WHERE property_id = p_property_id AND deleted_flag = '0';
7531
7532 SELECT NVL(TO_CHAR(data_num_value), data_value) BULK COLLECT INTO v_tab
7533 FROM cz_ps_prop_vals
7534 WHERE ps_node_id = p_node_id
7535 AND property_id = p_property_id
7536 AND deleted_flag = '0';
7537
7538 IF(v_tab.COUNT = 0 AND p_item_id IS NOT NULL)THEN
7539
7540 SELECT NVL(TO_CHAR(property_num_value), property_value) BULK COLLECT INTO v_tab
7541 FROM cz_item_property_values
7542 WHERE property_id = p_property_id
7543 AND item_id = p_item_id
7544 AND deleted_flag = '0';
7545
7546 IF(v_tab.COUNT = 0)THEN
7547
7548 SELECT NULL BULK COLLECT INTO v_tab
7549 FROM cz_item_type_properties t, cz_item_masters m
7550 WHERE m.item_id = p_item_id
7551 AND m.deleted_flag = '0'
7552 AND t.deleted_flag = '0'
7553 AND t.property_id = p_property_id
7554 AND t.item_type_id = m.item_type_id;
7555 END IF;
7556 END IF;
7557
7558 IF(v_tab.EXISTS(1))THEN RETURN NVL(v_tab(1), v_def_value); END IF;
7559
7560 RETURN NULL;
7561
7562 EXCEPTION
7563 WHEN NO_DATA_FOUND THEN
7564 RETURN NULL;
7565 END get_Property_Value;
7566
7567 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7568 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
7569
7570 FUNCTION getTextByProperty(p_ps_node_id IN NUMBER,p_ui_node_id IN NUMBER) RETURN VARCHAR2 IS
7571
7572 v_property_id CZ_PROPERTIES.property_id%TYPE;
7573 v_item_id CZ_PS_NODES.item_id%TYPE;
7574
7575 BEGIN -- sselahi
7576 v_property_id:=TO_NUMBER(getUseLabelsProperty(p_ui_node_id,'LabelProperty'));
7577
7578 SELECT item_id INTO v_item_id FROM CZ_PS_NODES
7579 WHERE ps_node_id=p_ps_node_id;
7580
7581 RETURN get_Property_Value(p_node_id => p_ps_node_id,
7582 p_property_id => v_property_id,
7583 p_item_id => v_item_id);
7584 END getTextByProperty;
7585
7586 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
7587 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
7588
7589 PROCEDURE refreshUI
7590 (in_ui_def_id IN OUT NOCOPY INTEGER,
7591 out_run_id OUT NOCOPY INTEGER) IS
7592
7593 temp IntArray;
7594 t_pages IntArray;
7595 t_ref_uis IntArray;
7596
7597 t_ui_node_id_tbl IntArrayIndexBinaryInt;
7598 t_tree_seq_tbl IntArrayIndexBinaryInt;
7599 t_ps_node_id_tbl IntArrayIndexBinaryInt;
7600 t_tree_seq_delta_tbl IntArrayIndexBinaryInt;
7601
7602 new_id INTEGER;
7603 new_parent INTEGER;
7604 new_child INTEGER;
7605 var_ref_ui INTEGER;
7606 var_ref_ui_id INTEGER;
7607 var_new_si_id INTEGER;
7608 ind INTEGER;
7609 new_node_ref_id INTEGER;
7610 curr_node_id INTEGER;
7611 curr_label_id INTEGER;
7612 curr_bitmap_id INTEGER;
7613 curr_button_id INTEGER;
7614 default_PROD_TOP INTEGER;
7615 default_PROD_LEFT INTEGER;
7616 var_height INTEGER;
7617 var_component_id INTEGER;
7618 var_model_id INTEGER;
7619 var_root_id INTEGER;
7620 var_parent_id INTEGER;
7621 temp_node INTEGER;
7622 var_ui_node_id INTEGER;
7623 new_ui_def_id INTEGER;
7624 var_feature_height INTEGER;
7625 var_control_type INTEGER;
7626 var_feature_type INTEGER;
7627 options_number INTEGER;
7628 var_comp_tree_id INTEGER;
7629 var_limbo_id INTEGER;
7630 var_prod_selection INTEGER;
7631 var_ref_id INTEGER;
7632 var_temp1 INTEGER;
7633 var_temp2 INTEGER;
7634 var_tempo INTEGER;
7635 var_temp INTEGER;
7636 var_min INTEGER;
7637 var_max INTEGER;
7638 var_ui_root_id INTEGER;
7639 var_rel_top_pos INTEGER;
7640 temp_var INTEGER;
7641 var_width INTEGER;
7642 var_top_pos INTEGER;
7643 var_screen_width INTEGER;
7644 var_screen_height INTEGER;
7645 var_ref_to_id INTEGER;
7646 var_ref_model_id INTEGER;
7647 var_model_ref_id INTEGER;
7648 ind_ INTEGER;
7649 ind_arr INTEGER;
7650 var_err INTEGER;
7651 var_label_txt_id INTEGER;
7652 k INTEGER;
7653
7654 var_screen_ui_id INTEGER;
7655 var_tree_ui_id INTEGER;
7656 var_tree_caption_id INTEGER;
7657 var_tree_parent_id INTEGER;
7658 var_text_label_id INTEGER;
7659 var_ui_def_ref_id INTEGER;
7660 var_screen_caption_id INTEGER;
7661 var_parent_screen_id INTEGER;
7662 var_option_ui_id INTEGER;
7663 var_option_caption_id INTEGER;
7664 var_screen_parent_id INTEGER;
7665 var_button_id INTEGER;
7666 var_button_type INTEGER;
7667
7668 var_text_label_caption_id INTEGER;
7669
7670 var_ui_feature_type INTEGER;
7671 var_ui_max INTEGER;
7672 var_ui_min INTEGER;
7673 var_out_ui_def_id INTEGER;
7674 var_out_run_id INTEGER;
7675 var_frame_allocation INTEGER;
7676 ind_counter INTEGER;
7677 deletedNodes INTEGER:=0;
7678 counter INTEGER:=0;
7679
7680 var_caption_id CZ_UI_NODES.caption_id%TYPE;
7681 var_ui_node_ref_id CZ_UI_NODES.ui_node_ref_id%TYPE;
7682 var_modified_flag CZ_UI_NODES.modified_flags%TYPE;
7683 var_ui_tree_parent_id CZ_UI_NODES.ui_node_id%TYPE;
7684 var_ui_tree_seq CZ_UI_NODES.tree_seq%TYPE;
7685 var_ui_control_type CZ_UI_NODES.controltype%TYPE;
7686 var_parent_item_txt_id CZ_UI_NODES.caption_id%TYPE;
7687 var_ui_parent_item_id CZ_UI_NODES.ui_node_id%TYPE;
7688 var_inst_node_ref_id CZ_UI_NODES.ui_node_ref_id%TYPE;
7689 var_inst_text_label CZ_UI_NODES.ui_node_id%TYPE;
7690 var_modify_ui_flag CZ_UI_NODES.modified_flags%TYPE;
7691 var_screen_ps_node_id CZ_UI_NODES.ps_node_id%TYPE;
7692 var_screen_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
7693 var_ui_node_type CZ_UI_NODES.ui_node_type%TYPE;
7694 var_screen_ps_id CZ_UI_NODES.ps_node_id%TYPE;
7695 var_oc_standart_item CZ_UI_NODES.ui_node_id%TYPE;
7696 var_tree_seq CZ_PS_NODES.tree_seq%TYPE;
7697 var_parent_name CZ_PS_NODES.name%TYPE;
7698 var_curr_max CZ_PS_NODES.maximum%TYPE;
7699 var_curr_min CZ_PS_NODES.minimum%TYPE;
7700 var_ref_name CZ_PS_NODES.name%TYPE;
7701 var_ref_caption_id CZ_PS_NODES.intl_text_id%TYPE;
7702 var_inst_ui_id CZ_UI_NODES.ui_node_id%TYPE;
7703 var_inst_parent_id CZ_UI_NODES.parent_id%TYPE;
7704 var_inst_ps_id CZ_UI_NODES.ps_node_id%TYPE;
7705 var_inst_top_pos CZ_UI_NODES.rel_top_pos%TYPE;
7706 var_inst_tree_seq CZ_UI_NODES.tree_seq%TYPE;
7707 var_inst_caption_id CZ_UI_NODES.caption_id%TYPE;
7708 var_inst_name CZ_UI_NODES.name%TYPE;
7709 var_ref_parent_screen_id CZ_UI_NODES.ui_node_id%TYPE;
7710 var_option_ps_id CZ_UI_NODES.ps_node_id%TYPE;
7711 var_caption_name CZ_INTL_TEXTS.text_str%TYPE;
7712 var_label CZ_INTL_TEXTS.text_str%TYPE;
7713 var_button_name CZ_INTL_TEXTS.text_str%TYPE;
7714
7715 Flag BOOLEAN;
7716 existUINode BOOLEAN:=FALSE;
7717 existUI BOOLEAN:=FALSE;
7718
7719 var_borders VARCHAR2(1);
7720 var_deleted_flag VARCHAR2(1);
7721 var_ui_omit VARCHAR2(1);
7722 var_virtual_flag VARCHAR2(1);
7723 var_use_default_color VARCHAR2(1);
7724 existRefUI VARCHAR2(1);
7725 var_action_type VARCHAR2(1);
7726 existsDeleteMe VARCHAR2(1):=NO_FLAG;
7727 existsButton VARCHAR2(1):=NO_FLAG;
7728 existsSTANDART_ITEM VARCHAR2(1):=NO_FLAG;
7729 existsUI VARCHAR2(1):=NO_FLAG;
7730 UPDATE_UI_PROPS VARCHAR2(1):=YES_FLAG;
7731 var_use_labels VARCHAR2(1);
7732 var_current_lang VARCHAR2(20);
7733 var_suffix VARCHAR2(40);
7734 var_curr_virtual_flag VARCHAR2(1);
7735 var_ui_counted_options VARCHAR2(1);
7736 BomType VARCHAR2(1);
7737 v_just_OC VARCHAR2(1);
7738
7739 var_ps_node_id CZ_PS_NODES.ps_node_id%TYPE;
7740 var_name CZ_PS_NODES.name%TYPE;
7741 var_intl_text_id CZ_PS_NODES.intl_text_id%TYPE;
7742 var_text_str CZ_INTL_TEXTS.text_str%TYPE;
7743 var_option_ui_name CZ_UI_NODES.NAME%TYPE;
7744 var_button_label CZ_INTL_TEXTS.TEXT_STR%TYPE;
7745 var_screen_name CZ_UI_NODES.NAME%TYPE;
7746 var_ui_parent_screen_id CZ_UI_NODES.ui_node_id%TYPE;
7747 var_modified_flags CZ_UI_NODES.MODIFIED_FLAGS%TYPE;
7748 var_gen_version CZ_UI_DEFS.GEN_VERSION%TYPE;
7749 var_ui_name CZ_UI_DEFS.NAME%TYPE;
7750 var_model_ref_expl_id CZ_MODEL_REF_EXPLS.model_ref_expl_id%TYPE;
7751 var_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
7752
7753 NEXT_ITTERATION EXCEPTION;
7754 NO_COMPONENT_TREE_NODE EXCEPTION;
7755 NO_LIMBO_NODE EXCEPTION;
7756 KEEP_IT EXCEPTION;
7757 BREAK_IT EXCEPTION;
7758 SKIP_IT EXCEPTION;
7759 BUTTON_EXISTS EXCEPTION;
7760 WRONG_UI_VERSION EXCEPTION;
7761
7762 t_news UIArray;
7763 t_boms UIArray;
7764 t_features featureArray;
7765 t_Options optionArray;
7766 t_add_buttons buttonsArray;
7767 t_footer_buttons buttonsArray;
7768 t_latest_buttons buttonsArray;
7769 t_ref_boms refbomArray;
7770 t_bom_pages pageArray;
7771
7772 RCODE VARCHAR2(10);
7773
7774 BEGIN
7775
7776 Initialize;
7777
7778 --
7779 -- set Global variables --
7780 --
7781 MODE_REFRESH:=TRUE;
7782 MUID:=NULL;
7783
7784 --
7785 -- Calculate usable width and height --
7786 --
7787 SELECT ui_node_id,width,height INTO var_root_id,var_screen_width,var_screen_height FROM
7788 CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND ui_node_id=parent_id
7789 AND deleted_flag=NO_FLAG;
7790
7791 USABLE_WIDTH:=FLOOR(var_screen_width*(100-DEFAULT_TREE_ALLOCATION)/100)-LEFT_MARGIN-RIGHT_MARGIN;
7792 USABLE_HEIGHT:=var_screen_height;
7793
7794 OPTION_FEATURE_WIDTH:=FLOOR(USABLE_WIDTH/2);
7795 CENTER_LINE:=LEFT_MARGIN+OPTION_FEATURE_WIDTH;
7796 DELETE_BUTTON_LEFT_POS:=USABLE_WIDTH+LEFT_MARGIN-DELETE_BUTTON_WIDTH;
7797
7798 NUMERIC_FEATURE_WIDTH:=FLOOR(OPTION_FEATURE_WIDTH/2);
7799 BOOLEAN_FEATURE_WIDTH:=16;
7800 DEFAULT_TOTAL_WIDTH:=NUMERIC_FEATURE_WIDTH;
7801 DEFAULT_RESOURCE_WIDTH:=NUMERIC_FEATURE_WIDTH;
7802 DEFAULT_CONNECTOR_WIDTH:=NUMERIC_FEATURE_WIDTH;
7803 CONNECTOR_GAP:=DEFAULT_CONNECTOR_WIDTH+DEFAULT_SPACE_BETWEEN+STAR_SYMBOL_WIDTH+DEFAULT_SPACE_BETWEEN;
7804
7805 SCREEN_HALF:=FLOOR(USABLE_WIDTH/2)-DEFAULT_SPACE_BETWEEN;
7806
7807 /* ************ Calculate Default Tops and Lefts *************** */
7808 last_TOP_POS:=DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN;
7809 last_HEIGHT:=DEFAULT_CONTROL_HEIGHT;
7810
7811 out_run_id:=0;
7812 SELECT CZ_XFR_RUN_INFOS_S.NEXTVAL INTO GLOBAL_RUN_ID FROM dual;
7813
7814 SELECT look_and_feel INTO mLOOK_AND_FEEL FROM CZ_UI_DEFS
7815 WHERE ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG;
7816
7817 BEGIN
7818 SELECT value_str INTO mUSE_LABELS FROM CZ_UI_NODE_PROPS
7819 WHERE key_str='UseLabels' AND ui_node_id=var_root_id AND deleted_flag=NO_FLAG;
7820 EXCEPTION
7821 WHEN NO_DATA_FOUND THEN
7822 --
7823 -- use Descriptions as Labels --
7824 --
7825 mUSE_LABELS:='1';
7826 END;
7827
7828 BEGIN
7829 SELECT value_str INTO mSHOW_ALL_NODES FROM CZ_UI_NODE_PROPS
7830 WHERE key_str='ShowAllNodes' AND ui_node_id=var_root_id AND deleted_flag=NO_FLAG;
7831 EXCEPTION
7832 WHEN NO_DATA_FOUND THEN
7833 --
7834 -- don't ignore UI_OMIT flag
7835 --
7836 mSHOW_ALL_NODES:='0';
7837 END;
7838
7839 BEGIN
7840 SELECT value_str INTO var_frame_allocation FROM CZ_UI_NODE_PROPS
7841 WHERE key_str='NavFrameAllocation' AND ui_node_id=var_root_id AND deleted_flag=NO_FLAG;
7842 EXCEPTION
7843 WHEN NO_DATA_FOUND THEN
7844 --
7845 -- default value
7846 --
7847 var_frame_allocation:=30;
7848 END;
7849
7850 BEGIN
7851 SELECT value_str INTO mWIZARD_STYLE FROM CZ_UI_NODE_PROPS
7852 WHERE UPPER(key_str)='WIZARDSTYLE' AND ui_node_id=var_root_id AND deleted_flag=NO_FLAG;
7853 EXCEPTION
7854 WHEN NO_DATA_FOUND THEN
7855 mWIZARD_STYLE:='0';
7856 END;
7857
7858 BEGIN
7859 SELECT value_str INTO mITEMS_ON_PAGE FROM CZ_UI_NODE_PROPS
7860 WHERE UPPER(key_str)='MAXBOMITEMSONPAGE'
7861 AND ui_node_id=var_root_id AND deleted_flag=NO_FLAG;
7862 EXCEPTION
7863 WHEN NO_DATA_FOUND THEN
7864 mITEMS_ON_PAGE:=10;
7865 END;
7866
7867 UPDATE CZ_UI_DEFS SET last_update_date=SYSDATE WHERE
7868 ui_def_id=in_ui_def_id RETURNING
7869 component_id,ui_style,gen_version,name
7870 INTO Project_Id,mUI_STYLE,var_gen_version,var_ui_name;
7871
7872 --
7873 -- if it's a BOM style UI then generate a new UI --
7874 -- and return new_ui_def_id as in_ui_def_id parameter --
7875 --
7876 IF mUI_STYLE=APPLET_STYLE_UI THEN
7877
7878 createui(in_product_id =>Project_Id,
7879 out_ui_def_id =>new_ui_def_id,
7880 out_run_id =>out_run_id,
7881 in_ui_style =>mUI_STYLE,
7882 in_frame_allocation=>var_frame_allocation,
7883 in_width =>var_screen_width,
7884 in_height =>var_screen_height,
7885 in_show_all_nodes =>mSHOW_ALL_NODES,
7886 in_use_labels =>mUSE_LABELS,
7887 in_look_and_feel =>mLOOK_AND_FEEL,
7888 in_max_bom_per_page=>mITEMS_ON_PAGE,
7889 in_wizard_style =>mWIZARD_STYLE);
7890
7891
7892 UPDATE CZ_UI_DEFS SET deleted_flag=YES_FLAG WHERE ui_def_id=in_ui_def_id;
7893 UPDATE CZ_UI_DEFS SET name=var_ui_name WHERE ui_def_id=new_ui_def_id;
7894 UPDATE CZ_UI_NODES SET name=var_ui_name WHERE ui_node_id=parent_id AND ui_def_id=new_ui_def_id;
7895 UPDATE CZ_UI_NODES SET ui_def_ref_id=new_ui_def_id WHERE ui_def_ref_id=in_ui_def_id;
7896 in_ui_def_id:=new_ui_def_id;
7897 RAISE BREAK_IT;
7898 END IF;
7899
7900 BEGIN
7901 SELECT ui_node_id INTO var_comp_tree_id FROM CZ_UI_NODES
7902 WHERE ui_def_id=in_ui_def_id AND name='Components Tree' AND deleted_flag=NO_FLAG;
7903 EXCEPTION
7904 WHEN NO_DATA_FOUND THEN
7905 RAISE NO_COMPONENT_TREE_NODE;
7906 END;
7907
7908 BEGIN
7909 SELECT ui_node_id INTO var_limbo_id FROM CZ_UI_NODES
7910 WHERE ui_def_id=in_ui_def_id AND name='Limbo' AND
7911 deleted_flag=NO_FLAG;
7912 EXCEPTION
7913 WHEN NO_DATA_FOUND THEN
7914 RAISE NO_LIMBO_NODE;
7915 END;
7916
7917 deletedNodes:=0;
7918
7919 SELECT COUNT('1') INTO deletedNodes FROM dual WHERE
7920 EXISTS(SELECT NULL FROM CZ_PS_NODES
7921 WHERE devl_project_id=Project_Id AND
7922 (ui_omit=YES_FLAG OR deleted_flag=YES_FLAG));
7923
7924 IF deletedNodes>0 THEN
7925 delete_UI_Nodes(Project_Id,in_ui_def_id);
7926 END IF;
7927
7928 --
7929 -- delete buttons which are associated with a deleted Functional Companions --
7930 --
7931 UPDATE CZ_UI_NODES a
7932 SET deleted_flag=YES_FLAG
7933 WHERE a.ui_def_id=in_ui_def_id AND a.ui_node_type=UI_BUTTON_TYPE AND a.func_comp_id IS NOT NULL AND
7934 NOT EXISTS(SELECT NULL FROM CZ_FUNC_COMP_SPECS b WHERE b.func_comp_id=a.func_comp_id AND b.deleted_flag=NO_FLAG);
7935
7936 --
7937 -- delete buttons which are associated with a deleted CXs --
7938 --
7939 UPDATE CZ_UI_NODES u
7940 SET deleted_flag=YES_FLAG
7941 WHERE u.ui_def_id=in_ui_def_id AND u.ui_node_type=UI_BUTTON_TYPE AND
7942 u.deleted_flag=NO_FLAG AND
7943 EXISTS(SELECT NULL FROM CZ_UI_NODE_PROPS p
7944 WHERE p.key_str='RuleId' AND p.ui_def_id=u.ui_def_id AND p.ui_node_id=u.ui_node_id AND p.deleted_flag=NO_FLAG AND
7945 TO_NUMBER(value_str) NOT IN
7946 (SELECT r.rule_id FROM CZ_RULES r WHERE r.devl_project_id=Project_id AND
7947 r.rule_type=CZ_EXTENTSIONS_RULE_TYPE AND r.deleted_flag=NO_FLAG));
7948
7949 /* *** remove all UI nodes associated with unexisting PS nodes *** */
7950
7951 FOR i IN (SELECT ui_node_id,ui_node_type,deleted_flag FROM CZ_UI_NODES a
7952 WHERE ui_def_id=in_ui_def_id AND ps_node_id IS NOT NULL AND ui_node_type<>141
7953 AND (NOT EXISTS(SELECT NULL FROM CZ_PS_NODES WHERE devl_project_id=Project_Id AND
7954 ps_node_id=a.ps_node_id AND deleted_flag=NO_FLAG) OR a.deleted_flag=YES_FLAG))
7955 LOOP
7956 BEGIN
7957 IF i.ui_node_type IN(UI_BUTTON_TYPE,UI_PICTURE_TYPE,UI_REFERENCE_REF_TYPE) THEN
7958 UPDATE CZ_UI_NODES
7959 SET deleted_flag=YES_FLAG
7960 WHERE ui_def_id=in_ui_def_id AND ui_node_id=i.ui_node_id AND
7961 ui_node_type IN(UI_BUTTON_TYPE,UI_PICTURE_TYPE,UI_REFERENCE_REF_TYPE)
7962 AND deleted_flag=NO_FLAG;
7963 ELSE
7964 remove_UI_Subtree(i.ui_node_id,i.ui_node_type);
7965 END IF;
7966
7967 EXCEPTION
7968 WHEN OTHERS THEN
7969 LOG_REPORT('CZ_UI_GENERATOR.delete_UI_nodes',SQLERRM, CZ_ERROR_URGENCY);
7970 END;
7971 END LOOP;
7972
7973
7974
7975 FOR i IN (SELECT ps_node_id,parent_id,ps_node_type,reference_id,
7976 maximum,minimum,name,intl_text_id,counted_options_flag,virtual_flag,
7977 feature_type,ui_omit,tree_seq,item_id,orig_sys_ref FROM CZ_PS_NODES
7978 WHERE devl_project_id=Project_Id AND deleted_flag=NO_FLAG
7979 AND ui_omit=NO_FLAG)
7980 LOOP
7981 BEGIN
7982 --
7983 -- find ui_node_id on the screen associated with i.ps_node_id --
7984 --
7985 BEGIN
7986 var_text_label_id:=NULL;
7987 existUINode:=FALSE;
7988
7989 --
7990 -- if parent is invisible in UI then go to the next itteration --
7991 --
7992 IF display_in_UI(i.ps_node_id,i.parent_id)='1' THEN
7993 RAISE NEXT_ITTERATION;
7994 END IF;
7995
7996 -- general loop : find UI nodes associated with a given PS node --
7997 -- and refresh them --
7998
7999 var_screen_parent_id:=-1;
8000 ind_counter:=1;
8001 t_bom_pages.Delete;
8002
8003 FOR k IN(SELECT ui_node_id,parent_id,ui_node_ref_id,ui_def_ref_id,
8004 caption_id,height,ui_node_type,controltype,
8005 modified_flags,name,tree_seq,rel_top_pos,ps_node_id
8006 FROM CZ_UI_NODES
8007 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.ps_node_id AND
8008 ui_node_type IN
8009 (UI_PRODUCT_TYPE,UI_COMPONENT_TYPE,
8010 UI_FEATURE_TYPE,UI_OPTION_TYPE,
8011 UI_RESOURCE_TYPE,UI_TOTAL_TYPE,UI_REFERENCE_REF_TYPE,
8012 UI_BOM_OPTION_CLASS_TYPE,UI_BOM_STANDART_TYPE,UI_CONNECTOR_TYPE)
8013 AND deleted_flag=NO_FLAG ORDER BY ui_node_id)
8014 LOOP
8015 BEGIN
8016
8017 IF i.ps_node_type=BOM_CLASS_NODE_TYPE
8018 AND k.ui_node_type=UI_BOM_OPTION_CLASS_TYPE THEN
8019
8020 BEGIN
8021 SELECT caption_id INTO var_label_txt_id FROM CZ_UI_NODES
8022 WHERE ui_def_id=in_ui_def_id AND ui_node_id=k.ui_node_ref_id;
8023
8024 SELECT caption_id INTO var_tree_caption_id FROM CZ_UI_NODES
8025 WHERE ui_def_id=in_ui_def_id AND ui_node_ref_id=k.ui_node_id AND
8026 ui_node_type IN(UI_PRODUCT_REF_TYPE,UI_COMPONENT_REF_TYPE)
8027 AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
8028 EXCEPTION
8029 WHEN OTHERS THEN
8030 --
8031 -- this means that screen was deleted from UI in Developer
8032 -- and is under <Limbo>
8033 --
8034 RAISE NEXT_ITTERATION;
8035 END;
8036
8037 IF t_bom_pages.Last>=0 THEN
8038 ind_counter:=t_bom_pages.Last+1;
8039 END IF;
8040 t_bom_pages(ind_counter).ps_node_id:=i.ps_node_id;
8041 t_bom_pages(ind_counter).ui_node_id:=k.ui_node_id;
8042 t_bom_pages(ind_counter).text_id:=k.caption_id;
8043 t_bom_pages(ind_counter).label_id:=k.ui_node_ref_id;
8044 t_bom_pages(ind_counter).label_txt_id:=var_label_txt_id;
8045 t_bom_pages(ind_counter).name:=k.name;
8046 t_bom_pages(ind_counter).tree_label_id:=var_tree_caption_id;
8047 END IF;
8048
8049 var_screen_ui_id:=k.ui_node_id;
8050 var_screen_parent_id:=k.parent_id;
8051 var_text_label_id:=k.ui_node_ref_id;
8052 var_ui_def_ref_id:=k.ui_def_ref_id;
8053 var_screen_caption_id:=k.caption_id;
8054 var_modify_ui_flag:=k.modified_flags;
8055 var_screen_height:=k.height;
8056 var_screen_name:=k.name;
8057 var_ui_control_type:=k.controltype;
8058 var_ui_tree_seq:=k.tree_seq;
8059 var_screen_ps_node_id:=k.ps_node_id;
8060 var_screen_top_pos:=k.rel_top_pos;
8061 var_ui_node_type:=k.ui_node_type;
8062 existUINode:=TRUE;
8063
8064 EXCEPTION
8065 WHEN SKIP_IT THEN
8066 NULL;
8067 END;
8068 END LOOP;
8069
8070 IF i.ps_node_type=REFERENCE_NODE_TYPE THEN
8071 BEGIN
8072 SELECT ui_node_ref_id INTO var_tempo FROM CZ_UI_NODES
8073 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_parent_id
8074 AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
8075
8076 SELECT ui_node_id INTO var_parent_screen_id FROM
8077 CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND
8078 ui_node_id=var_tempo AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
8079 EXCEPTION
8080 WHEN NO_DATA_FOUND THEN
8081 NULL;
8082 END;
8083 END IF;
8084
8085 IF var_screen_parent_id=var_limbo_id THEN
8086 RAISE NEXT_ITTERATION;
8087 END IF;
8088
8089 IF i.ps_node_type IN(PRODUCT_NODE_TYPE,COMPONENT_NODE_TYPE,
8090 FEATURE_NODE_TYPE,TOTAL_NODE_TYPE,RESOURCE_NODE_TYPE,CONNECTOR_NODE_TYPE,
8091 BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE) THEN
8092 SELECT caption_id,modified_flags
8093 INTO var_text_label_caption_id,var_modified_flags
8094 FROM CZ_UI_NODES
8095 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_text_label_id AND
8096 deleted_flag=NO_FLAG;
8097 END IF;
8098 EXCEPTION
8099 WHEN NO_DATA_FOUND THEN
8100 NULL;
8101 END;
8102
8103 /**************************** populate arrays for new nodes ********************************/
8104 IF existUINode=FALSE THEN
8105 curr_node_id:=getUISeqVal;
8106 var_use_labels:= mUSE_LABELS;
8107 IF i.ps_node_type IN(OPTION_NODE_TYPE,BOM_STANDART_NODE_TYPE) THEN
8108 BEGIN
8109 SELECT value_str INTO var_use_labels FROM CZ_UI_NODE_PROPS
8110 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_parent_id AND UPPER(key_str)='USELABELS' AND deleted_flag=NO_FLAG;
8111 EXCEPTION
8112 WHEN NO_DATA_FOUND THEN
8113 NULL;
8114 END;
8115 END IF;
8116
8117 var_caption_name:=i.name;
8118
8119 /* *** go through all languages and update captions of the reference *** */
8120
8121 FOR l IN(SELECT intl_text_id,language,localized_str FROM CZ_LOCALIZED_TEXTS WHERE intl_text_id=i.intl_text_id)
8122 LOOP
8123 var_caption_name:=i.name;
8124 var_caption_name:=get_Caption(i.name,l.localized_str,var_use_labels);
8125 END LOOP;
8126
8127 IF i.ps_node_type IN (PRODUCT_NODE_TYPE,COMPONENT_NODE_TYPE,
8128 FEATURE_NODE_TYPE,RESOURCE_NODE_TYPE,TOTAL_NODE_TYPE,OPTION_NODE_TYPE,
8129 BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE,REFERENCE_NODE_TYPE,CONNECTOR_NODE_TYPE) THEN
8130
8131 --
8132 -- BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE were exluded in current version --
8133 --
8134 news(i.ps_node_id).id:=curr_node_id;
8135 news(i.ps_node_id).ps_node_id:=i.ps_node_id;
8136 news(i.ps_node_id).parent_id:=i.parent_id;
8137 news(i.ps_node_id).ps_node_type:=i.ps_node_type;
8138 news(i.ps_node_id).name:=i.name;
8139 news(i.ps_node_id).caption_name:=var_caption_name;
8140 news(i.ps_node_id).tree_seq:=i.tree_seq*mMAX_NUMBER_PAGES;
8141 news(i.ps_node_id).maximum:=i.maximum;
8142 news(i.ps_node_id).minimum:=i.minimum;
8143 news(i.ps_node_id).ui_omit:=i.ui_omit;
8144 news(i.ps_node_id).reference_id:=i.reference_id;
8145 news(i.ps_node_id).virtual_flag:=i.virtual_flag;
8146 news(i.ps_node_id).ui_node_ref_id:=getUISeqVal;
8147 news(i.ps_node_id).intl_text_id:=i.intl_text_id;
8148
8149 IF i.ps_node_type IN(REFERENCE_NODE_TYPE) THEN
8150 news(i.ps_node_id).reference_id:=i.reference_id;
8151 END IF;
8152
8153 END IF;
8154
8155 IF i.ps_node_type IN (FEATURE_NODE_TYPE,RESOURCE_NODE_TYPE,TOTAL_NODE_TYPE,CONNECTOR_NODE_TYPE) THEN
8156 features(i.ps_node_id).id:=curr_node_id;
8157 features(i.ps_node_id).ps_node_id:=i.ps_node_id;
8158 features(i.ps_node_id).parent_id:=i.parent_id;
8159 features(i.ps_node_id).ps_node_type:=i.ps_node_type;
8160 features(i.ps_node_id).name:=i.name;
8161 features(i.ps_node_id).caption_name:=var_caption_name;
8162 features(i.ps_node_id).counted_options_flag:=i.counted_options_flag;
8163 features(i.ps_node_id).tree_seq:=i.tree_seq*mMAX_NUMBER_PAGES;
8164 features(i.ps_node_id).maximum:=i.maximum;
8165 features(i.ps_node_id).minimum:=i.minimum;
8166 features(i.ps_node_id).feature_type:=i.feature_type;
8167 features(i.ps_node_id).intl_text_id:=i.intl_text_id;
8168
8169 IF i.ps_node_type IN(CONNECTOR_NODE_TYPE) THEN
8170 features(i.ps_node_id).reference_id:=i.reference_id;
8171 END IF;
8172
8173 --
8174 -- atp_flag=TRUE means - it can be used in pricing stuff --
8175 -- atp_flag = TRUE just when it's BOM node --
8176 --
8177 -- this is an old condition --
8178 -- IF i.item_id IS NOT NULL THEN --
8179 --
8180 IF i.orig_sys_ref IS NOT NULL THEN
8181 features(i.ps_node_id).atp_flag:=TRUE;
8182 ELSE
8183 features(i.ps_node_id).atp_flag:=FALSE;
8184 END IF;
8185 END IF;
8186
8187 IF i.ps_node_type=OPTION_NODE_TYPE THEN
8188 options(i.ps_node_id).id:=curr_node_id;
8189 options(i.ps_node_id).ps_node_id:=i.ps_node_id;
8190 options(i.ps_node_id).parent_id:=i.parent_id;
8191 options(i.ps_node_id).name:=i.name;
8192 options(i.ps_node_id).caption_name:=var_caption_name;
8193 options(i.ps_node_id).tree_seq:=i.tree_seq;
8194 options(i.ps_node_id).intl_text_id:=i.intl_text_id;
8195 END IF;
8196
8197 IF i.ps_node_type IN (BOM_MODEL_NODE_TYPE,BOM_CLASS_NODE_TYPE,BOM_STANDART_NODE_TYPE) THEN
8198 boms(i.ps_node_id).id:=curr_node_id;
8199 boms(i.ps_node_id).ps_node_id:=i.ps_node_id;
8200 boms(i.ps_node_id).parent_id:=i.parent_id;
8201 boms(i.ps_node_id).ps_node_type:=i.ps_node_type;
8202 boms(i.ps_node_id).name:=i.name;
8203 boms(i.ps_node_id).caption_name:=var_caption_name;
8204 boms(i.ps_node_id).tree_seq:=i.tree_seq*mMAX_NUMBER_PAGES;
8205 boms(i.ps_node_id).maximum:=i.maximum;
8206 boms(i.ps_node_id).minimum:=i.minimum;
8207 boms(i.ps_node_id).ui_omit:=i.ui_omit;
8208 boms(i.ps_node_id).ui_node_ref_id:=getUISeqVal;
8209 boms(i.ps_node_id).intl_text_id:=i.intl_text_id;
8210 END IF;
8211 RAISE NEXT_ITTERATION;
8212 END IF;
8213
8214 /*********************************end of populating ************************************/
8215 /* *** find ui_node_id in the Component Tree associated with the ui node = var_screen_ui_id *** */
8216 BEGIN
8217 var_tree_ui_id:=NULL;
8218 SELECT ui_node_id,caption_id,parent_id
8219 INTO var_tree_ui_id,var_tree_caption_id,var_tree_parent_id FROM CZ_UI_NODES
8220 WHERE ui_def_id=in_ui_def_id AND ui_node_ref_id=var_screen_ui_id AND
8221 ui_node_type IN (UI_PRODUCT_REF_TYPE,UI_COMPONENT_REF_TYPE)
8222 AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
8223
8224 /* *** find a parent screen *** */
8225 SELECT ui_node_ref_id INTO var_parent_screen_id FROM
8226 CZ_UI_NODES WHERE ui_node_id=var_tree_parent_id;
8227 EXCEPTION
8228 WHEN NO_DATA_FOUND THEN
8229 NULL;
8230 END;
8231
8232 IF i.ps_node_type IN(PRODUCT_NODE_TYPE,COMPONENT_NODE_TYPE,REFERENCE_NODE_TYPE,CONNECTOR_NODE_TYPE) THEN
8233 BEGIN
8234 IF i.ps_node_type IN(REFERENCE_NODE_TYPE,CONNECTOR_NODE_TYPE) THEN
8235 SELECT MIN(model_ref_expl_id) INTO var_model_ref_id FROM CZ_MODEL_REF_EXPLS a WHERE
8236 model_id=Project_Id AND referring_node_id=i.ps_node_id AND deleted_flag=NO_FLAG;
8237 ELSE
8238 SELECT MIN(model_ref_expl_id) INTO var_model_ref_id FROM CZ_MODEL_REF_EXPLS a WHERE
8239 model_id=Project_Id AND component_id=i.ps_node_id AND deleted_flag=NO_FLAG;
8240 END IF;
8241
8242 /* *** refresh model_ref_expl_id-s for all Components,Products,References and UI controls *** */
8243 UPDATE CZ_UI_NODES SET model_ref_expl_id=var_model_ref_id WHERE ui_def_id=in_ui_def_id
8244 AND model_ref_expl_id IS NOT NULL AND model_ref_expl_id<>var_model_ref_id
8245 AND ps_node_id=i.ps_node_id AND deleted_flag='0';
8246 EXCEPTION
8247 WHEN NO_DATA_FOUND THEN
8248 NULL;
8249 WHEN OTHERS THEN
8250 NULL;
8251 END;
8252 END IF;
8253
8254 /* *** REFERENCE case *** */
8255 IF i.ps_node_type=REFERENCE_NODE_TYPE THEN
8256
8257 SELECT ui_node_id,parent_id,ui_def_ref_id,caption_id,name,tree_seq,ps_node_id,ui_node_type
8258 INTO var_screen_ui_id,var_screen_parent_id,var_ui_def_ref_id,
8259 var_screen_caption_id,var_screen_name,
8260 var_ui_tree_seq,var_screen_ps_node_id,var_ui_node_type
8261 FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.ps_node_id AND
8262 ui_node_type=UI_REFERENCE_REF_TYPE AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
8263
8264 SELECT ui_node_ref_id
8265 INTO var_ref_parent_screen_id
8266 FROM CZ_UI_NODES
8267 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_parent_id AND deleted_flag=NO_FLAG;
8268
8269 /* *** name of the reference should be = PS node's name *** */
8270 IF i.name<>var_screen_name THEN
8271 UPDATE CZ_UI_NODES SET name=i.name
8272 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_ui_id;
8273 IF i.intl_text_id IS NULL THEN
8274 UPDATE CZ_INTL_TEXTS SET text_str=i.name
8275 WHERE intl_text_id=var_screen_caption_id
8276 AND var_modified_flags=0;
8277 END IF;
8278 END IF;
8279
8280 --
8281 -- find the value of "UseLabels" property of the screen which is
8282 -- a parent screen for STANDTART ITEM associated with the reference
8283 --
8284 BEGIN
8285 --
8286 -- by default global "UseLabels" property is used
8287 --
8288 var_use_labels:=mUSE_LABELS;
8289
8290 --
8291 -- the nested SELECT statement should always return 1 record
8292 -- because there is just one screen that contains a STANDART ITEM
8293 -- associated with the given reference
8294 -- ( the reference and the STANDART ITEM have the same ps_node_id )
8295 --
8296 SELECT value_str INTO var_use_labels FROM CZ_UI_NODE_PROPS
8297 WHERE ui_node_id=(SELECT parent_id FROM CZ_UI_NODES
8298 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.ps_node_id AND deleted_flag=NO_FLAG AND
8299 ui_node_type=UI_BOM_STANDART_TYPE AND parent_id<>var_limbo_id)
8300 AND UPPER(key_str)='USELABELS' AND deleted_flag=NO_FLAG;
8301 EXCEPTION
8302 WHEN NO_DATA_FOUND THEN
8303 NULL;
8304 WHEN OTHERS THEN
8305 LOG_REPORT('CZ_UI_GENERATOR.create_REFERENCE_Model',
8306 'Reference'||'"'||i.name||'" may have an associated STANDART ITEM control in UI with a wrong label because of error : '||SQLERRM,
8307 CZ_ERROR_URGENCY);
8308 END;
8309
8310 /* *** go through all languages and update captions of the reference *** */
8311 var_label:=i.name;
8312 var_button_label:=var_label;
8313 FOR l IN(SELECT intl_text_id,language,localized_str FROM CZ_LOCALIZED_TEXTS
8314 WHERE intl_text_id=i.intl_text_id)
8315 LOOP
8316 var_label:=i.name;
8317 var_label:=get_Caption(i.name,l.localized_str,var_use_labels);
8318
8319 IF l.language=mCURRENT_LANG THEN
8320 var_button_label:=var_label;
8321 END IF;
8322
8323 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
8324 WHERE intl_text_id=var_screen_caption_id AND language=l.language;
8325 END LOOP;
8326
8327 /* *** we use current refrenced UI ( not the latest referenced UI *** */
8328 --var_ref_id:=get_last_UI(i.reference_id);
8329 var_ref_id:=var_ui_def_ref_id;
8330
8331 BEGIN
8332 SELECT value_str INTO var_curr_virtual_flag FROM CZ_UI_NODE_PROPS
8333 WHERE ui_def_id=in_ui_def_id AND
8334 ui_node_id=var_screen_ui_id AND key_str='IsVirtual' AND deleted_flag=NO_FLAG ;
8335 EXCEPTION
8336 WHEN NO_DATA_FOUND THEN
8337 var_curr_virtual_flag:=i.virtual_flag;
8338 END;
8339
8340 BEGIN
8341
8342 /* *** find Model_Id of the referenced Model *** */
8343 BEGIN
8344 SELECT devl_project_id INTO var_ref_model_id FROM CZ_UI_DEFS
8345 WHERE ui_def_id=var_ui_def_ref_id AND deleted_flag=NO_FLAG;
8346 EXCEPTION
8347 WHEN NO_DATA_FOUND THEN
8348 /* *** wrong data : just skip it *** */
8349 var_ref_model_id:=NULL;
8350 END;
8351
8352 BEGIN
8353 SELECT name,intl_text_id
8354 INTO var_ref_name,var_ref_caption_id FROM CZ_PS_NODES
8355 WHERE devl_project_id=var_ref_model_id AND parent_id IS NULL
8356 AND EXISTS(SELECT NULL FROM CZ_PS_NODES WHERE devl_project_id=var_ref_model_id
8357 AND ps_node_type=BOM_MODEL_NODE_TYPE AND deleted_flag=NO_FLAG) AND deleted_flag=NO_FLAG;
8358 BomType:=YES_FLAG;
8359 EXCEPTION
8360 WHEN NO_DATA_FOUND THEN
8361 BomType:=NO_FLAG;
8362 END;
8363
8364 IF BomType=YES_FLAG THEN
8365 BEGIN
8366 var_ui_node_type:=UI_REFERENCE_REF_TYPE;
8367
8368 SELECT ui_node_id,parent_id,ui_node_type,ps_node_id,
8369 rel_top_pos,tree_seq,caption_id,ui_node_ref_id,name
8370 INTO var_inst_ui_id,var_inst_parent_id,var_ui_node_type,var_inst_ps_id,
8371 var_inst_top_pos,var_inst_tree_seq,var_inst_caption_id,var_inst_node_ref_id,var_inst_name
8372 FROM CZ_UI_NODES
8373 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.ps_node_id AND parent_id<>var_limbo_id AND
8374 ui_node_type IN(UI_BOM_INST_ITEM_TYPE,UI_BOM_STANDART_TYPE) AND deleted_flag=NO_FLAG;
8375
8376 --
8377 -- update name and caption of element associated with a Reference --
8378 --
8379 var_label:=var_ref_name;
8380 FOR l IN(SELECT intl_text_id,language,localized_str FROM CZ_LOCALIZED_TEXTS
8381 WHERE intl_text_id=var_ref_caption_id)
8382 LOOP
8383 var_label:=var_ref_name;
8384 var_label:=get_Caption(var_ref_name,l.localized_str);
8385
8386 IF l.language=mCURRENT_LANG THEN
8387 var_button_label:=var_label;
8388 END IF;
8389 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
8390 WHERE intl_text_id=var_inst_caption_id AND language=l.language;
8391 END LOOP;
8392
8393 EXCEPTION
8394 WHEN OTHERS THEN
8395 NULL;
8396 END;
8397 END IF;
8398
8399
8400 /* *** delete reference if UI and PS tree references are not synchronized *** */
8401 IF var_ref_model_id<>i.reference_id THEN
8402 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG WHERE ui_def_id=in_ui_def_id
8403 AND ps_node_id=i.ps_node_id AND ui_node_type=UI_REFERENCE_REF_TYPE;
8404 END IF;
8405
8406 EXCEPTION
8407 WHEN NO_DATA_FOUND THEN
8408 NULL;
8409 WHEN OTHERS THEN
8410 NULL;
8411 END;
8412
8413 IF var_curr_virtual_flag<>i.virtual_flag THEN
8414
8415 --
8416 -- refresh 'IsVirtual' property of this reference --
8417 --
8418 UPDATE CZ_UI_NODE_PROPS SET value_str=i.virtual_flag
8419 WHERE ui_def_id=in_ui_def_id AND
8420 ui_node_id=var_screen_ui_id AND key_str='IsVirtual' AND deleted_flag=NO_FLAG ;
8421
8422 --
8423 -- non-virtual --> virtual --
8424 -- delete an associated button --
8425 -- and change UI control if it is a reference to BOM --
8426 --
8427 IF (i.maximum=1 AND i.minimum=1 AND i.virtual_flag=YES_FLAG) THEN
8428 --
8429 -- delete an associated buttons ---
8430 --
8431 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG
8432 WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.ps_node_id
8433 AND ui_node_type IN(UI_BUTTON_TYPE) AND modified_flags IN(0,1);
8434
8435 IF var_ui_node_type=UI_BOM_INST_ITEM_TYPE THEN
8436 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG
8437 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_inst_ui_id
8438 AND ui_node_type=UI_BOM_INST_ITEM_TYPE AND deleted_flag=NO_FLAG;
8439
8440 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG
8441 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_inst_node_ref_id
8442 AND ui_node_type=UI_TEXT_LABEL_TYPE AND deleted_flag=NO_FLAG;
8443
8444 BEGIN
8445 var_ref_ui_id:=NULL;
8446 SELECT ui_node_id INTO var_ref_ui_id
8447 FROM CZ_UI_NODES WHERE ui_def_id = var_ui_def_ref_id
8448 AND ps_node_id=i.reference_id AND ui_node_type=UI_SCREEN_TYPE
8449 AND deleted_flag=NO_FLAG AND rownum<2;
8450 EXCEPTION
8451 WHEN OTHERS THEN
8452 NULL;
8453 END;
8454
8455 BEGIN
8456 SELECT model_ref_expl_id INTO var_model_ref_expl_id
8457 FROM CZ_MODEL_REF_EXPLS WHERE model_id=Project_Id
8458 AND parent_expl_node_id IS NULL AND deleted_flag=NO_FLAG;
8459 EXCEPTION
8460 WHEN OTHERS THEN
8461 var_model_ref_expl_id:=NULL;
8462 END;
8463
8464 BEGIN
8465 SELECT model_ref_expl_id INTO var_model_ref_expl_id
8466 FROM CZ_MODEL_REF_EXPLS WHERE model_id=Project_Id
8467 AND parent_expl_node_id IS NULL AND deleted_flag=NO_FLAG;
8468 EXCEPTION
8469 WHEN OTHERS THEN
8470 var_model_ref_expl_id:=NULL;
8471 END;
8472
8473 var_new_si_id:=getUISeqVal;
8474 set_UI_NODES (in_ui_node_id =>var_new_si_id,
8475 in_parent_id =>var_ref_parent_screen_id,
8476 in_ui_def_id =>in_ui_def_id,
8477 in_ps_node_id =>var_inst_ps_id,
8478 in_ui_node_ref_id =>var_ref_ui_id,
8479 in_name =>var_inst_name,
8480 in_component_id =>var_inst_ps_id,
8481 in_ui_node_type =>UI_BOM_STANDART_TYPE,
8482 in_lce_id =>'P_'||to_char(var_inst_ps_id),
8483 in_tree_display_flag=>YES_FLAG,
8484 in_tree_seq =>var_inst_tree_seq,
8485 in_width =>USABLE_WIDTH,
8486 in_height =>DEFAULT_BOM_HEIGHT,
8487 in_top_pos =>var_inst_top_pos,
8488 in_left_pos =>LEFT_MARGIN,
8489 in_font_name =>DEFAULT_FONT_NAME,
8490 in_font_bold =>NO_FLAG,
8491 in_font_color =>0,
8492 in_font_italic =>NO_FLAG,
8493 in_font_size =>DEFAULT_FONT_SIZE,
8494 in_font_underline =>NO_FLAG,
8495 in_controltype =>9,
8496 in_bkgrnd_style =>YES_FLAG,
8497 in_intl_text_id =>var_inst_caption_id,
8498 in_borders =>NO_FLAG,
8499 in_model_ref_expl_id=>var_model_ref_expl_id);
8500
8501 IF var_ref_ui_id IS NOT NULL THEN
8502 generateUIProps(var_new_si_id,in_ui_def_id,DEF_CLASS,
8503 0, YES_FLAG, YES_FLAG,
8504 NO_FLAG, NO_FLAG, NO_FLAG,
8505 0, 'left', '0');
8506 END IF;
8507 END IF;
8508 END IF; -- end of non-virtual --> virtual case --
8509
8510 --
8511 -- virtual --> non-virtual --
8512 --
8513 IF (i.virtual_flag=NO_FLAG OR NOT(i.maximum=1 AND i.minimum=1)) THEN
8514 BEGIN
8515 IF var_ui_node_type<>UI_BOM_INST_ITEM_TYPE AND BomType=NO_FLAG THEN
8516 --
8517 -- check : is there a button that associated with this reference --
8518 --
8519 BEGIN
8520 SELECT YES_FLAG INTO existsButton FROM dual WHERE
8521 EXISTS(SELECT NULL FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND parent_id<>var_limbo_id
8522 AND ui_node_type=UI_BUTTON_TYPE AND ps_node_id=i.ps_node_id AND
8523 deleted_flag=NO_FLAG);
8524 RAISE BUTTON_EXISTS;
8525 EXCEPTION
8526 WHEN NO_DATA_FOUND THEN
8527 NULL;
8528 END;
8529
8530 --
8531 -- create button "Add <reference>..." under the UI node var_ui_node_ref_id --
8532 -- which is screen associated with parent node of this reference --
8533 curr_button_id:=getUISeqVal;
8534 create_BUTTON(curr_button_id,var_parent_screen_id,in_ui_def_id,
8535 i.ps_node_id,'Add '||var_button_label,
8536 in_top_pos =>DEFAULT_HEADER_HEIGHT,
8537 in_left_pos =>LEFT_MARGIN,
8538 in_button_type=>DEF_ADD_BUTTON,
8539 in_modified_flag => 0);
8540
8541
8542 --
8543 -- add new button to latest_buttons[] array --
8544 -- this array will be used to rearrange buttons on the screen --
8545 --
8546 IF latest_buttons.Count=0 THEN
8547 ind_:=1;
8548 ELSE
8549 ind_:=latest_buttons.Last+1;
8550 END IF;
8551 latest_buttons(ind_).id:=curr_button_id;
8552 END IF;
8553
8554 IF var_ui_node_type=UI_BOM_STANDART_TYPE AND BomType=YES_FLAG THEN
8555
8556 BEGIN
8557 /*
8558 SELECT YES_FLAG INTO existsSTANDART_ITEM FROM dual WHERE
8559 EXISTS(SELECT NULL FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND parent_id<>var_limbo_id
8560 AND ui_node_type=UI_BOM_INST_ITEM_TYPE AND ps_node_id=i.ps_node_id AND
8561 deleted_flag=NO_FLAG);
8562 */
8563 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG
8564 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_inst_ui_id AND ui_node_type=UI_BOM_STANDART_TYPE;
8565
8566 var_ui_node_id:=getUISeqVal;
8567
8568 BEGIN
8569 SELECT 'Instances of '||text_str INTO var_caption_name
8570 FROM CZ_INTL_TEXTS WHERE intl_text_id=var_screen_caption_id;
8571 EXCEPTION
8572 WHEN OTHERS THEN
8573 NULL;
8574 END;
8575
8576 var_inst_text_label:=getUISeqVal;
8577 create_TEXT_LABEL(var_inst_text_label,var_ref_parent_screen_id,in_ui_def_id,var_ui_node_id,
8578 in_top_pos =>var_screen_top_pos,
8579 in_left_pos =>LEFT_MARGIN,
8580 in_text =>var_caption_name,
8581 in_font_name =>DEFAULT_FONT_NAME_,
8582 in_font_color =>0,
8583 in_font_size =>DEFAULT_FONT_SIZE,
8584 in_align =>'left',
8585 in_intl_text_id =>null,
8586 in_parent_name =>var_name,
8587 in_width =>USABLE_WIDTH,
8588 in_ui_node_ref_id =>var_ui_node_id,
8589 in_use_default_font =>YES_FLAG,
8590 in_display_flag =>NO_FLAG,
8591 in_font_bold =>NO_FLAG,
8592 in_font_italic =>YES_FLAG,
8593 in_font_underline =>NO_FLAG,
8594 in_title =>NO_FLAG
8595 );
8596
8597 var_screen_top_pos:=var_screen_top_pos+DEFAULT_CONTROL_HEIGHT+DEFAULT_SPACE_BETWEEN;
8598
8599 set_UI_NODES (in_ui_node_id =>var_ui_node_id,
8600 in_parent_id =>var_ref_parent_screen_id,
8601 in_ui_def_id =>in_ui_def_id,
8602 in_ps_node_id =>var_inst_ps_id,
8603 in_ui_node_ref_id =>var_inst_text_label,
8604 in_name =>var_screen_name,
8605 in_component_id =>var_inst_ps_id,
8606 in_ui_node_type =>UI_BOM_INST_ITEM_TYPE,
8607 in_lce_id =>'P_'||to_char(var_screen_ps_id),
8608 in_tree_display_flag=>YES_FLAG,
8609 in_tree_seq =>var_ui_tree_seq,
8610 in_width =>FLOOR(USABLE_WIDTH/2),
8611 in_height =>DEFAULT_BOM_INST_ITEM_HEIGHT,
8612 in_top_pos =>var_screen_top_pos,
8613 in_left_pos =>LEFT_MARGIN,
8614 in_font_name =>DEFAULT_FONT_NAME,
8615 in_font_bold =>NO_FLAG,
8616 in_font_color =>0,
8617 in_font_italic =>NO_FLAG,
8618 in_font_size =>DEFAULT_FONT_SIZE,
8619 in_font_underline =>NO_FLAG,
8620 in_controltype =>9,
8621 in_bkgrnd_style =>YES_FLAG,
8622 in_intl_text_id =>var_screen_caption_id,
8623 in_borders =>YES_FLAG);
8624
8625
8626 create_BUTTON(getUiSeqVal,var_ref_parent_screen_id,in_ui_def_id,var_screen_ps_node_id,
8627 ' Add ',
8628 in_top_pos => var_screen_top_pos,
8629 in_left_pos => CENTER_LINE+DEFAULT_SPACE_BETWEEN,
8630 in_button_type => DEF_ADD_BUTTON,
8631 in_modified_flag => YES_FLAG,
8632 in_ui_node_ref_id => var_ui_node_id);
8633
8634 generateUIProps(var_ui_node_id,in_ui_def_id,
8635 DEF_INST_BOM,
8636 0, YES_FLAG, YES_FLAG,
8637 NO_FLAG, NO_FLAG, NO_FLAG,
8638 0, 'left', '0');
8639
8640 EXCEPTION
8641 WHEN NO_DATA_FOUND THEN
8642 NULL;
8643 END;
8644 END IF;
8645
8646 BEGIN
8647 existsDeleteMe:=NO_FLAG;
8648 --
8649 -- find Model_Id of the refrenced UI --
8650 --
8651 SELECT devl_project_id INTO var_model_id FROM CZ_UI_DEFS
8652 WHERE ui_def_id=var_ref_id AND deleted_flag=NO_FLAG;
8653
8654 --
8655 -- check Is there "Delete" button under the root screen --
8656 -- of the referenced UI --
8657 -- ActionType='1' means that this is "Delete" action --
8658 --
8659 SELECT ui_node_id INTO var_ui_root_id FROM CZ_UI_NODES
8660 WHERE ui_def_id=var_ref_id AND ps_node_id=var_model_Id AND
8661 ui_node_type IN(UI_PRODUCT_TYPE,UI_COMPONENT_TYPE,UI_BOM_OPTION_CLASS_TYPE)
8662 AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
8663
8664 SELECT YES_FLAG INTO existsDeleteMe FROM dual WHERE
8665 EXISTS(SELECT NULL FROM CZ_UI_NODES a WHERE
8666 a.ui_def_id=var_ref_id AND a.ui_node_type=UI_BUTTON_TYPE AND a.parent_id=var_ui_root_id
8667 AND a.parent_id<>var_limbo_id AND a.deleted_flag=NO_FLAG AND a.modified_flags=0
8668 AND EXISTS(SELECT NULL FROM CZ_UI_NODE_PROPS b
8669 WHERE b.ui_def_id=var_ref_id AND b.ui_node_id=a.ui_node_id
8670 AND b.key_str='ActionType' AND b.value_str='1'));
8671
8672 EXCEPTION
8673 WHEN NO_DATA_FOUND THEN
8674 NULL;
8675 END;
8676
8677 IF existsDeleteMe=NO_FLAG THEN
8678 --
8679 -- create Delete button under the root screen of the refrenced UI --
8680 --
8681 curr_button_id:=getUISeqVal;
8682 create_BUTTON(curr_button_id,var_ui_root_id,var_ref_id,
8683 var_model_id,CZ_DELETE_BUTTON_CAPTION,
8684 in_top_pos =>DELETE_BUTTON_TOP_POS,
8685 in_left_pos =>DELETE_BUTTON_LEFT_POS,
8686 in_button_type=>DEF_DELETE_BUTTON,
8687 in_width =>DELETE_BUTTON_WIDTH,
8688 in_modified_flag => 0);
8689 END IF;
8690
8691 EXCEPTION
8692 WHEN BUTTON_EXISTS THEN
8693 NULL;
8694 END;
8695 END IF;
8696 END IF; -- end of virtual --> non-virtual case --
8697
8698 END IF; -- end of var_curr_virtual_flag<>i.virtual_flag case --
8699
8700 --
8701 -- handle BOM Models and Option Classes --
8702 --
8703 IF i.ps_node_type IN(BOM_CLASS_NODE_TYPE,BOM_MODEL_NODE_TYPE) THEN
8704
8705 ind_arr:=footer_buttons.Count+1;
8706 footer_buttons(ind_arr).ui_parent_id:=var_screen_ui_id;
8707
8708 BEGIN
8709 --
8710 -- for a given BOM OPTION CLASS
8711 -- find BOM STANDART ITEM on the parent screen
8712 -- both VOM OPTION CLASS and BOM STANDART ITEM
8713 -- have the same ps_node_id
8714 --
8715 SELECT ui_node_id
8716 INTO var_ui_parent_item_id
8717 FROM CZ_UI_NODES
8718 WHERE ui_def_id=in_ui_def_id AND
8719 ui_node_type=UI_BOM_STANDART_TYPE AND parent_id=
8720 (SELECT ui_node_ref_id FROM CZ_UI_NODES
8721 WHERE ui_def_id=in_ui_def_id AND ui_node_id=
8722 (SELECT parent_id FROM CZ_UI_NODES
8723 WHERE ui_def_id=in_ui_def_id AND ui_node_ref_id=t_bom_pages(1).ui_node_id
8724 AND deleted_flag=NO_FLAG)) AND ps_node_id=t_bom_pages(1).ps_node_id;
8725
8726 UPDATE CZ_UI_NODES
8727 SET name=i.name
8728 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_ui_parent_item_id
8729 AND modified_flags=0 AND deleted_flag=NO_FLAG;
8730
8731 SELECT caption_id INTO var_parent_item_txt_id
8732 FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_ui_parent_item_id;
8733
8734 EXCEPTION
8735 WHEN OTHERS THEN
8736 NULL;
8737 END;
8738
8739 IF t_bom_pages.Count=1 THEN
8740
8741 /* *** name of the reference should be = PS node's name *** */
8742 IF i.name<>var_screen_name THEN
8743 UPDATE CZ_UI_NODES SET name=i.name
8744 WHERE ui_def_id=in_ui_def_id
8745 AND ui_node_id=var_screen_ui_id;
8746
8747 UPDATE CZ_INTL_TEXTS SET text_str=i.name
8748 WHERE intl_text_id=var_screen_caption_id;
8749
8750 IF i.intl_text_id IS NULL THEN
8751 UPDATE CZ_INTL_TEXTS SET text_str=i.name
8752 WHERE intl_text_id IN(var_label_txt_id,var_parent_item_txt_id)
8753 AND var_modified_flags=0;
8754 END IF;
8755 END IF;
8756
8757 FOR l IN(SELECT intl_text_id,language,localized_str
8758 FROM CZ_LOCALIZED_TEXTS WHERE intl_text_id=i.intl_text_id)
8759 LOOP
8760 var_label:=i.name;
8761 var_label:=get_Caption(i.name,l.localized_str);
8762 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
8763 WHERE intl_text_id IN(var_label_txt_id,var_parent_item_txt_id)
8764 AND language=l.language AND var_modified_flags=0;
8765
8766 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
8767 WHERE intl_text_id=var_tree_caption_id AND language=l.language;
8768 END LOOP;
8769
8770 var_use_labels:=mUSE_LABELS;
8771 BEGIN
8772 SELECT value_str INTO var_use_labels FROM CZ_UI_NODE_PROPS
8773 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_ui_id
8774 AND UPPER(key_str)='USELABELS' AND deleted_flag=NO_FLAG ;
8775 EXCEPTION
8776 WHEN NO_DATA_FOUND THEN
8777 NULL;
8778 END;
8779 update_Labels(var_screen_ui_id,var_use_labels);
8780 END IF;
8781
8782 --
8783 -- multi pages case --
8784 --
8785 IF t_bom_pages.Count>1 THEN
8786
8787 FOR x IN t_bom_pages.First..t_bom_pages.Last
8788 LOOP
8789 IF x>0 THEN
8790 var_suffix:=' ('||TO_CHAR(x)||')';
8791 ELSE
8792 var_suffix:='';
8793 END IF;
8794
8795 /* *** name of the reference should be = PS node's name *** */
8796 IF i.name<>t_bom_pages(x).name THEN
8797 UPDATE CZ_UI_NODES SET name=i.name||var_suffix
8798 WHERE ui_def_id=in_ui_def_id AND ui_node_id=t_bom_pages(x).ui_node_id;
8799
8800 UPDATE CZ_INTL_TEXTS SET text_str=i.name||var_suffix
8801 WHERE intl_text_id=t_bom_pages(x).text_id;
8802
8803 IF i.intl_text_id IS NULL THEN
8804 UPDATE CZ_INTL_TEXTS SET text_str=i.name||var_suffix
8805 WHERE intl_text_id=t_bom_pages(x).label_txt_id
8806 AND var_modified_flags=0;
8807
8808 --
8809 -- do it just first page --
8810 -- update label of STANDTART ITEMS on the parent screen
8811 -- which correlates with current BOM Option Class
8812 --
8813 IF x=1 THEN
8814 FOR m IN(SELECT intl_text_id,language,localized_str
8815 FROM CZ_LOCALIZED_TEXTS WHERE intl_text_id=i.intl_text_id)
8816 LOOP
8817 var_label:=i.name;
8818 var_label:=get_Caption(i.name,m.localized_str);
8819 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
8820 WHERE intl_text_id=var_parent_item_txt_id AND language=m.language;
8821 END LOOP;
8822 END IF;
8823
8824 END IF;
8825 END IF;
8826
8827 FOR l IN(SELECT intl_text_id,language,localized_str
8828 FROM CZ_LOCALIZED_TEXTS WHERE intl_text_id=i.intl_text_id)
8829 LOOP
8830 var_label:=i.name;
8831 var_label:=get_Caption(i.name,l.localized_str);
8832
8833 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label||var_suffix
8834 WHERE intl_text_id=t_bom_pages(x).label_txt_id AND language=l.language
8835 AND var_modified_flags=0;
8836
8837 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label||var_suffix
8838 WHERE intl_text_id=t_bom_pages(x).tree_label_id AND language=l.language;
8839
8840 IF x=1 THEN
8841 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
8842 WHERE intl_text_id=var_parent_item_txt_id AND language=l.language;
8843 END IF;
8844
8845 END LOOP;
8846
8847 var_use_labels:=mUSE_LABELS;
8848 BEGIN
8849 SELECT value_str INTO var_use_labels FROM CZ_UI_NODE_PROPS
8850 WHERE ui_def_id=in_ui_def_id AND ui_node_id=t_bom_pages(x).ui_node_id
8851 AND UPPER(key_str)='USELABELS' AND deleted_flag=NO_FLAG ;
8852 EXCEPTION
8853 WHEN NO_DATA_FOUND THEN
8854 NULL;
8855 END;
8856 update_Labels(t_bom_pages(x).ui_node_id,var_use_labels);
8857 END LOOP;
8858 END IF;
8859 END IF;
8860
8861
8862 IF i.ps_node_type IN(COMPONENT_NODE_TYPE,PRODUCT_NODE_TYPE,BOM_MODEL_NODE_TYPE) THEN
8863
8864 ind_arr:=footer_buttons.Count+1;
8865 footer_buttons(ind_arr).ui_parent_id:=var_screen_ui_id;
8866
8867 /* *** name of the reference should be = PS node's name *** */
8868 IF i.name<>var_screen_name THEN
8869 UPDATE CZ_UI_NODES SET name=i.name
8870 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_ui_id
8871 AND modified_flags=0;
8872 UPDATE CZ_INTL_TEXTS SET text_str=i.name
8873 WHERE intl_text_id=var_screen_caption_id AND var_modify_ui_flag=0;
8874 IF i.intl_text_id IS NULL THEN
8875 UPDATE CZ_INTL_TEXTS SET text_str=i.name
8876 WHERE intl_text_id=var_text_label_caption_id
8877 AND var_modified_flags=0;
8878 END IF;
8879 END IF;
8880
8881 /* *** go through all languages and update captions of the reference *** */
8882 var_label:=i.name;
8883 var_button_label:=var_label;
8884 FOR l IN(SELECT intl_text_id,language,localized_str FROM CZ_LOCALIZED_TEXTS
8885 WHERE intl_text_id=i.intl_text_id)
8886 LOOP
8887 var_label:=i.name;
8888 var_label:=get_Caption(i.name,l.localized_str);
8889 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
8890 WHERE intl_text_id=var_text_label_caption_id AND language=l.language
8891 AND var_modified_flags=0;
8892
8893 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
8894 WHERE intl_text_id=var_tree_caption_id AND language=l.language;
8895 IF l.language=mCURRENT_LANG THEN
8896 var_button_label:=var_label;
8897 var_width:=set_Title_Width(var_label);
8898 UPDATE CZ_UI_NODES SET width=var_width
8899 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_text_label_id
8900 AND modified_flags=0;
8901 END IF;
8902 END LOOP;
8903
8904 /* *** find IsVirtual property for UI node from Component Tree which *** */
8905 /* *** is associated with screen of this Component/Products/BOM Model/BOM Class *** */
8906
8907 SELECT value_str INTO var_curr_virtual_flag FROM CZ_UI_NODE_PROPS WHERE
8908 ui_def_id=in_ui_def_id AND ui_node_id=var_tree_ui_id AND key_str='IsVirtual'
8909 AND deleted_flag=NO_FLAG;
8910
8911 /* ***
8912 SELECT value_str INTO var_curr_max FROM CZ_UI_NODE_PROPS WHERE
8913 ui_def_id=in_ui_def_id AND ui_node_id=var_tree_ui_id AND key_str='Max'
8914 AND deleted_flag=NO_FLAG;
8915
8916 SELECT value_str INTO var_curr_min FROM CZ_UI_NODE_PROPS WHERE
8917 ui_def_id=in_ui_def_id AND ui_node_id=var_tree_ui_id AND key_str='Min'
8918 AND deleted_flag=NO_FLAG;
8919 */
8920
8921 IF var_curr_virtual_flag<>i.virtual_flag THEN
8922
8923 /* *** synchronize virtual_flag in UI and PS tree *** */
8924 generateUIProps(var_tree_ui_id,in_ui_def_id,DEF_COMPONENT_SCREEN,
8925 0, i.minimum, i.maximum,
8926 NO_FLAG, YES_FLAG, i.virtual_flag,
8927 0, 'left', '0');
8928
8929 /* *** virtual --> non-virtual case *** */
8930 IF i.virtual_flag=NO_FLAG THEN
8931
8932 /* *** create "Delete" button under the screen for the current Component/Products/... *** */
8933 curr_button_id:=getUISeqVal;
8934 create_BUTTON(curr_button_id,var_screen_ui_id,in_ui_def_id,
8935 i.ps_node_id,CZ_DELETE_BUTTON_CAPTION,
8936 in_top_pos =>DELETE_BUTTON_TOP_POS,
8937 in_left_pos =>DELETE_BUTTON_LEFT_POS,
8938 in_button_type=>DEF_DELETE_BUTTON,
8939 in_width =>DELETE_BUTTON_WIDTH,
8940 in_modified_flag => 0);
8941
8942 UPDATE CZ_UI_NODES SET component_id=i.ps_node_id,ps_node_id=i.ps_node_id
8943 WHERE ui_node_id=var_tree_ui_id AND ui_def_id=in_ui_def_id AND ui_node_type=UI_COMPONENT_REF_TYPE;
8944
8945 /* *** create "Add ..." button under the parent node's screen *** */
8946 curr_button_id:=getUISeqVal;
8947 create_BUTTON(curr_button_id,var_parent_screen_id,in_ui_def_id,
8948 i.ps_node_id,'Add '||var_button_label,
8949 in_top_pos =>DEFAULT_HEADER_HEIGHT,
8950 in_left_pos =>LEFT_MARGIN,
8951 in_button_type=>DEF_ADD_BUTTON,
8952 in_modified_flag => 0);
8953
8954 /* *** populate latest_buttons[] array that will be used *** */
8955 /* *** to rearrange buttons at the second part of UI refresh *** */
8956 IF latest_buttons.Count=0 THEN
8957 ind_:=1;
8958 ELSE
8959 ind_:=latest_buttons.Last+1;
8960 END IF;
8961 latest_buttons(ind_).id:=curr_button_id;
8962
8963 END IF; /* *** end of virtual --> non-virtual case *** */
8964
8965 /* *** non-virtual --> virtual case *** */
8966
8967 IF i.virtual_flag=YES_FLAG THEN
8968 --
8969 -- remove non-customized buttons which have ActionType= '0'( "Add" button ) --
8970 -- or ActionType= '1'( "Delete" button ) --
8971 --
8972 UPDATE CZ_UI_NODES a SET a.deleted_flag=YES_FLAG
8973 WHERE ui_def_id=in_ui_def_id AND
8974 ps_node_id=i.ps_node_id AND
8975 ui_node_type=UI_BUTTON_TYPE AND modified_flags=0 AND deleted_flag=NO_FLAG;
8976 END IF; -- end of non-virtual --> virtual case --
8977
8978 END IF; -- end of var_curr_virtual_flag<>i.virtual_flag case --
8979 END IF; -- end of COMPONENT case
8980
8981 --
8982 -- synchronize PS names/labels and UI captions --
8983 --
8984 IF i.ps_node_type IN(RESOURCE_NODE_TYPE,TOTAL_NODE_TYPE,CONNECTOR_NODE_TYPE) THEN
8985 --
8986 -- name of the reference should be = PS node's name --
8987 --
8988 IF i.name<>var_screen_name THEN
8989 UPDATE CZ_UI_NODES SET name=i.name
8990 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_ui_id
8991 AND modified_flags=0;
8992 UPDATE CZ_INTL_TEXTS SET text_str=i.name
8993 WHERE intl_text_id=var_screen_caption_id AND var_modify_ui_flag=0;
8994 IF i.intl_text_id IS NULL THEN
8995 UPDATE CZ_INTL_TEXTS SET text_str=i.name
8996 WHERE intl_text_id=var_text_label_caption_id
8997 AND var_modified_flags=0;
8998 END IF;
8999 END IF;
9000
9001 /* *** go through all languages and update captions *** */
9002 var_label:=i.name;
9003 FOR l IN(SELECT a.intl_text_id,a.language,a.localized_str FROM CZ_LOCALIZED_TEXTS a
9004 WHERE a.intl_text_id=i.intl_text_id)
9005
9006 LOOP
9007 var_label:=i.name;
9008 var_label:=get_Caption(i.name,l.localized_str);
9009
9010 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
9011 WHERE intl_text_id=var_text_label_caption_id AND language=l.language
9012 AND var_modified_flags=0;
9013
9014 IF l.language=mCURRENT_LANG THEN
9015 var_width:=set_Text_Width(var_label);
9016 IF var_width <= SCREEN_HALF THEN
9017 var_width:=SCREEN_HALF;
9018 END IF;
9019
9020 UPDATE CZ_UI_NODES SET width=var_width
9021 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_text_label_id
9022 AND modified_flags=0;
9023 END IF;
9024
9025 END LOOP;
9026 END IF;
9027
9028 /* ****************Update Options Labels *************** */
9029 /*
9030 IF i.ps_node_type=OPTION_NODE_TYPE THEN
9031
9032 IF i.name<>var_screen_name THEN
9033 UPDATE CZ_UI_NODES SET name=i.name
9034 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_ui_id;
9035 END IF;
9036
9037 var_use_labels:='1';
9038 BEGIN
9039 SELECT value_str INTO var_use_labels FROM CZ_UI_NODE_PROPS
9040 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_parent_id AND UPPER(key_str)='USELABELS'
9041 AND deleted_flag=NO_FLAG ;
9042 EXCEPTION
9043 WHEN NO_DATA_FOUND THEN
9044 NULL;
9045 END;
9046
9047 var_label:=i.name;
9048 FOR l IN(SELECT a.intl_text_id,a.language,a.localized_str FROM CZ_LOCALIZED_TEXTS a
9049 WHERE a.intl_text_id=i.intl_text_id)
9050 LOOP
9051 var_label:=i.name;
9052 IF var_use_labels='0' THEN
9053 var_label:=i.name;
9054 ELSIF var_use_labels='1' THEN
9055 var_label:=l.localized_str;
9056 ELSIF var_use_labels='3' THEN
9057 var_label:=i.name||mCONCAT_SYMBOL||l.localized_str;
9058 END IF;
9059
9060
9061 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
9062 WHERE intl_text_id=var_screen_caption_id AND language=l.language;
9063
9064 END LOOP;
9065
9066 END IF;
9067
9068 *** */
9069
9070
9071 /* *** Check if this is a changed feature *** */
9072 IF i.ps_node_type=FEATURE_NODE_TYPE THEN
9073
9074 /* *** name of the reference should be = PS node's name *** */
9075 IF i.name<>var_screen_name THEN
9076 UPDATE CZ_UI_NODES SET name=i.name
9077 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_ui_id
9078 AND modified_flags=0 ;
9079 UPDATE CZ_INTL_TEXTS SET text_str=i.name
9080 WHERE intl_text_id=var_screen_caption_id AND var_modify_ui_flag=0;
9081 IF i.intl_text_id IS NULL THEN
9082 UPDATE CZ_INTL_TEXTS SET text_str=i.name
9083 WHERE intl_text_id=var_text_label_caption_id
9084 AND var_modified_flags=0;
9085 END IF;
9086 END IF;
9087
9088 /* *** go through all languages and update captions *** */
9089 var_label:=i.name;
9090 FOR l IN(SELECT intl_text_id,language,localized_str FROM CZ_LOCALIZED_TEXTS
9091 WHERE intl_text_id=i.intl_text_id)
9092 LOOP
9093 var_label:=i.name;
9094 var_label:=get_Caption(i.name,l.localized_str);
9095
9096 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
9097 WHERE intl_text_id=var_text_label_caption_id AND language=l.language
9098 AND var_modified_flags=0;
9099
9100 /* *** for now don't change width of label ***
9101 IF l.language=mCURRENT_LANG THEN
9102 var_width:=set_Text_Width(var_label);
9103 UPDATE CZ_UI_NODES SET width=var_width
9104 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_text_label_id
9105 AND modified_flags=0;
9106 END IF;
9107 */
9108
9109 END LOOP;
9110
9111 var_borders:=YES_FLAG;
9112 var_width:=OPTION_FEATURE_WIDTH;
9113
9114 IF i.feature_type=0 THEN
9115 var_feature_type:='0'; ---- Options List ----
9116 var_borders:=NO_FLAG;
9117 IF i.counted_options_flag='1' OR i.maximum>1 OR i.maximum IS NULL THEN
9118 var_borders:=YES_FLAG;
9119 var_control_type:=2;
9120 ELSE
9121 var_control_type:=1;
9122 END IF;
9123
9124 BEGIN
9125 var_ui_max:=NULL;
9126 SELECT TO_NUMBER(value_str) INTO var_ui_max FROM CZ_UI_NODE_PROPS
9127 WHERE ui_node_id=var_screen_ui_id AND key_str='Max' AND deleted_flag=NO_FLAG;
9128 EXCEPTION
9129 WHEN NO_DATA_FOUND THEN
9130 NULL;
9131 END;
9132
9133 BEGIN
9134 var_ui_min:=NULL;
9135 SELECT TO_NUMBER(value_str) INTO var_ui_min FROM CZ_UI_NODE_PROPS
9136 WHERE ui_node_id=var_screen_ui_id AND key_str='Min' AND deleted_flag=NO_FLAG;
9137 EXCEPTION
9138 WHEN NO_DATA_FOUND THEN
9139 NULL;
9140 END;
9141
9142 BEGIN
9143 var_ui_counted_options:=NO_FLAG;
9144 SELECT value_str INTO var_ui_counted_options FROM CZ_UI_NODE_PROPS
9145 WHERE ui_node_id=var_screen_ui_id AND key_str='CountedOptions' AND deleted_flag=NO_FLAG;
9146 EXCEPTION
9147 WHEN NO_DATA_FOUND THEN
9148 NULL;
9149 END;
9150
9151 var_use_labels:=mUSE_LABELS;
9152 BEGIN
9153 SELECT value_str INTO var_use_labels FROM CZ_UI_NODE_PROPS
9154 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_screen_ui_id AND UPPER(key_str)='USELABELS'
9155 AND deleted_flag=NO_FLAG;
9156 EXCEPTION
9157 WHEN NO_DATA_FOUND THEN
9158 NULL;
9159 END;
9160
9161 --
9162 -- Update Options Labels --
9163 --
9164 FOR m IN(SELECT ps_node_id,intl_text_id,tree_seq,name FROM CZ_PS_NODES
9165 WHERE devl_project_id=Project_Id
9166 AND parent_id=i.ps_node_id AND deleted_flag=NO_FLAG AND ui_omit=NO_FLAG)
9167 LOOP
9168 BEGIN
9169 var_label:=NULL;
9170 var_option_ui_id:=NULL;
9171 var_option_caption_id:=NULL;
9172 var_option_ui_name:=NULL;
9173 var_ui_tree_seq:=NULL;
9174 var_option_ps_id:=NULL;
9175
9176 SELECT ui_node_id,caption_id,name,tree_seq,ps_node_id
9177 INTO var_option_ui_id,var_option_caption_id,
9178 var_option_ui_name,var_ui_tree_seq,var_option_ps_id
9179 FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND ps_node_id=m.ps_node_id
9180 AND deleted_flag=NO_FLAG AND parent_id<>var_limbo_id AND modified_flags=0;
9181
9182 IF m.tree_seq<>var_ui_tree_seq THEN
9183 UPDATE CZ_UI_NODES SET tree_seq=m.tree_seq
9184 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_option_ui_id;
9185 END IF;
9186
9187 IF var_use_labels<>USE_PROPERTY_DESCRIPTIONS THEN
9188 IF m.name<>var_option_ui_name THEN
9189 UPDATE CZ_UI_NODES SET name=m.name
9190 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_option_ui_id;
9191 var_label:=m.name;
9192
9193 IF m.intl_text_id IS NULL THEN
9194 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=m.name
9195 WHERE intl_text_id=var_option_caption_id;
9196 END IF;
9197
9198 END IF;
9199
9200 var_label:=m.name;
9201 FOR l IN(SELECT a.intl_text_id,a.language,a.localized_str FROM CZ_LOCALIZED_TEXTS a
9202 WHERE a.intl_text_id=m.intl_text_id)
9203 LOOP
9204 var_label:=get_Caption(m.name,l.localized_str,var_use_labels);
9205 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_label
9206 WHERE intl_text_id=var_option_caption_id AND language=l.language;
9207 END LOOP;
9208
9209 ELSE
9210 var_label:=getTextByProperty(var_option_ps_id,var_screen_ui_id);
9211 UPDATE CZ_INTL_TEXTS SET text_str=var_label
9212 WHERE intl_text_id=var_option_caption_id;
9213 END IF;
9214
9215 EXCEPTION
9216 WHEN NO_DATA_FOUND THEN
9217 NULL;
9218 WHEN OTHERS THEN
9219 LOG_REPORT('CZ_UI_GENERATOR.refreshUI','Update Options Labels < ui_def_id='||TO_CHAR(in_ui_def_id)||' > : '||SQLERRM,
9220 CZ_ERROR_URGENCY);
9221 END;
9222 END LOOP;
9223
9224 /* ***************************************************** */
9225
9226 END IF;
9227
9228 IF i.feature_type=3 THEN
9229 var_feature_type:='1';
9230 var_control_type:='3';
9231 var_borders:=NO_FLAG;
9232 var_width:=BOOLEAN_FEATURE_WIDTH;
9233 END IF;
9234
9235 IF i.feature_type=1 THEN
9236 var_feature_type:='2';
9237 var_control_type:=4;
9238 var_width:=NUMERIC_FEATURE_WIDTH;
9239 END IF;
9240
9241 IF i.feature_type=2 THEN
9242 var_feature_type:='3';
9243 var_control_type:=5;
9244 var_width:=NUMERIC_FEATURE_WIDTH;
9245 END IF;
9246
9247 IF i.feature_type=4 THEN
9248 var_feature_type:='4';
9249 var_control_type:=6;
9250 END IF;
9251
9252 SELECT TO_NUMBER(value_str) INTO var_ui_feature_type FROM CZ_UI_NODE_PROPS
9253 WHERE ui_node_id=var_screen_ui_id AND key_str='FeatureType' AND deleted_flag=NO_FLAG;
9254
9255 /* *** changed Feature type case *** */
9256 IF var_ui_feature_type<>var_feature_type OR
9257 NOT( NVL(var_ui_max,-1)=NVL(i.maximum,-1) AND NVL(var_ui_min,-1)=NVL(i.minimum,-1))
9258 OR var_ui_counted_options<>i.counted_options_flag THEN
9259
9260 IF var_ui_feature_type=var_feature_type AND var_feature_type='0' AND
9261 ((i.maximum=1 AND i.maximum=1) AND i.counted_options_flag=NO_FLAG) AND
9262 (NOT(var_ui_max=1 AND var_ui_min=1) OR var_ui_counted_options=YES_FLAG) THEN
9263 --
9264 -- if we update feature max from n to 1 don't update
9265 -- control type ( it still should be "List Of Options" )
9266 --
9267 NULL;
9268 ELSE
9269 --
9270 -- if we change Feature from Counted Options or max>1 to max=1
9271 -- and no Counted Options then don't change Control Type ( should be
9272 -- Selection List) otherwise update Control Type
9273 -- according with current Feature Type
9274 --
9275 IF NOT(i.feature_type=0 AND var_control_type=1 AND var_ui_control_type=2) THEN
9276 UPDATE CZ_UI_NODES
9277 SET controltype=var_control_type
9278 WHERE ui_node_id=var_screen_ui_id AND parent_id<>var_limbo_id;
9279 END IF;
9280 UPDATE CZ_UI_NODES SET width=var_width,
9281 borders=var_borders
9282 WHERE ui_node_id=var_screen_ui_id AND parent_id<>var_limbo_id
9283 AND modified_flags=0;
9284 END IF;
9285 /* *** synchronize UI and Ps tree properties of the feature *** */
9286 generateUIProps(var_screen_ui_id,in_ui_def_id,DEF_FEATURE,
9287 i.feature_type, i.minimum, i.maximum,
9288 i.counted_options_flag,
9289 YES_FLAG,
9290 NO_FLAG, 0, 'left', '0');
9291
9292
9293 IF var_ui_feature_type='0' OR i.feature_type=0 THEN
9294
9295 /* *** delete OPTIONs - List Of Options *** */
9296 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG WHERE ui_node_id IN
9297 (SELECT ui_node_id FROM CZ_UI_NODES WHERE parent_id=var_screen_ui_id
9298 AND ui_node_type=UI_OPTION_TYPE AND deleted_flag=NO_FLAG);
9299
9300 END IF; /* *** end of var_ui_feature_type='0' OR i.feature_type=0 case *** */
9301
9302 /* *** counted/Max options case for Feature *** */
9303
9304 IF i.feature_type in(1,2,3,4) THEN
9305 -- change height of the feature --
9306 UPDATE CZ_UI_NODES
9307 SET height=DEFAULT_CONTROL_HEIGHT
9308 WHERE ui_node_id=var_screen_ui_id AND modified_flags=0;
9309 END IF;
9310 END IF;
9311 END IF;
9312
9313 EXCEPTION
9314 WHEN NEXT_ITTERATION THEN
9315 NULL;
9316 WHEN NO_DATA_FOUND THEN
9317 FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME||' for the node '||i.name,'CZ_UI_GENERATOR.refreshUI',
9318 CZ_ERROR_URGENCY);
9319 END;
9320 END LOOP;
9321
9322 /*******************************************************/
9323 /*******************************************************/
9324
9325 IF news.Count>0 OR boms.Count>0 THEN
9326
9327 /* *** main LOOP for UI refresh *** */
9328 k:=news.First;
9329 LOOP
9330 IF k IS NULL THEN
9331 EXIT;
9332 END IF;
9333
9334 BEGIN
9335 IF news(k).parent_id IS NOT NULL THEN
9336 new_parent:=news(news(k).parent_id).id; -- find new parent node id
9337 ELSE
9338 new_parent:=var_comp_tree_id;
9339 END IF;
9340 EXCEPTION
9341 WHEN NO_DATA_FOUND THEN
9342 IF news(k).ps_node_type IN (PRODUCT_NODE_TYPE,COMPONENT_NODE_TYPE,REFERENCE_NODE_TYPE,
9343 BOM_CLASS_NODE_TYPE,BOM_MODEL_NODE_TYPE) THEN
9344 SELECT MAX(ui_node_id) INTO temp_node FROM CZ_UI_NODES WHERE
9345 ps_node_id=news(k).parent_id AND ui_node_ref_id IS NOT NULL AND
9346 ui_node_type IN(UI_COMPONENT_TYPE,UI_REFERENCE_REF_TYPE,BOM_CLASS_NODE_TYPE,BOM_MODEL_NODE_TYPE)
9347 AND ui_def_id=in_ui_def_id AND deleted_flag=NO_FLAG;
9348 SELECT ui_node_id INTO new_parent FROM CZ_UI_NODES
9349 WHERE ui_node_ref_id=temp_node AND ui_def_id=in_ui_def_id
9350 AND ui_node_type=UI_COMPONENT_REF_TYPE AND deleted_flag=NO_FLAG;
9351 END IF;
9352 END;
9353
9354 new_child:=news(k).id; -- find new Tree node id
9355
9356 curr_node_id:=getUISeqVal;
9357 curr_label_id:=getUISeqVal;
9358 curr_bitmap_id:=getUISeqVal;
9359
9360 var_name:='Text-'||TO_CHAR(curr_label_id);
9361
9362 /* ************************** create PRODUCTs ******************************* */
9363
9364 IF news(k).ps_node_type=PRODUCT_NODE_TYPE THEN
9365
9366 --
9367 -- find ui_node_id of the parent screen
9368 --
9369 IF news(k).virtual_flag = NO_FLAG THEN
9370 BEGIN
9371 var_parent_id:=NULL;
9372 SELECT ui_node_ref_id INTO var_parent_id FROM CZ_UI_NODES
9373 WHERE ui_def_id=in_ui_def_id AND ui_node_id=new_parent AND deleted_flag=NO_FLAG;
9374 EXCEPTION
9375 WHEN NO_DATA_FOUND THEN
9376 IF news.EXISTS(news(k).parent_id) THEN
9377 var_parent_id:=news(news(k).parent_id).ui_node_ref_id;
9378 ELSE
9379 FND_REPORT(CZ_UI_GEN_NO_BUTTONS,TOKEN_UI_NODE,TO_CHAR(var_parent_id),CZ_ERROR_URGENCY);
9380 END IF;
9381 END;
9382 END IF;
9383
9384
9385 create_PRODUCT(news(k).ui_node_ref_id,var_root_id,in_ui_def_id,news(k));
9386
9387 /* *** create PRODUCT node for Model Tree *** */
9388 create_PRODUCT_Model(new_child,new_parent,in_ui_def_id,news(k).ui_node_ref_id,news(k));
9389
9390 /* *** create FEATUREs,TOTALs,RESORCEs *** */
9391 generate_FTR(news(k).ps_node_id,news(k).ui_node_ref_id,in_ui_def_id);
9392
9393 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
9394 ind_arr:=footer_buttons.Count+1;
9395 footer_buttons(ind_arr).id:=getUISeqVal;
9396 footer_buttons(ind_arr).ui_parent_id:=news(k).ui_node_ref_id;
9397 footer_buttons(ind_arr).rel_top_pos:=last_TOP_POS;
9398 END IF;
9399
9400 /* *** create MODELs,CLASSEs,STANDARTs *** */
9401 generate_MCS(news(k).ps_node_id,news(k).ui_node_ref_id,in_ui_def_id,NO_FLAG);
9402
9403
9404 END IF; -- for PRODUCT
9405
9406 /* ************************** create COMPONENTs ******************************* */
9407
9408 IF news(k).ps_node_type=COMPONENT_NODE_TYPE THEN
9409
9410 --
9411 -- find ui_node_id of the parent screen
9412 --
9413 IF news(k).virtual_flag = NO_FLAG THEN
9414 BEGIN
9415 var_parent_id:=NULL;
9416 SELECT ui_node_ref_id INTO var_parent_id FROM CZ_UI_NODES
9417 WHERE ui_def_id=in_ui_def_id AND ui_node_id=new_parent AND deleted_flag=NO_FLAG;
9418 EXCEPTION
9419 WHEN NO_DATA_FOUND THEN
9420 IF news.EXISTS(news(k).parent_id) THEN
9421 var_parent_id:=news(news(k).parent_id).ui_node_ref_id;
9422 ELSE
9423 FND_REPORT(CZ_UI_GEN_NO_BUTTONS,TOKEN_UI_NODE,TO_CHAR(var_parent_id),CZ_ERROR_URGENCY);
9424 END IF;
9425 END;
9426 END IF;
9427
9428 create_COMPONENT(news(k).ui_node_ref_id,var_root_id,in_ui_def_id,
9429 var_parent_id,news(k));
9430
9431
9432 /* *** create COMPONENT node for Model Tree *** */
9433 create_COMPONENT_Model(new_child,new_parent,in_ui_def_id,news(k).ui_node_ref_id,news(k));
9434
9435 generate_FTR(news(k).ps_node_id,news(k).ui_node_ref_id,in_ui_def_id);
9436
9437 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
9438 ind_arr:=footer_buttons.Count+1;
9439 footer_buttons(ind_arr).id:=getUISeqVal;
9440 footer_buttons(ind_arr).ui_parent_id:=news(k).ui_node_ref_id;
9441 footer_buttons(ind_arr).rel_top_pos:=last_TOP_POS;
9442 END IF;
9443
9444 END IF; ---- for COMPONENT
9445
9446 IF news(k).ps_node_type=REFERENCE_NODE_TYPE THEN
9447
9448 --
9449 -- find ui_node_id of the parent screen
9450 --
9451 IF news(k).virtual_flag = NO_FLAG THEN
9452 BEGIN
9453 var_parent_id:=NULL;
9454 SELECT ui_node_ref_id INTO var_parent_id FROM CZ_UI_NODES
9455 WHERE ui_def_id=in_ui_def_id AND ui_node_id=new_parent AND deleted_flag=NO_FLAG;
9456 EXCEPTION
9457 WHEN NO_DATA_FOUND THEN
9458 IF news.EXISTS(news(k).parent_id) THEN
9459 var_parent_id:=news(news(k).parent_id).ui_node_ref_id;
9460 ELSE
9461 FND_REPORT(CZ_UI_GEN_NO_BUTTONS,TOKEN_UI_NODE,TO_CHAR(var_parent_id),CZ_ERROR_URGENCY);
9462 END IF;
9463 END;
9464 END IF;
9465
9466 BEGIN
9467 existRefUI:='0';
9468 SELECT '1' INTO existRefUI FROM dual WHERE
9469 EXISTS(SELECT 1 FROM CZ_UI_DEFS WHERE devl_project_id=news(k).reference_id AND ui_style=mUI_STYLE
9470 AND deleted_flag=NO_FLAG);
9471 EXCEPTION
9472 WHEN NO_DATA_FOUND THEN
9473 NULL;
9474 END;
9475
9476 IF existRefUI='0' THEN
9477 var_temp:=Project_Id;
9478
9479 t_news:=news;
9480 t_boms:=boms;
9481 t_features:=features;
9482 t_Options:=Options;
9483 t_add_buttons:=add_buttons;
9484 t_footer_buttons:=footer_buttons;
9485 t_latest_buttons:=latest_buttons;
9486 t_ref_boms:=ref_boms;
9487
9488 createui(in_product_id =>news(k).reference_id,
9489 out_ui_def_id =>var_out_ui_def_id,
9490 out_run_id =>out_run_id,
9491 in_ui_style =>mUI_STYLE,
9492 in_frame_allocation=>var_frame_allocation,
9493 in_width =>var_screen_width,
9494 in_height =>var_screen_height,
9495 in_show_all_nodes =>'0',
9496 in_use_labels =>mUSE_LABELS,
9497 in_look_and_feel =>mLOOK_AND_FEEL,
9498 in_max_bom_per_page=>mITEMS_ON_PAGE,
9499 in_wizard_style =>mWIZARD_STYLE);
9500
9501 news:=t_news;
9502 boms:=t_boms;
9503 features:=t_features;
9504 Options:=t_Options;
9505 add_buttons:=t_add_buttons;
9506 footer_buttons:=t_footer_buttons;
9507 latest_buttons:=t_latest_buttons;
9508 ref_boms:=t_ref_boms;
9509
9510 Project_Id:=var_temp;
9511 t_ref_uis(news(k).ps_node_id):=var_out_ui_def_id;
9512
9513 END IF;
9514
9515 BEGIN
9516 SELECT ui_node_ref_id INTO var_ref_to_id FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
9517 AND ui_node_id=new_parent AND ui_node_type=UI_COMPONENT_REF_TYPE AND
9518 parent_id<>var_limbo_id AND deleted_flag=NO_FLAG;
9519
9520 create_REFERENCE_Model(new_child,new_parent,in_ui_def_id,
9521 var_ref_to_id,news(k),var_ref_ui);
9522 t_ref_uis(news(k).ps_node_id):=var_ref_ui;
9523 EXCEPTION
9524 WHEN NO_DATA_FOUND THEN
9525 LOG_REPORT('CZ_UI_GENERATOR.refreshUI','Reference '||news(k).name||' can not be created.',
9526 CZ_ERROR_URGENCY);
9527 END;
9528
9529
9530 END IF; ---- for REFERENCE
9531
9532 /* ***************************************************************** */
9533 /* ************************* BOM section *************************** */
9534 /* ***************************************************************** */
9535
9536 IF news(k).ps_node_type=BOM_MODEL_NODE_TYPE THEN
9537
9538 createBOM_MODEL(news(k).ui_node_ref_id,var_root_id,in_ui_def_id,news(k));
9539
9540 /* *** create record for Model Tree *** */
9541 createBOM_MODEL_Model(new_child,new_parent,in_ui_def_id,news(k).ui_node_ref_id,news(k));
9542
9543 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
9544 ind_arr:=footer_buttons.Count+1;
9545 footer_buttons(ind_arr).id:=getUISeqVal;
9546 footer_buttons(ind_arr).ui_parent_id:=news(k).ui_node_ref_id;
9547 footer_buttons(ind_arr).rel_top_pos:=last_TOP_POS;
9548 END IF;
9549
9550 generate_MCS(news(k).ps_node_id,news(k).ui_node_ref_id,in_ui_def_id, NO_FLAG);
9551
9552 END IF; -- for BOM_MODEL
9553
9554
9555 IF news(k).ps_node_type=BOM_CLASS_NODE_TYPE and news(k).ui_omit=NO_FLAG THEN
9556
9557 createBOM_CLASS(news(k).ui_node_ref_id,var_root_id,in_ui_def_id,news(k));
9558
9559 /* *** create record for Model Tree *** */
9560 createBOM_CLASS_Model(new_child,new_parent,
9561 in_ui_def_id,news(k).ui_node_ref_id,news(k));
9562
9563 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
9564 ind_arr:=footer_buttons.Count+1;
9565 footer_buttons(ind_arr).id:=getUISeqVal;
9566 footer_buttons(ind_arr).ui_parent_id:=news(k).ui_node_ref_id;
9567 END IF;
9568
9569 generate_MCS(in_parent_node_id =>news(k).ps_node_id,
9570 in_new_parent_id =>news(k).ui_node_ref_id,
9571 in_ui_def_id =>in_ui_def_id,
9572 in_mode =>'0',
9573 in_ui_tree_parent_id =>new_parent,
9574 in_ui_parent_id =>var_root_id,
9575 in_parent_text_id =>news(k).intl_text_id,
9576 in_parent_name =>news(k).name,
9577 in_tree_seq =>news(k).tree_seq);
9578
9579 BEGIN
9580
9581 SELECT ui_node_ref_id INTO var_temp FROM CZ_UI_NODES WHERE
9582 ui_def_id=in_ui_def_id AND ui_node_id=new_parent;
9583
9584 SELECT MAX(rel_top_pos) INTO last_TOP_POS FROM CZ_UI_NODES
9585 WHERE ui_def_id=in_ui_def_id AND parent_id=var_temp AND parent_id<>var_limbo_id
9586 AND modified_flags<>CZ_NAVIGATION_MARK AND deleted_flag=NO_FLAG;
9587
9588 var_width:=set_Text_Width(news(k).caption_name)+80;
9589 IF var_width<=USABLE_WIDTH THEN
9590 var_width:=USABLE_WIDTH;
9591 END IF;
9592
9593 IF mLOOK_AND_FEEL='BLAF' THEN
9594 var_use_default_color:=YES_FLAG;
9595 ELSE
9596 var_use_default_color:=NO_FLAG;
9597 END IF;
9598
9599 IF last_TOP_POS<=START_TOP_POS THEN
9600 last_TOP_POS:=START_TOP_POS+DEFAULT_SPACE_BETWEEN;
9601 ELSE
9602 last_TOP_POS:=last_TOP_POS+DEFAULT_BOM_HEIGHT+DEFAULT_SPACE_BETWEEN;
9603 END IF;
9604
9605 BEGIN
9606 SELECT model_ref_expl_id INTO var_model_ref_expl_id
9607 FROM CZ_MODEL_REF_EXPLS WHERE model_id=Project_Id
9608 AND parent_expl_node_id IS NULL AND deleted_flag=NO_FLAG;
9609 EXCEPTION
9610 WHEN OTHERS THEN
9611 var_model_ref_expl_id:=NULL;
9612 END;
9613
9614 var_oc_standart_item:=getUISeqVal;
9615 set_UI_NODES(in_ui_node_id =>var_oc_standart_item,
9616 in_parent_id =>var_temp,
9617 in_ui_def_id =>in_ui_def_id,
9618 in_ps_node_id =>news(k).ps_node_id,
9619 in_ui_node_ref_id =>news(k).ui_node_ref_id,
9620 in_name =>news(k).name,
9621 in_component_id =>news(k).parent_id,
9622 in_ui_node_type =>UI_BOM_STANDART_TYPE,
9623 in_lce_id =>'P_'||to_char(news(k).ps_node_id),
9624 in_tree_display_flag=>YES_FLAG,
9625 in_tree_seq =>news(k).tree_seq,
9626 in_width =>var_width,
9627 in_height =>DEFAULT_BOM_HEIGHT,
9628 in_top_pos =>last_TOP_POS,
9629 in_left_pos =>LEFT_MARGIN,
9630 in_font_name =>DEFAULT_FONT_NAME,
9631 in_font_bold =>NO_FLAG,
9632 in_font_color =>0,
9633 in_font_italic =>NO_FLAG,
9634 in_font_size =>DEFAULT_FONT_SIZE,
9635 in_font_underline =>NO_FLAG,
9636 in_controltype =>9,
9637 in_bkgrnd_style =>YES_FLAG,
9638 in_intl_text_id =>news(k).intl_text_id,
9639 in_use_default_color=>var_use_default_color,
9640 in_model_ref_expl_id=>var_model_ref_expl_id);
9641
9642 generateUIProps(var_oc_standart_item,in_ui_def_id,DEF_CLASS,
9643 0, YES_FLAG, YES_FLAG,
9644 NO_FLAG, NO_FLAG, NO_FLAG,
9645 0, 'left', '0');
9646
9647 last_TOP_POS:=last_TOP_POS+DEFAULT_BOM_HEIGHT+DEFAULT_SPACE_BETWEEN;
9648 last_HEIGHT:=DEFAULT_BOM_HEIGHT;
9649
9650 EXCEPTION
9651 WHEN NO_DATA_FOUND THEN
9652 NULL;
9653 WHEN OTHERS THEN
9654 NULL;
9655 END;
9656 /*******************************************/
9657
9658 END IF; -- for BOM classes
9659
9660 /* ***************************************************************** */
9661 /* ************************* End of BOM section ******************** */
9662 /* ***************************************************************** */
9663
9664 IF features.EXISTS(k) AND NOT(news.EXISTS(features(k).parent_id)) THEN
9665 BEGIN
9666 var_temp1:=last_TOP_POS;
9667 var_temp2:=last_HEIGHT;
9668
9669 IF NOT(temp.EXISTS(features(k).parent_id)) THEN
9670 temp(features(k).parent_id):=features(k).parent_id;
9671 END IF;
9672 IF features(k).counted_options_flag=YES_FLAG OR features(k).maximum>1 OR features(k).maximum IS NULL THEN
9673 SELECT COUNT(ps_node_id) INTO options_number FROM CZ_PS_NODES
9674 WHERE parent_id=features(k).ps_node_id AND deleted_flag=NO_FLAG;
9675 var_feature_height:=DEFAULT_CONTROL_HEIGHT*options_number+DEFAULT_CONTROL_HEIGHT;
9676 ELSE
9677 var_feature_height:=DEFAULT_CONTROL_HEIGHT;
9678 END IF;
9679 --features(k).height:=var_feature_height;
9680
9681 SELECT ui_node_id INTO new_parent FROM CZ_UI_NODES WHERE ps_node_id=features(k).parent_id
9682 AND ui_node_type IN (UI_PRODUCT_TYPE,UI_COMPONENT_TYPE) AND deleted_flag=NO_FLAG
9683 AND ui_def_id=in_ui_def_id ;
9684
9685 SELECT NVL(MAX(rel_top_pos),-1) INTO last_TOP_POS
9686 FROM CZ_UI_NODES WHERE parent_id=new_parent AND deleted_flag=NO_FLAG;
9687
9688 IF last_TOP_POS=-1 THEN
9689 last_TOP_POS:=DEFAULT_HEADER_HEIGHT+DEFAULT_SPACE_BETWEEN;
9690 ELSE
9691 SELECT NVL(MAX(height),0) INTO last_HEIGHT FROM CZ_UI_NODES
9692 WHERE parent_id=new_parent AND rel_top_pos=last_TOP_POS AND
9693 ui_node_type IN (UI_FEATURE_TYPE,UI_TOTAL_TYPE,UI_RESOURCE_TYPE,
9694 UI_BOM_OPTION_CLASS_TYPE,UI_BOM_STANDART_TYPE,UI_BUTTON_TYPE)
9695 AND deleted_flag=NO_FLAG;
9696
9697 last_TOP_POS:=last_TOP_POS+last_HEIGHT+DEFAULT_SPACE_BETWEEN;
9698
9699 END IF;
9700
9701 curr_node_id:=getUISeqVal;
9702 IF features(k).ps_node_type=FEATURE_NODE_TYPE THEN
9703 last_HEIGHT:=var_feature_height;
9704
9705 /* *** create new Feature *** */
9706 create_FEATURE(curr_node_id,new_parent,in_ui_def_id,features(k));
9707
9708 /* *** if this is "List of Options" Feature the generate options *** */
9709 IF features(k).feature_type=0 THEN
9710 generate_Options(in_parent_node_id=>features(k).ps_node_id,
9711 in_new_parent_id =>curr_node_id,
9712 in_ui_def_id =>in_ui_def_id,
9713 out_counter =>options_number);
9714 END IF;
9715
9716 END IF;
9717
9718 IF features(k).ps_node_type=TOTAL_NODE_TYPE THEN
9719
9720 /* *** create new Total *** */
9721 create_TOTAL(curr_node_id,new_parent,in_ui_def_id,features(k));
9722
9723 END IF; -- for TOTAL
9724
9725 IF features(k).ps_node_type=RESOURCE_NODE_TYPE THEN
9726
9727 /* *** create new Resource *** */
9728 create_RESOURCE(curr_node_id,new_parent,in_ui_def_id,features(k));
9729
9730 END IF; -- for RESOURCE
9731
9732 IF features(k).ps_node_type=CONNECTOR_NODE_TYPE THEN
9733
9734 /* *** create new Connector *** */
9735 create_CONNECTOR(curr_node_id,new_parent,in_ui_def_id,features(k));
9736
9737 END IF; -- for CONNECTOR
9738
9739 last_TOP_POS:=var_temp1;
9740 last_HEIGHT:=var_temp2;
9741
9742 EXCEPTION
9743 WHEN NO_DATA_FOUND THEN
9744 NULL;
9745 END;
9746 END IF; -- for FEATURE
9747
9748 /* *** create OPTIONS *** */
9749 IF options.EXISTS(k) AND NOT(news.EXISTS(options(k).parent_id)) AND NOT(features.EXISTS(options(k).parent_id)) THEN
9750 BEGIN
9751 SELECT ui_node_id INTO new_parent FROM CZ_UI_NODES
9752 WHERE ps_node_id=options(k).parent_id AND ui_def_id=in_ui_def_id
9753 AND deleted_flag=NO_FLAG;
9754 create_OPTION(curr_node_id,new_parent,in_ui_def_id,options(k));
9755 EXCEPTION
9756 WHEN NO_DATA_FOUND THEN
9757 NULL;
9758 END;
9759 END IF;
9760
9761 k:=news.NEXT(k);
9762 END LOOP;
9763
9764
9765 IF boms.Count>0 THEN
9766 k:=boms.First;
9767 LOOP
9768 IF boms(k).ps_node_type=BOM_STANDART_NODE_TYPE AND NOT(boms.EXISTS(boms(k).parent_id)) THEN
9769 BEGIN
9770
9771 t_pages.Delete;
9772
9773 SELECT ps_node_type INTO var_ps_node_type FROM CZ_PS_NODES
9774 WHERE ps_node_id=boms(k).parent_id;
9775
9776 /* *** use latest page for adding new STANDART ITEMS *** */
9777 FOR e IN(SELECT ui_node_id,ps_node_id FROM CZ_UI_NODES WHERE
9778 ui_def_id=in_ui_def_id AND ps_node_id=boms(k).parent_id AND
9779 ui_node_type=UI_BOM_OPTION_CLASS_TYPE AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG
9780 ORDER BY ui_node_id)
9781 LOOP
9782 var_temp:=e.ui_node_id;
9783 IF t_pages.EXISTS(e.ps_node_id) THEN
9784 t_pages(e.ps_node_id):=t_pages(e.ps_node_id)+1;
9785 ELSE
9786 t_pages(e.ps_node_id):=1;
9787 END IF;
9788 END LOOP;
9789
9790 SELECT parent_id INTO var_ui_tree_parent_id FROM CZ_UI_NODES
9791 WHERE ui_def_id=in_ui_def_id AND ui_node_ref_id=var_temp AND
9792 ui_node_type=UI_COMPONENT_REF_TYPE AND deleted_flag=NO_FLAG;
9793
9794 SELECT intl_text_id,tree_seq,name
9795 INTO var_intl_text_id,var_tree_seq,var_parent_name
9796 FROM CZ_PS_NODES
9797 WHERE ps_node_id=boms(k).parent_id;
9798
9799 var_width:=set_Text_Width(boms(k).caption_name)+80;
9800 IF var_width<=USABLE_WIDTH THEN
9801 var_width:=USABLE_WIDTH;
9802 END IF;
9803
9804 IF mLOOK_AND_FEEL='BLAF' THEN
9805 var_use_default_color:=YES_FLAG;
9806 ELSE
9807 var_use_default_color:=NO_FLAG;
9808 END IF;
9809
9810 SELECT COUNT(ui_node_id) INTO counter FROM CZ_UI_NODES
9811 WHERE ui_def_id=in_ui_def_id AND parent_id=var_temp
9812 AND ui_node_type=UI_BOM_STANDART_TYPE AND deleted_flag=NO_FLAG;
9813
9814 IF counter>=mITEMS_ON_PAGE AND mUI_STYLE=DHTML_STYLE_UI THEN
9815 --
9816 -- handle labels of first page --
9817 --
9818 IF t_pages(boms(k).parent_id)=1 AND var_ps_node_type = BOM_CLASS_NODE_TYPE THEN
9819 BEGIN
9820 var_suffix:=' ('||TO_CHAR(t_pages(boms(k).parent_id))||')';
9821
9822 UPDATE CZ_UI_NODES SET name=name||var_suffix
9823 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_temp
9824 AND deleted_flag=NO_FLAG
9825 RETURNING caption_id,ui_node_ref_id,modified_flags
9826 INTO var_caption_id,var_ui_node_ref_id,var_modified_flag;
9827
9828 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=localized_str||var_suffix
9829 WHERE intl_text_id=var_temp AND var_modified_flag=0;
9830
9831 SELECT caption_id,modified_flags
9832 INTO var_caption_id,var_modified_flag FROM CZ_UI_NODES
9833 WHERE ui_def_id=in_ui_def_id AND ui_node_id=var_ui_node_ref_id
9834 AND deleted_flag=NO_FLAG;
9835
9836 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=localized_str||var_suffix
9837 WHERE intl_text_id=var_temp AND var_modified_flag=0;
9838
9839 EXCEPTION
9840 WHEN OTHERS THEN
9841 NULL;
9842 END;
9843 END IF;
9844
9845 IF t_pages.EXISTS(boms(k).parent_id) THEN
9846 t_pages(boms(k).parent_id):=t_pages(boms(k).parent_id)+1;
9847 ELSE
9848 t_pages(boms(k).parent_id):=1;
9849 END IF;
9850
9851 IF var_ps_node_type = BOM_CLASS_NODE_TYPE THEN
9852 var_temp:=create_Page(in_ui_tree_parent_id=>var_ui_tree_parent_id,
9853 in_ui_parent_id =>var_root_id,
9854 in_ps_node_id =>boms(k).parent_id,
9855 in_intl_text_id =>var_intl_text_id,
9856 in_tree_seq =>var_tree_seq*mMAX_NUMBER_PAGES,
9857 in_page_name =>var_parent_name,
9858 in_ui_def_id =>in_ui_def_id,
9859 in_counter =>t_pages(boms(k).parent_id));
9860 END IF;
9861
9862
9863 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
9864 ind_arr:=footer_buttons.Count+1;
9865 footer_buttons(ind_arr).id:=getUISeqVal;
9866 footer_buttons(ind_arr).ui_parent_id:=var_temp;
9867 footer_buttons(ind_arr).rel_top_pos:=0;
9868 END IF;
9869 END IF;
9870
9871 SELECT NVL(MAX(rel_top_pos),START_TOP_POS) INTO last_TOP_POS FROM CZ_UI_NODES
9872 WHERE ui_def_id=in_ui_def_id AND parent_id=var_temp AND parent_id<>var_limbo_id
9873 AND modified_flags<>CZ_NAVIGATION_MARK AND deleted_flag=NO_FLAG;
9874
9875 IF last_TOP_POS>START_TOP_POS THEN
9876 last_TOP_POS:=last_TOP_POS+DEFAULT_BOM_HEIGHT+DEFAULT_SPACE_BETWEEN;
9877
9878 /***
9879 BEGIN
9880 v_just_OC:='0';
9881
9882 SELECT '1' INTO v_just_OC FROM DUAL WHERE EXISTS
9883 (SELECT NULL FROM CZ_UI_NODES WHERE parent_id=var_temp
9884 AND ui_node_ref_id IS NOT NULL
9885 AND ui_node_type=UI_BOM_STANDART_TYPE AND deleted_flag=NO_FLAG
9886 AND ps_node_id NOT IN(SELECT referring_node_id FROM CZ_MODEL_REF_EXPLS
9887 WHERE model_id=Project_Id AND referring_node_id IS NOT NULL AND deleted_flag=NO_FLAG))
9888 AND NOT EXISTS
9889 (SELECT NULL FROM CZ_UI_NODES WHERE parent_id=var_temp
9890 AND ui_node_ref_id IS NULL
9891 AND ui_node_type=UI_BOM_STANDART_TYPE AND deleted_flag=NO_FLAG);
9892
9893 IF v_just_OC='1' THEN
9894 create_DIVIDER(getUISeqVal,var_temp,in_ui_def_id,
9895 last_TOP_POS,LEFT_MARGIN, 0);
9896 last_TOP_POS:=last_TOP_POS+DEFAULT_SPACE_BETWEEN;
9897 END IF;
9898 EXCEPTION
9899 WHEN OTHERS THEN
9900 NULL;
9901 END;
9902 */
9903 ELSE
9904 last_TOP_POS:=START_TOP_POS+DEFAULT_SPACE_BETWEEN;
9905 END IF;
9906
9907 set_UI_NODES(in_ui_node_id =>getUISeqVal,
9908 in_parent_id =>var_temp,
9909 in_ui_def_id =>in_ui_def_id,
9910 in_ps_node_id =>boms(k).ps_node_id,
9911 in_ui_node_ref_id =>NULL,
9912 in_name =>boms(k).name,
9913 in_component_id =>boms(k).parent_id,
9914 in_ui_node_type =>UI_BOM_STANDART_TYPE,
9915 in_lce_id =>'P_'||to_char(boms(k).ps_node_id),
9916 in_tree_display_flag=>YES_FLAG,
9917 in_tree_seq =>boms(k).tree_seq,
9918 in_width =>var_width,
9919 in_height =>DEFAULT_BOM_HEIGHT,
9920 in_top_pos =>last_TOP_POS,
9921 in_left_pos =>LEFT_MARGIN,
9922 in_font_name =>DEFAULT_FONT_NAME,
9923 in_font_bold =>NO_FLAG,
9924 in_font_color =>0,
9925 in_font_italic =>NO_FLAG,
9926 in_font_size =>DEFAULT_FONT_SIZE,
9927 in_font_underline =>NO_FLAG,
9928 in_controltype =>9,
9929 in_bkgrnd_style =>YES_FLAG,
9930 in_intl_text_id =>boms(k).intl_text_id,
9931 in_use_default_color=>var_use_default_color);
9932
9933 last_TOP_POS:=last_TOP_POS+DEFAULT_BOM_HEIGHT+DEFAULT_SPACE_BETWEEN;
9934 last_HEIGHT:=DEFAULT_BOM_HEIGHT;
9935
9936 EXCEPTION
9937 WHEN NO_DATA_FOUND THEN
9938 NULL;
9939 WHEN OTHERS THEN
9940 NULL;
9941 END;
9942
9943 END IF;
9944 k:=boms.NEXT(k);
9945 IF k IS NULL THEN
9946 EXIT;
9947 END IF;
9948 END LOOP;
9949 END IF;
9950
9951 END IF; ---news.Count>0
9952
9953 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
9954 /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
9955
9956 IF ref_boms.Count>0 THEN
9957 FOR i IN ref_boms.First..ref_boms.Last LOOP
9958 add_BOM_MODEL_ITEM(ref_boms(i).ui_parent_id,ref_boms(i).model_id,
9959 in_ui_def_id,ref_boms(i).ps_node_id,
9960 ref_boms(i).maximum,ref_boms(i).minimum,
9961 ref_boms(i).virtual_flag,t_ref_uis);
9962 END LOOP;
9963
9964 END IF;
9965
9966
9967
9968 /* *** handle Drag/Drop-ed nodes ***/
9969 IF is_EqualPS(in_ui_def_id,Project_id)=FALSE THEN
9970 NULL;
9971 END IF;
9972
9973 populate_RefSI(in_ui_def_id);
9974
9975 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG WHERE ui_def_id=in_ui_def_id AND ui_node_type=UI_BUTTON_TYPE AND func_comp_id IN
9976 (SELECT func_comp_id FROM CZ_FUNC_COMP_SPECS WHERE (companion_type=2 AND modified_flags=NO_FLAG)
9977 OR deleted_flag=YES_FLAG);
9978
9979 /* *** synchronize types of Functional Companions *** */
9980 FOR h IN(SELECT a.func_comp_id,a.companion_type,
9981 b.ui_node_id,b.parent_id,a.component_id,b.caption_id,a.name FROM CZ_FUNC_COMP_SPECS a,CZ_UI_NODES b
9982 WHERE b.ui_def_id=in_ui_def_id AND b.ui_node_type=UI_BUTTON_TYPE
9983 AND a.func_comp_id=b.func_comp_id AND a.deleted_flag=NO_FLAG AND b.deleted_flag=NO_FLAG)
9984 LOOP
9985
9986 --
9987 -- AUTO-CONFIG =0 OUTPUT = 1 combinations :
9988 -- 0100 = 4
9989 -- 0110 = 6
9990 -- 1100 = 12
9991 -- 1110 = 14
9992 --
9993 IF h.companion_type IN(4,6,12,14) THEN
9994 UPDATE CZ_UI_NODE_PROPS SET value_str='5' WHERE ui_def_id=in_ui_def_id
9995 AND ui_node_id=h.ui_node_id AND key_str='ActionType';
9996
9997 UPDATE CZ_UI_NODES SET name=h.name WHERE ui_def_id=in_ui_def_id AND
9998 ui_node_id=h.ui_node_id AND modified_flags=NO_FLAG;
9999 IF SQL%ROWCOUNT>0 THEN
10000 UPDATE CZ_INTL_TEXTS SET text_str=h.name WHERE intl_text_id=h.caption_id;
10001 END IF;
10002
10003 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG WHERE ui_def_id=in_ui_def_id AND
10004 func_comp_id=h.func_comp_id and ui_node_id>h.ui_node_id AND
10005 ui_node_type=UI_BUTTON_TYPE AND modified_flags=NO_FLAG AND deleted_flag=NO_FLAG;
10006 END IF;
10007
10008 --
10009 -- AUTO-CONFIG =1 OUTPUT = 0 combinations :
10010 -- 0001 = 1
10011 -- 0011 = 3
10012 -- 1001 = 9
10013 -- 1011 = 11
10014 --
10015 IF h.companion_type IN(1,3,9,11) THEN
10016 UPDATE CZ_UI_NODE_PROPS SET value_str='6' WHERE ui_def_id=in_ui_def_id
10017 and ui_node_id=h.ui_node_id AND key_str='ActionType';
10018
10019 UPDATE CZ_UI_NODES SET name=h.name WHERE ui_def_id=in_ui_def_id AND
10020 ui_node_id=h.ui_node_id AND modified_flags=NO_FLAG;
10021 IF SQL%ROWCOUNT>0 THEN
10022 UPDATE CZ_INTL_TEXTS SET text_str=h.name WHERE intl_text_id=h.caption_id;
10023 END IF;
10024
10025 UPDATE CZ_UI_NODES SET deleted_flag=YES_FLAG WHERE ui_def_id=in_ui_def_id AND
10026 func_comp_id=h.func_comp_id AND ui_node_id>h.ui_node_id AND
10027 ui_node_type=UI_BUTTON_TYPE AND modified_flags=NO_FLAG AND deleted_flag=NO_FLAG;
10028 END IF;
10029
10030 --
10031 -- AUTO-CONFIG =1 OUTPUT = 1 combinations :
10032 -- 0101 = 5
10033 -- 0111 = 7
10034 -- 1101 = 13
10035 -- 1111 = 15
10036 --
10037 IF h.companion_type IN(5,7,13,15) THEN
10038 BEGIN
10039 SELECT value_str INTO var_action_type FROM CZ_UI_NODE_PROPS
10040 WHERE ui_def_id=in_ui_def_id AND ui_node_id=h.ui_node_id AND key_str='ActionType'
10041 AND deleted_flag=NO_FLAG;
10042
10043 var_button_id:=getUISeqVal;
10044
10045 IF var_action_type='5' THEN
10046 var_button_type:=DEF_FUNC_BUTTON1;
10047 END IF;
10048
10049 IF var_action_type='6' THEN
10050 var_button_type:=DEF_FUNC_BUTTON2;
10051 END IF;
10052
10053 create_BUTTON(var_button_id,h.parent_id,in_ui_def_id,
10054 h.component_id,h.name||' (2)',
10055 in_top_pos =>LEFT_MARGIN,
10056 in_left_pos =>LEFT_MARGIN,
10057 in_button_type =>var_button_type,
10058 in_func_comp_id =>h.func_comp_id,
10059 in_modified_flag => 0);
10060
10061 UPDATE CZ_UI_NODES SET name=name||' (1)'
10062 WHERE ui_def_id=in_ui_def_id AND ui_node_id=h.ui_node_id AND modified_flags=NO_FLAG;
10063
10064 IF latest_buttons.Count=0 THEN
10065 ind:=1;
10066 ELSE
10067 ind:=latest_buttons.Last+1;
10068 END IF;
10069 latest_buttons(ind).id:=var_button_id;
10070
10071 var_button_id:=getUISeqVal;
10072
10073 EXCEPTION
10074 WHEN NO_DATA_FOUND THEN
10075 NULL;
10076 WHEN OTHERS THEN
10077 NULL;
10078 END;
10079 END IF;
10080
10081 END LOOP;
10082
10083 FOR i IN (SELECT ui_node_id,parent_id,ps_node_id,ui_node_ref_id,controltype,name FROM CZ_UI_NODES a
10084 WHERE ui_def_id=in_ui_def_id AND ui_node_type=UI_BUTTON_TYPE
10085 AND parent_id<>var_limbo_id AND deleted_flag=NO_FLAG)
10086
10087 LOOP
10088 FOR n IN(SELECT ui_node_id FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id AND ps_node_id=i.ps_node_id AND
10089 parent_id=var_limbo_id AND ui_node_type NOT IN(UI_BUTTON_TYPE,UI_PICTURE_TYPE))
10090 LOOP
10091 BEGIN
10092 SELECT ui_node_id INTO var_temp FROM CZ_UI_NODES WHERE ui_def_id=in_ui_def_id
10093 AND ui_node_id=i.parent_id AND parent_id=var_limbo_id AND deleted_flag=NO_FLAG;
10094 EXCEPTION
10095 WHEN NO_DATA_FOUND THEN
10096 out_run_id:=GLOBAL_RUN_ID;
10097 FND_REPORT(CZ_UI_GEN_REMOVED_SCREEN,TOKEN_BUTTON_NAME,i.name,CZ_WARNING_URGENCY);
10098 WHEN OTHERS THEN
10099 out_run_id:=GLOBAL_RUN_ID;
10100 FND_REPORT(CZ_UI_GEN_REMOVED_SCREEN,TOKEN_BUTTON_NAME,i.name,CZ_WARNING_URGENCY);
10101 END;
10102 END LOOP;
10103
10104 FOR n IN(SELECT ui_node_id FROM CZ_UI_NODES a WHERE ui_node_id=i.ui_node_ref_id AND
10105 parent_id IN(SELECT ui_node_id FROM CZ_UI_NODES b WHERE a.ui_def_id=b.ui_def_id
10106 AND name='Limbo' AND deleted_flag=NO_FLAG))
10107 LOOP
10108 out_run_id:=GLOBAL_RUN_ID;
10109 FND_REPORT(CZ_UI_GEN_REMOVED_SCREEN,TOKEN_BUTTON_NAME,i.name,CZ_WARNING_URGENCY);
10110 END LOOP;
10111
10112 END LOOP;
10113
10114 --
10115 --create ADD buttons for the instantable Components and Products --
10116 --
10117 create_ADD_BUTTONS(in_ui_def_id);
10118
10119 --
10120 -- create EXECUTE buttons for Functional Companions --
10121 --
10122 create_FUNC_BUTTONS(Project_Id,in_ui_def_id,var_limbo_id);
10123
10124 --
10125 -- shift all ADD and EXECUTE buttons to the bottom of the screen --
10126 --
10127
10128 FOR i IN (SELECT ui_node_ref_id FROM CZ_UI_NODES
10129 WHERE ui_def_id=in_ui_def_id AND
10130 ui_node_type IN (UI_PRODUCT_REF_TYPE,UI_COMPONENT_REF_TYPE) AND
10131 deleted_flag=NO_FLAG)
10132 LOOP
10133 shift_Latest_BUTTONS(i.ui_node_ref_id);
10134 END LOOP;
10135
10136 --
10137 -- create "Home","Back" and "Next buttons --
10138 --
10139 IF mWIZARD_STYLE=YES_FLAG AND mUI_STYLE=DHTML_STYLE_UI THEN
10140 create_Wizard_Style_Buttons(in_ui_def_id,var_limbo_id);
10141 END IF;
10142
10143 --
10144 -- synchronize CZ_UI_NODES.tree_seq of Component Tree nodes
10145 -- with CZ_PS_NODES.tree_seq
10146 --
10147 SELECT mMAX_NUMBER_PAGES*a.tree_seq,b.ui_node_id,b.ps_node_id,mMAX_NUMBER_PAGES*a.tree_seq-b.tree_seq
10148 BULK COLLECT INTO t_tree_seq_tbl,t_ui_node_id_tbl,t_ps_node_id_tbl,t_tree_seq_delta_tbl
10149 FROM CZ_PS_NODES a,CZ_UI_NODES b
10150 WHERE b.ui_def_id=in_ui_def_id AND a.devl_project_id=Project_Id AND
10151 a.deleted_flag=NO_FLAG AND b.deleted_flag=NO_FLAG
10152 AND a.ps_node_id=b.ps_node_id AND b.ui_node_type IN(UI_COMPONENT_REF_TYPE,UI_REFERENCE_REF_TYPE) AND b.tree_seq <> mMAX_NUMBER_PAGES*a.tree_seq;
10153
10154 IF t_ui_node_id_tbl.COUNT > 0 THEN
10155
10156 --
10157 -- update tree_seq for splitted pages
10158 --
10159 FOR i IN t_ui_node_id_tbl.First..t_ui_node_id_tbl.Last
10160 LOOP
10161 UPDATE CZ_UI_NODES a
10162 SET tree_seq=tree_seq+t_tree_seq_delta_tbl(i)
10163 WHERE a.ui_def_id=in_ui_def_id AND a.deleted_flag=NO_FLAG
10164 AND ps_node_id IS NULL AND ui_node_ref_id IN
10165 (SELECT ui_node_id FROM CZ_UI_NODES
10166 WHERE ui_def_id=in_ui_def_id AND a.deleted_flag=NO_FLAG AND ps_node_id=t_ps_node_id_tbl(i));
10167 END LOOP;
10168
10169 FORALL i IN t_ui_node_id_tbl.First..t_ui_node_id_tbl.Last
10170 UPDATE CZ_UI_NODES
10171 SET tree_seq = t_tree_seq_tbl(i)
10172 WHERE ui_def_id=in_ui_def_id AND ui_node_id=t_ui_node_id_tbl(i);
10173
10174 END IF;
10175
10176 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
10177 /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
10178
10179 EXCEPTION
10180 WHEN NO_COMPONENT_TREE_NODE THEN
10181 out_run_id:=GLOBAL_RUN_ID;
10182 LOG_REPORT('CZ_UI_GENERATOR.refreshUI',
10183 'There is no "Component Tree" node for this UI ( corrupted UI )',
10184 CZ_ERROR_URGENCY);
10185 WHEN NO_LIMBO_NODE THEN
10186 out_run_id:=GLOBAL_RUN_ID;
10187 LOG_REPORT('CZ_UI_GENERATOR.refreshUI',
10188 'There is no "Limbo" node for this UI ( corrupted UI )',
10189 CZ_ERROR_URGENCY);
10190 WHEN WRONG_UI_VERSION THEN
10191 out_run_id:=GLOBAL_RUN_ID;
10192 LOG_REPORT('CZ_UI_GENERATOR.refreshUI',
10193 'UI Refresh can not be applied to old style UI ("'||var_ui_name||'")',
10194 CZ_ERROR_URGENCY);
10195 WHEN BREAK_IT THEN
10196 NULL;
10197 WHEN NO_DATA_FOUND THEN
10198 out_run_id:=GLOBAL_RUN_ID;
10199 --LOG_REPORT('CZ_UI_GENERATOR.refreshUI','RCODE='||RCODE||' : '||SQLERRM);
10200 FND_REPORT(CZ_UI_GEN_BAD_DATA,TOKEN_PROC_NAME,'CZ_UI_GENERATOR.refreshUI',
10201 CZ_ERROR_URGENCY);
10202 WHEN OTHERS THEN
10203 out_run_id:=GLOBAL_RUN_ID;
10204 --LOG_REPORT('CZ_UI_GENERATOR.refreshUI','RCODE='||RCODE||' : '||SQLERRM);
10205 FND_REPORT(CZ_UI_GEN_FATAL_ERR,TOKEN_SQLERRM,SQLERRM, CZ_ERROR_URGENCY);
10206 END refreshUI;
10207
10208 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10209 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
10210
10211 --
10212 -- this procedure is used for testing from SQL*Plus --
10213 --
10214 PROCEDURE refresh_UI
10215 (in_ui_def_id IN INTEGER) IS
10216
10217 var_run_id INTEGER;
10218 var_new_ui_def_id CZ_UI_DEFS.ui_def_id%TYPE;
10219
10220 BEGIN
10221 var_new_ui_def_id:=in_ui_def_id;
10222 refreshUI(var_new_ui_def_id,var_run_id);
10223 END refresh_UI;
10224
10225 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10226 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
10227
10228 --
10229 -- update labels according with in_use_labels value --
10230 -- the procedure is used by Developer --
10231 --
10232 PROCEDURE update_Labels
10233 (in_ui_node_id IN INTEGER,
10234 in_use_labels IN VARCHAR2) IS
10235
10236 var_name CZ_PS_NODES.name%TYPE;
10237 var_keep_it VARCHAR2(1):=NO_FLAG;
10238
10239 BEGIN
10240 FOR i IN (SELECT a.ui_node_id,a.ps_node_id,a.caption_id,b.name,c.localized_str,c.language
10241 FROM CZ_UI_NODES a,CZ_PS_NODES b, CZ_LOCALIZED_TEXTS c
10242 WHERE a.parent_id=in_ui_node_id AND
10243 a.ui_node_type IN (UI_OPTION_TYPE,UI_BOM_STANDART_TYPE)
10244 AND a.deleted_flag=NO_FLAG AND a.ps_node_id=b.ps_node_id
10245 AND b.intl_text_id=c.intl_text_id)
10246 LOOP
10247 var_name:=i.name;
10248 var_keep_it:=NO_FLAG;
10249 IF in_use_labels='0' THEN
10250 var_name:=i.name;
10251 ELSIF in_use_labels='1' THEN
10252 var_name:=i.localized_str;
10253 ELSIF in_use_labels='3' THEN
10254 var_name:=i.name||mCONCAT_SYMBOL||i.localized_str;
10255 ELSIF in_use_labels='4' THEN
10256 var_keep_it:='1';
10257 END IF;
10258 UPDATE CZ_LOCALIZED_TEXTS SET localized_str=var_name
10259 WHERE intl_text_id=i.caption_id AND language=i.language AND var_keep_it='0';
10260 END LOOP;
10261 END update_Labels;
10262
10263 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10264 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
10265
10266 BEGIN
10267 --
10268 -- find Language Code of current session --
10269 --
10270 SELECT USERENV('LANG') INTO mCURRENT_LANG FROM dual;
10271
10272 --
10273 -- find concatenation symbol - it is used for "Name and Decsription" UI labels --
10274 --
10275 SELECT VALUE INTO mCONCAT_SYMBOL FROM CZ_DB_SETTINGS
10276 WHERE UPPER(SETTING_ID)='UI_NODE_NAME_CONCAT_CHARS' AND rownum<2;
10277 mCONCAT_SYMBOL:=' '||mCONCAT_SYMBOL||' ';
10278 EXCEPTION
10279 WHEN NO_DATA_FOUND THEN
10280 mCONCAT_SYMBOL:=' , ';
10281 WHEN OTHERS THEN
10282 mCONCAT_SYMBOL:=' , ';
10283 END CZ_UI_GENERATOR;