Histórico da Página
Painel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Descrição Classe responsável por construir um track de rotinas
|
Fonte de exemplo: ExFWBreadCrumb.prw
Bloco de código | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
#include 'protheus.ch' //------------------------------------------------------------------- /*/{Protheus.doc} ExFWBreadCrumb Função de exemplo para o componente FWBreadCrumb @see FWBreadCrumb @author arthur.fucher @since 29/12/2015 @version 1.0 /*/ //------------------------------------------------------------------- User Function ExFWBreadCrumb() Local oDlg Local oBreadCrumb Local aLevel := {} Local oHeader Local oMainPanel Local oSay Local oButton DEFINE MSDIALOG oDlg FROM 000,000 TO 600,800 PIXEL //------------------- //Criação do paineis //------------------- oHeader := tPanel():New(01,01,,oDlg,,,,,,100,20) oHeader:Align := CONTROL_ALIGN_TOP oMainPanel := tPanel():New(01,01,,oDlg,,,,,,100,20) oMainPanel:Align := CONTROL_ALIGN_ALLCLIENT //--------------------- //Criação do BreadCrumb //--------------------- oBreadCrumb := FWBreadCrumb():New(oHeader) oBreadcrumb:SetAction( {|x| SetLevel( x , aLevel , oSay , oButton) } ) oBreadcrumb:Activate() //Criação de conteúdo oSay:= TSay():New(01,01,{||'Texto para exibição I'},oMainPanel,,,,,,.T.,,,200,20) oButton := TButton():New( 20, 20, "Next",oMainPanel,{| x | nextLevel( oSay , oBreadCrumb , aLevel, oButton)}, 40,10,,,.F.,.T.,.F.,,.F.,,,.F. ) ACTIVATE MSDIALOG oDlg CENTERED Return //------------------------------------------------------------------- /*/{Protheus.doc} SetLevel Função auxiliar para tratamento quando o clique do BreadCrumb é disparado @param cID ID do item do BreadCrumb @param aLevel Array com itens do path do BreadCrumb @param oSay Objeto TSay da tela @param oButton Objeto TButton da tela @author arthur.fucher @since 29/12/2015 @version 1.0 /*/ //------------------------------------------------------------------- Static Function SetLevel( cID , aLevel, oSay, oButton) Local nPos := AScan( aLevel , { |aItem| aItem[1] == cID } ) //-------------------------------------------------- //Redimensiona o array de acordo com o item clicado //-------------------------------------------------- If nPos > 0 aLevel := ASize( aLevel , nPos ) ElseIf cID == "HOME" //DEFAULT do BREADCRUMB aLevel := ASize( aLevel , 0 ) EndIf //Altera o texto do TSay para o contexto oSay:SetText( cID ) //Apresenta o botão novamente oButton:Show() Return //------------------------------------------------------------------- /*/{Protheus.doc} nextLevel Função auxiliar para ir para o próximo nível do BreadCrumb @param oSay Objeto TSay da tela @param oBreadCrumb Objeto FWBreadCrumb da tela @param aLevel Array com itens do path do BreadCrumb @param oButton Objeto TButton da tela @author arthur.fucher @since 29/12/2015 @version 1.0 /*/ //------------------------------------------------------------------- Static Function nextLevel( oSay , oBreadCrumb , aLevel , oButton ) Local cLevel := cValToChar(Len(aLevel)) //------------------------------------ //Definido um nível para ser o máximo //------------------------------------ If cLevel == "7" oButton:Hide() Else //Adiciona o novo nível no Array AAdd( aLevel , { cLevel , "Titulo" + cLevel } ) //Altera o path do BreadCrumb oBreadcrumb:SetPath( aLevel ) //Altera o texto do TSay para o contexto oSay:SetText(cLevel) EndIf Return |