Added WhenNotEmpty component.

This commit is contained in:
JesseBrault0709 2024-06-08 10:24:45 +02:00
parent 734012c401
commit a034dafe24
2 changed files with 26 additions and 4 deletions

View File

@ -1,10 +1,7 @@
package groowt.view.component.web package groowt.view.component.web
import groowt.view.component.context.DefaultComponentScope import groowt.view.component.context.DefaultComponentScope
import groowt.view.component.web.lib.Each import groowt.view.component.web.lib.*
import groowt.view.component.web.lib.Echo
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
@ -15,6 +12,7 @@ class DefaultWebViewComponentScope extends DefaultComponentScope implements WebV
new DefaultWebViewComponentScope().tap { new DefaultWebViewComponentScope().tap {
addWithAttr(Echo) addWithAttr(Echo)
addWithAttr(Each) addWithAttr(Each)
addWithAttr(WhenNotEmpty)
addWithAttr(WhenNotNull) addWithAttr(WhenNotNull)
} }
} }

View File

@ -0,0 +1,24 @@
package groowt.view.component.web.lib
import groowt.view.View
import groowt.view.component.runtime.DefaultComponentWriter
class WhenNotEmpty extends DelegatingWebViewComponent {
private final Collection items
WhenNotEmpty(Map attr) {
items = attr.items
}
@Override
protected View getDelegate() {
return { Writer w ->
if (!items.empty) {
def cw = new DefaultComponentWriter(w, context.renderContext, context)
children.each { cw << it }
}
}
}
}