Bonjour,
Je suis nouveau sur la plateforme RCP 4.
J'ai créé un popup menu via l'application model et je souhaiterais restreindre la visibilité de certaines parties selon l'endroit du clic.
Je pourrais faire un Listener et le faire en SWT mais je pense que ce sera plus propre et plus didactique avec des Core Expression.
Donc j'ai créé via mon plugin.xml une nouvelle définition et j'ai créé un nouveau SourceProvider mais cela ne fonctionne pas. De plus, comment peut-on changer proprement l’état du SourceProvider ?
La partie du plugin.xml
Mon source provider
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 <extension point="org.eclipse.core.expressions.definitions"> <definition id="com.itf.tvt.tool.datastore.gui.popupmenu"> <with variable="com.itf.tvt.tool.datastore.gui.itemselection"> <equals value="true"> </equals> </with> </definition> </extension> <extension point="org.eclipse.core.expressions.propertyTesters"> <propertyTester class="test.rcp.PropertyTester1" id="test.rcp.propertyTester1" namespace="test.rcp.propertyTester1" properties="test.rcp.propertyTester1" type="test.rcp.PropertyTester1"> </propertyTester> </extension> <extension point="org.eclipse.ui.services"> <sourceProvider provider="com.itf.tvt.tool.datastore.gui.providers.PopUpMenuSourceProdivder"> <variable name="com.itf.tvt.tool.datastore.gui.itemselection" priorityLevel="workbench"> </variable> </sourceProvider> </extension>
Quelqu'un saurait-il m'indiquer comment procéder ?
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 package com.itf.tvt.tool.datastore.gui.providers; import java.util.HashMap; import java.util.Map; import org.eclipse.ui.AbstractSourceProvider; public class PopUpMenuSourceProdivder extends AbstractSourceProvider { public static final String SELECTION_ITEM_STATE = "com.itf.tvt.tool.datastore.gui.itemselection"; private boolean state; @Override public void dispose() { // TODO Auto-generated method stub } @Override public Map getCurrentState() { Map<String,Object> map= new HashMap<String,Object>(); map.put(SELECTION_ITEM_STATE, state); return map; } @Override public String[] getProvidedSourceNames() { return new String[]{SELECTION_ITEM_STATE}; } public void setState(){ state=!state; } }
Merci d'avance pour vos réponses
Partager