2010-03-31 18 views
6

Estoy trabajando en un árbol SWT similar al here, sin embargo, deseo poder mostrar signos + en algunos casos en lugar de - para un elemento de árbol expandido. Es posible ?Cómo cambiar los iconos más/menos del árbol SWT

Si no, ¿hay API de Windows para tener iconos personalizados para el estado expandido/contraído de un elemento de árbol?

+0

La solución es usar el mensaje TVE_EXPANDPARTIAL en Windows. – Ali

Respuesta

2

El componente SWT Tree utiliza el widget Tree nativo si está disponible, por ejemplo en el caso de Windows; utiliza widget nativo mientras está en Linux (depende del motor UI que se use), puede crear un árbol personalizado por sí mismo.

En el sistema operativo donde utiliza el widget Tree nativo, no es posible personalizar los íconos + y -.

Como Ali sugirió (ver http://msdn.microsoft.com/en-us/library/bb773568%28VS.85%29.aspx), es posible que desee utilizar TVE_EXPANDPARTIAL, pero tenga en cuenta que el código dependerá del sistema operativo (incluso en las versiones de Windows).

Sin embargo, puede desear utilizar una imagen personalizada, utilizando el método getImage() en el TreeContentProvider para indicar lo contrario en lugar de confiar en TVE_EXPANDPARTIAL. Esto también asegurará que su código sea independiente del sistema operativo.

+0

¡Gracias! TreeContentProvider no es parte de SWT ... No estoy seguro de cómo lo haría, pero saca un buen punto sobre el código que tiene que depender del sistema operativo. Terminé implementando una versión de 64 bits y una versión de 32 bits de la subclase SWTTree. – Ali

+0

¡Ah! Olvidé ... es parte de JFace. La clase relacionada es TreeViewer. –

+1

setImage no cambia realmente el icono +/-. Agrega una imagen a la derecha del ícono +/-. – Ali

Cuestiones relacionadas