DBA Data[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;