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 : 47
    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 : 47
    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 ?

  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 : 47
    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

  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 : 47
    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

  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 : 47
    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 : 47
    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