2009-04-13 3 views
4

두 번째 MVC 그룹을 인스턴스화하는 방법을 볼 수 있습니다.griffon에서 두 번째 MVC 그룹을 대화 상자로 표시하는 방법

def (loginPaneModel, loginPaneView, loginPaneController) = 
     createMVCGroup('LoginPane', 'LoginPane', [:]); 
view.loginPanel = loginPaneView.loginPanel 

하지만 내 메인 윈도우의 일부로 표시하고 싶지 않습니다. 나는 그것을 통해 그것을 팝업 싶어요. 그 일을하기 위해 무엇을 부르겠습니까? 감사!

답변

0

가장 쉬운 방법은보기 패널을 부모 MVC 그룹의 대화 상자 루트로 사용하는 것입니다. 을 yor 코드 이런 식으로 뭔가를 할 수있는 당신의 컨트롤러 그룹에 대한보기 ...

application(title:'your app', ....) { 
    // your existing code... 

    loginDialog = dialog(title:'Login Panel', visible:false) { 
    panel(loginPanel) 
    } 
} 

그리고에서 다음

view.loginDialog.visible = true 
(동일한 컨트롤러에서) 대화 상자를 표시해야 할 때

다른 창 내부에 대화 상자를 중첩하는 것은 대화 상자의 소유자를 부모의 프레임 또는 대화 상자로 설정하는 부작용이 있습니다. 다른 대화 상자/창에 의해 소유 된 대화 상자가 있으면 대화 상자가 부모와 연결되고 항상 해당 부모 위에 놓일 수 있습니다. 또한 부모와 함께 올리거나 내릴 것입니다.

0

음, 첫 번째 줄만 필요합니다. 창문을 열면 충분했다. 그래도 핵심은보기를 프레임으로 만드는 것이라고 생각합니다.

def frame = frame(title:'Login', pack:true, locationByPlatform:true) { 
    ... 
} 
frame.pack() 
frame.show() 
관련 문제