2013-02-27 67 views
0

我想弄清楚如何使用Errai-UI做「選項卡」。使用Errai-UI的選項卡

例如,如果選中的選項卡是#home,則會顯示Home模板或者#about模板顯示爲AboutUs

我有這個入口點類:

@Templated("#home") 
@EntryPoint 
public class App extends Composite { 
     @PostConstruct 
     public void setup() 
     { 
      RootPanel.get().clear(); 
      RootPanel.get("rootPanel").add(this); 
     } 
} 

公司簡介模板

@Templated("#about") 
public class AboutUs extends Composite { 
     @PostConstruct 
     public void setup() { 
      RootPanel.get("rootPanel").clear(); 
      RootPanel.get("rootPanel").add(this); 
     } 
} 

回答

1

要打開導航,你應該在入口點初始化導航組件。每個頁面應該有註釋@Page(path = "pageName")。 只需通過url追加#pageName或使用特殊組件(如下所示)切換選項卡。

看到一個例子:

繼承導航模塊

<inherits name="org.jboss.errai.ui.nav.Navigation"/> 

實施的切入點

@EntryPoint 
public class Bootstrap 
{ 

    @Inject 
    Navigation navigation; 


    @PostConstruct 
    public void buildUI() 
    { 
     navigation.getContentPanel().setWidth("100%"); 
     navigation.getContentPanel().setHeight("100%"); 
     RootPanel.get().add(navigation.getContentPanel()); 
    } 

} 

實現一個頁面

@Templated 
@Page(path = "myPage", startingPage = true) 
public class MyPage extends Composite 
{ 
    ... 
} 

要添加內的另一個 「鏈接」 COMPONE nt您可以使用以下注入:

@Inject 
private TransitionTo<MyPage> myPageTransition; 

... 
myPageTransition.go(); // load MyPage 
... 
+0

使用@Page註釋,例如MyPage,它將加載MyPage.html的權利?對於AnotherPage,它會加載AnotherPage.html對不對? – xybrek 2013-02-27 16:22:27

+0

組件直接插入根DOM元素,因此沒有頁面重新加載。所以改變的是AnotherPage複合組件被渲染來代替PrevousPage組件。與在gwt中一樣,通常只有一個入口點.html,然後在不重定向到另一個頁面的情況下進行導航。 – 2013-02-27 16:39:03

+0

當我這樣做時,我得到這個錯誤:org.jboss.errai.ioc.client.container.IOCResolutionException:沒有匹配的bean實例:org.jboss.errai.ui.demo.client.local.App - > where App是使用Page和Templated註釋的應用程序 – xybrek 2013-02-27 16:46:14

相關問題