Autore Topic: Progetto pgDesigner 2/3  (Letto 86652 volte)

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #255 il: 05 Luglio 2012, 19:39:23 »
Speravi mi fossi scordato di te? Sbagliavi!!!
In effetti sono un poco incasinato ma...

Rev 543 nella classe PgDataObjectType tra le dichiarazioni manca la dichiarazione della costante Schema.

Ho notato anche un pesante degrado della velocità di avvio generato dalla funzione PgMime.Load che impiega un tempo molto lungo a caricare il file delle definizioni dei Mime Type. Ciò è vero se utilizzi il componente gb.xml; provando a selezionare il vecchio gb.libxml la velocità di elaborazione del documento aumenta notevolmente.

Ora non posso proprio ma domani provo a segnalarlo sul thread in cui ha partecipato Adrien.
« Ultima modifica: 05 Luglio 2012, 21:28:20 da sotema »
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #256 il: 06 Luglio 2012, 19:23:41 »
 ;D

Stò inserendo anche Schema. L'avevo tralasciato perchè stavo pensando a come gestirlo...

Riguardo a gb.xml l'avevo notato anche io. Ho fatto fare allo sviluppatore molte correzioni, perchè non andava proprio.
Ora glielo segnalo nella discussione, sperando la legga...
Credo comunque che la differenza è appunto il numero di oggetti che ha questa nuova libreria, e forse l'aggancio con quella esterna.

Comunque, allo stato attuale, pgDesigner3 funzia con tutte e due, quindi possiamo scegliere.
Probabilmente, adesso modifico il progetto e ripristino la vecchia gb.libxml.

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #257 il: 07 Luglio 2012, 11:36:15 »
Probabilmente, adesso modifico il progetto e ripristino la vecchia gb.libxml.

Potresti mantenere le due librerie insieme, magari utilizzando gb.libxml come ufficiale e testare le modifiche con gb.xml per segnalare eventuali problemi. Sarebbe un grosso contributo allo sviluppo, che ne dici?
 :-\
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #258 il: 07 Luglio 2012, 15:31:59 »
In effetti è quello che stò facendo...  :D

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #259 il: 17 Luglio 2012, 09:11:21 »
Ciao md9327,
ieri ho aggiornato Gambas (rev. 4959) e pgdesigner (rev 553), lancio pgdesigner e  :evil: >:(, si blocca con l'errore initialize error!

Dapprima penso che tu abbia modificato qualcosa nella _init, e quindi eseguo il debug step by step; sorpresa...

alla linea 21 della classe PgLogHandler_New() l'istruzione:
Codice: gambas [Seleziona]
$fifo = PgFifo(limit)

genera l'errore: wanted pgfifo got integer instead

provo a sostituire l'istruzione con:
Codice: gambas [Seleziona]
$fifo = new PgFifo(limit)


rilancio e listruzione viene eseguita correttamente.

Proseguendo arrivo alla linea 77 della classe PgXmlDocument_new(), dove l'istruzione:
Codice: gambas [Seleziona]
$root = PgXmlElement("root")

genera l'errore: wanted pgxmlelement got string instead.

sostituisco l'istruzione con
Codice: gambas [Seleziona]
$root = new PgXmlElement("root")


e tutto procede liscio...

Alla luce delle prove fatte credo si possa asserire che se istanzi una classe passando un parametro opzionale il metodo _call() fallisce. se riesco in serata indagherò più approfonditamente quello che appare  come un bug introdotto dagli ultimi aggiornamenti.
Se hai tempo dacci un occhio e fammi sapere...
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #260 il: 17 Luglio 2012, 10:53:14 »
scoperto l'inghippo: la funzione _init deve essere definita STATIC!!! (come del resto evidenziato nel wiki)
 ;D

In PgDesigner ci sono parecchi metodi _call(...) che sono dinamici. Buon lavoro
« Ultima modifica: 17 Luglio 2012, 10:56:10 da sotema »
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #261 il: 17 Luglio 2012, 11:10:24 »
Mi sono scappati?!?  >:( :evil:

Mannaggia 'a pupattola... Mò me devo mette pure a cercà...  ;D


Però è strano, ieri sera ho lanciato l'applicazione più volte senza probelmi...  :-\

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #262 il: 17 Luglio 2012, 11:15:46 »
lo so, il problema è nato dopo l'ultimo aggiornamento di Gambas.
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #263 il: 17 Luglio 2012, 12:12:30 »
E infatti, proprio ieri sera avevo installato l'ultima build... boh?!?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #264 il: 17 Luglio 2012, 19:12:10 »
scoperto l'inghippo: la funzione _init deve essere definita STATIC!!! (come del resto evidenziato nel wiki)
 ;D

In PgDesigner ci sono parecchi metodi _call(...) che sono dinamici. Buon lavoro

Il problema era proprio _call() (e non _init()  ;D ).

Praticamente la funzione è presente in tutti gli oggetti, quindi mi è toccato modificare tutto...  >:( :evil:
Ad ogni modo, nella documentazione STATIC era facoltativo, dove hai letto che ora DEVE essere STATIC ?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #265 il: 17 Luglio 2012, 19:18:10 »
Non sò se l'avevi notato, ma ora il drag&drop funziona dalla Tool, sia verso la View, sia verso la Tree.
Ho creato anche i pannelli per gli oggetti, per l'editing delle proprietà.
Nel menu, e nel popup, ora sono abilitate le voci "Object Property" e "Graphic Object".
Gli oggetti nella Tool sono visibili in base al tipo di driver del progetto.
Ho anche abilitato ed è funzionante il driver db del progetto, anche se non ancora operativo. La sua attività è ora ancora limitata alla gestione degli oggetti, e quindi non ha ancora le funzionalità di db.
Stò ancora abilitando gli eventi, i messaggi e la gestione degli errori, per la gestione unificata con il manager applicativo.

C'è da lavorare....  :'(

 :D

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #266 il: 17 Luglio 2012, 21:34:08 »
Ad ogni modo, nella documentazione STATIC era facoltativo, dove hai letto che ora DEVE essere STATIC ?
più che altro una intuizione, dalla frase : This method can be static. Then, the class will be able to be used as a function, not the object.
Certo che qualche variazione è stata introdotta dalla rev 4945 che usavo fino a ieri. Ma nel log nn ho trovato nessun riferimento.

Non sò se l'avevi notato, ma ora il drag&drop funziona dalla Tool, sia verso la View, sia verso la Tree.
Ho creato anche i pannelli per gli oggetti, per l'editing delle proprietà.
Nel menu, e nel popup, ora sono abilitate le voci "Object Property" e "Graphic Object".
Gli oggetti nella Tool sono visibili in base al tipo di driver del progetto.
Ho anche abilitato ed è funzionante il driver db del progetto, anche se non ancora operativo. La sua attività è ora ancora limitata alla gestione degli oggetti, e quindi non ha ancora le funzionalità di db.
Stò ancora abilitando gli eventi, i messaggi e la gestione degli errori, per la gestione unificata con il manager applicativo.

C'è da lavorare....  :'(

 :D

Sto mettendoci le mani proprio ora.
Lavoreremo... ;)
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #267 il: 18 Luglio 2012, 10:45:34 »
Lavora Remo ? E mò chi è questo?  ;D

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #268 il: 23 Luglio 2012, 19:24:26 »
Nell'ultima build, ho iniziato a costruire la parte di read/write dei file progetto. Al momento c'è solo il write che sarebbe da testare.
Ho fatto un test veloce, con progetto senza oggetti, e mi pare funzionante. Nel file ci sono un mucchio di info che, almeno per la parte di setup del progetto mi pare alquanto completa.
Non ho provato le proprietà: Printer, Panel, Driver, oltre ai Canvas, gli oggetti e il resto... ci stò lavorando...  :D

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Progetto pgDesigner 2
« Risposta #269 il: 24 Luglio 2012, 10:48:25 »
Credo tu abbia già notato che il salvataggio del progetto entra in loop nella sub Revision_Write della classe PgProject a causa della istruzione Me.Revision = NOW() della sub Me_ChangePropertyEvent(...)

Ho riscontrato anche un'anomalia nel nome del progetto.
Alla creazione di un nuovo progetto imposti il nome del file a $name & ".pgd", poi nella procedura PgApplication._saveAsProject imposti:

Codice: gambas [Seleziona]
filename = project.filename
...
Dialog.Path = filename
...
filename = Dialog.Path


ora per effetto delle proprieta di Dialog il nome del file diventa Application.Path &/  project.filename con l'effetto di andare a salvare il progetto nella cartella dell'applicazione. Tutto bene fintanto che esegui pgDesigner in debug, ma qualora lo installassi come pacchetto potresti incappare in errori di permessi insufficienti.
Credo sia meglio impostare:
...
Dialog.Path = $configManager.Get(PgConfigManager.CFG_PRJPATH) &/ filename
...

dove CFG_PRJPATH corrisponde a $User.Home &/ "pgprojects"

Che ne pensi?
« Ultima modifica: 24 Luglio 2012, 15:54:23 da sotema »
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein