2014-09-10 54 views
2

我正在開發一個e4應用程序。最初我有部分A.我顯示應用程序啓動的一部分,B部分不可見。在A部分中,我將用鏈接顯示HTML頁面。當用戶點擊任何鏈接時,我需要打開另一個部分,B。這兩個部分將同時可見,例如Windows的垂直平鋪窗口。這個怎麼做 ?如何在Eclipse中打開另一個零件e4

+0

我我正在使用@Inject EPartService partService; MPart mpart = partService.findPart(「in.airinfotech.bhcr.part.bareact」); \t mpart.setVisible(true); partService.showPart(mpart,PartState.CREATE);但partService引用獲取null值並獲得NPE異常,我也試過MyClass myClass = ContextInjectionFactory.make(MyClass.class,context);我有些事去的東西錯 – Abhit 2014-09-10 10:59:36

回答

7

如果你在你的應用模型的一部分定義你可以使用EPartService

@Inject EPartService partService; 

partService.showPart("part id", PartState.ACTIVATE); 

無論你把它的應用模式將打開的部分。如果您不希望顯示的零件最初關閉該零件的應用程序模型條目中的「待渲染」標誌。

或者,你可以從「第一部分描述」

MPart part = partService.createPart("part descriptor id"); 

創建一個部分。在這種情況下,你需要將部件添加到您的部分棧之一,然後顯示它:

@Inject EModelService modelService; 

@Inject MApplication app; 

MPartStack partStack = (MPartStack)modelService.find("part stack id", app); 

partStack.getChildren().add(part); 

partService.showPart(part, PartState.ACTIVATE); 
+1

我關掉「被渲染」標誌 ,當我想顯示部分 我會使用可視標誌 公共類PartShow { @Inject EPartService partservice; (){ public void show(){ 嘗試MPart mpart = partservice.findPart(「com.abc.test.part.mypart」); //空指針錯誤partservice = null mpart.setVisible(true); partservice.showPart(mpart,PartState.CREATE); partservice.showPart(mpart,PartState.CREATE); (例外){ ex.printStackTrace(); } } }但它給出空指針錯誤 – John 2014-09-10 11:20:39

+1

不要關閉可見標誌。直接注入僅在從應用程序模型創建的對象上完成 - 請參閱http://stackoverflow.com/q/25759291/2670892瞭解如何創建注入的對象。 – 2014-09-10 11:35:30

+0

EPartService partservice = context.get(EPartService.class);這給錯誤java.lang.IllegalStateException:應用程序沒有活動窗口 – Abhit 2014-09-10 11:44:20

相關問題