Rem NAME Rem jricon.jpb Rem DESCRIPTION Rem Package body. Identifies the icon for a given Type or Element Rem CREATED Rem 13-May-99 prompt Package Body: jr_icon create or replace package body jr_icon is ------------------------------------------------------------ -- Private method declarations ------------------------------------------------------------ function getPlSQLModuleIcon(instanceID in number) return rm_element_types.ICON%type; function getGeneralModuleIcon(instanceID in number) return rm_element_types.ICON%type; function getColumnIcon(dataType in varchar2) return rm_element_types.ICON%type; function getModuleUnitIcon(shortName in varchar2, instanceID in number) return rm_element_types.ICON%type; -------------------------------------------------------------------------------- -- desc : Identifies the icon for a given Type or Element -- in : IRID identifies the rm_element_type -- in : IVID (or IRID) identifies the element instance -- out : icon name string -- notes : If IVID is 0, just returns the generic Type icon. -- If IVID is valid, returns the instance-specific icon for the element -- (but only for product type "CI"). -------------------------------------------------------------------------------- function get_icon_name(typeID in number, instanceID in number) return rm_element_types.ICON%type is rtnval rm_element_types.ICON%type; shortName rm_element_types.SHORT_NAME%type; product rm_element_types.PRODUCT%type; jrtype rm_element_types.JR_TYPE%type; userext rm_element_types.USER_EXTENSION%type; -- These are the properties that are read to determine the icon: valNAME CI_PRIMARY_ACCESS_FILES.NAME%type; valCOLUMN_REFERENCE CI_INDEX_ENTRIES.COLUMN_REFERENCE%type; valINPUT_OUTPUT_IDENTIFIER CI_MODULE_ARGUMENTS.INPUT_OUTPUT_IDENTIFIER%type; valCHILD_MODULE_REF CI_MODULE_NETWORKS.CHILD_MODULE_REFERENCE%type; valCOLLECTION_TYPE CI_ORACLE_COLLECTION_TYPES.COLLECTION_TYPE%type; valDBI_DISPLAY_TYPE CI_DATA_BOUND_ITEMS.DISPLAY_TYPE%type; valUB_DISPLAY_TYPE CI_UNBOUND_ITEMS.DISPLAY_TYPE%type; valDATATYPE CI_COLUMNS.DATATYPE%type; valDIAGRAM_TYPE CI_DIAGRAMS.DIAGRAM_TYPE%type; valIRID rm_element_types.IRID%type; valMOD_DATA_CONSTRUCT_TYPE CI_PROGRAM_DATA.DATA_CONSTRUCT_TYPE%type; valMODULE_TYPE CI_MODULES.MODULE_TYPE%type; valMODULE_COMPONENT_REF CI_MODULE_COMPONENT_INCLUSIONS.MODULE_COMPONENT_REFERENCE%type; valDATA_CONSTRUCT_TYPE CI_PROGRAM_DATA.DATA_CONSTRUCT_TYPE%type; valDATASTRUCTURE_TYPE CI_DATASTRUCTURES.DATASTRUCTURE_TYPE%type; valGRANT_OPTION_FOR CI_DATABASE_OBJECT_GRANTS.GRANT_OPTION_FOR%type; valMCN_FOR CI_MODULE_COMPONENT_INCLUSIONS.MCN_FOR%type; valORACLE_OBJECT_TYPE_REF CI_TABLE_DEFINITIONS.ORACLE_OBJECT_TYPE_REFERENCE%type; valPROGRAM_DATUM_REF CI_MODULE_PROGRAM_DATA.PROGRAM_DATUM_REFERENCE%type; valRELATION_SELECTION_REF CI_BASE_RELATION_LOCATIONS.RELATION_SELECTION_REFERENCE%type; valShortName rm_element_types.short_name%type; valSTACKED_FLAG CI_ITEM_GROUPS.STACKED_FLAG%type; valTABLE_REF CI_RELATION_SELECTIONS.TABLE_REFERENCE%type; valUSAGE_TYPE CI_MODULE_DETAIL_TABLE_USAGES.USAGE_TYPE%type; valVIEW_ORACLE_OBJECT_TYPE_REF CI_VIEW_DEFINITIONS.ORACLE_OBJECT_TYPE_REFERENCE%type; begin rtnval := '$DEFAULT$'; -- This means no icon was found. if (typeID is null) then return rtnval; -- just default: end if; -- If registered type, return default icon: select JR_TYPE into jrtype from rm_element_types where IRID = typeID; if (jrtype = 'USER') then rtnval:= 'user_regd_type'; return rtnval; end if; -- If user extension type, return default icon: select USER_EXTENSION into userext from rm_element_types where IRID = typeID; userext:= SUBSTR(userext, 1, 1); if (userext = 'Y') then rtnval:= 'user_def_type'; return rtnval; end if; -- Get the generic icon, short name and product: select ICON, SHORT_NAME, PRODUCT into rtnval, shortName, product from rm_element_types where IRID = typeID; -- If no IVID, or if not our product, just return generic icon: if ((instanceID is null) or (product != 'CI')) then -- Just return the generic Type icon: return rtnval; end if; -- Where an IVID is passed in, use the metadata name to decide icon name. -- This is a bit long winded, as they say.... ----------------------------- -- case FILES ----------------------------- -- This is a special case. For files, return the actual filename -- preceeded with a $FILE$ indicator, eg '$FILE$notepad.exe' if (shortName = 'FILES') then -- Get property: select NAME into valNAME from CI_PRIMARY_ACCESS_FILES where IVID = instanceID OR IRID = instanceID; rtnval:= '$FILE$' || valNAME; return rtnval; ----------------------------- -- case INDEX_ENTRY: ----------------------------- elsif (shortName = 'INDCOL') then -- Get property: select COLUMN_REFERENCE into valCOLUMN_REFERENCE from CI_INDEX_ENTRIES where IVID = instanceID OR IRID = instanceID; if (valCOLUMN_REFERENCE is null) then rtnVal := 'FUNC_BASED_INDEX_ITEM'; else rtnVal := 'INDEX_ENTRIES'; end if; return rtnval; ----------------------------- -- case MODULE_ARGUMENT: ----------------------------- elsif (shortName = 'ARG') then -- Get property: select INPUT_OUTPUT_IDENTIFIER into valINPUT_OUTPUT_IDENTIFIER from CI_MODULE_ARGUMENTS where IVID = instanceID OR IRID = instanceID; if (valINPUT_OUTPUT_IDENTIFIER is null) then rtnval:= 'DEFAULT_ARGUMENT'; elsif (valINPUT_OUTPUT_IDENTIFIER = 'MODIFY') then rtnval := 'ARGUMENT_INOUT'; elsif (valINPUT_OUTPUT_IDENTIFIER = 'OUTPUT') then rtnval := 'ARGUMENT_OUT'; elsif (valINPUT_OUTPUT_IDENTIFIER = 'INPUT') then rtnval := 'ARGUMENT_IN'; end if; return rtnval; ----------------------------- -- case DATASTRUCTURE: ----------------------------- elsif (shortName = 'DAT') then -- String dsType= getPropertyString("DATASTRUCTURE_TYPE"); select DATASTRUCTURE_TYPE into valDATASTRUCTURE_TYPE from CI_DATASTRUCTURES where IVID = instanceID OR IRID = instanceID; if (valDATASTRUCTURE_TYPE = 'TABLE') then rtnval:= 'TABLE_DS'; else rtnval:= 'RECORD_DS'; end if; return rtnval; ----------------------------- -- case MODULE_DETAIL_TABLE_USAGE: ----------------------------- elsif (shortName = 'MTI') then -- String uType= getPropertyString("USAGE_TYPE"); select USAGE_TYPE into valUSAGE_TYPE from CI_MODULE_DETAIL_TABLE_USAGES where IVID = instanceID OR IRID = instanceID; if (valUSAGE_TYPE is null) then rtnval:= 'UNKNOWN_DTU'; elsif (valUSAGE_TYPE = 'BASE') then rtnval:= 'BASE_DTU'; elsif (valUSAGE_TYPE = 'LOOKUP') then rtnval:= 'LOOKUP_DTU'; elsif (valUSAGE_TYPE = 'SRSA') then rtnval:= 'SRSA_DTU'; else rtnval:= 'PLS_DTU'; end if; return rtnval; ----------------------------- -- case PROGRAM_DATUM: ----------------------------- elsif (shortName = 'PGD') then -- String dcType= getPropertyString("DATA_CONSTRUCT_TYPE"); select DATA_CONSTRUCT_TYPE into valDATA_CONSTRUCT_TYPE from CI_PROGRAM_DATA where IVID = instanceID OR IRID = instanceID; if (valDATA_CONSTRUCT_TYPE = 'CONSTANT') then rtnval:= 'CONST_PD'; elsif (valDATA_CONSTRUCT_TYPE = 'EXCEPTION') then rtnval:= 'EXCEPTION'; else rtnval:= 'VAR_PD'; end if; return rtnval; ----------------------------- -- case MODULE_PROGRAM_DATUM: ----------------------------- elsif (shortName = 'MODPGD') then select PROGRAM_DATUM_REFERENCE into valPROGRAM_DATUM_REF from CI_MODULE_PROGRAM_DATA where IVID = instanceID OR IRID = instanceID; select DATA_CONSTRUCT_TYPE into valMOD_DATA_CONSTRUCT_TYPE from CI_PROGRAM_DATA where IRID = valPROGRAM_DATUM_REF; if (valMOD_DATA_CONSTRUCT_TYPE = 'CONSTANT') then rtnval:= 'CONST_PD'; elsif (valMOD_DATA_CONSTRUCT_TYPE = 'EXCEPTION') then rtnval:= 'EXCEPTION'; else rtnval:= 'VAR_PD'; end if; return rtnval; ----------------------------- -- case DIAGRAM : ----------------------------- elsif (shortName = 'DIA') then -- String diagType= getPropertyString("DIAGRAM_TYPE"); select DIAGRAM_TYPE into valDIAGRAM_TYPE from CI_DIAGRAMS where IVID = instanceID OR IRID = instanceID; if (valDIAGRAM_TYPE = 'ATD') then rtnval:= 'ATD_DIAGRAM'; elsif (valDIAGRAM_TYPE = 'BPA') then rtnval:= 'PROCESS_MODEL_DIAGRAMMER'; elsif (valDIAGRAM_TYPE = 'DFD') then rtnval:= 'DATAFLOW_DIAGRAMMER'; elsif (valDIAGRAM_TYPE = 'DSD') then rtnval:= 'DATA_DIAGRAM'; elsif (valDIAGRAM_TYPE = 'ERD') then rtnval:= 'ENTITY_RELATIONSHIP_DIAGRAMMER'; elsif (valDIAGRAM_TYPE = 'FHD') then rtnval:= 'FUNCTION_HIERARCHY_DIAGRAMMER'; elsif (valDIAGRAM_TYPE = 'MDD') then rtnval:= 'MDD_DIAGRAM'; elsif (valDIAGRAM_TYPE = 'MSD') then rtnval:= 'MODULE_STRUCTURE_DIAGRAM'; elsif (valDIAGRAM_TYPE = 'MXD') then rtnval:= 'MATRIX_DIAGRAM'; elsif (valDIAGRAM_TYPE = 'OAM') then rtnval:= 'ACTIVITY_MODELER'; elsif (valDIAGRAM_TYPE = 'OCM') then rtnval:= 'COMPONENT_MODELER'; elsif (valDIAGRAM_TYPE = 'OPM') then rtnval:= 'PACKAGE_MODELER'; elsif (valDIAGRAM_TYPE = 'OTD') then rtnval:= 'TYPE_MODELER'; elsif (valDIAGRAM_TYPE = 'OUM') then rtnval:= 'USECASE_MODELER'; end if; return rtnval; ----------------------------- -- case ORACLE_COLLECTION_TYPE : ----------------------------- elsif (shortName = 'OCT') then -- String cType= getPropertyString("COLLECTION_TYPE"); select COLLECTION_TYPE into valCOLLECTION_TYPE from CI_ORACLE_COLLECTION_TYPES where IVID = instanceID OR IRID = instanceID; if (valCOLLECTION_TYPE = 'VARRAY') then rtnval:= 'OBJECT_VARRAY_TYPE'; else rtnval:= 'OBJECT_NESTED_TABLE_TYPE'; end if; return rtnval; ----------------------------- -- case COLUMN : ----------------------------- elsif (shortName = 'COL') then -- String dataType= getPropertyString("DATATYPE"); select DATATYPE into valDATATYPE from CI_COLUMNS where IVID = instanceID OR IRID = instanceID; if (valDATATYPE is not null) then rtnval:= getColumnIcon(valDATATYPE); end if; return rtnval; ----------------------------- -- case DATA_BOUND_ITEM : ----------------------------- elsif (shortName = 'DBI') then -- String displayType= getPropertyString("DISPLAY_TYPE"); select DISPLAY_TYPE into valDBI_DISPLAY_TYPE from CI_DATA_BOUND_ITEMS where IVID = instanceID OR IRID = instanceID; -- Default: rtnval:= 'TEXT'; if (valDBI_DISPLAY_TYPE is not null) then valDBI_DISPLAY_TYPE:= SUBSTR(valDBI_DISPLAY_TYPE, 0, 3); if (valDBI_DISPLAY_TYPE = 'BUTT') then rtnval:= 'BUTTON'; elsif (valDBI_DISPLAY_TYPE = 'CHEC') then rtnval:= 'CHECK_BOX'; elsif (valDBI_DISPLAY_TYPE = 'RADI') then rtnval:= 'RADIO_BOX'; elsif (valDBI_DISPLAY_TYPE = 'T-LI') then rtnval:= 'TEXT_LIST_BOX'; elsif (valDBI_DISPLAY_TYPE = 'COMB' or valDBI_DISPLAY_TYPE = 'POP-') then rtnval:= 'DROP_LIST_BOX'; elsif (valDBI_DISPLAY_TYPE = 'VBX ') then rtnval:= 'VBX_BOX'; elsif (valDBI_DISPLAY_TYPE = 'OLE ') then rtnval:= 'OLE_BOX'; end if; end if; return rtnval; ----------------------------- -- case UNBOUND_ITEM : ----------------------------- elsif (shortName = 'UBI') then -- String displayType= getPropertyString("DISPLAY_TYPE"); select DISPLAY_TYPE into valUB_DISPLAY_TYPE from CI_UNBOUND_ITEMS where IVID = instanceID OR IRID = instanceID; -- Default: rtnval:= 'TEXT'; if (valUB_DISPLAY_TYPE is not null) then valUB_DISPLAY_TYPE:= SUBSTR(valUB_DISPLAY_TYPE, 0, 3); if (valUB_DISPLAY_TYPE = 'BUTT') then rtnval:= 'BUTTON'; elsif (valUB_DISPLAY_TYPE = 'CHEC') then rtnval:= 'CHECK_BOX'; elsif (valUB_DISPLAY_TYPE = 'RADI') then rtnval:= 'RADIO_BOX'; elsif (valUB_DISPLAY_TYPE = 'T-LI') then rtnval:= 'TEXT_LIST_BOX'; elsif (valUB_DISPLAY_TYPE = 'COMB' or valUB_DISPLAY_TYPE = 'POP-') then rtnval:= 'DROP_LIST_BOX'; elsif (valUB_DISPLAY_TYPE = 'VBX ') then rtnval:= 'VBX_BOX'; elsif (valUB_DISPLAY_TYPE = 'OLE ') then rtnval:= 'OLE_BOX'; end if; end if; return rtnval; ----------------------------- -- case DATABASE_OBJECT_GRANT : ----------------------------- elsif (shortName = 'DOG') then -- String optionFor= getPropertyString("GRANT_OPTION_FOR"); select GRANT_OPTION_FOR into valGRANT_OPTION_FOR from CI_DATABASE_OBJECT_GRANTS where IVID = instanceID OR IRID = instanceID; if (valGRANT_OPTION_FOR = 'TBI') then rtnval:= 'OBJECT_GRANT_TBL'; elsif (valGRANT_OPTION_FOR = 'VWI') then rtnval:= 'OBJECT_GRANT_VIEW'; elsif (valGRANT_OPTION_FOR = 'PMI') then rtnval:= 'OBJECT_GRANT_PLS'; elsif (valGRANT_OPTION_FOR = 'SNI') then rtnval:= 'OBJECT_GRANT_SNPS'; elsif (valGRANT_OPTION_FOR = 'SQI') then rtnval:= 'OBJECT_GRANT_SEQ'; elsif (valGRANT_OPTION_FOR = 'DIR') then rtnval:= 'OBJECT_GRANT_DIR'; end if; return rtnval; ----------------------------- -- case ITEM_GROUP: ----------------------------- elsif (shortName = 'IGR') then -- String stackedFlag= getPropertyString("STACKED_FLAG"); select STACKED_FLAG into valSTACKED_FLAG from CI_ITEM_GROUPS where IVID = instanceID OR IRID = instanceID; if (valSTACKED_FLAG = 'Y') then rtnval:= 'STACKED_GROUP'; else rtnval:= 'ITEM_GROUP'; end if; return rtnval; ----------------------------- -- case REUSABLE_MCO: -- case SPECIFIC_MCO: -- case REUSABLE_LOV: -- case SPECIFIC_LOV: -- case SUBCOMPONENT: ----------------------------- elsif ((shortName = 'RMC') or (shortName = 'SMC') or (shortName = 'RLV') or (shortName = 'SLV') or (shortName = 'SUB')) then return(getModuleUnitIcon(shortName, instanceID)); ----------------------------- -- case MODULE_COMPONENT_INCLUSION: ----------------------------- elsif (shortName = 'MCN') then -- String mcnFor= getPropertyString("MCN_FOR"); select MCN_FOR into valMCN_FOR from CI_MODULE_COMPONENT_INCLUSIONS where IVID = instanceID OR IRID = instanceID; if (valMCN_FOR = 'MCO') then -- Get IVID of referenced module component: select MODULE_COMPONENT_REFERENCE into valMODULE_COMPONENT_REF from CI_MODULE_COMPONENT_INCLUSIONS where IVID = instanceID OR IRID = instanceID; -- Get short name of ref'd element's type (thanks to Mark R): select t.short_name into valShortName from ci_module_component_inclusions i, ci_module_components m, rm_element_types t where i.module_component_reference = m.id and m.types = t.id and i.id = instanceID; rtnval:= getModuleUnitIcon(valShortName, valMODULE_COMPONENT_REF); end if; return rtnval; ----------------------------- -- case PLSQL_MODULE: ----------------------------- elsif (shortName = 'PLM') then return(getPlSQLModuleIcon(instanceID)); ----------------------------- -- case TABLE_DEFINITION: ----------------------------- elsif (shortName = 'TBL') then select ORACLE_OBJECT_TYPE_REFERENCE into valORACLE_OBJECT_TYPE_REF from CI_TABLE_DEFINITIONS where IVID = instanceID OR IRID = instanceID; if (valORACLE_OBJECT_TYPE_REF is not null) then rtnval:= 'OBJECT_TABLE'; else rtnval:= 'TABLE'; end if; return rtnval; ----------------------------- -- case VIEW_DEFINITION: ----------------------------- elsif (shortName = 'VW') then select ORACLE_OBJECT_TYPE_REFERENCE into valVIEW_ORACLE_OBJECT_TYPE_REF from CI_VIEW_DEFINITIONS where IVID = instanceID OR IRID = instanceID; if (valVIEW_ORACLE_OBJECT_TYPE_REF is not null) then rtnval:= 'OBJECT_VIEW'; else rtnval:= 'VIEW'; end if; return rtnval; ----------------------------- -- case RELATION_SELECTION: ----------------------------- elsif (shortName = 'VWTAB') then select TABLE_REFERENCE into valTABLE_REF from CI_RELATION_SELECTIONS where IVID = instanceID OR IRID = instanceID; -- Get IRID of ref'd element's type: select t.IRID into valIRID from CI_RELATION_SELECTIONS i, CI_RELATION_DEFINITIONS m, rm_element_types t where i.TABLE_REFERENCE = m.id and m.types = t.id and i.id = instanceID; return(get_icon_name(valIRID, valTABLE_REF)); ----------------------------- -- case BASE_RELATION_LOCATION: ----------------------------- elsif (shortName = 'BRL') then select RELATION_SELECTION_REFERENCE into valRELATION_SELECTION_REF from CI_BASE_RELATION_LOCATIONS where IVID = instanceID OR IRID = instanceID; -- Get IRID of ref'd element's type: select t.IRID into valIRID from CI_BASE_RELATION_LOCATIONS i, CI_RELATION_SELECTIONS m, rm_element_types t where i.RELATION_SELECTION_REFERENCE = m.id and m.types = t.id and i.id = instanceID; return(get_icon_name(valIRID, valRELATION_SELECTION_REF)); ----------------------------- -- case MODULE_NETWORK: ----------------------------- elsif (shortName = 'MODMOD') then select CHILD_MODULE_REFERENCE into valCHILD_MODULE_REF from CI_MODULE_NETWORKS where IVID = instanceID OR IRID = instanceID; -- String modType= getPropertyString("MODULE_TYPE"); select MODULE_TYPE into valMODULE_TYPE from CI_MODULES where IRID = valCHILD_MODULE_REF; if (valMODULE_TYPE = 'PLM') then rtnval:= getPlSQLModuleIcon(valCHILD_MODULE_REF); else rtnval:= getGeneraLModuleIcon(valCHILD_MODULE_REF); end if; return rtnval; ----------------------------- -- case GENERAL_MODULE: ----------------------------- elsif (shortName = 'GEM') then return(getGeneraLModuleIcon(instanceID)); end if; -- * gasp! * ----------------------------- -- Default if all else failed: ----------------------------- return rtnval; ----------------------------- -- Catch exceptions ----------------------------- -- Sometimes goes pear-shaped, eg when IRID parameter is bad: exception when NO_DATA_FOUND then return rtnval; -- just default: when OTHERS then return '$DEFAULT$'; -- EJH 13-MAR-2000 Bug #1157937 end get_icon_name; -------------------------------------------------------------------------------- -- desc : get icon for PLSQL_MODULE -- in : IVID identifies the element instance -- out : icon name string -------------------------------------------------------------------------------- function getPlSQLModuleIcon(instanceID in number) return rm_element_types.ICON%type is rtnval rm_element_types.ICON%type; valCANDIDATE_FLAG CI_PLSQL_MODULES.CANDIDATE_FLAG%type; valPLSQL_MODULE_TYPE CI_PLSQL_MODULES.PLSQL_MODULE_TYPE%type; begin select CANDIDATE_FLAG into valCANDIDATE_FLAG from CI_PLSQL_MODULES where IVID = instanceID OR IRID = instanceID; if (valCANDIDATE_FLAG = 'Y') then return('CANDIDATE_MODULE'); end if; select PLSQL_MODULE_TYPE into valPLSQL_MODULE_TYPE from CI_PLSQL_MODULES where IVID = instanceID OR IRID = instanceID; -- Figure out plsql subtype and return appropriate icon: if (valPLSQL_MODULE_TYPE = 'PACKAGE') then return('PLSQL_PACKAGE'); elsif (valPLSQL_MODULE_TYPE = 'CURSOR') then return('PLSQL_CURSOR'); elsif (valPLSQL_MODULE_TYPE = 'FUNCTION') then return('PLSQL_FUNCTION'); elsif (valPLSQL_MODULE_TYPE = 'PROCEDURE') then return('PLSQL_PROCEDURE'); elsif (valPLSQL_MODULE_TYPE = 'TRG-LOGIC') then return('PLSQL_TRG_LOGIC'); elsif (valPLSQL_MODULE_TYPE = 'TYPE BODY') then return('PLSQL_TYPE_BODY'); end if; -- For unknown subtypes, default to the generic plsql icon: return('PLSQL'); end getPlSQLModuleIcon; -------------------------------------------------------------------------------- -- desc : Get icon for type GENERAL_MODULE -- in : IVID identifies the element instance -- out : Icon name -------------------------------------------------------------------------------- function getGeneralModuleIcon(instanceID in number) return rm_element_types.ICON%type is valCANDIDATE_FLAG CI_GENERAL_MODULES.CANDIDATE_FLAG%type; valGENERAL_MODULE_TYPE CI_GENERAL_MODULES.GENERAL_MODULE_TYPE%type; valLANGUAGE_REFERENCE CI_GENERAL_MODULES.LANGUAGE_REFERENCE%type; valINTERNAL_NAME CI_LANGUAGES.INTERNAL_NAME%type; begin select CANDIDATE_FLAG into valCANDIDATE_FLAG from CI_GENERAL_MODULES where IVID = instanceID OR IRID = instanceID; if (valCANDIDATE_FLAG = 'Y') then return('CANDIDATE_MODULE'); end if; select GENERAL_MODULE_TYPE into valGENERAL_MODULE_TYPE from CI_GENERAL_MODULES where IVID = instanceID OR IRID = instanceID; if (valGENERAL_MODULE_TYPE = 'MENU') then return('MENU'); elsif (valGENERAL_MODULE_TYPE = 'LIBRARY') then return('MODULE_LIBRARY'); else -- Determine associated language: select LANGUAGE_REFERENCE into valLANGUAGE_REFERENCE from CI_GENERAL_MODULES where IVID = instanceID OR IRID = instanceID; if (valLANGUAGE_REFERENCE is null) then return('MODULE'); end if; select INTERNAL_NAME into valINTERNAL_NAME from CI_LANGUAGES where IRID =valLANGUAGE_REFERENCE; if (valINTERNAL_NAME is null) then return('MODULE'); end if; if (valINTERNAL_NAME = 'Forms') then return('FORMS_SCREEN'); elsif (valINTERNAL_NAME = 'Reports') then return('REPORT'); elsif (valINTERNAL_NAME = 'VB') then return('VB_SCREEN'); elsif (valINTERNAL_NAME = 'Web') then return('WEB_SCREEN'); elsif (valINTERNAL_NAME = 'D2KLIB') then return('MODULE_LIBRARY'); elsif (valINTERNAL_NAME = 'Graphics') then return('GRAPHIC_MODULE'); -- No icons for these languages, yet... -- elsif (valINTERNAL_NAME = 'C++') then -- elsif (valINTERNAL_NAME = 'Java') then -- elsif (valINTERNAL_NAME = 'OPO') then -- elsif (valINTERNAL_NAME = 'PLSQL') then -- elsif (valINTERNAL_NAME = 'SQL') then -- elsif (valINTERNAL_NAME = 'SQL/J') then end if; -- Default: return('MODULE'); end if; end getGeneralModuleIcon; -------------------------------------------------------------------------------- -- desc : Get icon for type COLUMN -- in : column data type name string -- out : Icon name -------------------------------------------------------------------------------- function getColumnIcon(dataType in varchar2) return rm_element_types.ICON%type is begin if (dataType = 'DATE' or dataType = 'TIMESTAMP' or dataType = 'TIME') then return('DATE_TYPE'); end if; if (dataType = 'CHAR' or dataType = 'VARCHAR' or dataType = 'TEXT' or dataType = 'VARCHAR2' or dataType = 'LONG VARCHAR') then return('TEXT_TYPE'); end if; if (dataType = 'CLOB' or dataType = 'BLOB') then return('LOB'); end if; return('NUMBER_TYPE'); end getColumnIcon; -------------------------------------------------------------------------------- -- desc : Get icon for types: -- REUSABLE_MCO -- SPECIFIC_MCO -- REUSABLE_LOV -- SPECIFIC_LOV -- SUBCOMPONENT -- in : Metadata short name -- in : IVID identifies the element instance -- out : Icon name -------------------------------------------------------------------------------- function getModuleUnitIcon(shortName in varchar2, instanceID in number) return rm_element_types.ICON%type is valLANGUAGE_REFERENCE CI_MODULE_COMPONENTS.LANGUAGE_REFERENCE%type; valINTERNAL_NAME CI_LANGUAGES.INTERNAL_NAME%type; valMODULE_COMPONENT_REFERENCE CI_SUBCOMPONENTS.MODULE_COMPONENT_REFERENCE%type; begin if (shortName = 'SLV') then -- case SPECIFIC_LOV: return('LOV_SPECIFIC'); elsif (shortName = 'RLV') then -- case REUSABLE_LOV: return('LOV_REUSABLE'); elsif ((shortName = 'RMC') or (shortName = 'SMC')) then -- case REUSABLE_MCO: -- case SPECIFIC_MCO: select LANGUAGE_REFERENCE into valLANGUAGE_REFERENCE from CI_MODULE_COMPONENTS where IVID = instanceID OR IRID = instanceID; select INTERNAL_NAME into valINTERNAL_NAME from CI_LANGUAGES where IRID =valLANGUAGE_REFERENCE; if (valINTERNAL_NAME is null) then return('MODULE_COMPONENT'); end if; if (shortName = 'RMC') then -- case RMC: if (valINTERNAL_NAME = 'Forms') then return('FORMS_MCO'); elsif (valINTERNAL_NAME = 'Reports') then return('REPORT_MCO'); elsif (valINTERNAL_NAME = 'VB') then return('VB_MCO'); elsif (valINTERNAL_NAME = 'Web') then return('WEB_MCO'); -- No icons for these languages, yet... -- else if ("C++" == languageName) -- else if ("D2KLIB" == languageName) -- else if ("Graphics" == languageName) -- else if ("Java" == languageName) -- else if ("OPO" == languageName) -- else if ("PLSQL" == languageName) -- else if ("SQL" == languageName) -- else if ("SQL/J" == languageName) end if; else -- case SMC: if (valINTERNAL_NAME = 'Forms') then return('FORMS_PRIVATE_MCO'); elsif (valINTERNAL_NAME = 'Reports') then return('REPORT_PRIVATE_MCO'); elsif (valINTERNAL_NAME = 'VB') then return('VB_PRIVATE_MCO'); elsif (valINTERNAL_NAME = 'Web') then return('WEB_PRIVATE_MCO'); -- No icons for these languages, yet... -- else if ("C++" == languageName) -- else if ("D2KLIB" == languageName) -- else if ("Graphics" == languageName) -- else if ("Java" == languageName) -- else if ("OPO" == languageName) -- else if ("PLSQL" == languageName) -- else if ("SQL" == languageName) -- else if ("SQL/J" == languageName) end if; end if; elsif (shortName = 'SUB') then -- case SUBCOMPONENT: select MODULE_COMPONENT_REFERENCE into valMODULE_COMPONENT_REFERENCE from CI_SUBCOMPONENTS where IVID = instanceID OR IRID = instanceID; select LANGUAGE_REFERENCE into valLANGUAGE_REFERENCE from CI_MODULE_COMPONENTS where IRID = valMODULE_COMPONENT_REFERENCE; select INTERNAL_NAME into valINTERNAL_NAME from CI_LANGUAGES where IRID =valLANGUAGE_REFERENCE; if (valINTERNAL_NAME is null) then return('MODULE_COMPONENT'); end if; if (valINTERNAL_NAME = 'Forms') then return('SUBCOMPONENT_FORMS'); elsif (valINTERNAL_NAME = 'Web') then return('SUBCOMPONENT_WEB'); end if; end if; -- Default: return('MODULE_COMPONENT'); end getModuleUnitIcon; end jr_icon; /