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

SWT/JFace Java Discussion :

Galileo MacOSX ColorDialog


Sujet :

SWT/JFace Java

  1. #1
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut Galileo MacOSX ColorDialog
    Bonjour,

    j'ai récemment fait un nouveau Wizard avec un bouton qui affiche le ColorDialog. Tout marchait nickel sous Windows jusqu'aux tests Mac.

    Tout d'abord, je précise que je suis sous Galileo/java 1.5, et que les tests sont fait sur MountainLion.

    Donc, sur mac, l'appel de dialog.open() renvoit toujours null. En cherchant sur le forum Eclipse/SWT, il semble que le bug est signalé et qu'il serait dû au changement de nature du dialogue (passé de modal à popup).

    Je suppose que tout ça est corrigé dans les versions plus récente de SWT mais moi ça m’embête bien. Pas trop de solution (la migration de l’environnement étant exclue pour le moment, raison que je suis charette jusqu'en 2015) autres que d'utiliser le dialogue de swing (que je trouve laid personnellement) ou écrire mon propre dialogue.

    Soit me dis-je. Sauf que là vient à mon esprit que j'ai des écrans de préférences avec des ColorFieldEditor : donc là aussi il doit y avoir un problème.

    Donc je vais tester : et là, non, ça marche : le dialogue retourne bien un RGB non null qui correspond à la saisie (Entre parenthèses, ça marche pas si nickel que ça, parce que je me suis aperçu que en quittant l'appli, le dialogue n'était pas bien fermé, et que si on relance, il repasse en top, et que si on va à nouveau dans les prefs, il cafouille complètement si on ne le ferme pas avant de recliquer sur le bouton du ColorFieldEditor).

    Donc là je regarde les différents sources des classes concernées de jface, swt et du workbench, et je tente de reproduire au plus près le code : genre je vois qu'il utilise un ColorSelector et pas moi, donc j'utilise un ColorSelector et je vois différentes différences sur la façon de déterminer le shell parent du bouton. J'ai aussi regardé la stacktrace de l'appel et tout se passe normalement (passage par le callback dans le display, etc.)
    Rien n'y fait : mon dialogue ne fonctionne toujours pas.

    Bon, je me dis soit, quitte à faire un nouveau dialogue de choix de couleurs, je peux bien refaire un ColorFieldEditor qui utilise ce nouveau dialogue.

    Mais, il y a le ColorsAndFontsPreferencePage ! Je teste donc aussi et là, miracle, ça marche parfaitement bien.

    Et là du coup, je n'y comprends plus rien : comment ça fait pour fonctionner dans cet écran de preférences et pas dans mon wizard. J'ai reproduit le code, à l'identique (sauf les noms de variables et quelques détails annexes, comme le layout que j'ai forcément différent), et j'ai même testé en initialisant mon wizard avec le même shell que celui qui utilisé par le WorkbenchPreferenceDialog à tout hasard (donc par le activeShell du workbench alors que j'utilisais celui du display.

    Est ce que ça interpelle quelqu'un qui aurait une idée de ce qui ne va pas dans mon wizard avec l'invocation du ColorDialog ? Qui aurait déjà rencontré le problème et/ou qui connaîtrait un workaround.

    Pour l'instant je reste fixé sur l'idée que ça vient du fait que la méthode changeColor de ColorDialog n'est pas pas invoquée et que donc ça pourrait être lié au Display, mais j'ai tout essayé, pour forcer le display : rien n'y fait. Donc ce n'est probablement pas ça, mais j'ai pas d'autre idée.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bon, je le mets en résolu, celui-là. Au final, je me suis fait mon propre ColorPicker : j'y ai gagné en fonctionnalités. c'est peut être moins intégré dans l'UI de l'OS, mais c'est beaucoup plus fonctionnel. Et, comme ceux que je pouvais pas remplacer, fonctionnaient quand même pour une raison que je n'ai toujours pas compris, du reste, je les ai laissé tel quel. Si jamais quelqu'un avait l'explication, qu'il n'hésite pas
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut Joël,

    N'hésite pas à envisager de contribuer ta solution si elle te paraît valable.
    Et éventuellement à la poster ici

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut Diffusion du composant ColorPicker
    Salut Marc,

    Je ne comprends pas ce que tu veux dire par contribuer ma solution.

    En tout cas, voici ci-joint, le composant, qu'il m'a fallut déconnecter de toute la pelote de dépendances diverses avec Eclipse RCP, les nombreuses bibliothèques internes et tierces. J'ai fait quelques modifications pour la compiler en java 1.7, mais je suis en mesure de fournir une version 1.5 à ceux qui le voudrait. Je le diffuse sous forme de 2 jars, incluant les sources.

    Il faudra bien sûr, pour le faire fonctionner, avoir soit les jar de SWT et JFACE, soit l'inclure dans un plugin RCP de contribution à l'UI.

    Le composant est composé de 3 onglets de base (dont le visuel est visible en pièces jointes), désactivables, mais peut être enrichis d'autres onglets de type catalogue. Il est loin d'être terminé en ce qui concerne mes ambitions, mais déjà bien fonctionnel. Je déplore le fait que la documentation ne soit pas complète, mais je n'ai pas le temps de la compléter dans l'immédiat. N’hésitez pas à me demander des précisions, si nécessaire. Pour un quickstart, j'ai fourni un exemple d'utilisation.

    Voilà. A toi de me dire si le composant est valable

    Joël
    Images attachées Images attachées    
    Fichiers attachés Fichiers attachés
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut Joël,

    Citation Envoyé par joel.drigo Voir le message
    Je ne comprends pas ce que tu veux dire par contribuer ma solution.
    C'est tout à fait ce que tu viens de faire ce que je voulais dire
    Tu peux aussi l'envoyer à Nebula (qui s'occupent de composants SWT / JFace enrichis) pour voir ce qu'ils en pensent !
    Beau travail en tout cas !

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

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

Discussions similaires

  1. [MacOSX, Galileo, Eclipse CDT] Comment lancer un "hello world" ?
    Par olivier57b dans le forum Eclipse C & C++
    Réponses: 2
    Dernier message: 02/12/2009, 11h11
  2. [MacOsX|Linux] =>ok! pas sur solaris
    Par Van der Elst dans le forum C
    Réponses: 5
    Dernier message: 14/06/2006, 13h29
  3. [GCC-MACosX]mais où est readkey() du pascal
    Par Van der Elst dans le forum C
    Réponses: 2
    Dernier message: 14/06/2006, 01h16
  4. [Débutant][MacOSX]démarrer Oracle 10g
    Par RB Greg dans le forum Oracle
    Réponses: 8
    Dernier message: 17/05/2005, 10h24
  5. Réponses: 3
    Dernier message: 29/07/2003, 09h38

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