Skip to content

Commit

Permalink
Update guide sections: Feature, Views, Services, Property Editors
Browse files Browse the repository at this point in the history
  • Loading branch information
aalmiray committed Jul 10, 2014
1 parent 05e0e4a commit 5f0bb64
Show file tree
Hide file tree
Showing 22 changed files with 1,269 additions and 159 deletions.
7 changes: 6 additions & 1 deletion docs/griffon-guide/griffon-guide.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,8 @@ asciidoctor {
numbered : true,
linkattrs : true,
imagesdir : 'images',
stylesheet : file('src/resources/css/style.css'),
linkcss : true,
stylesheet : 'css/style.css',
'source-highlighter' : 'coderay',
'griffon-version' : project.version,
'griffon-group' : project.group,
Expand All @@ -189,6 +190,10 @@ asciidoctor {
from rootProject.file('src/media/banners/large.png')
rename '.*', 'griffon-banner-large.png'
}
copy {
into file("${task.outputDir}/css/")
from file('src/resources/css/style.css')
}
}
}

Expand Down
10 changes: 10 additions & 0 deletions docs/griffon-guide/src/asciidoc/_links.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@

:link_griffon_application: link:api/griffon/core/GriffonApplication.html[GriffonApplication, window="_blank"]
:link_griffon_artifact: link:api/griffon/core/artifact/GriffonArtifact.html[GriffonArtifact, window="_blank"]
:link_griffon_mvcartifact: link:api/griffon/core/artifact/GriffonMvcArtifact.html[GriffonMvcArtifact, window="_blank"]
:link_shutdown_handler: link:api/griffon/core/ShutdownHandler.html[ShutdownHandler, window="_blank"]
:link_mvc_group: link:api/griffon/core/mvc/MVCGroup.html[MVCGroup, window="_blank"]
:link_mvc_group_configuration: link:api/griffon/core/mvc/MVCGroupConfiguration.html[MVCGroupConfiguration, window="_blank"]
:link_mvc_group_manager: link:api/griffon/core/mvc/MVCGroupManager.html[MVCGroupManager, window="_blank"]
:link_mvc_group_manager_create_mvc_group: link:api/griffon/core/mvc/MVCGroupManager.html#createMVCGroup()[createMVCGroup(), window="_blank"]
:link_mvc_group_manager_build_mvc_group: link:api/griffon/core/mvc/MVCGroupManager.html#buildMVCGroup()[buildMVCGroup(), window="_blank"]
Expand Down Expand Up @@ -52,13 +56,19 @@
:link_griffon_environment: link:api/griffon/core/env/GriffonEnvironment.html[GriffonEnvironment, window="_blank"]
:link_environment: link:api/griffon/core/env/Environment.html[Environment, window="_blank"]
:link_metadata: link:api/griffon/core/env/Metadata.html[Metadata, window="_blank"]
:link_feature: link:api/griffon/core/env/Feature.html[Feature, window="_blank"]
:link_build_customizer: link:api/griffon/util/BuilderCustomizer.html[BuilderCustomizer, window="_blank"]
:link_injector: link:api/griffon/core/injection/Injector.html[Injector, window="_blank"]
:link_addon: link:api/griffon/core/addon/GriffonAddon.html[GriffonAddon, window="_blank"]
:link_addon_manager: link:api/griffon/core/addon/AddonManager.html[AddonManager, window="_blank"]

:link_lazybones: https://github.com/pledbrook/lazybones[Lazybones, window="_blank"]
:link_gradle: http://www.gradle.org/[Gradle, window="_blank"]
:link_maven: http://maven.apache.org/[Maven, window="_blank"]
:link_bom: http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html[BOM, window="_blank"]
:link_spock: http://spockframework.org/[Spock, window="_blank"]
:link_lanterna: http://code.google.com/p/lanterna/[Lanterna, window="_blank"]
:link_pivot: http://pivot.apache.org[Pivot, window="_blank"]

:sample-swing-java: {rootdir}/samples/sample-swing-java
:sample-swing-groovy: {rootdir}/samples/sample-swing-groovy
Expand Down
15 changes: 15 additions & 0 deletions docs/griffon-guide/src/asciidoc/addons-addonmanager.adoc
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@

[[_addons-addonmanager]]
= The AddonManager

The +{link_addon_manager}+ is responsible for keeping track of instantiated
++{link_addon}++s. You may use this manager to query which addons have been
registered with the application, thus conditionally enable further features
if a particular addon is instantiated or not.

The name of a +{link_addon}+ is used as the key to register it with the +{link_addon_manager}+,
in other words, the previous *inspector* addon can be queried in the following way

[source,java,options="nowrap"]
[subs="verbatim,attributes"]
----
GriffonAddon addon = application.getAddonManager().findAddon("inspector");
----

59 changes: 59 additions & 0 deletions docs/griffon-guide/src/asciidoc/addons.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,65 @@
[[_addons]]
= Addons

Addons allow plugin authors to perform the following tasks

* Perform initialization code during the <<_overview_lifecycle_initialize, Initialize>> phase.
* Supply additional configuration that can be used to define new ++{link_mvc_group_configuration}++s.

Addons are automatically registered as ++{link_shutdown_handler}++s with the application
instance. They are also registered as <<_events_consuming, event handlers>> with the application's
+{link_event_router}+.

Addons must be registered with a +{link_module}+ in order to be discovered by the runtime.
Here's a simple example of a custom Addon that prints out the name of an +{link_mvc_group}+
when said group is initialized

[source,java,options="nowrap"]
[subs="verbatim,attributes"]
----
package com.acme;
import griffon.core.mvc.MVCGroup;
import griffon.core.mvc.MVCGroupConfiguration;
import org.codehaus.griffon.runtime.core.addon.AbstractGriffonAddon;
import javax.annotation.Nonnull;
import javax.inject.Named;
@Named("inspector")
public class InspectorAddon extends AbstractGriffonAddon {
public void onInitializeMVCGroup(@Nonnull MVCGroupConfiguration configuration, @Nonnull MVCGroup group) {
System.out.println("MVC group " + group.getMvcType() + " initialized");
}
}
----

And here is how it can be registered with a +{link_module}+

[source,java,options="nowrap"]
[subs="verbatim,attributes"]
----
package com.acme;
import griffon.core.addon.GriffonAddon;
import griffon.core.injection.Module;
import org.codehaus.griffon.runtime.core.injection.AbstractModule;
import org.kordamp.jipsy.ServiceProviderFor;
import javax.inject.Named;
@Named("inspector")
@ServiceProviderFor(Module.class)
public class InspectorModule extends AbstractModule {
@Override
protected void doConfigure() {
bind(GriffonAddon.class)
.to(InspectorAddon.class)
.asSingleton();
}
}
----

:leveloffset: 2
include::addons-addonmanager.adoc[]
:leveloffset: 1

0 comments on commit 5f0bb64

Please sign in to comment.