Rozhraní |
Popis |
IErrorContext |
Sestavuje a zapisuje zprávy IStatus do protokolu
modulu plug-in. |
Bundle |
Balíček modulu plug-in obsahující implementaci části. Informuje ostatní komponenty jako implementace IErrorContext automaticky o jejich modulech plug-in. |
IContainer |
Kontejner webu. Tento objekt lze
dotazovat pro kterékoli jiné rozhraní webu, což lze použít, pokud část požaduje přesměrování nebo multiplexování všeho ze svého webu ke svým podřízeným prvkům. |
INameable |
Umožňuje nastavení názvu, ikony, popisu a popisu obsahu pro část. Nahrazuje různé metody get a listenery v IWorkbenchPart. |
Composite |
Nadřazený kompozitní prvek části. Tento kompozitní
prvek nesdílejí ostatní části a likviduje se zároveň s částí. Části je povoleno nastavovat rozvržení a připojovat k tomuto kompozitnímu prvku listenery. |
ISecondaryId |
Rozhraní, které vrací sekundární ID části při použití ve funkci pohledu s více instancemi. |
ResourceManager |
Bezpečně alokuje a dealokuje obrázky, písma, barvy a ostatní prostředky SWT. Zaručuje částem sdílení identických prostředků a dále uvolňování paměti při uzavření části. |
IDirtyHandler |
Umožňuje částem nastavovat nebo mazat svůj neaktualizovaný stav. |
IMessageDialogs |
Zobrazuje chyby, výstrahy a informační dialogová okna uživateli. |
IActionBars |
Je určen k témuž účelu jako
getViewSite().getActionBars() v kombinaci s rozhraním API Eclipse 3.0. |
IMultiplexer |
Poskytuje multiplexované komponentě přístup k jejímu multiplexeru a k veškerým sdíleným rozhraním. . |
ISavedState |
Uchovává předchozí setrvalý stav části. |
IPartFactory |
Umožňuje části vytvářet vnořené pohledy a editory. |
IPartDescriptor |
Uchovává metainformace o části, tj. její ID, název, výchozí obrázek atd. |
IEditorInput |
Uchovává vstup editoru pro editor. Ukazuje na prázdný vstup editoru pro pohledy. |
ISelectionHandler |
Ošetřuje změny výběru. Části mohou tuto funkci
používat ke změně výběru poskytovaného pracovní ploše. |
Část obsahující kontext musí stanovit, zda část získává jedinečnou instanci pro každé rozhraní nebo objekt sdílený více částmi. Konstruktor části nepřijímá argument null.
Třebaže je vkládání do konstruktoru pohodlné, může být nepraktické přepisovat tímto způsobem všechny stávající editory a pohledy tak, aby mohly využívat předností nových rozhraní webu. Z tohoto důvodu jsou všechna nová rozhraní k dispozici stávajícím pohledům jako adaptéry v IWorkbenchPartSite.
Zde uvádíme pohled obsahující jediné tlačítko otevírající dialogové okno se zprávou.
Následující příklad uvádí zdrojový text pohledu nového typu, který otevírá dialogové okno s použitím rozhraní IMessageDialogs.
/**
* Předvádí použití závislostí komponenty v části nového typu.
*
* @od 3.1
*/
public class DependenciesViewNew {
// Závislosti
private IMessageDialogs dialogs;
/**
* Konstruktor komponenty. Nespouštějte přímo.
*/
public DependenciesViewNew(Composite parent, IMessageDialogs dialogs) {
this.dialogs = dialogs;
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Otevřít dialogové okno");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (mimo Javadoc)
* @viz org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
dialogs.open(IStatus.INFO, "Toto je zpráva");
}
}
Tento příklad ukazuje tradiční pohled, který otevírá dialogové okno s použitím IMessageDialogs a ukazuje tak, že lze tuto operaci provádět rovněž s použitím tradiční části pracovní plochy.
Řádky zvýrazněné červeným písmem předvádějí způsob inicializace a použití rozhraní IMessageDialogs v jednotlivých případech.
/**
* Předvádí použití závislostí komponenty v pohledu starého typu.
*
* @od 3.1
*/
public class DependenciesViewOld extends ViewPart {
// Závislosti
private IMessageDialogs dialogs;
// Hlavní prvek widget
private Composite parent;
/* (mimo Javadoc)
* @viz org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
public void createPartControl(Composite parent) {
this.parent = parent;
this.dialogs = (IMessageDialogs)getSite().getAdapter(IMessageDialogs.class);
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Otevřít dialogové okno");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (mimo Javadoc)
* @viz org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
if (dialogs != null) {
dialogs.open(IStatus.INFO, "Toto je zpráva");
}
}
/* (mimo Javadoc)
* @viz org.eclipse.ui.IWorkbenchPart#setFocus()
*/
public void setFocus() {
parent.setFocus();
}
}