2009-04-13 1 views
4

Я могу видеть, как создать экземпляр второй группы MVC, например.Как показать вторую группу 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() 

 Смежные вопросы

  • Нет связанных вопросов^_^