%
'=============================================================
'//
'// Action Button Control
'//
'=============================================================
%>
<%
'--------------- Global Constants ----------------
Const enumABTNCTRL_ON_READONLY_HIDE = 1
Const enumABTNCTRL_ON_READONLY_DISABLE = 2
'-------------------------------------------------
Class ActionButton
Public ABTN_NAME
Public TEXT
Public ACTION_LINK
Public EVENT_HANDLER
Public IMG_ENABLED
Public IMG_DISABLED
Public HINT
Public VISIBLE
Public ACTIVE
Public IS_READONLY_ACTION
Public HIDE_ON_CLOSED
Public Sub Class_Initialize
ABTN_NAME = "NONE"
VISIBLE = "Y"
ACTIVE = "Y"
IS_READONLY_ACTION = "N"
HIDE_ON_CLOSED = "N"
End Sub
Public Sub Class_Terminate
End Sub
' Psuedo constructor
' Use: Set myButton = New ActionButton.Init("btnName")
Public Sub Init(bName)
ABTN_NAME = bName
Set Init = Me
End Sub
End Class
Class ActionButtonControl
Private mArrAbtnDef()
Private mobjNameDefMap ' Item can be accesed by name. Must be unique within one page
Private mobjIdDefMap ' Item can be accesed by id. Must be unique within one page. If NULL, ubound is assigned to it
Private mobjSeparator ' Has a name of item after separator is applied
Private mobjACActionsMap ' Map of buttons to actions from access control
Private mnButtonSpacer
Private mnImageHspace
Private mNumOfProperties
Private mLastPropertyInx
Private mbDisableAll
Private mbIsReadonly
Private mbIsClosed
Private mReadonlyActionBehaviour
Private InxName
Private InxTxt
Private InxLink
Private InxEventHandler
Private InxImg
Private InxImgOff
Private InxHint
Private InxVisible
Private InxActive
Private InxIsReadonlyAction
Private InxHideOnClosed
Public Property Let AllActive ( cActive )
If cActive = enumDB_NO Then
mbDisableAll = TRUE
Else
mbDisableAll = FALSE
End If
End Property
Public Property Let ButtonSpacer ( nWidth )
mnButtonSpacer = nWidth
End Property
Public Property Let ImageHspace ( nWidth )
mnImageHspace = nWidth
End Property
Public Property Let IsReadonlyAction ( IsReadonly )
If IsReadonly = enumDB_YES Then
mbIsReadonly = TRUE
ElseIf IsReadonly = enumDB_NO Then
mbIsReadonly = FALSE
Else
mbIsReadonly = IsReadonly
End If
End Property
Public Property Let setClosed ( isClosed )
mbIsClosed = isClosed
End Property
Public Property Let ReadonlyActionBehaviour ( nEnum )
mReadonlyActionBehaviour = nEnum
End Property
'-----------------------------------------------------------------------------------------------------------------
Public Sub SetRelationship ( sButtonName, sActionName )
Call mobjACActionsMap.Add ( sButtonName, sActionName )
End Sub
'-----------------------------------------------------------------------------------------------------------------
Private Sub SetItemPropertyByIndex ( nInx, nProperty, Value )
If nInx = "" Then Exit Sub ' Exit sub if you don't find defined button
If nProperty = "" OR Value = "" Then Err.Raise 8, "Method SetItemPropertyByIndex", "Empty parameters found. nInx="& nInx &", nProperty="& nProperty &", Value="& Value
mArrAbtnDef ( nProperty, nInx ) = Value
'Response.write "mArrAbtnDef ( "& nProperty &", "& nInx &" ) = "& Value &"
"
End Sub
'-----------------------------------------------------------------------------------------------------------------
Private Function GetItemPropertyByIndex ( nInx, nProperty )
GetItemPropertyByIndex = ""
If nInx = "" Then Exit Function ' Exit sub if you don't find defined button
If nProperty = "" Then Err.Raise 8, "Method GetItemPropertyByIndex", "Empty parameters found. nInx="& nInx &", nProperty="& nProperty
GetItemPropertyByIndex = Cstr(mArrAbtnDef ( nProperty, nInx ))
End Function
'-----------------------------------------------------------------------------------------------------------------
Private Function LastItemInx ()
LastItemInx = UBound ( mArrAbtnDef, 2 )
End Function
'-----------------------------------------------------------------------------------------------------------------
Public Sub Render ( aAbtnList, ByRef oAccessControl )
Dim itemInx, itemName, nLastItemInx, btnImage, ButtonStr, ButtonStrDisabled, bIsVisibleAC, bIsActiveAC
Response.write "
| "&_ " | " Else ButtonStr = _ ""&_ ""&_ btnImage & mArrAbtnDef( InxTxt, itemInx ) &""&_ " | " End If '-- Define Disabled Button ' A Null value of '' will use InxImg with the lessOpacity Class hint = hint & " [Disabled]" If IsNull(mArrAbtnDef( InxImgOff, itemInx )) Then ButtonStrDisabled = _ ""&_
" | "
Else
ButtonStrDisabled = _
""&_
" | "
End If
'-- Get Access Control permissions --
bIsVisibleAC = TRUE
bIsActiveAC = TRUE
If NOT IsNull( oAccessControl ) Then
' Access control object is supplied
If mobjACActionsMap.Exists ( itemName ) Then
' Relationship supplied
bIsVisibleAC = oAccessControl.IsVisible ( mobjACActionsMap.Item( itemName ) )
bIsActiveAC = oAccessControl.IsActive ( mobjACActionsMap.Item( itemName ) )
'Response.write "
Configuration information will be maintained.',{title:'Unlink Deamon', button:'Unlink', url: 'HREF'});""""""",_ "icons/break_link.gif",_ null,_ "Unlink Daemon from entry",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnEditBlatMachine") Then varValues = Array("btnEditBlatMachine", null,_ """javascript:;""",_ """onClick=""""MM_openVixIFrame('wAddPkgReplica.asp?type=edit&server_id=""& server_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Package Replica');""""""",_ "icons/i_edit.gif",_ NULL,_ "Edit Package Replica",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnDeleteBlatMachine") Then varValues = Array("btnDeleteBlatMachine", null,_ """_DeletePkgReplica.asp?rfile=""& SCRIPT_NAME &""&server_id=""& server_id &""&""& objPMod.ComposeURL()",_ """vixConfirm('Remove Package Replica \'""& display_name &""\' from this list?',{title:'Delete Package Replica', button:'Delete', url: 'HREF'});""""""",_ "icons/i_remove.gif",_ null,_ "Delete Package Replica",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnPendingIntegration") Then varValues = Array("btnPendingIntegration", null,_ """_modify_product_state.asp?state_id=1&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_ """vixConfirm('Do you want to proceed to make this product pending for INTEGRATION?',{title:'Make Pending', button:'Pending', url: 'HREF'});""""""",_ "icons/PendingIntegration.gif",_ null,_ "Make this product pending for Integration.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnPendingTest") Then varValues = Array("btnPendingTest", null,_ """_modify_product_state.asp?state_id=2&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_ """vixConfirm('Do you want to proceed to make this product pending for Test?',{title:'Make Test', button:'Test', url: 'HREF'});""""""",_ "icons/PendingTest.gif",_ null,_ "Make this product pending for Test.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnPendingDeployment") Then varValues = Array("btnPendingDeployment", null,_ """_modify_product_state.asp?state_id=3&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_ """vixConfirm('Do you want to proceed to make this product pending for DEPLOYMENT?',{title:'Make Deploy', button:'Deploy', url: 'HREF'});""""""",_ "icons/PendingDeployment.gif",_ null,_ "Make this product pending for Deployment.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnRejectProduct") Then varValues = Array("btnRejectProduct", null,_ """_modify_product_state.asp?state_id=4&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_ """vixConfirm('Do you want to REJECT this product from DEPLOYMENT?',{title:'Reject Product', button:'Reject', url: 'HREF'});""""""",_ "icons/i_reject_pending.gif",_ null,_ "Reject this product from Deployment.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnPendingIntegrateAndDeploy") Then varValues = Array("btnPendingIntegrateAndDeploy", null,_ """_modify_product_state.asp?state_id=5&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_ """vixConfirm('Do you want to proceed to make this product pending for INTEGRATION and DEPLOYMENT?',{title:'Pending Product', button:'Confirm', url: 'HREF'});""""""",_ "icons/PendingDeployment.gif",_ null,_ "Make this product pending for Integration and Deployment.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnDeleteSchedule") Then varValues = Array("btnDeleteSchedule", null,_ """_DeleteSchedule.asp?scheduled_id=""& scheduled_id &""&""& objPMod.ComposeURL()",_ """vixConfirm('Remove Schedule from this list?',{title:'Remove Schedule', button:'Remove', url: 'HREF'});""""""",_ "icons/i_remove.gif",_ "icons/i_remove_dis.gif",_ "Delete Schedule",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnApproveMerge") Then varValues = Array("btnApproveMerge", null,_ """_approve_merge.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_ """vixConfirm('The release will be updated by this merge operation',{title:'Approve Merge', button:'Merge', url: 'HREF'});""""""",_ "icons/i_make_released.gif",_ "icons/i_make_released_off.gif",_ "Approve and carry out the pending merge operation",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnRejectAutobuildPackage") Then varValues = Array("btnRejectAutobuildPackage", null,_ """_make_rejected.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_ """vixConfirm('Rejecting a package already approved for autobuild will set it back to Work-In-Progress',{title:'Reject Package', button:'Reject', url: 'HREF'});""""""",_ "icons/i_reject_pending.gif",_ "icons/i_reject_pending_off.gif",_ "Unapprove autobuild, move back to Work-In-Progress.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnDeleteDaemonInst") Then varValues = Array("btnDeleteDaemonInst", null,_ """_DeleteDaemonInstruction.asp?rfile=""& ScriptName &""&inst_id=""& daemonInstId &""&""& objPMod.ComposeURL()",_ """vixConfirm('Delete the Daemon Instruction from this list?',{title:'Delete Instruction', button:'Delete', url: 'HREF', width : 350, height : 150});""""""",_ "icons/i_remove.gif",_ null,_ "Delete this Daemon Instruction",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnEditDaemonInst") Then varValues = Array("btnEditDaemonInst", null,_ """javascript:;""",_ """onClick=""""MM_openVixIFrame('wAddDaemonInstruction.asp?edit=true&inst_id=""& daemonInstId & ""&sort="" & parSortOrder & ""&rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Edit Daemon Instruction');""""""",_ "icons/i_edit.gif",_ NULL,_ "Edit this Daemon Instruction",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnAddDaemonInstRipplePackage") Then varValues = Array("btnAddDaemonInstRipplePackage", null,_ """javascript:;""",_ """onClick=""""MM_openVixIFrame('wAddDaemonInstructionSimple.asp?op_code=0"" &""&rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Ripple or Test Build Package');""""""",_ "images/ripplesquare.gif",_ NULL,_ "Request the Build Daemon to ripple this package version",_ "Y",_ "Y",_ "N",_ "Y") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnDelDaemonInstRipplePackage") Then varValues = Array("btnDelDaemonInstRipplePackage", null,_ """_DeleteDaemonInstruction.asp?rfile=""& ScriptName &""&opCode="" & OP_CODE_0_RIPPLE_BUILD_PACKAGE & ""&""& objPMod.ComposeURL()",_ """vixConfirm('Delete the Ripple Request?',{title:'Delete Ripple Request', button:'Delete', url: 'HREF', width : 350, height : 150});""""""",_ "images/CascadeSquareDel.gif",_ NULL,_ "Delete the Ripple Request",_ "Y",_ "Y",_ "N",_ "Y") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnDelDaemonInstTestPackage") Then varValues = Array("btnDelDaemonInstTestPackage", null,_ """_DeleteDaemonInstruction.asp?rfile=""& ScriptName &""&opCode="" & OP_CODE_1_TEST_BUILD_PACKAGE & ""&""& objPMod.ComposeURL()",_ """vixConfirm('Delete the Test Build Request?',{title:'Delete Test Build Request', button:'Delete', url: 'HREF', width : 350, height : 150});""""""",_ "images/testSquareDel.gif",_ NULL,_ "Delete the Test Build Request",_ "Y",_ "Y",_ "N",_ "Y") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnAddDaemonInstTestBuildPackage") Then varValues = Array("btnAddDaemonInstTestBuildPackage", null,_ """javascript:;""",_ """onClick=""""MM_openVixIFrame('wAddDaemonInstruction.asp?op_code=1"" &""&rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Add Daemon Instruction');""""""",_ "images/abtn_test_build.gif",_ NULL,_ "Request the Build Daemon to test build this WIP package version",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnMoveWIPToRelease") Then varValues = Array("btnMoveWIPToRelease", null,_ """javascript:;""",_ """onClick=""""MM_openVixIFrame('_wform_move_wip.asp"" &""?rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Move WIP');""""""",_ "images/abtn_move_wip_to_release.gif",_ "images/abtn_move_wip_to_release_off.gif",_ "Move this WIP to another release.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnLockPackage") Then varValues = Array("btnLockPackage", null,_ """_s_lock_package.asp?pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_ """vixConfirm('Lock Package.
This will prevent changes to the package.',{title:'Lock Package', button:'Lock', url: 'HREF'});""""""",_ "icons/i_lock.gif",_ "icons/i_lock_off.gif",_ "Lock this package.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnUnLockPackage") Then varValues = Array("btnUnLockPackage", null,_ """_s_unlock_package.asp?pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_ """vixConfirm('Unlock Package.
This may have serious side effects.',{title:'Unlock Package', button:'Unlock', url: 'HREF'});""""""",_ "icons/i_unlock.gif",_ "icons/i_unlock_off.gif",_ "Unlock this package.",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnEditProjectExtensions") Then varValues = Array("btnEditProjectExtensions", null,_ """javascript:;""",_ """onClick=""""MM_openVixIFrame('wAddProjectExtension.asp?type=edit&ext=""& extName &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Project Extension');""""""",_ "icons/i_edit.gif",_ NULL,_ "Edit Project Extensions",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnDeleteProjectExtension") Then varValues = Array("btnDeleteProjectExtension", null,_ """_DeleteProjectExtension.asp?rfile=""& SCRIPT_NAME &""&ext=""& extName &""&""& objPMod.ComposeURL()",_ """vixConfirm('Remove Project Extension: \'""& extName &""\' from this list?
This will prevent it from being used in new package versions.',{title:'Remove Project Extension', button:'Remove', url: 'HREF'});""""""",_ "icons/i_remove.gif",_ null,_ "Delete Project Extension",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnEditGBE_Machclass") Then varValues = Array("btnEditGBE_Machclass", null,_ """javascript:;""",_ """onClick=""""MM_openVixIFrame('wAddMachclass.asp?type=edit&bm_id=""& bm_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Machine Class');""""""",_ "icons/i_edit.gif",_ NULL,_ "Edit this GBE MachClass value",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnDeleteGBE_Machclass") Then varValues = Array("btnDeleteGBE_Machclass", null,_ """wAddMachclass.asp?type=delete&bm_id=""& bm_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL()",_ """vixConfirm('Delete the \'""& GBE_VALUE &""\' Machine Class',{title:'Delete Machine Class', button:'Delete', url: 'HREF'});""""""",_ "icons/i_remove.gif",_ null,_ "Delete this GBE MachClass value",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnEditGBE_BuildStandard") Then varValues = Array("btnEditGBE_BuildStandard", null,_ """javascript:;""",_ """onClick=""""MM_openVixIFrame('wAddBuildStandard.asp?type=edit&bsa_id=""& bsa_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Build Standard');""""""",_ "icons/i_edit.gif",_ NULL,_ "Edit this Build Standard",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If If isAbtnRequired(aAbtnList, "btnDeleteGBE_BuildStandard") Then varValues = Array("btnDeleteGBE_BuildStandard", null,_ """_DeleteBuildStandard.asp?rfile=""& SCRIPT_NAME &""&bsa_id=""& bsa_id &""&""& objPMod.ComposeURL()",_ """vixConfirm('Delete the \'""& GBE_VALUE &""\' Build Standard',{title : 'Delete Build Standard', button:'Delete', url: 'HREF'});""""""",_ "icons/i_remove.gif",_ null,_ "Delete this Build Standard",_ "Y",_ "Y",_ "N",_ "N") rsQry.AddNew varFields, varValues End If ' Move cursor to the first record rsQry.MoveFirst If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then Call LoadButtons ( rsQry.GetRows() ) End If rsQry.Close Set rsQry = Nothing End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub LoadButtons ( aRows ) Dim nProperty, newArrayDim, LastRow, rowNum LastRow = UBound( aRows, 2 ) For rowNum = 0 To LastRow ' Increase array by 1 newArrayDim = LastRowInx() + 1 ReDim Preserve mArrAbtnDef( mNumOfProperties, newArrayDim ) mobjNameDefMap.Item ( Cstr( aRows ( InxName, rowNum ) ) ) = newArrayDim For nProperty = 0 To mLastPropertyInx mArrAbtnDef ( nProperty, newArrayDim ) = aRows ( nProperty, rowNum ) Next Next End Sub '----------------------------------------------------------------------------------------------------------------- Private Function LastRowInx () LastRowInx = UBound ( mArrAbtnDef, 2 ) End Function '----------------------------------------------------------------------------------------------------------------- Public Sub AddSeparatorAfter ( sItemName, sSeparatorWidth ) If InStr( sItemName, " " ) > 0 Then Err.Raise 8, "Method AddSeparatorAfter", "Item Name '"& sItemName &"' cannot have spaces." mobjSeparator.Add (Cstr(sItemName)), CStr(sSeparatorWidth) End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub AddSeparator ( sSeparatorWidth ) mobjSeparator.Add ( Cstr(mArrAbtnDef(InxName, LastItemInx())) ), CStr(sSeparatorWidth) End Sub '----------------------------------------------------------------------------------------------------------------- Private Sub SetItemDefaults ( sItemName ) ' Additional default setup Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxActive, enumDB_YES ) ' Default Active = enumDB_YES End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub Text ( sItemName, Value ) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxTxt, Value ) End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub Image ( sItemName, Value ) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxImg, Value ) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxImgOff, Value ) ' Default image disable to be the same as image End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub ImageOff ( sItemName, Value ) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxImgOff, Value ) End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub Link ( sItemName, Value ) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxLink, Value ) End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub EventHandler ( sItemName, Value ) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxEventHandler, Value ) End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub Hint ( sItemName, Value ) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxHint, Value ) End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub Visible ( sItemName, Value ) 'Response.write sItemName &"here"& mobjNameDefMap.Item (Cstr(sItemName)) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxVisible, Value ) End Sub '----------------------------------------------------------------------------------------------------------------- Public Sub ReadOnly ( sItemName, Value ) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxIsReadonlyAction, Value ) End Sub '----------------------------------------------------------------------------------------------------------------- Public Function IsVisible ( sItemName ) 'Response.write sItemName &"here"& mobjNameDefMap.Item (Cstr(sItemName)) IsVisible = GetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxVisible ) End Function '----------------------------------------------------------------------------------------------------------------- Public Sub Active ( sItemName, Value ) 'Response.write sItemName &"here"& mobjNameDefMap.Item (Cstr(sItemName)) Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxActive, Value ) End Sub '----------------------------------------------------------------------------------------------------------------- Public Function IsActive ( sItemName ) IsActive = GetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxActive ) End Function '----------------------------------------------------------------------------------------------------------------- Private Sub Class_Initialize() '// Perform action on creation of object. e.g. Set myObj = New ThisClassName Set mobjNameDefMap = CreateObject("Scripting.Dictionary") Set mobjIdDefMap = CreateObject("Scripting.Dictionary") Set mobjSeparator = CreateObject("Scripting.Dictionary") Set mobjACActionsMap = CreateObject("Scripting.Dictionary") 'mbIsReadonly = FALSE ' Tell control that it should use only readonly action buttons (i.e. actions which will not alter database ) mReadonlyActionBehaviour = enumABTNCTRL_ON_READONLY_HIDE ' Tell control what to do by default if mbIsReadonly = TRUE mnButtonSpacer = 0 mnImageHspace = 4 mNumOfProperties = 11 ' Number of properties in array which define one menu item. mLastPropertyInx = mNumOfProperties - 1 mbDisableAll = FALSE ReDim mArrAbtnDef ( mNumOfProperties, -1 ) InxName = 0 InxTxt = 1 InxLink = 2 InxEventHandler = 3 InxImg = 4 InxImgOff = 5 InxHint = 6 InxVisible = 7 InxActive = 8 InxIsReadonlyAction = 9 InxHideOnClosed = 10 End Sub '----------------------------------------------------------------------------------------------------------------- Private Sub Class_Terminate() '// Perform action on object disposal. e.g. Set myObj = Nothing Set mobjNameDefMap = Nothing Set mobjIdDefMap = Nothing Set mobjSeparator = Nothing Set mobjACActionsMap = Nothing End Sub '----------------------------------------------------------------------------------------------------------------- End Class %>