Visualizzazione post con etichetta java plugin. Mostra tutti i post
Visualizzazione post con etichetta java plugin. Mostra tutti i post

venerdì 4 febbraio 2011

Eclipse RCP: aggiungere voci di menu dinamiche

Eclipse mette a disposizione un semplice meccanismo che permette di aggiungere in maniera dinamica delle voci ad un menu contestuale.

Per creare un menu è necessario dichiarare nel plugin.xml un estension point org.eclipse.ui.menus.
Supponiamo di voler aggiungere un nuovo menu alla toolbar dell'applicazione.
Aggiungiamo all'extension poin org.eclipse.ui.menus un menuContribution con

locationURI="menu:org.eclipse.ui.main.menu?after=additions"

Lo schema menu indica che il nuovo menu deve apparire sulla toolbar, mentre after=additions indica che deve apparire dopo i menu standard.

Al menuContribution aggiungiamo ora un menu, indicando id e label.


point="org.eclipse.ui.menus">
locationURI="menu:org.eclipse.ui.main.menu?after=additions">
id="it.sinossi.menu.toolbarMenu"
label="Menu Dinamico">





Aggiungiamo ora al menu un nodo di tipo dynamic e specifichiamo gli attributi id e class


point="org.eclipse.ui.menus">
locationURI="menu:org.eclipse.ui.main.menu?after=additions">
id="it.sinossi.menu.toolbarMenu"
label="Menu Dinamico">
id="it.sinossi.menu.sinossiCompoundContributionItem"
class="it.sinossi.menu.SinossiCompoundContributionItem">






La classe it.sinossi.menu.sinossiCompoundContributionItem deve estendere la classe astratta org.eclipse.ui.actions.CompoundContributionItem e implementare il metodo getContributionItems


import org.eclipse.jface.action.IContributionItem;
import org.eclipse.swt.SWT;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.CompoundContributionItem;
import org.eclipse.ui.menus.CommandContributionItem;
import org.eclipse.ui.menus.CommandContributionItemParameter;


public class SinossiCompoundContributionItem extends CompoundContributionItem
{
private static int counter = 0;

@Override
protected IContributionItem[] getContributionItems()
{
final CommandContributionItemParameter contributionParameter =
new CommandContributionItemParameter(
PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
"it.sinossi.menu.sinossiCompoundContributionItem",
"it.sinossi.command.dynamicCommand",
SWT.NONE);
contributionParameter.label = "Dynamic Menu Item " + counter++;
items[i] = new CommandContributionItem(contributionParameter);
}
return new IContributionItem[] { new CommandContributionItem(contributionParameter) };
}
}


Il metodo restituisce un array di IContributionItem. Ogni elemento dell'array è un oggetto di classe org.eclipse.ui.menus.CommandContributionItem, e rappresenta una voce da aggiungere al menu. Ogni CommandContributionItem è costruito a partire da un org.eclipse.ui.menus.CommandContributionItemParameter, che contiene le caratteristiche della voce stessa.
Nel suo costruttore infatti devono essere specificati l'id dell'elemento dynamic a cui associare il CommandContributionItem e l'id del command che dovra essere eseguito quando la voce viene selezionata.
Si noti che il metodo getContributionItems viene eseguito ogni volta che viene aperto il menu, perciò la variabile counter verrà incrementata ogni volta e questo fa si che la label della voce di menu sia aggiornata dinamicamente.

Nel plugin.xml aggiungiamo l'estension point org.eclipse.ui.commands per definire il command e l'handler di default che saranno attivati alla selezione della voce


point="org.eclipse.ui.commands">
id="it.sinossi.command.dynamicCommand"
defaultHandler="it.sinossi.command.DynamicCommand"
name="Dynamic Command">


mercoledì 27 gennaio 2010

Organize extension point popupMenus

A popupMenu declares one or more insertionPoints that will be used by contributors to organize their contributions into a meaningful, more user-friendly, consistent list.
If clients only specify the "popupMenuId" attribute of the viewer element, then the set of insertionPoints used by the context menu will default to the following list in the given order:

"group.new" separator="true"
"group.goto"
"group.open" separator="true"
"group.openWith"
"group.show" separator="true"
"group.edit" separator="true"
"group.reorganize"
"group.port"
"group.generate" separator="true"
"group.search" separator="true"
"group.build" separator="true"
"additions" separator="true"
"group.properties" separator="true"


If not specified, the default group is additions.

Clients that wish to refer to these values programmatically may use the corresponding constants in org.eclipse.ui.navigator.ICommonMenuConstants.

Clients that wish to customize their menus are encouraged to start with this list and add or remove insertion points as necessary. Clients are also encouraged to follow the pattern of beginning each group name with "group.".

lunedì 23 novembre 2009

Java plugin per Firefox su Ubuntu

To execute applets in your Firefox browser you have to install the java plugin.

Follow this steps:
1) sudo apt-get install sun-java6-jdk
2) ln -s /usr/lib/jvm/__JDK-VERSION__/jre/plugin/i386/ns7/libjavaplugin_oji.so /home/__USER__/.mozilla/plugins/