Subversion Repositories DevTools

Rev

Rev 13 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%
'=============================================================
'//
'//                                                     TabControl
'//
'// version:            2.1
'//     last modified:  10-May-2005 17:03 by Sasha Vukovic
'=============================================================
%>
<%
Class TabControl
        
        Private mArrDef()
        Private mobjDefMap
        Private mobjTemplateManager
        Private mTabStyle
        Private mNumOfTabAttribute
        Private mLastTabAttributeInx
        Private mSelectedTabInx
        
        Private mPreCodeTemplate
        Private mPostCodeTemplate
        Private mSelectedTabTemplate
        Private mDeselectedTabTemplate
        Private mDisabledTabTemplate
        Private mSelectedTabCSS
        Private mDeselectedTabCSS
        
        Private mInxTabName
        Private mInxTabLink
        Private mInxJavaScript
        Private mInxImgSelected
        Private mInxImgDeselected
        Private mInxImgDisabled
        Private mInxHint
        Private mInxForceDisable
        
        
        Public Property Let TemplateDoc( sTemplate ) 
                mobjTemplateManager.TemplateDoc = sTemplate
                
        End Property 
        
        
        Public Property Let TabStyle( sStyleId ) 
                ' Set mTabStyle value
                mTabStyle = sStyleId
                
                ' Set Templates
                mPreCodeTemplate                = mobjTemplateManager.getElementValue ( mTabStyle &"/PreTabsCode" )
                mSelectedTabTemplate    = mobjTemplateManager.getElementValue ( mTabStyle &"/TabSelected" )
                mDeselectedTabTemplate  = mobjTemplateManager.getElementValue ( mTabStyle &"/TabDeselected" )
                mDisabledTabTemplate    = mobjTemplateManager.getElementValue ( mTabStyle &"/TabDisabled" )
                mPostCodeTemplate               = mobjTemplateManager.getElementValue ( mTabStyle &"/PostTabsCode" )
                mSelectedTabCSS                 = mobjTemplateManager.getElementValue ( mTabStyle &"/TabSelectedCSS" )
                mDeselectedTabCSS               = mobjTemplateManager.getElementValue ( mTabStyle &"/TabDeselectedCSS" )
                
        End Property 
        
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub SetImgSelected ( sTabName, sImgSelected )
                mArrDef ( mInxImgSelected, CInt( mobjDefMap.Item ( CStr( sTabName ) ) ) ) = sImgSelected
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub SetImgDeselected ( sTabName, sImgDeselected )
                mArrDef ( mInxImgDeselected, CInt( mobjDefMap.Item ( CStr( sTabName ) ) ) ) = sImgDeselected
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub SetHint ( sTabName, sHint )
                mArrDef ( mInxHint, CInt( mobjDefMap.Item ( CStr( sTabName ) ) ) ) = sHint
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub SelectByIndex ( nTabInx )
                mSelectedTabInx = CInt( nTabInx )
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub SelectByName ( sTabName )
                Call SelectByIndex (  CInt( mobjDefMap.Item ( CStr( sTabName ) ) )  )
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub DisableByIndex ( nTabInx )
                mArrDef ( mInxForceDisable, nTabInx ) = enumDB_YES
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub DisableByName ( sTabName )
                Call DisableByIndex (  CInt( mobjDefMap.Item ( CStr( sTabName ) ) )  )
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub EnableByIndex ( nTabInx )
                mArrDef ( mInxForceDisable, nTabInx ) = ""
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub EnableByName ( sTabName )
                Call EnableByIndex (  CInt( mobjDefMap.Item ( CStr( sTabName ) ) )  )
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub Add ( aTabDef )
                Dim newArrayDim, attrInx
                
                newArrayDim = UBound ( mArrDef, 2 ) + 1
                
                ReDim Preserve mArrDef( mNumOfTabAttribute, newArrayDim )
                
                mobjDefMap.Add Cstr( aTabDef( mInxTabName ) ), CStr( newArrayDim - 1 )
                
                
                For attrInx = 0 To mLastTabAttributeInx
                        mArrDef ( attrInx,      newArrayDim - 1 ) = aTabDef ( attrInx )
                Next
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub AddTabDefnition ( aTabDef )
                Dim attrInx, LastElemnt
                
                LastElemnt = UBound( aTabDef )
                
                For attrInx = 0 To LastElemnt Step mNumOfTabAttribute
                        Call Add (      Array ( aTabDef( attrInx ), _
                                                            aTabDef( attrInx+1 ), _
                                                                aTabDef( attrInx+2 ), _
                                                                aTabDef( attrInx+3 ), _
                                                                aTabDef( attrInx+4 ), _
                                                                aTabDef( attrInx+5 ), _
                                                                aTabDef( attrInx+6 ), _
                                                                aTabDef( attrInx+7 ) _
                                                          ) _
                                        )
                Next
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub Render ()
                Dim tabInx, LastElemnt, tabImgSelect, tabImgDiselect, tabImgDisable, tabHint
                
                LastElemnt = UBound( mArrDef, 2 ) - 1
                
                
                Response.write mPreCodeTemplate
                
                For tabInx = 0 To LastElemnt
                        tabImgSelect    = ""
                        tabImgDiselect  = ""
                        tabImgDisable   = ""
                        tabHint                 = ""
                        
                        If mArrDef ( mInxImgSelected, tabInx ) <> "" Then               tabImgSelect = "<img src='"& mArrDef ( mInxImgSelected, tabInx ) &"' border='0' align='absmiddle'>&nbsp;"
                        If mArrDef ( mInxImgDeselected, tabInx ) <> "" Then     tabImgDiselect = "<img src='"& mArrDef ( mInxImgDeselected, tabInx ) &"' border='0' align='absmiddle'>&nbsp;"
                        If mArrDef ( mInxImgDisabled, tabInx ) <> "" Then               tabImgDisable = "<img src='"& mArrDef ( mInxImgDisabled, tabInx ) &"' border='0' align='absmiddle'>&nbsp;"
                        If mArrDef ( mInxHint, tabInx ) <> "" Then tabHint = "title='"& mArrDef ( mInxHint, tabInx ) &"'"
                        
                        If mArrDef ( mInxForceDisable, tabInx ) = enumDB_YES Then
                                Response.write ApplyTemplate( tabImgDisable & mArrDef ( mInxTabName, tabInx ), mDisabledTabTemplate )
                                
                        Else
                                If tabInx = mSelectedTabInx Then
                                        Response.write ApplyTemplate( "<a href='"& mArrDef ( mInxTabLink, tabInx ) &"' class='"& mSelectedTabCSS &"' "& tabHint  &" "&  mArrDef ( mInxJavaScript, tabInx ) &">"& tabImgSelect & mArrDef ( mInxTabName, tabInx ) &"</a>", mSelectedTabTemplate )
                                        
                                Else
                                        Response.write ApplyTemplate( "<a href='"& mArrDef ( mInxTabLink, tabInx ) &"' class='"& mDeselectedTabCSS &"' "& tabHint  &" "&  mArrDef ( mInxJavaScript, tabInx ) &">"& tabImgDiselect & mArrDef ( mInxTabName, tabInx ) &"</a>", mDeselectedTabTemplate )
                                        
                                End If
                                
                        End If
                        
                Next
                
                Response.write mPostCodeTemplate
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Private Function ApplyTemplate ( sText, sTemplate )
                ApplyTemplate = Replace ( sTemplate, "%TEXT%", sText )
        End Function
        '-----------------------------------------------------------------------------------------------------------------
        Private Sub Class_Initialize()
                '// Perform action on creation of object. e.g. Set myObj = New ThisClassName
                Set mobjDefMap = CreateObject("Scripting.Dictionary")
                Set mobjTemplateManager = New TemplateManager
                
                mNumOfTabAttribute = 8          ' Number of attributes in array which define one tab.
                
                ReDim mArrDef ( mNumOfTabAttribute, 0 )
                mInxTabName                     = 0
                mInxTabLink                     = 1
                mInxJavaScript          = 2
                mInxImgSelected         = 3
                mInxImgDeselected       = 4
                mInxImgDisabled         = 5
                minxHint                        = 6
                mInxForceDisable        = 7
                mLastTabAttributeInx = mNumOfTabAttribute - 1
                
                mSelectedTabInx = 0                     ' Select first tab by default
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Private Sub Class_Terminate()
                '// Perform action on object disposal. e.g. Set myObj = Nothing
                Set mobjDefMap = Nothing
                Set mobjTemplateManager = Nothing
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
End Class
%>