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

Eclipse Platform Discussion :

Créer des Items d'un menu dynamiquement


Sujet :

Eclipse Platform

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 43
    Points : 29
    Points
    29
    Par défaut Créer des Items d'un menu dynamiquement
    Bonjour,

    Après avoir découvert comment créer correctement des menus imbriqué et des toolbars avec bouton pulldown... dans le thread http://www.developpez.net/forums/sho...d.php?t=535071

    j'aimerai coder un classe (d'un de mes plugins évidemment) qui permettrai de rajouter dynamiquement des éléments à ma toolbar et à mon menu... (voir un des derniers post du thread cité plus haut)...

    Il semblerait qu'il faille utiliser le MenuManger d'eclipse mais je n'arrive pas à comprendre comment cela fonctionne... le peu de doc que je trouve sur le sujet semble refleter une utilisation simple.. mais aucun exemple n'est complet et du coup il faut se palucher la doc eclipse... (ce qui ne change rien.. vu que je viens quand meme poster ici après avoir lu la javadoc du MenuManager et du ContributedItem qui semble être les éléments à maitriser)

    Si quelqu'un sait comment rajouter un item (qui pointerai sur une classe java personnalisée) dans un menu crée statiquement dans plugin.xml (avec org.eclipse.ui.menus) je serai extrement content qu'il puisse m'expiquer comment faire....

    Je remercie d'avance toutes les personnes qui pourraient me donner un coup de main...

    Bon courage à tous les codeurs de plugins eclipse.

    Angel

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    Apparement on devrait pouvoir utiliser la balise <dynamic ... /> pour créer des menus dynamique....

    seul problème... Y-a-t-il quelqu'un qui saurait comment ceci fonctionne....
    et comment on implémente la classe qui est appelée

    car sur le site d'eclipse : http://wiki.eclipse.org/Menu_Contributions/Populating_a_dynamic_submenu

    il semble dire qu'il faut JUSTE implémente cette interface.. seul problème aucune expliquation de comment le faire CORRECTEMENT.. (oui en effet new CommandContributionItem est deprecated et n'a pas la meme signature que sur le site web....)

    Voila si quelqu'un entend mes appels desesperés et désesperant je suis la perdu...

    Merci à toutes les personnes qui auront le courage de me lire et de me répondre...

    Angel

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    Bon ben voila...

    A force de me répondre tout seul.. je vais commencer à devenir schizophrène

    bon on commence par enlever toutes nos commandes du menu (dans plugin.xml, donc ca donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <menuContribution
              locationURI="menu:org.eclipse.ui.MONMENU.menu?after=additions">
                 <menu
          			id="org.eclipse.ui.MONMENU.menu.MONPLUGIN"
           			label="Mon Plugin"
                   	icon="icons/sample.gif">
     
          			<dynamic 
          		class="ch.ge.cti.MONPLUIGN.plugin.actions.SubMenu"
                    	id="ch.ge.cti.MONPLUGIN.plugin.actions.AntSubMenu"/>
                 </menu>
    </menuContribution>
    Ensuite on va aller créer la classe qui va nous donner un menu... (je donne toutes la classes comme ca pour une fois on verra les imports....

    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
    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
    package ch.ge.cti.melusine.launcherant.plugin.actions;
     
    import org.eclipse.jface.action.ContributionItem;
    import org.eclipse.jface.action.IContributionItem;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.Event;
    import org.eclipse.swt.widgets.Listener;
    import org.eclipse.swt.widgets.Menu;
    import org.eclipse.swt.widgets.MenuItem;
    import org.eclipse.ui.actions.CompoundContributionItem;
     
    public class SubMenu extends CompoundContributionItem {
     
        @Override
        protected IContributionItem[] getContributionItems() {
    	IContributionItem[] items = new IContributionItem[3];
     
    	for (int i = 0; i < items.length; i++) {
    	    items[i] = getContributionItem(i);
    	}
     
    	//return new ContributionItem[0];
    	return items;
        }
     
        private IContributionItem getContributionItem(final Integer integer) {
    	return new ContributionItem() {
     
    	    public void fill(Menu menu, int index) {
    		MenuItem item = new MenuItem(menu, SWT.PUSH);
    		item.setText("CECI EST UN TEST " + integer);
    		item.addListener(SWT.Selection,getMenuItemListener(item.getText()));
    	    }
     
    	    private Listener getMenuItemListener(final String test) {
    		return new Listener() {
    		    public void handleEvent(Event event) {
    			MenuItem item = (MenuItem) event.widget;
     
    			System.out.println("CA MARCHE !!!! " + test);
    		    }
    		};
    	    }
    	};
        }
    }
    Voila une méthode qui crée les élément du menu, puis on ajoute à chaque élément des propriétés... ici setText et addListener....

    Ces 3 boutons vont juste faire des sysout mais ca devrait fonctionner pour tout le reste

    Angel

  4. #4
    Membre à l'essai
    chef artiste
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Antarctique

    Informations professionnelles :
    Activité : chef artiste

    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Super
    Effectivement, c'est pas trop bien décrit dans la doc....

    Angelinsky7 merci d'avoir partagé la solution avec nous.

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

Discussions similaires

  1. item de liste : menu dynamique
    Par trashman06 dans le forum SharePoint
    Réponses: 1
    Dernier message: 22/10/2007, 14h18
  2. [C] Ajouter des items dans un menu en ressource
    Par Piano dans le forum Windows
    Réponses: 8
    Dernier message: 06/07/2007, 20h45
  3. Comment intégrer des onglets, sur un menu dynamique Javascript
    Par kervano dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 04/04/2007, 13h14
  4. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04
  5. activer ou désactiver des items d'un menu
    Par gcore dans le forum Composants
    Réponses: 3
    Dernier message: 08/06/2004, 14h07

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