Leçon 2: Création de la classe CustomMainActionGroup Java™
Cette leçon vous guide étape par étape pour créer une classe CustomMainActionGroup. Cette classe émule la fonctionnalité de la classe MainActionGroup de CARMA par défaut. Cependant, au lieu d'utiliser la classe OpenActionGroup,
la classe CustomMainActionGroup que vous allez créer utilisera la classe CustomOpenActionGroup que vous avez créée.
A propos de cette tâche
Pour créer la classe CustomMainActionGroup :
Procédure
- Créez une classe en cliquant avec le bouton droit de la souris sur le package
menudans la vue Explorateur de packages et en sélectionnant Nouveau > Classe. - Dans la boîte de dialogue Nouvelle classe Java qui s'ouvre, entrez CustomMainActionGroup comme nom. Sélectionnez le bouton Parcourir à droite de la zone de texte Superclasse. Dans la boîte de dialogue Sélection de la superclasse qui s'affiche, entrez le filtre CarmaBrowserActionGroup. Sélectionnez la classe correspondante contenue dans le package
com.ibm.carma.ui.viewet cliquez sur OK. - Cochez la case Constructeurs de la superclasse .
- Cliquez sur Terminer pour fermer la boîte de dialogue Nouvelle classe Java et créer la classe.
- La première chose à faire est de créer des variables globales pour un
NewMenuActionGroup, unNavigationActionGroup, unOpenActionGroup, unConnectionActionGroup, unDisplayActionGroupet unPropertyDialogAction, similaire à l'exemple de code suivant:private NewMenuActionGroup _newMenuActionGroup; private NavigationActionGroup _navigationActionMenu; private OpenActionGroup _openActionGroup; private ConnectionActionGroup _connectionActionGroup; private DisplayActionGroup _displayActionGroup; private PropertyDialogAction _propertyAction;Astuce: Ces variables doivent être déclarées en haut de la classe avant toute déclaration de méthode. - Vous souhaitez maintenant remplacer la méthode
makeActionspour instancier les groupes et les actions nécessaires pour remplir le menu. Avec leOpenActionGroup, assurez-vous d'instancier votre classeCustomOpenActionGroupau lieu de la classe par défaut. Utilisez le code source suivant :protected void makeActions() { _newMenuActionGroup = new NewMenuActionGroup(); _navigationActionMenu = new NavigationActionGroup(getBrowser()); _openActionGroup = new CustomOpenActionGroup(); _connectionActionGroup = new ConnectionActionGroup(getBrowser()); _displayActionGroup = new DisplayActionGroup(getBrowser()); _propertyAction = new PropertyDialogAction(getBrowser().getViewSite(), getViewer()); } - Remplacer la méthode
fillContextMenu()par la liste mise à jour des groupes, des actions et des séparateurs. Pour que cela ressemble à un menu contextuel, utilisez le même ordre pour ajouter des éléments au menu en utilisant l'exemple de code suivant :public void fillContextMenu(IMenuManager menu) { ActionContext myContext = new ActionContext(getViewer().getSelection()); _newMenuActionGroup.getContext(); _newMenuActionGroup.setContext(myContext); _newMenuActionGroup.fillContextMenu(menu); _navigationActionMenu.setContext(myContext); _navigationActionMenu.fillContextMenu(menu); menu.add(new Separator("open")); _openActionGroup.setContext(myContext); _openActionGroup.fillContextMenu(menu); menu.add(new Separator("refractor")); menu.add(new Separator("connect")); _connectionActionGroup.setContext(myContext); _connectionActionGroup.fillContextMenu(menu); _connectionActionGroup.updateActionBars(); menu.add(new Separator("display")); _displayActionGroup.setContext(myContext); _displayActionGroup.fillContextMenu(menu); menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); menu.add(new Separator("project")); menu.add(new Separator("properties")); menu.add(_propertyAction); } - Importez toutes les classes et tous les packages nécessaires. Assurez-vous que tous les éléments suivants sont inclus dans les instructions d'importation :
import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.actions.ActionContext; import org.eclipse.ui.dialogs.PropertyDialogAction; import com.ibm.carma.ui.view.BaseCarmaBrowser; import com.ibm.carma.ui.view.CarmaBrowserActionGroup; import com.ibm.carma.ui.view.ConnectionActionGroup; import com.ibm.carma.ui.view.DisplayActionGroup; import com.ibm.carma.ui.view.NavigationActionGroup; import com.ibm.carma.ui.view.NewMenuActionGroup; import com.ibm.carma.ui.view.OpenActionGroup; - Enregistrez la source et déboguez les éventuelles erreurs.