2009-03-26 30 views
5

Eclipse RCP ve tüm perspektif/görünüm/editör tasarımı hakkında soru - Birden fazla monitörde birden fazla pencere gösterecek uygulama oluşturmanın en iyi yolu nedir? Gördüğüm Öğreticiler ve kitap, her zaman tek bir uygulama penceresindeki perspektif içinde RCP/SWT tasarımını görünümlere dönüştürüyor.Eclipse RCP uygulaması - çoklu monitörler için çok pencereli tasarım

Bir pencere diğerlerinin tümünü yönetmeli veya hepsi eşit olmalıdır (sonuncu uygulamadan çıkılıyor)? Bakış açıları ve görüşler nasıl? Bilmemiz gereken başka şeyler var mı?

Ortam: Eclipse Ganymede, Windows XP.

cevap

7

Tek bir Eclipse iş tezgahı birden çok pencere oluşturabilir. Her pencere bir perspektif kullanarak düzenlenir, böylece farklı pencereler farklı perspektiflere veya aynı perspektife ayarlanabilir ve her pencerede perspektifleri diğer pencerelerden bağımsız olarak değiştirebilirsiniz.

Ayrıca, her pencere için girişi de ayarlayabilirsiniz. Bu, her pencerenin farklı veriler üzerinde çalıştığı durumlarda kullanışlıdır (örneğin, her bir pencere farklı bir sunucuya bağlanabilir veya hepsi aynı şemaya sahip ancak farklı veriler içeren farklı veritabanlarından veri gösterebilir).

Yalnızca farklı pencerelerde aynı verinin farklı perspektiflerini görebilmeniz için yalnızca windows kullanıyor olmanız olabilir. Bu durumda, pencereleri programatik olarak oluşturmanız gerekmez, ancak yalnızca çalışma tezgahı tarafından sağlanan eylemi eklemeniz gerekir.

alan beyanlarına ekleyin:: Bu ActionBarAdvisor sınıfını değiştirerek yapılabilir

newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window); 
    register(newWindowAction); 
:

private IWorkbenchAction newWindowAction; 

(bu genellikle bir yöntemi denir makeActions) eylemleri yapmak koda eklemek menü Typica

menu.add(newWindowAction); 

şudur: menüler oluşturmak nereye

koduna eklemek Pencere menüsünü aç. uygulamanızda zaten Pencere menüsü yok ve bir tane oluşturmak istiyorsanız, aşağıdaki satırı çalışacaktır:

MenuManager menu = new MenuManager(
     "&Window", 
     IWorkbenchActionConstants.M_WINDOW); 

Bu, aynı şekilde yeni bir pencere oluşturur bir menü öğesi verecektir Eclipse IDE'deki Window-> New Window menü öğesi.

Diğer taraftan, her pencerenin farklı veriler göstermesini istiyorsanız, yeni pencereleri programlı olarak açmanız gerekir. Bu, her pencere için farklı giriş ayarlamanıza izin verir. inputObject penceresinde gösterilen verileri tanımlayan bilgileri içerir

IWorkbenchPage newPage = window.openPage(inputObject); 

: Sen gibi kod şeyin bir çizgi gerekecektir. İlk bakış açısını ayarlamak isterseniz, bu sayfada setPerspective çağrılarak yapılabilir.

Her pencerede başlığını ayarlamak isteyeceksiniz

: WindowTitle penceresine girdi açıklayan bir dize olan

newPage.getWorkbenchWindow().getShell().setText(windowTitle); 

.aşağıdaki gibi

Bir pencere için giriş getirebilir:

window.getActivePage().getInput() 

Daha sonra da pencere girdi olarak kullanan her ne sınıf için bu yayınlayabilirsiniz.

+0

stackoverflow üzerinde harika bir başlangıç, teşekkürler! – tomash

+0

Bu RCP3, değil mi? – Weltraumschaf

İlgili konular