Liste de liens :
Liste de liens :
Lire le tutoriel de Vogella.
Toutes les commandes sont dans la RCP, un des sous packages : “org.txm.rcpapplication.commands.*”
En pratique, pour créer une nouvelle commande :
On peut différencier différentes types de commandes :
Toutes les classes se trouvent dans un des sous packages “org.txm.rcpapplication.commands” :
Voir l'extrait de la commande qui fait le lien entre vue “Edition” et vue “Concordance”
package org.txm.rcpapplication.commands.link; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; public class TextToConcordance extends AbstractHandler { /* (non-Javadoc) * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) */ @Override public Object execute(ExecutionEvent event) throws ExecutionException { IWorkbenchWindow window; ConcordancesEditorInput editorInput; window = HandlerUtil.getActiveWorkbenchWindow(event); IEditorPart editor = window.getActivePage().getActiveEditor(); if (editor instanceof IEditionEditor) { String query = ((IEditionEditor)editor).getTextSelection(); query = fixQuery(query); Corpus corpus = ((IEditionEditor)editor).getCorpus(); editorInput = new ConcordancesEditorInput(corpus, null); IWorkbenchPage page = window.getActivePage(); try { ConcordancesEditor conceditor = (ConcordancesEditor) page .openEditor(editorInput, "org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$ conceditor.setQuery(query); conceditor.compute(); } catch (PartInitException e) { System.err.println(NLS.bind(Messages.GetConcordances_4, e)); } } return null; } public static String fixQuery(String query) { query = "\""+query.replaceAll("\"", "\\\"");//.replaceAll("("+TokenizerClasses.regPunct+")", " $1 "); query = query.replaceAll(" +", "\" \"")+"\""; return query; }
Voir l'extrait de la commande qui ouvre la vue “Edition” :
package org.txm.rcpapplication.commands.base; import org.eclipse.core.commands.AbstractHandler; /** * Open a text edition from: a main corpus : the first text of the maincorpus a * sub-corpus : the first text of the subcorpus a partition : the user must * choose one of the text used in the partition @ author mdecorde. */ public class OpenEdition extends AbstractHandler { private Text text; private Edition edition; private Page page; /** * Open edition. * * @param corpus the corpus * @return the object */ public Object openEdition(Corpus corpus) { String textid = null; text = null; if (corpus instanceof Subcorpus) {} if (maincorpus == null) {} if (text == null) { } if (edition == null) { } if (page == null) { } TXMBrowser attachedBrowserEditor = OpenBrowser.openEdition(page.getFile().getAbsolutePath()); attachedBrowserEditor.setEdition(edition); attachedBrowserEditor.setCorpus(corpus); attachedBrowserEditor.showPage(page); }