ComboBox Textfarbe

Hallo,

wir benutzen zur Anwendersteuerung eine ComboBox mit unterschiedlichen Inhalten.
Ein Inhalt ist ein Status, der aktiv, oder inaktiv sein kann.

Kann man den jeweiligen Text der ComboBox mit dem Satus verbinden, und die Farbe entsprechend ändern?
Z.B. in rot oder blau?

Das müßte dynamisch beim Befüllen der ComboBox passieren, also nicht, wenn der User ein Item auswählt.
In HTML ist das ganz einfach, mit Vaadin haben wir da noch keine Lösung gefunden.

Da die Zuweisung über einen Datencontainer erfolgt, werden die Daten in die ComboBox on Block geschrieben.
Dadurch kann man schlecht ein Css während des Schreibens wechseln, oder?

viele Grüße
Michael

Also was bis jetzt noch nicht geht (beziehungsweise nicht ohne die client-seite zu verändern) ist, dass man die Items in der Combobox unterschiedlich stylt (
Mehr Information
).

Man kann nur die Textfarbe der gesamten combobox ändern. Das aber auch dynamisch. Entweder über setStyleName() bei dem es schon für jede farbe eine css-klasse in der style.css geben muss, wie z.B.: .grün{ font-color: green; } Dann kann man im Code Combobox.setStyleName(“grün”) benutzen um die Textfarbe zu ändern. Mit CssInject (was es für Vaadin 6 als Add-On und für Vaadin 7 schon built-in gibt) kann man diese Klassen dynamisch erstellen, ohne dass sie davor schon existieren müssen.

Ok.
Dann muß ich für dieses “Problem” eine andere Lösung finden.
Danke für die schnelle Antwort.

Man könnte in diesem Fall vielleicht eine Art Combobox aus einem PopupView (in Vaadin 7 enthalten. für Vaadin 6 z.B.:
PopupButton
) bauen. In diesen View könnte man Labels auf ein Layout mit einem LayoutClickListener (oder einfach Buttons die gestylt sind) dynamisch durch Iterieren durch den Container setzen. Dadurch kann man immernoch die einzelnen Items anklicken, aber trotzdem einzelne Styles benutzen.
So hätte ich es wahrscheinlich versucht, wenn ichunbedingt eine Combobox brauche.

PS: Außerdem wäre es wie in dem Thread den ich verlinkt habe möglich die VFilterSelect Klasse zu erweitern. In diesem Fall wäre es vielleicht sogar ausreichend eine
Extension
zu schreiben ohne die komplette Komponente neu zu entwickeln.

Wir weisen mehrere hundert Items in dieser ComboBox aus. Dafür ist der Filter der Vaadin Variante genial geeignet.
Ich denke auch, das in der Variante mit Labels der Aufbau der Box evtl. zu lange dauern und zu Lasten des Speichers/Performance gehen würde.

Wir haben uns jetzt für eine zweite ComboBox entschieden, in der eine Vorauswahl getroffen wird, die dann als Grundlage der eigentlichen ComboBox dient. Dann können wir diese auch in der Gesamtheit einfärben.