A szülőnek számos lehetősége van a környezet összeállítására:
/**
* Nézet, amely két beágyazott utód létrehozásának módját mutatja be
* az alapértelmezett környezettel.
*/
public class DefaultContextView {
public DefaultContextView(Composite parent, IPartFactory
factory) throws CoreException {
// Erőforrás-navigátor létrehozása
ContainerContext viewContext1
= new ContainerContext();
ISite view1 = factory.createView(
IPageLayout.ID_RES_NAV, parent, viewContext1, null);
// Tulajdonságnézet létrehozása
ContainerContext viewContext2
= new ContainerContext();
ISite view2 = factory.createView(IPageLayout.ID_PROP_SHEET,
parent, viewContext2, null);
parent.setLayout(new FillLayout());
}
}
public class RedirectContextView {
/**
* A komponens konstruktora. Ne hívja meg közvetlenül.
*/
public RedirectContextView(Composite parent, IPartFactory
factory, ISelectionHandler selection, IActionBars actionBars) throws CoreException
{
// Erőforrás-navigátor létrehozása.
A navigátor kijelölésének átirányítása közvetlenül a szülőhöz.
ContainerContext viewContext1
= new ContainerContext()
.addInstance(ISelectionHandler.class,
selection);
ISite view1 = factory.createView(
IPageLayout.ID_RES_NAV,
parent, viewContext1, null);
// Tulajdonságnézet létrehozása. A műveletsorok
közvetlen módon használatának engedélyezése a tulajdonságnézet számára.
ContainerContext viewContext2
= new ContainerContext()
.addInstance(IActionBars.class,
actionBars);
ISite view2 = factory.createView(IPageLayout.ID_PROP_SHEET,
parent, viewContext2, null);
parent.setLayout(new FillLayout());
}
}
public class OverrideInstanceView {
/**
* A komponens konstruktora. Ne hívja meg közvetlenül.
*/
public OverrideInstanceView(Composite parent, IPartFactory
factory, final INameable name) throws CoreException {
ContainerContext viewContext1 = new
ContainerContext();
// Egy ISelectionHandler hozzáadása
a nézet környezetéhez. Minden esetben, amikor a nézet módosítja a kiválasztást,
// megjelenítjük a tartalomleírásban
kiválasztott elemek számát.
viewContext1.addInstance(ISelectionHandler.class,
new ISelectionHandler() {
/* (nem Javadoc)
* @lásd:
org.eclipse.ui.part.services.ISelectionHandler#setSelection(org.eclipse.jface.viewers.ISelection)
*/
public void
setSelection(ISelection newSelection) {
if (newSelection instanceof IStructuredSelection) {
IStructuredSelection sel = (IStructuredSelection)newSelection;
int selectionSize = sel.size();
name.setContentDescription(MessageFormat.format("{0} kiválasztott probléma",
new String[] {Integer.toString(selectionSize)}));
}
}
});
// Problémanézet létrehozása
ISite view1 = factory.createView(
IPageLayout.ID_PROBLEM_VIEW, parent, viewContext1, null);
// Tulajdonságnézet létrehozása
ContainerContext viewContext2 = new
ContainerContext();
ISite view2 = factory.createView(IPageLayout.ID_PROP_SHEET,
parent, viewContext2, null);
parent.setLayout(new FillLayout());
}
}