Bonjour à tous,
j'ai développé un beau plugin avec plusieurs vues et des editeurs. Mais comment faire pour passer d 'une vue à l'autre ? sur Eclipse, le raccouci est bien pratique. Puis je le rajouter dans mon plugin ?
Merci
Version imprimable
Bonjour à tous,
j'ai développé un beau plugin avec plusieurs vues et des editeurs. Mais comment faire pour passer d 'une vue à l'autre ? sur Eclipse, le raccouci est bien pratique. Puis je le rajouter dans mon plugin ?
Merci
Je comprends mal ta question, mais la fonction showView() peut sûrement t'aider.
Alors voilà, pour etre plus precis, je voudrais etre capable, comme dans Eclipse, d'afficher les vues et les perspectives de mon choix. Je voudrais avoir la barre de menu d'Eclipse avec le menu Window et réaliser les memes actions.
Bon, je vais repondre à moi meme puisque j'ai, en parti, compris comment ca fonctionne: c'est dans la classe ApplicationActionBarAdvisor que tout se passe: les developpeurs ont bien fait les choses puisque des actions deja toutes faites sont presentes. Il suffit de les utiliser; par exemple pour changer de perspective, on faitBon, maintenant, j'ai un nouveau probleme: il ouvre la perspective dans une autre fenetre, alrs que dans Eclipse, la perspective s'ouvre dans la meme fenetre. Si quelqu'un peut m'eclairer...Code:IWorkbenchAction monaction = ActionFactory.OPEN_PERSPECTIVE_DIALOG.create(window) ;
Je vais encore me repondre au cas ou cela interesse des personnes qui rencontrent les memes problemes que moi: en fait le menu "Ouvrir la perspective" ouvre une nouvelle perspective dans une nouvelle fenêtre. En revanche, le menu "Ouverture de la vue" ouvre une perspective dans la fenetre courante...
Je ne sais toujours pas comment faire pour afficher mes vues: dans Eclipse, je peux afficher ma vue "Console" avec le menu.
Avec mon plugin, le menu d'affichage des vues reste grisé.
dans ma classe ApplicationActionBarAdvisor, je fais:
Suis je assez clair ?Code:IWorkbenchAction actionChangeView = ActionFactory.SHOW_VIEW_MENU.create(window);
Tes réponses m'intéressent effectivement (sommes nous les deux seuls à utiliser RCP ? ;)). Par contre, j'aimerais bien plus de précision. Le bout de code que tu utilises avec la classe ActionFactory, tu le places où, dans quelle méthode ?
non, on doit etre au moins 5 à faire du RCP :lol:
bon, pour l'Actionfactory, tu te place dans la classe ApplicationActionBarAdvisor que tu etends avec ActionBarAdvisor
Tiens, je te file une partie de mon code:
Je sais pas si tu peux tout exploiter mais ca peut t'aider ;)Code:
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 public class ApplicationActionBarAdvisor extends ActionBarAdvisor { private Action actionWizard ; private IWorkbenchAction actionQuit ; private IWorkbenchAction actionOpenPerspectives ; private IWorkbenchAction actionClosePerspectives ; private Action actionChangeView ; public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { super(configurer); } protected void makeActions(IWorkbenchWindow window) { actionWizard = new ActionWizard(window); actionQuit = ActionFactory.QUIT.create(window); actionOpenPerspectives = ActionFactory.OPEN_NEW_WINDOW.create(window) ; actionChangeView = new OpenViewAction(window, "Afficher la vue...", "ContratView"); actionClosePerspectives = ActionFactory.CLOSE_PERSPECTIVE.create(window) ; register(actionClosePerspectives) ; } protected void fillMenuBar(IMenuManager menuBar) { IWorkbenchWindow window = getActionBarConfigurer().getWindowConfigurer().getWindow(); menuBar.add(createFileMenu(window)) ; menuBar.add(createFolderMenu(window)) ; } private MenuManager createFileMenu(IWorkbenchWindow window) { MenuManager menuMng = new MenuManager("Fichier"); menuMng.add(actionWizard); menuMng.add(actionQuit); return menuMng ; } private MenuManager createFolderMenu(IWorkbenchWindow window) { MenuManager menuMng = new MenuManager("Fenêtre" ); menuMng.add(actionOpenPerspectives); menuMng.add(actionClosePerspectives); menuMng.add(actionChangeView); return menuMng ; } }
salut je suis le 6eme a utiliser rcp mdr
Bon voila mon soucis: je n'arrive pas à exploiter cette ligne de code
il ne connait pas cette classe OpenViewerAction(..)Code:actionChangeView = new OpenViewAction(window, "Afficher la vue...", "ContratView");
si tu pouvais m'eclairer, ;)
merci
Bonjour,
je débute dans le développement d'un plugin sous eclipse, et j'essaie de sauvegarder tout mon espace de travail d'eclipse en cliquant sur un bouton que j'ai rajoué dans la barre des raccourcis là où ya ttes les icônes...J'ai repris l'exemple du hello world en mettant ce que je voulais...
Vous devriez connaitre la réponse comme vous utilisez les ActionFactory...
Merci pour votre réponse car je galère pas mal!
public class SampleAction implements IWorkbenchWindowActionDelegate {
private IWorkbenchWindow window;
/**
* The constructor.
*/
public SampleAction()
{
}
/**
* The action has been activated. The argument of the
* method represents the 'real' action sitting
* in the workbench UI.
* @see IWorkbenchWindowActionDelegate#run
*/
public void run(IAction action)
{
action = ActionFactory.SAVE_ALL.create(window) ;
/*MessageDialog.openInformation(
window.getShell(),
"plugin_test",
"Hello, Eclipse world");
*/
}
...code généré par eclipse
}
En fait, il semble que tu te trompe d'action , cette action permet d'ouvrir le menu des actions de la vue séléctionnée et pas la liste des vues, donc si tes vues n'ont pas de menu d'action, il est grisé.Citation:
Envoyé par Cpt Anderson
Je ne trouve pas l'action pour la liste des vues, si je met la main dessus je ferai un edit.
C'est la classe org.eclipse.ui.actions.ContributionItemFactory qu'il faut utiliser :Citation:
Envoyé par Tazmanian Devil
MenuManager showViewMenuMgr = new MenuManager(IDEWorkbenchMessages.Workbench_showView, "showView");
actionChangeView = ContributionItemFactory.VIEWS_SHORTLIST
.create(window);
showViewMenuMgr.add(actionChangeView);
D'ailleurs utilise les static de la classe IDEWorkbenchMessages pour tes libellés de menu : fenêtre = IDEWorkbenchMessages.Workbench_window
Salut Cpt Anderson, tu peux m'en dire un peu plus sur :
actionWizard = new ActionWizard(window);
J'ai crée un editeur de texte, avec sa coloration &co ... mais j'ai un soucis avec les ActionBar > je ne parviens pas a faire a la main un bouton pour Open ... et un new File ... tu as réussi/ une idée ?
Je crois que cette classe (ActionWizard) ne fait pas partie d'Eclipse.
Pour info, il y a un tuto tres bien fait là et qu'a du utiliser Cpt Anderson comme base (comme moi d'ailleurs) et qui explique entre autre la creation des barre d'outils et les menus sur Eclipse / RCP.
Bonjour,
Dans le cadre de développement d'un plugin Eclipse, je voudrais afficher ou cacher des menus par la programmation.
La classe : ApplicationActionBarAdvisor contient les méthodes pour cela, je pourrais aussi utiliser:
Ma question est: Comment pourrais je utiliser la classe ApplicationActionBarAdvisor ou bien la classe ApplicationWorkbenchWindowAdvisor dans mon plugin?Code:
1
2
3
4
5 IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); window.getActivePage().hideActionSet(actionSetID); window.getActivePage().showActionSet(actionSetID);
A quel niveau la déclarer?
Pouvez vous me donner plus de détails?
Merci d'avance.