RCP EMF ItemProvider

G

Gast2

Gast
Hallo zusammen,

ich habe ein EMF Object dass ich in einer Tabelle anzeigen lasse, dafür nutze ich die generierten Label und ContentProvider. Das klappt auch ganz gut.
Java:
			MyItemProviderAdapterFactory adapterFactory = new MyItemProviderAdapterFactory();
			viewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
			viewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

Um meine gewünschten Inhalte der Spalten zu bekommen habe ich im ItemProvider die getColumnText überschrieben
Java:
	@Override
	public String getColumnText(Object object, int columnIndex) {
		
		if(columnIndex == 0){
			return ((MyObject)object).getText1();
		}

	if(columnIndex == 1){
			return ((MyObject)object).getText2();
		}
		// usw.
		return super.getColumnText(object, columnIndex);
	}

Jetzt frage ich mich wenn ich das Objekt in einer 2ten Tabelle auf einer anderen View/Editor anders darstellen lassen will z.B. weniger Spalten.
Wie muss ich den ItemProvider dann anpassen? Oder geht sowas gar nicht?

Danke
 

Wildcard

Top Contributor
Weniger Spalten ist ja kein Problem, nur anders sortierte Spalten wären ein Problem.
Bau dir zB einfach einen von AdapterFactoryContentProvider abgeleiteten Content Provider der Spaltenindizes auf zB Feature IDs ummapped.
Der ItemProvider gibt dann den Wert des Features mit der ID columnIndex zurück.
 
G

Gast2

Gast
Okay muss ich mal probieren.
Wollte nur wissen obs vielleicht schon was vorgefertigtes in der API gibt =)
 

Neue Themen


Oben