Skip to content

Commit

Permalink
Atualização Zlib 20190512
Browse files Browse the repository at this point in the history
Novas funções de conversão binaria e ajustes MVC
  • Loading branch information
siga0984 committed May 12, 2019
1 parent 1ded6af commit 69990fe
Show file tree
Hide file tree
Showing 6 changed files with 522 additions and 18 deletions.
82 changes: 76 additions & 6 deletions zApp.prw
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ CLASS ZAPP FROM LONGNAMECLASS
METHOD Done() // Finaliza os objetos

METHOD SetMainDef()
METHOD AddAuxDef()
METHOD BuildMVC()
METHOD RunMVC()

ENDCLASS

Expand Down Expand Up @@ -67,14 +66,85 @@ METHOD DONE() CLASS ZAPP
Return

// ------------------------------------------------------
//

METHOD SetMainDef(cDefName) CLASS ZAPP
::cMainDef := cDefName
Return
Return

// ------------------------------------------------------
//

METHOD AddAuxDef() CLASS ZAPP
Return

METHOD BuildMVC() CLASS ZAPP
// ------------------------------------------------------
//

METHOD RunMVC(cDefName,aCoords) CLASS ZAPP
Local oMVCDef
Local oDefFactory
Local oModelFactory
Local oViewFactory
Local oCtrlFactory
Local aAuxDefs := {}

// Pega os factories do MVC
oDefFactory := ::oEnv:GetObject("ZDEFFACTORY")
oModelFactory := ::oEnv:GetObject("ZMODELFACTORY")
oViewFactory := ::oEnv:GetObject("ZVIEWFACTORY")
oCtrlFactory := ::oEnv:GetObject("ZCONTROLFACTORY")

// Cria a definição do componente
// Futuramente será possivel obter a definição do dicionário de dados
oMVCDef := oDefFactory:GetNewDef(cDefName)

// Acrescenta definições auxiliares no array
aEval( oMVCDef:GetAuxDefs() ,{|x| aadd(aAuxDefs,x ) })

// Cria o objeto de Modelo da Banco
// Passa a definição como parâmetro
oMVCModel := oModelFactory:GetNewModel(oMVCDef)

// Na inicialização precisa passar o ambiente
If !oMVCModel:Init( ::oEnv )
MsgStop( oMVCModel:GetErrorStr() , "Failed to Init Model" )
Return
Endif

// Cria a View a partir da definição
oMVCView := oViewFactory:GetNewView(oMVCDef)

IF aCoords != NIL
// Top, left, bottom, right
oMVCView:SetCoords(aCoords)
Endif

// Cria o controle
// Por enquanto ele faz a ponte direta entre a View e o Modelo
// Os eventos atomicos da view ficam na View, apenas
// os macro eventos sao repassados

oMVCCtrl := oCtrlFactory:GetNewControl(oMVCView)
oMVCCtrl:AddModel(oMVCModel)

While len(aAuxDefs) > 0

// Cria definicoes e modeos auxiliares para acrescentar ao contoler

cDefName := aAuxDefs[1]
aDel(aAuxDefs,1)
aSize(aAuxDefs,len(aAuxDefs)-1)

oMVCDef := oDefFactory:GetNewDef(cDefName)
aEval( oMVCDef:GetAuxDefs() ,{|x| aadd(aAuxDefs,x ) })

oMVCModel := oModelFactory:GetNewModel(oMVCDef)
oMVCModel:Init( ::oEnv )

oMVCCtrl:AddModel(oMVCModel)

Enddo

// Roda a View
oMVCView:Run()

Return
64 changes: 60 additions & 4 deletions zLibEnv.prw
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,13 @@ CLASS ZLIBENV
METHOD NEW() // Construtor
METHOD DONE() // Finalizador / Destrutor

METHOD SETENV() // Seta o minimo do ambiente ( formato de data e acentuação )
METHOD SetObject() // Guarda um objeto do ambiente
METHOD GetObject() // Recupera um objeto do ambiente

METHOD SETENV() // Seta o minimo do ambiente ( formato de data e acentuação )
METHOD SetObject() // Guarda um objeto do ambiente
METHOD GetObject() // Recupera um objeto do ambiente
METHOD InitDBConn() // Inicia objeto de Pool com DBAccess
METHOD InitMVCFactory() // Inicia Factories de MVC
METHOD InitMemCache() // Inicializa memcade -- caso habilitado

ENDCLASS

// ----------------------------------------------------------
Expand Down Expand Up @@ -123,3 +126,56 @@ If nPos > 0
Endif
Return NIL


// ----------------------------------------------------------
//

METHOD InitDBConn() CLASS ZLIBENV
Local oDBConn
oDBConn := ZDBACCESS():New()
oDBConn:SETPOOL(.T. , "DB_POOL")
::SetObject("DBCONN",oDBConn)
Return .T.


// ----------------------------------------------------------
//

METHOD InitMVCFactory() CLASS ZLIBENV
Local oDefFactory
Local oModelFactory
Local oViewFactory
Local oCtrlFactory

// Cria e Guarda o FACTORY de Definições no ambiente
oDefFactory := ZDEFFACTORY():New()
::SetObject("ZDEFFACTORY",oDefFactory)

// Factory de Modelos
oModelFactory := ZMODELFACTORY():New()
::SetObject("ZMODELFACTORY",oModelFactory)

// Factory de Views
oViewFactory := ZVIEWFACTORY():New()
::SetObject("ZVIEWFACTORY",oViewFactory)

// Factory de Controles
oCtrlFactory := ZCONTROLFACTORY():New()
::SetObject("ZCONTROLFACTORY",oCtrlFactory)

Return .T.



METHOD InitMemCache() CLASS ZLIBENV
Local oMemCache

// Cria um objeto de cache em memoria
// e guarda no environment
IF Val(GetSrvProfString("UseMemCache","0")) > 0
oMemCache := ZMEMCACHED():New( "127.0.0.1" , 11211 )
::SetObject("MEMCACHED",oMemCache)
Endif

Return .T.

10 changes: 10 additions & 0 deletions zLibNBin.ch
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,14 @@
#xtranslate Bin2toN( <cBin2> ) => STATICCALL( ZLIBNBIN , Bin2toN , <cBin2> )
#xtranslate NtoBin2( <nNum> ) => STATICCALL( ZLIBNBIN , NtoBin2 , <nNum> )

#xtranslate NTOBIT8( <nNum> ) => STATICCALL( ZLIBNBIN , NTOBIT8 , <nNum> )
#xtranslate NTOBIT16( <nNum> ) => STATICCALL( ZLIBNBIN , NTOBIT16 , <nNum> )

#xtranslate NTOBITS( <nNum> ) => STATICCALL( ZLIBNBIN , NTOBITS , <nNum> )
#xtranslate BITSTON( <nNum> ) => STATICCALL( ZLIBNBIN , BITSTON , <nNum> )

#xtranslate Bit4ToHex( <cBit4> ) => STATICCALL( ZLIBNBIN , Bit4ToHex , <cBit4> )

#xtranslate BIT8TON( <cBit8> , <nNum> ) => STATICCALL( ZLIBNBIN , BIT8TON , <cBit8> , @<nNum> )

#endif
Loading

0 comments on commit 69990fe

Please sign in to comment.