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 :

Problème avec le changement de scheme - plugin Eclipse


Sujet :

Eclipse Platform

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Par défaut Problème avec le changement de scheme - plugin Eclipse
    Bonjour,

    Dans le cadre de développement d'un plugin eclipse, j'ai eu besoin de changer le Scheme (keybindings) d'Eclipse dynamiquement en spécifiant mon propre scheme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <extension
             point="org.eclipse.ui.bindings">
          <scheme
                id="X3270Scheme"
                name="X3270"
                parentId="org.eclipse.ui.defaultAcceleratorConfiguration">
          </scheme>
       </extension>
    le code de changement de scheme est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    IBindingService bindingService = (IBindingService)PlatformUI.getWorkbench().getAdapter(IBindingService.class);
    BindingManager localChangeManager = new BindingManager(new ContextManager(), new CommandManager());
    try {
    Scheme x3270Scheme = bindingService.getScheme(Consts.X3270_SCHEME_ID);
    localChangeManager.setActiveScheme(x3270Scheme);
    bindingService.savePreferences(x3270Scheme, localChangeManager.getBindings());
    } catch (final NotDefinedException ex) {
    	ex.printStackTrace();
    }catch (IOException ex) {
    	ex.printStackTrace();
    }
    ça fonctionne bien mais j'ai une erreur qui s'affiche dans la Error log d'Eclipse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    org.eclipse.core.commands.common.NotDefinedException: Cannot get the parent identifier from an undefined scheme. X3270Scheme
    at org.eclipse.jface.bindings.Scheme.getParentId(Scheme.java:207)
    at org.eclipse.jface.bindings.BindingManager.getSchemeIds(BindingManager.java:1573)
    at org.eclipse.jface.bindings.BindingManager.setActiveScheme(BindingManager.java:2213)
    Qu'est ce qui caus eproblème dans mon code?
    je soupçonne l'objet BindingManager car je crée un?

    Cordialement.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 59
    Par défaut
    J'ai trouvé la solution:

    j'ai remplacé le code suivant(du post précédent):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Scheme x3270Scheme = bindingService.getScheme(Consts.X3270_SCHEME_ID);
    par:

    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
     
    final Scheme[] definedSchemes = bindingService.getDefinedSchemes();
    try {
    	for (int i = 0; i < definedSchemes.length; i++) {
    	             final Scheme scheme = definedSchemes[i];
    		final Scheme copy = bindingManager.getScheme(scheme.getId());
    		copy.define(scheme.getName(), scheme.getDescription(), scheme.getParentId());
    		if (definedSchemes[i].getId().equals(Consts.X3270_SCHEME_ID)) {
    			x3270Scheme = copy;
    		}
     
    	}
    } catch (final NotDefinedException e) {
    	e.printStackTrace();
    }

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

Discussions similaires

  1. [Framework] Problème avec AspectJ, et le support Maven/Eclipse
    Par igor24 dans le forum Spring
    Réponses: 1
    Dernier message: 15/07/2009, 17h16
  2. Réponses: 1
    Dernier message: 22/03/2009, 17h00
  3. Réponses: 7
    Dernier message: 06/05/2007, 18h11

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