OW2 Consortium telosys

Rev

Blame | Last modification | View Log | RSS feed

//------------------------------------------------------------------------------
// Tools_class.js ( set of static methods )
// Telosys framework
// Author  : Laurent Guérin 
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
function Tools()
{
}
//------------------------------------------------------------------------------
Tools.xmlString = function (sVal)
{
        if ( sVal == null )
        {
                return null ;
        }
        var sXml = sVal ;
        sXml = sXml.replace(/&/g, "&" ); // A faire en premier 
        sXml = sXml.replace(/g, "<" );
                sXml = sXml.replace(/>/g, ">" );
        sXml = sXml.replace(/\"/g, """ );
        /**
        if ( sVal.length != sXml.length )
        {
                alert ( "xmlString : [" + sVal + "] --> [" + sXml + "]" );
        }
        **/
        return sXml ;
}
//------------------------------------------------------------------------------
Tools.getElement = function ( arg )
{
        return element ;
}
//------------------------------------------------------------------------------
// Return the position (X,Y) of an element of the current document
// arg    : String => element Id 
//          Other  => element itself
// return : array ( [0] -> x , [1] -> y )
Tools.getPosition = function ( arg )
{
        var oElement = null ;
        if ( typeof arg == "string" )
        {
                //alert ( "Trace: arg is a String => getElementById ('" + arg + "')" );
                oElement = document.getElementById(arg);
                if ( oElement == null )
                {
                        alert ( "Error: Tools.getPosition() : Cannot find element with id = '" + arg + "'" );
                        return null ;
                }
        }
        else
        {
                //alert ( "Trace: arg is not a String => ref" );
                oElement = arg;
                if ( oElement == null )
                {
                        alert ( "Error: Tools.getPosition() : Element is null ! " );
                        return null ;
                }
        }
        
        if ( oElement.offsetParent ) 
        {
                for( var posX = 0, posY = 0; oElement.offsetParent ; oElement = oElement.offsetParent ) 
                {
                        posX += oElement.offsetLeft;
                        posY += oElement.offsetTop;
                }
                return [ posX, posY ];
        } 
        else 
        {
                return [ oElement.x, oElement.y ];
        }
}
//------------------------------------------------------------------------------
Tools.fieldMessageClass = null ;
Tools.fieldMessageXOffset = null ;
Tools.fieldMessageYOffset = null ;
Tools.setFieldMessageClass = function ( sClassName )
{
        Tools.fieldMessageClass = sClassName ;
}
Tools.setFieldMessageOffset = function ( iXOffset, iYOffset )
{
        Tools.fieldMessageXOffset = iXOffset ;
        Tools.fieldMessageYOffset = iYOffset ;
}
//------------------------------------------------------------------------------
Tools.fieldMessage = function (id, msg)
{
        function _onClick()
        {
                //alert("On Click ! this.id = "  + this.id );
                this.style.visibility = "hidden" ;
        }
        
        var position = Tools.getPosition(id); // (X,Y)
        if ( position != null )
        {
                var x = position[0];
                var y = position[1];
                //alert ( "Position : x = " + x + " , y = " + y );
                
                var sBubbleId = id + "_msg" ;
                var oBubble = document.getElementById(sBubbleId);
                if ( oBubble == null ) // Not yet created 
                {
                        //alert ( "oBubble == null => createElement" );
                        oBubble = document.createElement ( "table" ) ; 
                        oBubble.id = sBubbleId ;
                        //oBubble.className = "bubble" ;
                        if ( Tools.fieldMessageClass != null )
                        {
                                // Apply style class
                                oBubble.className = Tools.fieldMessageClass ;
                        }
                        else
                        {
                                // Use default style
                                oBubble.style.cursor      = "default" ;
                                oBubble.style.borderStyle = "solid" ;
                                oBubble.style.borderWidth = "1px" ;
                                oBubble.style.borderColor = "orange" ;
                                oBubble.style.color       = "navy" ; 
                                oBubble.style.fontFamily  = "arial" ;
                                oBubble.style.fontSize    = "10pt" ;
                                oBubble.style.backgroundColor = "#FFCC66" ;
                        }
                        oBubble.style.position   = "absolute" ;
                        oBubble.style.visibility = "hidden" ;
                        oBubble.onclick = _onClick ;
                        document.body.appendChild(oBubble);
                        //--- Create Row (TR) and Cell (TD)
                        var oTR = oBubble.insertRow(0);
                        var oTD = oTR.insertCell(0);
                }
                if ( oBubble != null )  
                {
                        //alert ( "oBubble != null => set attributes ..." );
                        var oTD = oBubble.rows[0].cells[0];
                        if ( oTD != null )
                        {
                                oTD.innerHTML = msg ;
                        }
                        else
                        {
                                alert("Error: Cannot find cell ( table.rows[0].cells[0] )" );
                        }
                        var xOffset = ( Tools.fieldMessageXOffset != null ? Tools.fieldMessageXOffset : 10 ) ;
                        var yOffset = ( Tools.fieldMessageYOffset != null ? Tools.fieldMessageYOffset : 12 ) ;
                        oBubble.style.left       = x + xOffset ;
                        oBubble.style.top        = y + yOffset ;
                        oBubble.style.visibility = "visible" ;
                }
                else
                {
                        alert ( "Error: Cannot get or create bubble DIV !" ) ;
                }
        }
        else
        {
                alert("Error: Cannot find position for id '" + id + "' !");
        }
}
//------------------------------------------------------------------------------

Generated by GNU enscript 1.6.4.