Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/03/2007, 17h55   #1
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Par défaut [forms10g]Problème de synchronisation avec les javabeans

Bonjour à tous,

Je continue mes tests sur les javabeans et je rencontre un problème de synchronisation.

Voici le code que j'ai dans un trigger WHEN-BUTTON-PRESSED dans forms :
Code :
1
2
set_custom_property ('JAVABEAN.MON_BEAN', 1, 'VALDEF', 'TOTO');
set_item_property ('JAVABEAN.MON_BEAN', visible, property_true);
Dans le javabean dans la fonction setProperty voilà ce que j'ai :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  public BOOLEAN setProperty (ID propriete, Object valeur)
  {
    // Definition valeur par defaut
   IF (propriete == VALDEF)
    {
       String valeur_defaut = valeur.toString().trim();
       System.out.println ("Valeur par defaut : " + valeur_defaut);
       // Traitement
    }
    else IF (propriete == ID.VISIBLE)
    {
      System.out.println ("Modification propriete visible");
      // Traitement
 
    }
    RETURN super.setProperty (propriete, valeur);
Et à l'exécution dans ma console java, voici ce que j'obtiens :
Citation:
Modification propriete visible
Valeur par defaut : TOTO
Le soucis est que évidemment quand mon javabean s'affiche, la valeur par défaut n'est pas affichée... Ai-je fait une erreur ? Y a-t-il un moyen pour forcer l'exécution dans l'ordre des instructions données ?
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 18h26   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Il est peut-être possible qu'aucune communication n'ait lieu avec le bean lorsque celui-ci n'est pas affiché.
Peut-être peux-tu t'en sortir en masquant le bean lui même (setVisible(false) plutôt qu'en laissant Forms gérer avec Set_Item_Property( VISIBLE ).
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 18h51   #3
Membre éclairé
 
Inscription : décembre 2004
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2004
Messages : 349
Points : 367
Points : 367
.. j'ai déja eu un pb similaire dont je m'étais sorti en faisant un get_custom_property aprés le set_custom_property afin de pouvoir utiliser mon bean de façon 'synchrone' ...

CDLT.
taska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 19h06   #4
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par SheikYerbouti
Il est peut-être possible qu'aucune communication n'ait lieu avec le bean lorsque celui-ci n'est pas affiché.
Oui, j'y avais pensé, mais dans ce cas une fois caché (setVisible(false)), impossible de le réafficher.

A mon avis la communication via set_item_property est plus rapide qu'avec set_custom_property, j'ai fait d'autres tests qui semblent le confimer.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 19h07   #5
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par taska
.. j'ai déja eu un pb similaire dont je m'étais sorti en faisant un get_item_property aprés le set_item_property afin de pouvoir utiliser mon bean de façon 'synchrone' ...
Oui c'est ce que j'ai fait, mais je trouve cela pas très propre.

L'idéal aurait été de pouvoir utiliser FBEAN
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 19h23   #6
Membre éclairé
 
Inscription : décembre 2004
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2004
Messages : 349
Points : 367
Points : 367
excuses moi ...
j'ai modifié le get_item_property par un get_custom_property ...

CDLT.
taska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 12h01   #7
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Sheik, tu avais raison, il semble que lorsque que l'item contenant mon bean n'est pas visible, les propriétés passées par set_custom_property ne sont modifiées qu'une fois l'item (de nouveau) visible. J'ai l'impression que les propriétés passées sont mémorisées et appliquées une fois l'item visible. A confirmer...

Par contre je n'ai pas réussi à faire fonctionner ta solution . Si tu as une explication, je suis preneur, sinon je clorai le sujet. Pour info voilà ce que j'ai fait :
* javabean
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
   else IF (propriete == AFFICHE)
    {
       String visible = valeur.toString().trim();
       IF (visible.equalsIgnoreCase("true"))
       {
         System.out.println ("AFFICHE=TRUE");
         setVisible(true);
       }
       else
       {
         System.out.println ("AFFICHE=TRUE");
         setVisible(true);
       }
*forms (l'item contenant le bean est toujours visible)
- WNFI :
Code :
set_custom_property ('JAVABEAN.MONBEAN', 1, 'AFFICHE', 'false');
- WBP :
Code :
set_custom_property ('JAVABEAN.MONBEAN', 1, 'AFFICHE', 'true');
=> il le cache bien dans le WNFI
=> dans le WBP, il fait bien le setVisible(true) mais rien ne se passe au niveau de l'écran...

taska, la solution avec get_custom_property ne fonctionne pas (plantage de forms), je pense que cela vient du fait que l'item contenant mon bean n'est pas visible.

La solution que j'ai finalement adoptée et de gérer au niveau de la classe java, le raffraichissement de l'affichage de tout ce qui concerne la valeur par défaut.

En tout cas merci à vous deux de vous être penché sur mon problème. Je pense désormais avoir (à peu près) compris le fonctionnement des javabeans.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 12h20   #8
Membre éclairé
 
Inscription : décembre 2004
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2004
Messages : 349
Points : 367
Points : 367
Citation:
Envoyé par plaineR
taska, la solution avec get_custom_property ne fonctionne pas (plantage de forms), je pense que cela vient du fait que l'item contenant mon bean n'est pas visible.
C'est sur, mais rien ne t'empèche de le rendre visible avec width=0 & height=0 !

CDLT.
taska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 12h25   #9
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Essaye de gérer avec Set_Item_Property() plutôt que Set_Custom_property()

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
   //
    // visible ?
    //
    else IF (property == ID.VISIBLE)  
     {
       log(property+":"+value);
       IF(value.toString().equalsIgnoreCase("true")) setVisible(true) ;
       else setVisible(false) ;
       invalidate();
       RETURN super.setProperty(property, value);
     }
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 13h00   #10
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par taska
C'est sur, mais rien ne t'empèche de le rendre visible avec width=0 & height=0 !
CDLT.
Oui, tout à fait, mais c'était dans le cadre de mes tests sur la propriété visible du javabean . C'est vrai que j'aurai pu jouer sur les propriétés WIDTH et HEIGHT.

Sheik, j'ai un peu de mal à comprendre ce que cela va changer : tant que mon item ne sera pas visible dans forms, la modification de la propriété VALEURDEFAUT faite par set_custom_property ne sera pas prise en compte...
Ou alors il faut que je vire le super.setProperty ?
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 15h35   #11
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
La difference est que tu n'utilise pas Set_Custom_Property() mais Set_Item_Property(...,VISIBLE,...). regarde l'exemple que je t'ai fourni. Je l'utilise, donc il fonctionne ;o)
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 16h35   #12
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par SheikYerbouti
Je l'utilise, donc il fonctionne ;o)
Là je m'incline et de toutes façons je n'en doutais pas. Mais j'ai le défaut de vouloir comprendre avant d'agir.

J'avais bien pigé que t'utilisais set_item_property et non set_custom_property , ce que je ne comprends pas c'est le code java. Il me semblait que de faire super.setProperty(property, value); appliquait la propriété telle qu'elle est gérée par défaut. Je me suis donc dit qu'en rendant l'item invisible j'allais de nouveau avoir le problème que ma propriété ne serait pas prise en compte.

Je vais de ce pas tester cette solution.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 16h42   #13
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Oui, mais, sauf que...
j'utilise cette solution avec des objets Swing surchargeant le widget standard de Forms. Donc il ne s'agit pas de this.setVisible() mais plutôt de JButton.setVisible()...
Donc, cela ne marchera pas forcément dans le cas d'un pjc simple.
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 17h04   #14
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par SheikYerbouti
Oui, mais, sauf que...
j'utilise cette solution avec des objets Swing surchargeant le widget standard de Forms. Donc il ne s'agit pas de this.setVisible() mais plutôt de JButton.setVisible()...
Donc, cela ne marchera pas forcément dans le cas d'un pjc simple.
Pas grave, comme je l'ai dit dans un post précédent j'ai trouvé une solution qui fonctionne. Mes dernières questions n'étaient que pour ma culture personnelle. Tu viens de confirmer ce que je pensais avoir compris.

Merci d'avoir pris le temps d'y répondre.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h47.


 
 
 
 
Partenaires

Hébergement Web