2009-03-11 14 views
2

İki kontrolleri, birbiri üzerine birinden oluşan bir vurgulu kontrolü vardır bir Eclipse eklentisi yazıyorum:JFace TreeViewer veya SWT Ağacı'nın tercih edilen boyutunu nasıl belirleyebilirim?

kolayca boyut ipucu

A TreeViewer hesaplamak Can kendisi için

bir HTML görüntüleyici (BrowserInformationControl) bir ağaç içerir.

Ağacımı gerçek içeriklerle kurdum. Ancak, ağacın boyutunu veya işlendikten sonra boyut ipucunu anlamanın bir yolunu bulamıyorum.

+0

Sadece kontrol etmeniz için bağlantılar ve alternatif ekledi. Emin olmak için, sorunuzu, kullandığınız Eclipse'in tam sürümüyle tamamlayabilir misiniz? Ve amaçlanan hedef (Eclipse versiyonu olarak)? – VonC

+0

Widget'ın – andyczerwonka

cevap

4

org.eclipse.swt.widgets.Tree API göre, bu yapılmalıdır:

public Point computeSize(int wHint, 
        int hHint, 
        boolean changed) 

bir kontrol tercih edilen boyutu en iyi gösterilecektir ki boyutudur.

Genişlik ipucu ve yükseklik ipuçları argümanı, arayanın "Belirli bir genişlik göz önüne alındığında, kontrolün içeriğin tamamını göstermek için ne kadar yüksek olması gerektiği" gibi bir kontrol sorusu sormasını sağlar.
Arayanın belirli bir boyutu kısıtlamak istemediğini belirtmek için sabit SWT.DEFAULT ipucu için geçirilir.

Değiştirilen bayrak doğruysa, alıcının içindekilerin değiştiğini gösterir, bu nedenle denetimi içeren bir düzen yöneticisinin temizlenmesine gerek duyulmuş olabilecek tüm önbellekler silinebilir. Denetim yeniden boyutlandırıldığında, değişen bayrak yanlış olur, bu nedenle düzen yöneticisi önbellekleri korunabilir. Windows üzerinde, computeSize() davranışı kusurlu olduğunu


Not: Bu message ve bu bug bkz: ileri tutulma 3.4M1 ve sabit.

kullanımının this message numaralı örneğinde kullanılması.

getBound() kullanımı interesting alternative başka olabilir.

+0

tarafından yönetildiği düzen tarafından belirlenir. Bu benim kullandığım şey ... Ne yazık ki, Eclipse'i etkilemiyor gibi görünmüyor, bu da çok küçük bir noktaya dönmeyi sürdürüyor ... – Uri

+0

Merhaba VonC, Bunun için teşekkürler. Sorun, yalnızca Mac sürümünde ortaya çıkıyor. Pencerelerde çalıştırdığımda, kodum bir çekicilik gibi çalışır. Kullandıkları iki farklı UI sistemine sahip oldukları için diğer Mac dağıtımına bakacağım. – Uri

+0

@Uri: bilmek güzel. Bunun için kayıtlı bir güncel tutulma hatası olup olmadığını kontrol edeceğim. – VonC

İlgili konular