You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2011/04/05 21:26:42 UTC
svn commit: r1089168 - in /myfaces/tobago/trunk:
tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/
tobago-core/src/main/java/org/apache/myfaces/tobago/util/
tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/m...
Author: bommel
Date: Tue Apr 5 19:26:42 2011
New Revision: 1089168
URL: http://svn.apache.org/viewvc?rev=1089168&view=rev
Log:
(TOBAGO-110) After validation of a mandatory field there is no jump to the correct tab in tabGroup
Modified:
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCurrentMarkup.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupRenderer.java
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCurrentMarkup.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCurrentMarkup.java?rev=1089168&r1=1089167&r2=1089168&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCurrentMarkup.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasCurrentMarkup.java Tue Apr 5 19:26:42 2011
@@ -28,6 +28,6 @@ public interface HasCurrentMarkup {
*/
@UIComponentTagAttribute(
type = "org.apache.myfaces.tobago.context.Markup",
- defaultCode = "getMarkup()")
+ isTransient = true)
void setCurrentMarkup(String markup);
}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java?rev=1089168&r1=1089167&r2=1089168&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/util/ComponentUtils.java Tue Apr 5 19:26:42 2011
@@ -899,7 +899,29 @@ public class ComponentUtils {
return false;
}
- public static String[] getChildrenWithMessages(FacesContext facesContext, NamingContainer container) {
+ public static FacesMessage.Severity getMaximumSeverityOfChildrenMessages(FacesContext facesContext,
+ NamingContainer container) {
+ if (container instanceof UIComponent) {
+ String clientId = ((UIComponent) container).getClientId(facesContext);
+ FacesMessage.Severity max = null;
+ for (Iterator ids = facesContext.getClientIdsWithMessages(); ids.hasNext();) {
+ String id = (String) ids.next();
+ if (id.startsWith(clientId)) {
+ final Iterator messages = facesContext.getMessages(id);
+ while (messages.hasNext()) {
+ FacesMessage message = (FacesMessage) messages.next();
+ if (max == null || message.getSeverity().getOrdinal() > max.getOrdinal()) {
+ max = message.getSeverity();
+ }
+ }
+ }
+ }
+ return max;
+ }
+ return null;
+ }
+
+ public static String[] getChildrenWithMessages(FacesContext facesContext, NamingContainer container) {
if (container instanceof UIComponent) {
List<String> clientIds = new ArrayList<String>();
String clientId = ((UIComponent) container).getClientId(facesContext);
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupRenderer.java?rev=1089168&r1=1089167&r2=1089168&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TabGroupRenderer.java Tue Apr 5 19:26:42 2011
@@ -51,6 +51,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.faces.application.Application;
+import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import java.io.IOException;
@@ -115,7 +116,8 @@ public class TabGroupRenderer extends La
int index = 0;
for (UIComponent tab : (List<UIComponent>) tabGroup.getChildren()) {
if (tab instanceof UITab) {
- if (tab.isRendered()) {
+ if (tab.isRendered() //&& (UITabGroup.SWITCH_TYPE_CLIENT.equals(switchType) || index == activeIndex)
+ ) {
encodeContent(writer, facesContext, (UITab) tab, index);
}
index++;
@@ -186,13 +188,10 @@ public class TabGroupRenderer extends La
LabelWithAccessKey label = new LabelWithAccessKey(tab);
if (activeIndex == index) {
tab.setCurrentMarkup(tab.getCurrentMarkup().add(Markup.SELECTED));
- } else {
- tab.setCurrentMarkup(tab.getCurrentMarkup().remove(Markup.SELECTED));
}
- if (ComponentUtils.hasChildrenWithMessages(facesContext, tab)) {
- tab.setCurrentMarkup(tab.getCurrentMarkup().add(Markup.ERROR));
- } else {
- tab.setCurrentMarkup(tab.getCurrentMarkup().remove(Markup.ERROR));
+ FacesMessage.Severity maxSeverity = ComponentUtils.getMaximumSeverityOfChildrenMessages(facesContext, tab);
+ if (maxSeverity != null) {
+ tab.setCurrentMarkup(tab.getCurrentMarkup().add(ComponentUtils.markupOfSeverity(maxSeverity)));
}
writer.startElement(HtmlElements.DIV, tab);
writer.writeClassAttribute(Classes.create(tab));