Interfaz |
Descripción |
IErrorContext |
Construye y anota mensajes de
IStatus a las anotaciones del conector. |
Paquete |
El paquete de conector que contiene la
implementación del componente. Informa automáticamente a otros componentes de sus conectores, como, por ejemplo,
la implementación de IErrorContext. |
IContainer |
Contenedor del sitio. Este objeto puede
consultarse para cualquiera de las demás interfaces de sitio, lo que puede ser
útil si el componente quiere redirigirlo o multiplexarlo todo desde su
sitio a sus hijos. |
INameable |
Permite que un componente
establezca
su nombre, icono, ayuda flotante y descripción del contenido. Sustituye los diversos métodos get y escuchas en IWorkbenchPart. |
Composite |
Compuesto padre para el componente. Este
compuesto no es compartido con ningún otro componente y se desechará al
mismo tiempo que el componente. Se permite que el componente establezca los escuchas de diseño y conexión
en este compuesto. |
ISecondaryId |
Interfaz que devuelve el ID secundario
de un componente cuando se utiliza como vista de múltiples instancias. |
ResourceManager |
Asigna y desasigna imágenes, fonts,
colores y otros recursos SWT de forma segura. Asegura que se compartan recursos idénticos entre componentes y que se
limpie cualquier fuga cuando se cierre el componente. |
IDirtyHandler |
Permite que los componentes se
establezcan o borren su estado de suciedad. |
IMessageDialogs |
Muestra al usuario diálogos de error,
aviso e información. |
IActionBars |
Sirve a la misma
finalidad que getViewSite().getActionBars() hizo con la API de Eclipse 3.0. |
IMultiplexer |
Proporciona un componente multiplexado
con acceso a su multiplexor y cualquier interfaz compartida . |
ISavedState |
Mantiene el estado previamente
persistido del componente. |
IPartFactory |
Permite que un componente cree
vistas anidadas y editores. |
IPartDescriptor |
Mantiene metainformación acerca de un
componente como, por ejemplo, su ID, título, imagen por omisión, etc. |
IEditorInput |
Mantiene la entrada de editor para un
editor. Apunta a una entrada de editor vacía para vistas. |
ISelectionHandler |
Maneja cambios de selección. Los
componentes
pueden utilizarlo para cambiar la selección que proporcionan al entorno de
trabajo. |
Depende del contexto de contenido del componente para determinar si el componente obtendrá una instancia exclusiva para cada interfaz o un objeto compartido entre varios componentes. El constructor del componente no recibe nunca un argumento nulo.
Aunque es conveniente la inyección de constructor, no sería práctico
volver a escribir cada editor y vista existentes para utilizar la inyección de
constructor con el fin de aprovechar las nuevas interfaces de sitios. Por este motivo, todas las nuevas interfaces están también disponibles en
vistas existentes como adaptadores en IWorkbenchPartSite.
Existe una vista que contiene un único botón que abre un diálogo de mensaje.
El ejemplo siguiente muestra el origen de una vista de estilo nuevo que abre el diálogo utilizando la nueva interfaz de IMessageDialogs.
/**
* Muestra cómo utilizar las dependencias de componentes en un
componente de estilo nuevo.
*
* @since 3.1
*/
public class DependenciesViewNew {
// Dependencias
private IMessageDialogs dialogs;
/**
* Constructor de componentes. No debe invocarse directamente.
*/
public DependenciesViewNew(Composite parent, IMessageDialogs dialogs) {
this.dialogs = dialogs;
Button testButton = new Button(parent,
SWT.PUSH);
testButton.setText("Open a dialog");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (no Javadoc)
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent
e) {
openADialog();
}
});
}
private void openADialog() {
dialogs.open(IStatus.INFO, "This is a message");
}
}
Este ejemplo muestra una vista tradicional que abre un diálogo que utiliza
IMessageDialogs y muestra que esto también es posible utilizando un componente
de entorno de trabajo tradicional.
Las líneas en font rojo muestran cómo se inicializa y se utiliza
la interfaz de IMessageDialogs en cada caso.
/**
* Muestra cómo utilizar dependencias de componente en una vista de estilo antiguo
*
* @since 3.1
*/
public class DependenciesViewOld extends ViewPart {
// Dependencias
private IMessageDialogs dialogs;
// Widget principal
private Composite parent;
/* (no Javadoc)
* @see 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("Open a dialog");
testButton.addSelectionListener(new
SelectionAdapter() {
/* (no Javadoc)
* @see 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, "This is a message");
}
}
/* (no Javadoc)
* @see org.eclipse.ui.IWorkbenchPart#setFocus()
*/
public void setFocus() {
parent.setFocus();
}
}