[JBoss JIRA] Created: (SEAMFACES-141) Create a converter for dealing with lists
by Brian Leathem (JIRA)
Create a converter for dealing with lists
-----------------------------------------
Key: SEAMFACES-141
URL: https://issues.jboss.org/browse/SEAMFACES-141
Project: Seam Faces
Issue Type: Feature Request
Components: Validation & Conversion
Reporter: Brian Leathem
A converter is required to serialize an object into the query string for use as a view param. If that object is a list, it would be helpful to make use of an existing converter that converts each individual entry, and has the cumulative result serialized as a string.
The standard CGI syntax represents arrays as multiple values, each with the same key. This may already be supported in JSF, but at the time of writing this, I couldn't find it.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-143) Auto-decoration of invalid fields
by Nicklas Karlsson (JIRA)
Auto-decoration of invalid fields
---------------------------------
Key: SEAMFACES-143
URL: https://issues.jboss.org/browse/SEAMFACES-143
Project: Seam Faces
Issue Type: Feature Request
Components: UI Components
Affects Versions: 3.0.1
Reporter: Nicklas Karlsson
It would be handy to auto-decorate invalid fields with e.g. an error icon and the message (based on a user template) by listening to JSF 2 validation error system events and decorate the invalid field without having to wrap it manually in a composite component.
Is facelet-template based wrapping possible or how should the user be able to write the wrapping component and indicate where the input component should be placed in it?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-131) org.jboss.seam.faces.InputContainer doesn't work with Myfaces
by Ilya Dyoshin (JIRA)
org.jboss.seam.faces.InputContainer doesn't work with Myfaces
--------------------------------------------------------------
Key: SEAMFACES-131
URL: https://issues.jboss.org/browse/SEAMFACES-131
Project: Seam Faces
Issue Type: Bug
Components: UI Components
Affects Versions: 3.0.0.CR2
Environment: JBoss AS 6 with Myfaces 2.0.4
Reporter: Ilya Dyoshin
When I've switched to myfaces 2.0.4
the view crated following exception:
javax.faces.FacesException: Undefined component type org.jboss.seam.faces.InputContainer
at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1281)
at org.jboss.weld.integration.webtier.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:140)
at org.apache.myfaces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1136)
at org.jboss.weld.integration.webtier.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:116)
at org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.createComponent(CompositeComponentResourceTagHandler.java:107)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.createComponent(ComponentTagHandlerDelegate.java:497)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:263)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:54)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:59)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:324)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:54)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at org.apache.myfaces.view.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:86)
at org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:167)
at org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:128)
at org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:92)
at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:433)
at org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:93)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:59)
at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:324)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:54)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:51)
at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:322)
at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:369)
at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:347)
at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:215)
at org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:140)
at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
at org.apache.myfaces.view.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:143)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:329)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:66)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at com.uniqa.lex.web.filters.UnicodeFilter.doFilter(UnicodeFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
at java.lang.Thread.run(Thread.java:680)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-109) Provide a query API to retrieve components from view metadata
by Dan Allen (JIRA)
Provide a query API to retrieve components from view metadata
-------------------------------------------------------------
Key: SEAMFACES-109
URL: https://issues.jboss.org/browse/SEAMFACES-109
Project: Seam Faces
Issue Type: Feature Request
Components: UI Components
Affects Versions: 3.0.0.CR1
Reporter: Dan Allen
Priority: Minor
The ViewMetadata API only provides a method for retrieving the collection of UIViewParameter components. However, this facet can be used for many other components, such as view actions, view restrictions and so forth. Seam Faces should provide a convenient query API for retrieving any type of component.
Here is a proposal:
{code:java}
public class ViewMetadataQuery {
public <C extends UIComponent> Collection<C> findMetadataComponents(UIViewRoot viewRoot,
UIComponentFilter<C> componentFilter) {
UIComponent metadataFacet = viewRoot.getFacet(UIViewRoot.METADATA_FACET_NAME);
if (metadataFacet == null) {
return Collections.<C>emptyList();
}
Collection<C> matches = new ArrayList<C>();
for (UIComponent candidate : metadataFacet.getChildren()) {
if (componentFilter.accepts(candidate)) {
matches.add((C) candidate);
}
}
return matches;
}
}
public class UIComponentFilter<C extends UIComponent> {
public abstract boolean accepts(UIComponent candidate);
}
{code}
It would be used as follows:
{code:java}
@Inject
private ViewMetadataQuery query;
...
Collection<UIViewAction> viewActions = query.findMetadataComponents(viewRoot, new UIComponentFilter<UIViewAction>() {
public boolean accepts(UIComponent candidate) {
return candidate instanceof UIViewAction;
}
});
{code}
You can simplify this further by providing a version of the method that accepts a type:
{code:java}
Collection<UIViewAction> viewActions = query.findMetadataComponents(viewRoot, UIViewAction.class);
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] Created: (SEAMFACES-107) Raise events before and/or after creation of ViewMetadata
by Dan Allen (JIRA)
Raise events before and/or after creation of ViewMetadata
---------------------------------------------------------
Key: SEAMFACES-107
URL: https://issues.jboss.org/browse/SEAMFACES-107
Project: Seam Faces
Issue Type: Feature Request
Components: CDI Integration
Affects Versions: 3.0.0.CR1
Reporter: Dan Allen
Priority: Minor
It may be useful to raise an event before or after creation of the ViewMetadata (or both). There is a compelling reason to raise the event afterwards to allow the application to programmatically register additional metadata components (such as UIViewAction or UIRestrictView).
public void onCreateMetadata(@Created ViewMetadata metadata, FacesContext context) {
metadata.getChildren().add(...);
}
In order for this to work, the ViewMetadata will need to either extend BeanManagerAware or become an injectable component itself (the former is simpler).
The @Created qualifier should be introduced in Solder in the "event" package.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months