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 :

Message sur plusieurs lignes dans un ProgressMonitorDialog ?


Sujet :

SWT/JFace Java

  1. #1
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut Message sur plusieurs lignes dans un ProgressMonitorDialog ?
    Bonjour,

    J'utilise un ProgressMonitorDialog dans lequel je souhaite afficher des informations sur plusieurs lignes, la variable taskname contient le texte affiché dans la boîte de dialogue, valorisé comme suit :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    StringBuffer buffer = new StringBuffer();
                    if(searchCriteria.getSearchLanguages().length > 2 ) buffer.append("More than 2 source languages.\n");
                    if(searchCriteria.getTargetLanguages().length > 2 && searchCriteria.getTargetLanguages().length < 27) buffer.append("Too much target languages.");                
                    search.setTaskName(buffer.toString());


    Et utilisé comme ceci :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    monitor.beginTask(taskName, IProgressMonitor.UNKNOWN);

    En pièce jointe, ce que ça donne sans utiliser de séparateur, je souhaiterais retourner à la ligne après le . final de chaque phrase.

    J'ai essayé avec \n mais ça ne semble pas fonctionner.

    Est ce possible ? et comment ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    up

  3. #3
    Membre éclairé
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Points : 756
    Points
    756
    Par défaut
    Et avec un \r à tout hasard ?
    "Le calendrier, c'est la bureaucratie du temps." Quino

  4. #4
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    J'ai tenté les \r , avec par exemple une string "aaa\rbbb" j'ai débugué les classe SWT.

    A un moment on a un code comme ça :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    	string = Display.withCrLf (string);
    	TCHAR buffer = new TCHAR (getCodePage (), string, true);
    	OS.SetWindowText (handle, buffer);
    ...

    La variable string en déboguage affiche :

    Mais lorsque le composant ProgressMonitorDialog apparait , uniquement aaa est affiché.

    Des idées ? une limite du composant ? une mauvaise utilisation de ma part ?

  5. #5
    Membre éclairé
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Points : 756
    Points
    756
    Par défaut
    Je n'en sais pas plus mais sur les exemples que j'ai vus à droite à gauche, seulement une ligne à la fois était écrite donc je dirais une limite du composant

    Si tu veux afficher plus d'informations, tu peux utiliser le subTask. Le texte apparaîtra sous la barre de chargement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monitor.subTask("Ton texte");
    Comme ça le begintask reste la tâche principale que tu exécutes et tu affiches les différentes sous tâches dans le subTask.

    Un exemple de l'utilisation du subTask ICI
    "Le calendrier, c'est la bureaucratie du temps." Quino

  6. #6
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    En utilisant la méthode subTask je pourrai ajouter une seconde ligne mais pas plus...

  7. #7
    Membre éclairé
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Points : 756
    Points
    756
    Par défaut
    Oui une seule ligne
    "Le calendrier, c'est la bureaucratie du temps." Quino

  8. #8
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    je vais regarder plus en profondeur...

  9. #9
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    J'ai donc finalement étendu la classe ProgressMonitorDialog pour ce besoin spécifique, ce qui donne :

    Code java : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    package dgt.vista.ui.components;
     
    import org.eclipse.jface.dialogs.ProgressMonitorDialog;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Control;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Shell;
     
    public class MyProgressMonitorDialog extends ProgressMonitorDialog {
     
        private String businessAlert;
     
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.dialogs.ProgressMonitorDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
         */
        protected Control createDialogArea(Composite parent) {
     
            super.createDialogArea(parent);
     
            if (businessAlert != null) {
     
                Label alertLabel = new Label(parent, getMessageLabelStyle());
                alertLabel.setText(businessAlert);
                GridData data = new GridData(GridData.FILL_BOTH);
                data.horizontalSpan = 2;
                alertLabel.setLayoutData(data);
            }
     
            return parent;
        }
     
        /**
         * @param parent
         */
        public DgtVistaProgressMonitorDialog(Shell parent) {
     
            super(parent);
        }
     
        /**
         * @return Returns the businessAlert.
         */
        public String getBusinessAlert() {
     
            return businessAlert;
        }
     
        /**
         * @param businessAlert
         *            The businessAlert to set.
         */
        public void setBusinessAlert(String businessAlert) {
     
            this.businessAlert = businessAlert;
        }
     
    }

    Le résultat en pièce jointe.

    Si qqn a mieux...en attendant je marque en résolu.
    Images attachées Images attachées  

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

Discussions similaires

  1. écrire sur plusieurs lignes dans un fichier
    Par kenny49 dans le forum Langage
    Réponses: 3
    Dernier message: 06/04/2007, 11h47
  2. message sur plusieurs lignes
    Par zener27 dans le forum Delphi
    Réponses: 4
    Dernier message: 23/11/2006, 15h53
  3. Texte sur plusieurs lignes dans un TListBox
    Par BigBenQ dans le forum Composants VCL
    Réponses: 1
    Dernier message: 04/05/2006, 17h58
  4. Texte sur plusieurs lignes dans une cellule de JTable
    Par JeanECN dans le forum Composants
    Réponses: 3
    Dernier message: 10/04/2006, 17h20
  5. Réponses: 2
    Dernier message: 21/09/2005, 12h18

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