G
Guest
Gast
Hallo,
ich mache zur Zeit meine ersten Gehversuche mit Eclipse RCP, da in meiner Firma neue Programme in Zukunft auf Basis von Eclipse RCP entwickelt werden sollen.
Ich habe mir den Adapter Mechanismus angesehen, aber leider funktioniert mein Beispiel nicht:
Ich habe eine ListView geschrieben :
Meine Adapter Factory dazu sieht folgendermassen aus:
Es wird mir leider im ListViewer nichts angezeigt.
Vielleicht habe ich aber auch einen Deckfehler:
Ich hatte das Konzept so verstanden:
1. Man schreibt eine AdapterFactory.
2. Diese registriert man zusammen mit dem Modell
3. die Klassen BaseWorkbenchContentProvider und WorkbenchLabelProvider wissen dann auf Grund der
Adapter wie die Modelldaten dargestellt werden müssen.
???
Danke im vorraus
ich mache zur Zeit meine ersten Gehversuche mit Eclipse RCP, da in meiner Firma neue Programme in Zukunft auf Basis von Eclipse RCP entwickelt werden sollen.
Ich habe mir den Adapter Mechanismus angesehen, aber leider funktioniert mein Beispiel nicht:
Ich habe eine ListView geschrieben :
Code:
public class TestView extends ViewPart {
public static final String ID =
"de.daniel.viewertest.testView";
private IAdapterFactory factory = new ViewerAdapterFactory();
private Fahrzeuge fahrzeug; //Modell
private ListViewer viewer;
public TestView() {
}
@Override
public void createPartControl(Composite parent) {
viewer = new ListViewer(parent, SWT.MULTI | SWT.V_SCROLL);
Platform.getAdapterManager().registerAdapters(factory, Fahrzeuge.class);
viewer.setLabelProvider(new WorkbenchLabelProvider());
viewer.setContentProvider(new BaseWorkbenchContentProvider());
fahrzeug = new Fahrzeuge();
fahrzeug.setName("997 turbo");
viewer.setInput(fahrzeug);
Meine Adapter Factory dazu sieht folgendermassen aus:
Code:
public class ViewerAdapterFactory implements IAdapterFactory{
private IWorkbenchAdapter fahrzeugAdapter = new IWorkbenchAdapter() {
public Object[] getChildren(Object o) {
return null;
}
public ImageDescriptor getImageDescriptor(Object object) {
return null;
}
public String getLabel(Object o) {
return ((Fahrzeuge) o).getName();
}
public Object getParent(Object o) {
return null;
}
};
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adapterType == IWorkbenchAdapter.class
&& adaptableObject instanceof Fahrzeuge)
return fahrzeugAdapter;
return null;
}
public Class[] getAdapterList() {
return new Class[] { IWorkbenchAdapter.class };
}
Es wird mir leider im ListViewer nichts angezeigt.
Vielleicht habe ich aber auch einen Deckfehler:
Ich hatte das Konzept so verstanden:
1. Man schreibt eine AdapterFactory.
2. Diese registriert man zusammen mit dem Modell
3. die Klassen BaseWorkbenchContentProvider und WorkbenchLabelProvider wissen dann auf Grund der
Adapter wie die Modelldaten dargestellt werden müssen.
???
Danke im vorraus