1 package ICX_API_REGION AUTHID CURRENT_USER as
2 /* $Header: ICXREGS.pls 115.2 1999/12/09 22:54:07 pkm ship $ */
3
4 /**
5 * ICX_API_REGION - Create/Edit/Delete Regions for pages
6 *
7 * This package contains procedures to create, edit
8 * and delete regions for pages. It also contains
9 * procedures to modify the attributes of a region.
10 *
11 * @Scope Internal
12 *
13 */
14
15
16 REGION_NOT_SPLIT constant number := -1;
17 REGION_HORIZONTAL_SPLIT constant number := 1;
18 REGION_VERTICAL_SPLIT constant number := 0;
19 MAIN_REGION constant integer := 0;
20 REGION_HORIZONTAL_PORTLETFLOW constant integer := 1;
21 REGION_VERTICAL_PORTLETFLOW constant integer := 0;
22 REGION_STACKED_PORTLETFLOW constant integer := 2;
23 REGION_LEFT_ALIGN constant integer := 0;
24 REGION_RIGHT_ALIGN constant integer := 1;
25 REGION_CENTER_ALIGN constant integer := 2;
26 REGION_THIN_RESTRICT constant integer := 0;
27 REGION_WIDE_RESTRICT constant integer := 1;
28
29 REGION_VALIDATION_EXCEPTION exception;
30 REGION_EXECUTION_EXCEPTION exception;
31 REGION_SECURITY_EXCEPTION exception;
32 REGION_NOT_FOUND_EXCEPTION exception;
33
34 type region_record is record
35 (
36 region_id icx_regions.region_id%type,
37 parent_region_id icx_regions.parent_region_id%type,
38 split_mode icx_regions.split_mode%type,
39 portlet_alignment icx_regions.portlet_alignment%type,
40 height icx_regions.height%type,
41 width icx_regions.width%type,
42 width_restrict icx_regions.width_restrict%type,
43 portlet_flow icx_regions.portlet_flow%type,
44 navwidget_id icx_regions.navwidget_id%type,
45 border icx_regions.border%type
46 );
47
48 type region_table is table of region_record index by binary_integer;
49
50 type array is table of varchar2(2000) index by binary_integer;
51 empty array;
52
53 /**
54 * Create Main Region
55 *
56 * This module creates the main (first) region for a layout.
57 * This is the region with parentid set to MAIN_REGION.
58 *
59 * Returns the region id
60 *
61 */
62
63 function create_main_region return number;
64
65
66 /**
67 * Split Region
68 *
69 * This module splits a region either horizontally or vertically
70 *
71 * This module splits a region
72 * Horizontal => 0
73 * Vertical => 1
74 *
75 * A horizontal split results in a region being split into 2 rows
76 * by creating 2 new regions whose parent is the region that is being
77 * split
78 *
79 * A vertical split results in a region being split into 2 columns
80 * by creating 2 new regions whose parent is the region that is being
81 * split
82 *
83 */
84
85 procedure split_region (
86 p_region_id in integer
87 , p_split_mode in number
88 );
89
90 /**
91 * Delete Region
92 *
93 * This module deletes a region
94 *
95 */
96
97 procedure delete_region (
98 p_region_id in integer
99 );
100
101 /**
102 * Get a Region
103 *
104 * This module returns a region record
105 * given the id of the region.
106 *
107 */
108
109
110 function get_region (
111 p_region_id in integer
112 ) return region_record;
113
114
115 /**
116 * Add a Region
117 *
118 * This module adds a region record to the region table
119 *
120 * Returns the id of the region created.
121 *
122 */
123
124 function add_region (
125 p_region in region_record
126 ) return integer;
127
128
129 /**
130 * Edit Region
131 *
132 * This module edits a region record
133 *
134 */
135
136 procedure edit_region (
137 p_region in region_record
138 );
139
140
141 /**
142 *
143 * Get Child Regions
144 *
145 * This module returns a list of all child regions
146 * for a given region
147 *
148 */
149
150 function get_child_region_list (
151 p_region_id in integer
152 ) return region_table;
153
154
155 /**
156 * Delete Regions
157 *
158 * This module deletes all regions associated with a layout
159 *
160 */
161
162 procedure delete_regions (
163 p_layout_id in integer
164 );
165
166 procedure copy_region_plugs (p_from_region_id in number,
167 p_to_region_id in number,
168 p_to_page_id in number);
169
170 /**
171 * Copy Child Regions
172 *
173 * This module copies child regions for a layout.
174 *
175 */
176 procedure copy_child_regions (
177 p_from_region_id in number
178 , p_to_region_id in number
179 , p_to_page_id in number
180 );
181
182
183 /*
184 *
185 * Get Main Region
186 *
187 * This module returns the main region record (with parentid set to 0)
188 * for a given page.
189 *
190 */
191
192 function get_main_region_record (
193 p_region_id in integer
194 ) return icx_api_region.region_record;
195
196 end ICX_API_REGION;