diff --git a/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy b/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy index 947cc85b..70d2f3a6 100644 --- a/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy +++ b/gui/griffon-app/controllers/com/muwire/gui/MainFrameController.groovy @@ -1,18 +1,35 @@ package com.muwire.gui +import griffon.core.GriffonApplication import griffon.core.artifact.GriffonController import griffon.core.controller.ControllerAction import griffon.inject.MVCMember import griffon.metadata.ArtifactProviderFor import javax.annotation.Nonnull +import javax.inject.Inject + +import com.muwire.core.Core @ArtifactProviderFor(GriffonController) class MainFrameController { + @Inject @Nonnull GriffonApplication application + @MVCMember @Nonnull + FactoryBuilderSupport builder + @MVCMember @Nonnull MainFrameModel model + private volatile Core core + + private initCore() { + if (core == null) + core = application.getContext().get("core") + } + @ControllerAction - void click() { - model.clickCount++ + void search() { + initCore() + def search = builder.getVariable("search-field").text + println "searching $search" } } \ No newline at end of file diff --git a/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy b/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy index ea498502..40c2e846 100644 --- a/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/MainFrameModel.groovy @@ -13,8 +13,10 @@ class MainFrameModel { @Inject @Nonnull GriffonApplication application @Observable boolean coreInitialized = false - @Observable def results - @Observable def downloads + @Observable def results = [] + @Observable def downloads = [] + + String currentSearch void mvcGroupInit(Map args) { application.addPropertyChangeListener("core", {e -> diff --git a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy index 530a9f74..9c719450 100644 --- a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy @@ -26,7 +26,7 @@ class MainFrameView { FactoryBuilderSupport builder @MVCMember @Nonnull MainFrameModel model - + void initUI() { builder.with { application(size : [1024,768], id: 'main-frame', @@ -48,10 +48,11 @@ class MainFrameView { panel(constraints: BorderLayout.CENTER) { borderLayout() label("Enter search here:", constraints: BorderLayout.WEST) - textField(constraints: BorderLayout.CENTER) + textField(id: "search-field", constraints: BorderLayout.CENTER, action : searchAction) + } panel( constraints: BorderLayout.EAST) { - button("Search") + button(text: "Search", searchAction) } } panel (id: "cards-panel", constraints : BorderLayout.CENTER) {