Added WhenNotNull lib component.
This commit is contained in:
parent
39fd0c8e48
commit
2fabe1765a
@ -4,6 +4,7 @@ import groowt.view.component.context.DefaultComponentScope
|
|||||||
import groowt.view.component.web.lib.Each
|
import groowt.view.component.web.lib.Each
|
||||||
import groowt.view.component.web.lib.Echo
|
import groowt.view.component.web.lib.Echo
|
||||||
import groowt.view.component.web.lib.IntrinsicHtml
|
import groowt.view.component.web.lib.IntrinsicHtml
|
||||||
|
import groowt.view.component.web.lib.WhenNotNull
|
||||||
import org.codehaus.groovy.runtime.InvokerHelper
|
import org.codehaus.groovy.runtime.InvokerHelper
|
||||||
|
|
||||||
import static WebViewComponentFactories.withAttr
|
import static WebViewComponentFactories.withAttr
|
||||||
@ -14,6 +15,7 @@ class DefaultWebViewComponentScope extends DefaultComponentScope implements WebV
|
|||||||
new DefaultWebViewComponentScope().tap {
|
new DefaultWebViewComponentScope().tap {
|
||||||
addWithAttr(Echo)
|
addWithAttr(Echo)
|
||||||
addWithAttr(Each)
|
addWithAttr(Each)
|
||||||
|
addWithAttr(WhenNotNull)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package groowt.view.component.web.lib
|
||||||
|
|
||||||
|
import groowt.view.View
|
||||||
|
import groowt.view.component.runtime.DefaultComponentWriter
|
||||||
|
|
||||||
|
class WhenNotNull extends DelegatingWebViewComponent {
|
||||||
|
|
||||||
|
private final Object item
|
||||||
|
private final Closure render
|
||||||
|
|
||||||
|
WhenNotNull(Map attr) {
|
||||||
|
this.item = attr.item
|
||||||
|
this.render = attr.render
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected View getDelegate() {
|
||||||
|
return { Writer w ->
|
||||||
|
if (this.item != null) {
|
||||||
|
def cw = new DefaultComponentWriter(w)
|
||||||
|
cw.renderContext = this.context.renderContext
|
||||||
|
cw.componentContext = this.context
|
||||||
|
cw << this.render(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user