123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- /*
- *+------------------------------------------------------------------------+
- *| Licensed Materials - Property of IBM
- *| BI and PM: prmt
- *| (C) Copyright IBM Corp. 2002, 2018
- *|
- *| US Government Users Restricted Rights - Use, duplication or
- *| disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- *|
- *+------------------------------------------------------------------------+
- */
- function C_PromptElement( sTag, oAttr, oParent )
- {
- this.m_sTag = sTag;
- this.m_oAttr = {};
- this.m_aChild = [];
- if ( oAttr )
- {
- Object.f_extend( this.m_oAttr, oAttr );
- }
- if ( oParent )
- {
- oParent.f_appendChild( this );
- }
- }
- C_PromptElement.prototype.f_appendText = function( v_sText )
- {
- var v_sLabel = null;
- v_sLabel = sDecodeU003(K_PRMT_sEMPTY + v_sText);
- var reMarkup = new RegExp("(<|>)");
- if ( v_sLabel.match( reMarkup ) ) {
- v_sLabel = sHtmlEncode(v_sLabel );
- }
- this.m_aChild.push( v_sLabel );
- };
- C_PromptElement.prototype.f_getHTML = function()
- {
- var s = K_PRMT_sLT + this.m_sTag;
- for (var a in this.m_oAttr)
- {
- if ( this.m_oAttr[a] !== null )
- {
- var sAttr = K_PRMT_sEMPTY + this.m_oAttr[a];
- s += K_PRMT_sSP + a + K_PRMT_sEQ_QU + sAttr.replace(K_PRMT_reQU, K_PRMT_sQU_encoded) + K_PRMT_sQU;
- }
- }
- if ( this.m_aChild.length > 0 )
- {
- s += K_PRMT_sGT;
- var v_aStrings = [];
- for (var i = 0; i < this.m_aChild.length; i++)
- {
- var c = this.m_aChild[i];
- if ( c && (typeof c.f_getHTML == K_PRMT_sFUNCTION) )
- {
- s += c.f_getHTML();
- }
- else
- {
- s += c;
- }
- }
- s += K_PRMT_sLT_SL + this.m_sTag;
- }
- else if ( this.m_sTag != 'img' )
- {
- s += K_PRMT_sSL;
- }
- s += K_PRMT_sGT;
- return s;
- };
- C_PromptElement.prototype.f_setStyle = function( v_oElement, v_sStyle )
- {
- var v_aStyles = PRMTUtils.f_parseStyle( v_sStyle );
- for (var i = 0; i < v_aStyles.length; i++)
- {
- var v_s = v_aStyles[i];
- v_oElement.style[ PRMTUtils.f_camelCase(v_s[0]) ] = v_s[1];
- }
- };
- C_PromptElement.prototype.f_create = function() {
- var v_oElement = document.createElement( this.m_sTag );
- if ( window.ie )
- {
- for (var a in this.m_oAttr)
- {
- if ( this.m_oAttr[a] !== null )
- {
- switch( a )
- {
- case "class":
- v_oElement.className = this.m_oAttr[a];
- break;
- case "style":
- this.f_setStyle( v_oElement, this.m_oAttr[a] );
- break;
- default:
- v_oElement.setAttribute( a, K_PRMT_sEMPTY + this.m_oAttr[a] );
- }
- }
- }
- }
- else
- {
- for (var a in this.m_oAttr)
- {
- v_oElement.setAttribute( a, K_PRMT_sEMPTY + this.m_oAttr[a] );
- }
- }
- if ( this.m_aChild.length > 0 )
- {
- for (var i = 0; i < this.m_aChild.length; i++)
- {
- var c = this.m_aChild[i];
- if ( c && (typeof c.f_create == K_PRMT_sFUNCTION) )
- {
- v_oElement.appendChild( c.f_create() );
- }
- else
- {
- // add text
- v_oElement.innerHTML += ( K_PRMT_sEMPTY + c );
- }
- }
- }
- return v_oElement;
- };
- C_PromptElement.prototype.f_appendChild = function(oP)
- {
- this.m_aChild.push( oP );
- };
- C_PromptElement.prototype.f_appendClass = function( v_sNewClass )
- {
- var v_sClass = this.f_getProperty( "class" );
- v_sClass = ( v_sClass ? v_sClass + K_PRMT_sSP : K_PRMT_sEMPTY ) + v_sNewClass;
- this.f_setProperty( "class", v_sClass );
- };
- C_PromptElement.prototype.f_getProperty = function ( v_sName )
- {
- return ( this.m_oAttr[ v_sName ] );
- };
- C_PromptElement.prototype.f_setProperty = function ( v_sName, v_sValue )
- {
- this.m_oAttr[ v_sName ] = v_sValue;
- };
|