2012-04-19 7 views
0

別のLayoutContainerをレンダリングするMenubar Itemを持つGXT 2.xアプリケーションがあります。GXT:LayoutContainerがESCキーまたは閉じるために「X」ボタンに応答しません

はここ階層だ MainUI.java - > MenuBar.java - > ReservationPopUp.java

私はLayoutContainerの実装の既知の作業例でReservationPopUp.javaの私の内容を交換したと、彼らはESCキーと "への対応X "ボタンを押す。ここで

は、ここに私のReservationPopUp.java

public class ReservationPopUp extends LayoutContainer { 
public ReservationPopUp() { 
} 

@Override 
    protected void onRender(Element parent, int pos) { 

    super.onRender(parent, pos); 
    setSize("1024", "809"); 
    final Window window = new Window(); 
    window.setDraggable(false); 
    window.setSize(537, 399); 
    window.setPlain(true); 
    window.setModal(true); 
    window.setBlinkModal(true); 
    window.setHeading("Reserve A Server"); 
    window.setClosable(true); 
    window.setOnEsc(true); 
    window.setSize("465", "345"); 
    window.setLayout(new AbsoluteLayout()); 

    LabelField lblfldUsers = new LabelField("Users"); 
    window.add(lblfldUsers, new AbsoluteData(43, 218)); 
    final ComboBox<AsyncUser> userList = new ComboBox<AsyncUser>(); 

    window.add(userList, new AbsoluteData(81, 218)); 
    userList.setEmptyText("Select a User..."); 
    userList.setSize("347px", "24px"); 

    LabelField labelServers = new LabelField("Servers"); 
    window.add(labelServers, new AbsoluteData(32, 6)); 

    final DualListField<AsyncServer> serverList = new DualListField<AsyncServer>(); 
     .... 
    window.add(serverList, new AbsoluteData(81, 6)); 
    serverList.setSize("347px", "206px"); 

    window.addButton(new Button("Cancel", new SelectionListener<ButtonEvent>() { 
      @Override 
      public void componentSelected(ButtonEvent ce) { 
      ReservationPopUp.this.hide(); 
      } 
    })); 

    window.addButton(new Button("Reserve", new SelectionListener<ButtonEvent>() { 
      @Override 
      public void componentSelected(ButtonEvent ce) { 
      if (serverList.getToList().getListView().getItemCount() == 0) { 
       MessageBox.alert("Invalid Selection","No Server(s) Selected", null); 
      } else if (userList.getValue() == null) { 

      } else { 
       // DO some stuff 
       ReservationPopUp.this.hide(); 
      } 
      } 
     })); 

    window.addWindowListener(new WindowListener() { 
     @Override 
     public void windowHide(WindowEvent we) { 
      ReservationPopUp.this.hide(); 
     } 
     }); 
    window.setFocusWidget(window.getButtonBar().getItem(0)); 
    add(window); 

} 

}

答えて

2

WindowのスリムバージョンだのMenuItemがReservationPopUp.java

MenuItem mntmReserve = new MenuItem("Reserve"); 
mntmReserve.addSelectionListener(new SelectionListener<MenuEvent>() { 
    public void componentSelected(MenuEvent ce) { 
     RootPanel.get().add(new ReservationPopUp()); 

} 

をレンダリングする方法ですポップアップで、それはdoesnの何にも追加する必要はありません。 LayoutContainerの代わりにWindowクラスを拡張し、ページにReservationPopupを追加する代わりに、Window.show()を呼び出してください。

+0

+1非常に真実。私が書いたGXT3チュートリアルのパネルに「ウィンドウ」を追加したとき、コリンはこれについて私のケースを手に入れました;-) –

+0

ありがとうございました。私はこのフォーラムに尋ねるのにずっと待っていたとは信じられません。 – facistAdmin

関連する問題