Eclipse RCP


Manipulation de vues


Dans la manipulation de vues,  nous allons décrire successivement deux entités :



La classe ViewPart

On étend de cette classe est la base pour définir toute vue ou éditeur. Dans notre exemple, nous allons définir une vue et un éditeur.

Création de notre vue et notre éditeur

Pour toute vue ou éditeur, il faut définir un identifiant unique. Il faut également redéfinir la méthode "createPartControl" qui permet de créer la vue.

Pour créer notre première vue :

public void createPartControl(Composite parent) {
Composite top = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
top.setLayout(layout);
Label l = new Label(top, SWT.WRAP);
l.setText("Subject:");
l = new Label(top, SWT.WRAP);
l.setText("Eclipse RCP respire la qualité!");
}

Nous avons créé simplement un label contenant le texte :
"Subject :
Eclipse RCP respire la qualité"


Pour créer notre deuxième vue :

public void createPartControl(Composite parent) {
Composite top = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
top.setLayout(layout);
Text text = new Text(top, SWT.MULTI | SWT.WRAP);
text.setText("This RCP Application spread quality");
text.setLayoutData(new GridData(GridData.FILL_BOTH));
}

Nous avons créé simplement une zone de texte (donc éditable) contenant :
"This RCP Application spread quality"







La classe IPerspectiveFactory

Cette classe à définir l'organisation de notre perspective. Ainsi il faut implémenter cette interface pour lui dire où placer les que nous venons de créer.


Placement de nos vues

Pour placer nos vues il faut le spécifier dans la méthode createInitialLayout :

public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(false);
layout.addStandaloneView(LabelView.ID, false, IPageLayout.LEFT, 0.25f, layout.getEditorArea());
IFolderLayout folder = layout.createFolder("folder", IPageLayout.LEFT, 0.05f, layout.getEditorArea());
folder.addView(MessageView.ID);
}

La différence de placement de ces deux vues résident dans la création d'une vue autonome pour la deuxième vue et d'une vue simple pour notre première vue. L'une va être placée dans un onglet déplaçable, dimensionnable... et l'autre sera uniquement une zone de texte autonome.