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 :

[3.4.2] Menu disabled/enabled


Sujet :

Eclipse Platform

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut [3.4.2] Menu disabled/enabled
    Bonjour,

    J'ai créé des menus dans mon plugin comme ceci :
    Code XML : 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
    <plugin>
    	<extension point="org.eclipse.ui.menus">
    		<menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=additions">
    			<menu
    				id="preview.menu"
    				label="Preview as...">
    				<command
    					commandId="preview.command.pdf"
    					id="preview.menu.command.pdf">
    				</command>
    				<command
    				      commandId="preview.command.html"
    				      id="preview.menu.command.html">
    				</command>
    			</menu>
    		</menuContribution>
    	</extension>
     
    	<extension point="org.eclipse.ui.commands">
    		<command
    			id="preview.command.pdf"
    			name="PDF">
    		</command>
    		<command
    			id="preview.command.html"
    			name="HTML">
    		</command>
    	</extension>
     
    	<extension point="org.eclipse.ui.handlers">
    		<handler
    			class="actions.PdfPreview"
    			commandId="preview.command.pdf">
    		</handler>
    		<handler
    			class="actions.HtmlPreview"
    			commandId="preview.command.html">
    		</handler>
    	</extension>
    </plugin>

    ... et je souhaiterais les rendre enable (ou visible s'il n'y a pas d'autre solution) si la page contenu dans l'éditeur est de type *.monformat.

    Mais je ne sais pas comment faire.

    Comment puis-je m'y prendre ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Par défaut
    Bonjour,

    je pense qu'il faut que tu créés une extension contentType dans lequel tu as ton association avec ton format, et tu associes cette extension avec celle de ton menu. Ce qui t'intéresse est dans la section Add context menu for a certain Context de ce tutoriel http://wiki.bioclipse.net/index.php?...us_and_actions

    David.

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut
    bonjour,

    dans ta classe qui gère ton éditeur tu rajoute une méthode statique
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    public static boolean isExtensionMonFormat()

    qui renverra true si c'est la bonne extension et false sinon.

    Ensuite dans le handler de ta commande soit tu rajoute soit tu modifies la méthode suivante comme ceci :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	@Override
    	public boolean isEnabled() {
    		if ( MaClasseEditor.isExtensionMonFormat() )
    			return false; //ta commande sera accessible
    		else
    			return true; //ta commande ne sera pas accessible
    	}

    voilà comment je ferais à première vue, il y a sans doute d'autre méthode.

  4. #4
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    DaveShot > Je teste ça et je te tiens au courant .

    Elmotardo > Toi qui connaît BIRT, je réutilise l'éditeur BIRT et un autre éditeur de texte simple donc non, je n'ai pas accès au code de l'éditeur (en modification) .

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut
    oki doki

  6. #6
    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 : 41
    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
    Par défaut
    Salut BiM,

    Dans le cas d'un Menu, c'est un peu délicat... Parce qu'en fait, les commands qu'il contient ne peuvent être que visible ou non (dans le xml). Si tu veux les rendre active ou non, ça va se passer dans le Handler associé à la Command.

    Donc, dans ton Handler il te faut surcharger la méthode isEnabled (comme l'a souligné Elmotardo). Dans cette méthode, il va te falloir accéder à la ressource sélectionné par l'utilisateur. Pour ce faire :
    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
    @Override
    public boolean isEnabled() {
    	boolean isEnabled = false;
    	IResource selectedResource = null;
           	IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    	// Get the selection from the user.
    	ISelection selection = window.getSelectionService().getSelection();
    	// .
    	if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
    		IStructuredSelection sSelection = (IStructuredSelection) selection;
    		if (sSelection.getFirstElement() instanceof IResource) {
    			// Can possibly be a multiple selection.
    			selectedResource = (IResource) sSelection.getFirstElement();
    		}
    	}
    	// Check that the Resource is not null
    	if (selectedResource != null) {
    		String resourceName = selectedResource.getName();
    		// Check if the extension is the one needed.
    		String[] splitted = resourceName.split("\\.");
    		if (splitted.length == 2) {
    			String extension = splitted[1];
    			isEnabled = REQUIRED_EXTENSION.equals(extension);
    		}
    	}
    	return isEnabled;
    }
    Note que de cette manière, tu récupères la IResource de service de sélection. Si jamais tu veux récupérer une IResource d'une de tes vues, pense à la "raccorder" au service de sélection.

    Normalement, t'as tout bon là

    Voilà, à +
    Gueritarish

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

Discussions similaires

  1. Enable / Disabled menu en fonction du context
    Par Feneck91 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 18/04/2013, 13h27
  2. Fonction qui ne s'exécute pas (Disable/Enable textbox)
    Par skandhal dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/01/2011, 12h27
  3. [Débutant] mettre un element dans popup menu disable
    Par HMOLAMAR dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 28/05/2009, 12h56
  4. procedure et disable enable trigger
    Par mariec007 dans le forum PL/SQL
    Réponses: 0
    Dernier message: 13/11/2008, 16h40
  5. [MFC] SDI Enable/disable élement d'un menu
    Par Nergaahl dans le forum MFC
    Réponses: 4
    Dernier message: 12/06/2006, 10h49

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