hello griffon
5
gradle.properties
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
group = com.muwire
|
||||||
|
version = 0.0.1
|
||||||
|
groovyVersion = 2.4.15
|
||||||
|
slf4jVersion = 1.7.25
|
||||||
|
spockVersion = 1.1-groovy-2.4
|
31
gui/griffon-app/conf/Config.groovy
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import griffon.util.AbstractMapResourceBundle;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static griffon.util.CollectionUtils.map;
|
||||||
|
import static java.util.Collections.singletonList;
|
||||||
|
|
||||||
|
public class Config extends AbstractMapResourceBundle {
|
||||||
|
@Override
|
||||||
|
protected void initialize(@Nonnull Map<String, Object> entries) {
|
||||||
|
map(entries)
|
||||||
|
.e("application", map()
|
||||||
|
.e("title", "MuWire")
|
||||||
|
.e("startupGroups", singletonList("container"))
|
||||||
|
.e("autoShutdown", true)
|
||||||
|
)
|
||||||
|
.e("mvcGroups", map()
|
||||||
|
.e("container", map()
|
||||||
|
.e("model", "com.muwire.gui.EventListModel")
|
||||||
|
.e("view", "com.muwire.gui.EventListView")
|
||||||
|
.e("controller", "com.muwire.gui.EventListController")
|
||||||
|
)
|
||||||
|
.e("editor", map()
|
||||||
|
.e("model", "com.muwire.gui.EventListModel")
|
||||||
|
.e("view", "com.muwire.gui.EventListView")
|
||||||
|
.e("controller", "com.muwire.gui.EventListController")
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,18 @@
|
|||||||
|
package com.muwire.gui
|
||||||
|
|
||||||
|
import griffon.core.artifact.GriffonController
|
||||||
|
import griffon.core.controller.ControllerAction
|
||||||
|
import griffon.inject.MVCMember
|
||||||
|
import griffon.metadata.ArtifactProviderFor
|
||||||
|
import javax.annotation.Nonnull
|
||||||
|
|
||||||
|
@ArtifactProviderFor(GriffonController)
|
||||||
|
class EventListController {
|
||||||
|
@MVCMember @Nonnull
|
||||||
|
EventListModel model
|
||||||
|
|
||||||
|
@ControllerAction
|
||||||
|
void click() {
|
||||||
|
model.clickCount++
|
||||||
|
}
|
||||||
|
}
|
0
gui/griffon-app/i18n/messages.properties
Normal file
10
gui/griffon-app/models/com/muwire/gui/EventListModel.groovy
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.muwire.gui
|
||||||
|
|
||||||
|
import griffon.core.artifact.GriffonModel
|
||||||
|
import griffon.transform.Observable
|
||||||
|
import griffon.metadata.ArtifactProviderFor
|
||||||
|
|
||||||
|
@ArtifactProviderFor(GriffonModel)
|
||||||
|
class EventListModel {
|
||||||
|
@Observable int clickCount = 0
|
||||||
|
}
|
5
gui/griffon-app/resources/application.properties
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
application.name=${application_name}
|
||||||
|
application.version=${application_version}
|
||||||
|
build.date=${build_date}
|
||||||
|
build.time=${build_time}
|
||||||
|
build.revision=${build_revision}
|
BIN
gui/griffon-app/resources/griffon-icon-128x128.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
gui/griffon-app/resources/griffon-icon-16x16.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
gui/griffon-app/resources/griffon-icon-24x24.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
gui/griffon-app/resources/griffon-icon-256x256.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
gui/griffon-app/resources/griffon-icon-32x32.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
gui/griffon-app/resources/griffon-icon-48x48.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
gui/griffon-app/resources/griffon-icon-64x64.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
gui/griffon-app/resources/griffon.png
Normal file
After Width: | Height: | Size: 15 KiB |
0
gui/griffon-app/resources/resources.properties
Normal file
31
gui/griffon-app/views/com/muwire/gui/EventListView.groovy
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package com.muwire.gui
|
||||||
|
|
||||||
|
import griffon.core.artifact.GriffonView
|
||||||
|
import griffon.inject.MVCMember
|
||||||
|
import griffon.metadata.ArtifactProviderFor
|
||||||
|
import javax.swing.SwingConstants
|
||||||
|
import javax.annotation.Nonnull
|
||||||
|
|
||||||
|
@ArtifactProviderFor(GriffonView)
|
||||||
|
class EventListView {
|
||||||
|
@MVCMember @Nonnull
|
||||||
|
FactoryBuilderSupport builder
|
||||||
|
@MVCMember @Nonnull
|
||||||
|
EventListModel model
|
||||||
|
|
||||||
|
void initUI() {
|
||||||
|
builder.with {
|
||||||
|
application(size: [320, 160], id: 'event-list',
|
||||||
|
title: application.configuration['application.title'],
|
||||||
|
iconImage: imageIcon('/griffon-icon-48x48.png').image,
|
||||||
|
iconImages: [imageIcon('/griffon-icon-48x48.png').image,
|
||||||
|
imageIcon('/griffon-icon-32x32.png').image,
|
||||||
|
imageIcon('/griffon-icon-16x16.png').image]) {
|
||||||
|
gridLayout(rows: 2, cols: 1)
|
||||||
|
label(id: 'clickLabel', text: bind { model.clickCount },
|
||||||
|
horizontalAlignment: SwingConstants.CENTER)
|
||||||
|
button(id: 'clickButton', clickAction)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,25 @@
|
|||||||
|
package com.muwire.gui
|
||||||
|
|
||||||
|
import griffon.core.test.GriffonFestRule
|
||||||
|
import org.fest.swing.fixture.FrameFixture
|
||||||
|
import org.junit.Rule
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
import static org.junit.Assert.fail
|
||||||
|
|
||||||
|
class EventListIntegrationTest {
|
||||||
|
static {
|
||||||
|
System.setProperty('griffon.swing.edt.violations.check', 'true')
|
||||||
|
System.setProperty('griffon.swing.edt.hang.monitor', 'true')
|
||||||
|
}
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public final GriffonFestRule fest = new GriffonFestRule()
|
||||||
|
|
||||||
|
private FrameFixture window
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void smokeTest() {
|
||||||
|
fail('Not implemented yet!')
|
||||||
|
}
|
||||||
|
}
|
10
gui/src/main/groovy/com/muwire/gui/Launcher.groovy
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.muwire.gui
|
||||||
|
|
||||||
|
import griffon.swing.SwingGriffonApplication
|
||||||
|
|
||||||
|
class Launcher {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SwingGriffonApplication.main(args)
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,21 @@
|
|||||||
|
package com.muwire.gui
|
||||||
|
|
||||||
|
import griffon.core.test.GriffonUnitRule
|
||||||
|
import griffon.core.test.TestFor
|
||||||
|
import org.junit.Rule
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
import static org.junit.Assert.fail
|
||||||
|
|
||||||
|
@TestFor(EventListController)
|
||||||
|
class EventListControllerTest {
|
||||||
|
private EventListController controller
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public final GriffonUnitRule griffon = new GriffonUnitRule()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void smokeTest() {
|
||||||
|
fail('Not yet implemented!')
|
||||||
|
}
|
||||||
|
}
|