disable button until core initialized

This commit is contained in:
Zlatin Balevsky
2019-05-29 19:05:19 +01:00
parent b1d30dc29f
commit 415b6e5287
4 changed files with 26 additions and 4 deletions

View File

@@ -12,6 +12,8 @@ import javax.inject.Inject
import static griffon.util.GriffonApplicationUtils.isMacOSX
import static groovy.swing.SwingBuilder.lookAndFeel
import java.beans.PropertyChangeEvent
@Log
class Ready extends AbstractLifecycleHandler {
@Inject
@@ -48,6 +50,9 @@ class Ready extends AbstractLifecycleHandler {
Core core = new Core(props, home)
core.startServices()
application.context.put("core",core)
application.getPropertyChangeListeners("core").each {
it.propertyChange(new PropertyChangeEvent(this, "core", null, core))
}
}
}

View File

@@ -1,10 +1,27 @@
package com.muwire.gui
import javax.annotation.Nonnull
import javax.inject.Inject
import javax.inject.Named
import com.muwire.core.Core
import griffon.core.artifact.GriffonModel
import griffon.core.GriffonApplication
import griffon.inject.Contextual
import griffon.inject.MVCMember
import griffon.transform.Observable
import griffon.metadata.ArtifactProviderFor
@ArtifactProviderFor(GriffonModel)
class EventListModel {
@Inject @Nonnull GriffonApplication application
@Observable int clickCount = 0
@Observable boolean coreInitialized = false
void mvcGroupInit(Map<String, Object> args) {
application.addPropertyChangeListener("core", {e ->
coreInitialized = (e.getNewValue() != null)
})
}
}

View File

@@ -24,7 +24,7 @@ class EventListView {
gridLayout(rows: 2, cols: 1)
label(id: 'clickLabel', text: bind { model.clickCount },
horizontalAlignment: SwingConstants.CENTER)
button(id: 'clickButton', clickAction)
button(id: 'clickButton', clickAction, enabled: bind {model.coreInitialized})
}
}
}