Le Tutoriel Eclipse RCP 4 pour débutant - Application e4 Workbench
1. Les installations requises
Installez Plugin WindowBuilder, il s'agit d'un Plugin qui vous permet de concevoir l'interface d'application SWT par glisser-déplacer facilement.
Voir les instructions d'installation à :
Voir les instructions d'installation à :
Installing e4 Tools Developer Sources:
- Installer e4 Tools Developer Resources pour Eclipse
2. Créer un nouveau Java Workspace
Pour programmer l'applications de RCP, vous devez créer un nouvel Java Workspace :
- File/Switch Workspace/Other..
Saisissez :
- F:\ECLIPSE_TUTORIAL\RCP
3. Créer Eclipse 4 RCP Project vide
Dans ce document, je vais vous donner des instruction de la création d'une application RCP dès le début (Ne pas suivez le modèle disponible), donc je vais créer une application d'Eclipse RCP vide
Sur Eclipse sélectionnez :
- File/New/Other...
- Cochez la case sélectionnée sur le (1)
- Dans la zone (2) sélectionnez "Yes" pour créer RCPProject (Exécutant sur le Desktop), alors, il va créer RAP Project(Exécutant sur le Web)
Sélectionnez "Eclipse 4 RCP Application"
Saisissez :
- Java package name: org.o7planning.tutorial.rcp
Le pojet a été créé :
Exécutez l'application :
Cliquez sur le bouton droite sur EclipseRCPTutorial.product et sélectionnez Run As/Eclipse Application
4. Structure de l'application Eclipse 4 RCP vide
L'application d'Eclipse 4 RCP vide a été créée par Eclipse , voyez sa structure. Ouvrez le fichier Application.e4xmi :
Modifiez le titre de l'application à "Eclipse E4 RCP Application" comme l'exemple ci-dessous.
Et redémarrez l'application :
5. Handler et Command
RCP Framework construit un grand nombre de Commands, par exemple quatre Commands avec l'ID suivante :
- org.eclipse.ui.file.exit
- Commande pour quitter l'application
- org.eclipse.ui.file.open
- La commande pour ouvrir un fichier.
- org.eclipse.ui.file.save
- La commande save editor
- org.eclipse.ui.help.aboutAction
- La commande qui s'ouvre la fenêtre About.
Vous pouvez voir une liste de la command qui a été construite de RCP Framework à :
Créez une nouvelle Command nomméquiteCommand, appelée de sortir l'application qui a été construite par RCP Framework.
De même manière, nous créons trois autres commandes :
Ouvrez le fichier sélectionné.
- ID: org.eclipse.ui.file.open
- Name: openCommand
Exécutez la commande d'enregistrement (save) le contenu sur l'Éditeur (Editor).
- ID: org.eclipse.ui.file.save
- Name: saveCommand
AboutCommand:
- ID: org.eclipse.ui.help.aboutAction
- Name: aboutCommand
Handler sont des classes de traitement des commandes de Menu ou Toolbar. Lorsque vous cliquez sur MenuItem ou ToolItem, c'est-à-dire que vous appelez une commande, avant l'exécution de la Commande, Handler sera exécutée avant, vous pouvez annuler la commande qui est exécutée dans le Handler.
Handler sont des classes qui exécuterent la tâche écrite dans la méthode annotée par @Execute.
Je vais créer quatre classes Handler :
Handler sont des classes qui exécuterent la tâche écrite dans la méthode annotée par @Execute.
AboutHandler.java
package org.o7planning.tutorial.rcp.handler;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
public class AboutHandler {
@Execute
public void execute(Shell shell) {
MessageDialog.openInformation(shell, "About", "Eclipse 4 RCP Application");
}
}
OpenHandler.java
package org.o7planning.tutorial.rcp.handler;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
public class OpenHandler {
@Execute
public void execute(Shell shell){
FileDialog dialog = new FileDialog(shell);
dialog.open();
}
}
QuitHandler.java
package org.o7planning.tutorial.rcp.handler;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.workbench.IWorkbench;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
public class QuitHandler {
@Execute
public void execute(IWorkbench workbench, Shell shell){
if (MessageDialog.openConfirm(shell, "Confirmation",
"Do you want to exit?")) {
workbench.close();
}
}
}
SaveHandler.java
package org.o7planning.tutorial.rcp.handler;
import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
public class SaveHandler {
@CanExecute
public boolean canExecute(EPartService partService) {
if (partService != null) {
return !partService.getDirtyParts().isEmpty();
}
return false;
}
@Execute
public void execute(EPartService partService) {
partService.saveAll(false);
}
}
Déclaration dess classes Handleravec des applications.
Pour déclarer un Handler avec Application, vous devez déclarer l'ID, Handler class et Comand.
Par exemple, l'utilisateur ferme l'application en cliquant sur menuItem Exit, ce menuItem associé à quiteCommand, QuiteHandler est la classe de traitement cette commande (comme déclaré ci-dessus), la classe QuiteHandler demande aux utilisateurs de vouloir fermer l'application ou non, si ou, la commande quiteCommand sera exécutée.
Par exemple, l'utilisateur ferme l'application en cliquant sur menuItem Exit, ce menuItem associé à quiteCommand, QuiteHandler est la classe de traitement cette commande (comme déclaré ci-dessus), la classe QuiteHandler demande aux utilisateurs de vouloir fermer l'application ou non, si ou, la commande quiteCommand sera exécutée.
De même façon, déclarez les autres Handler.
6. Créer des Menus
Créez le menu principal (menu principal) :
Saisissez l'ID du menu principal, il doit être nommé : menu:org.eclipse.ui.main.menu
Créez trois sous-menus :
- File, Function, Help
Créez des sous-menus du menu File
- Open
- Save
- Exit
Réexécutez votre application :
7. Tạo Toolbar
Créez Main Toolbar, avec ID :
- ID: toolbar:org.eclipse.ui.main.toolbar
Ajoutez deux Toolitem : open & save
Relancez votre application :
8. Part
SamplePart.java
/*******************************************************************************
* Copyright (c) 2010 - 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Lars Vogel <lars.Vogel@gmail.com> - Bug 419770
*******************************************************************************/
package org.o7planning.tutorial.rcp.part;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.di.Persist;
import org.eclipse.e4.ui.model.application.ui.MDirtyable;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
public class SamplePart {
private Text txtInput;
private TableViewer tableViewer;
@Inject
private MDirtyable dirty;
@PostConstruct
public void createComposite(Composite parent) {
parent.setLayout(new GridLayout(1, false));
txtInput = new Text(parent, SWT.BORDER);
txtInput.setMessage("Enter text to mark part as dirty");
txtInput.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
dirty.setDirty(true);
}
});
txtInput.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
tableViewer = new TableViewer(parent);
tableViewer.add("Sample item 1");
tableViewer.add("Sample item 2");
tableViewer.add("Sample item 3");
tableViewer.add("Sample item 4");
tableViewer.add("Sample item 5");
tableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
}
@Focus
public void setFocus() {
tableViewer.getTable().setFocus();
}
@Persist
public void save() {
dirty.setDirty(false);
}
}
Ajoutez un nouveau PerspectiveStack. Ceci est un stackqui contient des perspectives.
Ajoutez une nouvelle perspective :
Réexécutez l'application :
Les changements sur Part pourraient faire le bouton Save clair
Tutoriels Eclipse Technology
- Installer Tycho pour Eclipse
- Tutoriel Java OSGi pour débutant
- Créer un projet Java OSGi avec Maven et Tycho
- Installer WindowBuilder pour Eclipse
- Quelle plate-forme devez-vous choisir pour développer des applications de bureau Java?
- Programmation de l'application Java Desktop à l'aide de SWT
- Le Tutoriel de Eclipse JFace
- Installation de la plate-forme cible Eclipse RAP (RAP Target Platform)
- Installer RAP e4 Tooling pour Eclipse
- Créer Eclipse RAP Widget à partir de ClientScripting widget
- Le Tutoriel Eclipse RCP 4 pour débutant - Application e4 Workbench
- Installer RAP Tools pour Eclipse
- Le Tutoriel Eclipse RAP pour débutant - Application e4 Workbench
Show More