IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

[forms10g]Problème de synchronisation avec les javabeans


Sujet :

Forms Oracle

  1. #1
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Points : 3 609
    Points
    3 609
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    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 ?

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    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 ).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    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 : 409
    Points
    409
    Par défaut
    .. 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.

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Points : 3 609
    Points
    3 609
    Par défaut
    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.

  5. #5
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Points : 3 609
    Points
    3 609
    Par défaut
    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

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    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 : 409
    Points
    409
    Par défaut
    excuses moi ...
    j'ai modifié le get_item_property par un get_custom_property ...

    CDLT.

  7. #7
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Points : 3 609
    Points
    3 609
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    set_custom_property ('JAVABEAN.MONBEAN', 1, 'AFFICHE', 'false');
    - WBP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    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 : 409
    Points
    409
    Par défaut
    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.

  9. #9
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Essaye de gérer avec Set_Item_Property() plutôt que Set_Custom_property()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
         }

  10. #10
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Points : 3 609
    Points
    3 609
    Par défaut
    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 ?

  11. #11
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    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)

  12. #12
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Points : 3 609
    Points
    3 609
    Par défaut
    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.

  13. #13
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    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.

  14. #14
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Points : 3 609
    Points
    3 609
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de synchronisation avec les tables
    Par rimy2mi dans le forum Hibernate
    Réponses: 0
    Dernier message: 11/11/2009, 10h14
  2. Problèmes de pointeurs avec les arbres
    Par thierry57 dans le forum C
    Réponses: 17
    Dernier message: 22/12/2005, 23h35
  3. [EJB] Différence avec les JavaBeans
    Par gilles641 dans le forum Java EE
    Réponses: 16
    Dernier message: 08/11/2005, 16h17
  4. probléme d'enregistrement avec les chexkbox.
    Par pmboutteau dans le forum ASP
    Réponses: 16
    Dernier message: 18/10/2005, 15h05
  5. Réponses: 6
    Dernier message: 19/05/2005, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo