Author: dsvyatobatsko
Date: 2008-06-16 12:12:20 -0400 (Mon, 16 Jun 2008)
New Revision: 9060
Modified:
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/common/ComponentNavigator.java
trunk/samples/richfaces-demo/src/main/webapp/richfaces/calendar.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/effect.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/filteringFeature.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/panel.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/tabPanel.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/toolTip.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree.xhtml
trunk/samples/richfaces-demo/src/main/webapp/templates/include/tab-panel.xhtml
Log:
http://jira.jboss.com/jira/browse/RF-3688 addon
Modified:
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/common/ComponentNavigator.java
===================================================================
---
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/common/ComponentNavigator.java 2008-06-16
15:48:51 UTC (rev 9059)
+++
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/common/ComponentNavigator.java 2008-06-16
16:12:20 UTC (rev 9060)
@@ -1,5 +1,6 @@
package org.richfaces.demo.common;
+import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
@@ -12,199 +13,252 @@
import java.util.StringTokenizer;
import javax.faces.FacesException;
+import javax.faces.application.ViewHandler;
import javax.faces.context.FacesContext;
+import javax.faces.event.ValueChangeEvent;
import javax.servlet.http.HttpServletRequest;
public class ComponentNavigator {
- private String lastCompId = null;
- private List components = null;
- private ComponentDescriptor currentComponent;
- private List componentGroups = null;
-
- public boolean getHasCurrentComponent() {
- return currentComponent!=null;
- }
-
- public ComponentDescriptor getCurrentComponent() {
- String id = getComponentParam("c");
- if (id!=null) {
- setCurrentComponent(findComponentById(id));
- lastCompId = id;
- } else if (lastCompId!=null) {
- setCurrentComponent(findComponentById(lastCompId));
- } else {
- String uri = getComponentUri();
- setCurrentComponent(findComponentByUri(uri));
- }
+ private String lastCompId = null;
- //set active tab for current component if any
- if (null != currentComponent) {
- String tab = getComponentParam("tab");
- if (null != tab) {
- currentComponent.setActiveTab(tab);
- }
- }
+ private List components = null;
- return currentComponent;
- }
+ private ComponentDescriptor currentComponent;
- private String getComponentUri() {
- FacesContext fc = FacesContext.getCurrentInstance();
- return ((HttpServletRequest)fc.getExternalContext().getRequest()).getRequestURI();
- }
- private String getComponentParam(String name) {
- FacesContext fc = FacesContext.getCurrentInstance();
- String param = (String) fc.getExternalContext().getRequestParameterMap().get(name);
- if (param!=null && param.trim().length()>0) {
- return param;
- } else {
- return null;
- }
- }
-
- private List components_() {
- if (components==null) {
- loadComponents();
- }
- return components;
- }
- public ComponentDescriptor findComponentByUri(String uri) {
- Iterator it = components_().iterator();
- while (it.hasNext()) {
- ComponentDescriptor component = (ComponentDescriptor) it.next();
- if (uri.endsWith(component.getDemoLocation())) {
- return component;
- }
- }
- return null;
- }
- public ComponentDescriptor findComponentById(String id) {
- Iterator it = components_().iterator();
- while (it.hasNext()) {
- ComponentDescriptor component = (ComponentDescriptor) it.next();
- if (component.getId().equals(id)) {
- return component;
- }
- }
- return null;
- }
-
- public void setCurrentComponent(ComponentDescriptor currentComponent) {
- if (currentComponent==null) {
- this.currentComponent = (ComponentDescriptor)components_().get(0);
- }
- this.currentComponent = currentComponent;
- }
+ private List componentGroups = null;
- public List getComponentGroups() {
- return componentGroups;
- }
- public void setComponentGroups(List componentGroups) {
- this.componentGroups = componentGroups;
- }
-
- private List getFilteredComponents(String group) {
- List ret = new ArrayList();
- Iterator it = getComponents().iterator();
- while (it.hasNext()) {
- ComponentDescriptor desc = (ComponentDescriptor) it.next();
- if (desc.getGroup().equals(group)) {
- ret.add(desc);
- }
- }
- return ret;
- }
-
- public List getSelectComponents() {
- return getFilteredComponents("richSelect");
- }
-
- public List getRichDragDropComponents() {
- return getFilteredComponents("richDragDrop");
- }
- public List getRichDataIterators() {
- return getFilteredComponents("richDataIterators");
- }
- public List getRichMenu() {
- return getFilteredComponents("richMenu");
- }
- public List getRichTree() {
- return getFilteredComponents("richTree");
- }
- public List getRichInputs() {
- return getFilteredComponents("richInputs");
- }
- public List getRichOutputs() {
- return getFilteredComponents("richOutputs");
- }
- public List getAjaxSupport() {
- return getFilteredComponents("ajaxSupport");
- }
- public List getAjaxResources() {
- return getFilteredComponents("ajaxResources");
- }
- public List getAjaxOutput() {
- return getFilteredComponents("ajaxOutput");
- }
- public List getAjaxMisc() {
- return getFilteredComponents("ajaxMisc");
- }
- public List getRichMisc() {
- return getFilteredComponents("richMisc");
- }
-
- public List getComponents() {
- Iterator it = components_().iterator();
- ComponentDescriptor cur = getCurrentComponent();
- while (it.hasNext()) {
- ComponentDescriptor desc = (ComponentDescriptor) it.next();
- if (desc.equals(cur)) {
- desc.setCurrent(true);
- } else {
- desc.setCurrent(false);
- }
- }
- return components;
- }
+ public boolean getHasCurrentComponent() {
+ return currentComponent != null;
+ }
- public void setComponents(List components) {
- this.components = components;
- }
-
- private void loadComponents() {
- Properties props = new Properties();
- List temp = new ArrayList();
- try {
- InputStream is =
this.getClass().getClassLoader().getResourceAsStream("/org/richfaces/demo/common/components.properties");
- props.load(is);
- } catch (Exception e) {
- throw new FacesException(e);
- }
- Set entries = props.entrySet();
- Iterator it = entries.iterator();
- while (it.hasNext()) {
- Map.Entry e = (Map.Entry) it.next();
- ComponentDescriptor desc = new ComponentDescriptor();
- desc.setId(e.getKey().toString().trim());
- StringTokenizer toc = new StringTokenizer(e.getValue().toString(),",");
-// #id=name,captionImage,iconImage,devGuideLocation,tldDocLocation,javaDocLocation
- desc.setGroup(toc.nextToken().trim());
- desc.setName(toc.nextToken().trim());
- desc.setIconImage(toc.nextToken().trim());
- desc.setCaptionImage(toc.nextToken().trim());
- desc.setDevGuideLocation(toc.nextToken().trim());
- desc.setTldDocLocation(toc.nextToken().trim());
- desc.setJavaDocLocation(toc.nextToken().trim());
- desc.setDemoLocation(toc.nextToken().trim());
- temp.add(desc);
- }
- Collections.sort(temp, new Comparator() {
- public int compare(Object o1, Object o2) {
- ComponentDescriptor d1 = (ComponentDescriptor)o1;
- ComponentDescriptor d2 = (ComponentDescriptor)o2;
- return d1.getName().compareTo(d2.getName());
- }});
- setComponents(temp);
- setCurrentComponent((ComponentDescriptor) temp.get(0));
- }
+ public ComponentDescriptor getCurrentComponent() {
+ String id = getComponentParam("c");
+ if (id != null) {
+ setCurrentComponent(findComponentById(id));
+ lastCompId = id;
+ } else if (lastCompId != null) {
+ setCurrentComponent(findComponentById(lastCompId));
+ } else {
+ String uri = getComponentUri();
+ setCurrentComponent(findComponentByUri(uri));
+ }
+
+ // set active tab for current component if any
+ if (null != currentComponent) {
+ String tab = getComponentParam("tab");
+ if (null != tab) {
+ currentComponent.setActiveTab(tab);
+ }
+ }
+
+ return currentComponent;
+ }
+
+ private String getComponentUri() {
+ FacesContext fc = FacesContext.getCurrentInstance();
+ return ((HttpServletRequest)
fc.getExternalContext().getRequest()).getRequestURI();
+ }
+
+ private String getComponentParam(String name) {
+ FacesContext fc = FacesContext.getCurrentInstance();
+ String param = (String)
fc.getExternalContext().getRequestParameterMap().get(name);
+ if (param != null && param.trim().length() > 0) {
+ return param;
+ } else {
+ return null;
+ }
+ }
+
+ private List components_() {
+ if (components == null) {
+ loadComponents();
+ }
+ return components;
+ }
+
+ public ComponentDescriptor findComponentByUri(String uri) {
+ Iterator it = components_().iterator();
+ while (it.hasNext()) {
+ ComponentDescriptor component = (ComponentDescriptor) it.next();
+ if (uri.endsWith(component.getDemoLocation())) {
+ return component;
+ }
+ }
+ return null;
+ }
+
+ public ComponentDescriptor findComponentById(String id) {
+ Iterator it = components_().iterator();
+ while (it.hasNext()) {
+ ComponentDescriptor component = (ComponentDescriptor) it.next();
+ if (component.getId().equals(id)) {
+ return component;
+ }
+ }
+ return null;
+ }
+
+ public void setCurrentComponent(ComponentDescriptor currentComponent) {
+ if (currentComponent == null) {
+ this.currentComponent = (ComponentDescriptor) components_().get(0);
+ }
+ this.currentComponent = currentComponent;
+ }
+
+ public List getComponentGroups() {
+ return componentGroups;
+ }
+
+ public void setComponentGroups(List componentGroups) {
+ this.componentGroups = componentGroups;
+ }
+
+ private List getFilteredComponents(String group) {
+ List ret = new ArrayList();
+ Iterator it = getComponents().iterator();
+ while (it.hasNext()) {
+ ComponentDescriptor desc = (ComponentDescriptor) it.next();
+ if (desc.getGroup().equals(group)) {
+ ret.add(desc);
+ }
+ }
+ return ret;
+ }
+
+ public List getSelectComponents() {
+ return getFilteredComponents("richSelect");
+ }
+
+ public List getRichDragDropComponents() {
+ return getFilteredComponents("richDragDrop");
+ }
+
+ public List getRichDataIterators() {
+ return getFilteredComponents("richDataIterators");
+ }
+
+ public List getRichMenu() {
+ return getFilteredComponents("richMenu");
+ }
+
+ public List getRichTree() {
+ return getFilteredComponents("richTree");
+ }
+
+ public List getRichInputs() {
+ return getFilteredComponents("richInputs");
+ }
+
+ public List getRichOutputs() {
+ return getFilteredComponents("richOutputs");
+ }
+
+ public List getAjaxSupport() {
+ return getFilteredComponents("ajaxSupport");
+ }
+
+ public List getAjaxResources() {
+ return getFilteredComponents("ajaxResources");
+ }
+
+ public List getAjaxOutput() {
+ return getFilteredComponents("ajaxOutput");
+ }
+
+ public List getAjaxMisc() {
+ return getFilteredComponents("ajaxMisc");
+ }
+
+ public List getRichMisc() {
+ return getFilteredComponents("richMisc");
+ }
+
+ public List getComponents() {
+ Iterator it = components_().iterator();
+ ComponentDescriptor cur = getCurrentComponent();
+ while (it.hasNext()) {
+ ComponentDescriptor desc = (ComponentDescriptor) it.next();
+ if (desc.equals(cur)) {
+ desc.setCurrent(true);
+ } else {
+ desc.setCurrent(false);
+ }
+ }
+ return components;
+ }
+
+ public void setComponents(List components) {
+ this.components = components;
+ }
+
+ private void loadComponents() {
+ Properties props = new Properties();
+ List temp = new ArrayList();
+ try {
+ InputStream is = this.getClass().getClassLoader().getResourceAsStream(
+ "/org/richfaces/demo/common/components.properties");
+ props.load(is);
+ } catch (Exception e) {
+ throw new FacesException(e);
+ }
+ Set entries = props.entrySet();
+ Iterator it = entries.iterator();
+ while (it.hasNext()) {
+ Map.Entry e = (Map.Entry) it.next();
+ ComponentDescriptor desc = new ComponentDescriptor();
+ desc.setId(e.getKey().toString().trim());
+ StringTokenizer toc = new StringTokenizer(e.getValue().toString(),
",");
+ //
#id=name,captionImage,iconImage,devGuideLocation,tldDocLocation,javaDocLocation
+ desc.setGroup(toc.nextToken().trim());
+ desc.setName(toc.nextToken().trim());
+ desc.setIconImage(toc.nextToken().trim());
+ desc.setCaptionImage(toc.nextToken().trim());
+ desc.setDevGuideLocation(toc.nextToken().trim());
+ desc.setTldDocLocation(toc.nextToken().trim());
+ desc.setJavaDocLocation(toc.nextToken().trim());
+ desc.setDemoLocation(toc.nextToken().trim());
+ temp.add(desc);
+ }
+ Collections.sort(temp, new Comparator() {
+ public int compare(Object o1, Object o2) {
+ ComponentDescriptor d1 = (ComponentDescriptor) o1;
+ ComponentDescriptor d2 = (ComponentDescriptor) o2;
+ return d1.getName().compareTo(d2.getName());
+ }
+ });
+ setComponents(temp);
+ setCurrentComponent((ComponentDescriptor) temp.get(0));
+ }
+
+ /**
+ * Invoked when example tab panel switched
+ *
+ * @param event
+ * a ValueChangeEvent object
+ */
+ public void tabPanelSwitched(ValueChangeEvent event) {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ String activeTab = getCurrentComponent().getActiveTab();
+ ViewHandler viewHandler = facesContext.getApplication().getViewHandler();
+ String viewId = facesContext.getViewRoot().getViewId();
+ String actionURL = viewHandler.getActionURL(facesContext, viewId);
+ String tabParam = "tab=" + activeTab;
+ actionURL.replaceAll("[\\?]tab=[\\w]*", "?" + tabParam);
+ actionURL.replaceAll("[&]tab=[\\w]*", "&" +
tabParam);
+ if (!actionURL.contains(tabParam)) {
+ if (actionURL.contains("?")) {
+ actionURL += "&";
+ } else {
+ actionURL += "?";
+ }
+ actionURL += tabParam;
+ }
+ try {
+ facesContext.getExternalContext().redirect(actionURL);
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
}
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/calendar.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/calendar.xhtml 2008-06-16
15:48:51 UTC (rev 9059)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/calendar.xhtml 2008-06-16
16:12:20 UTC (rev 9060)
@@ -8,7 +8,8 @@
<ui:define name="title">RichFaces - Open Source Rich JSF Components -
Rich Calendar</ui:define>
<ui:define name="body">
<rich:tabPanel switchType="server" styleClass="top_tab"
contentClass="content_tab" headerClass="header_tabs_class"
- inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}">
+ inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}"
+ valueChangeListener="#{componentNavigator.tabPanelSwitched}">
<rich:tab name="usage" label="Usage">
<ui:include src="/richfaces/calendar/usage.xhtml" />
</rich:tab>
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/effect.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/effect.xhtml 2008-06-16
15:48:51 UTC (rev 9059)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/effect.xhtml 2008-06-16
16:12:20 UTC (rev 9060)
@@ -8,7 +8,8 @@
<ui:define name="title">RichFaces - Open Source Rich JSF Components -
Rich Effects</ui:define>
<ui:define name="body">
<rich:tabPanel switchType="server" styleClass="top_tab"
contentClass="content_tab" headerClass="header_tabs_class"
- inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}">
+ inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}"
+ valueChangeListener="#{componentNavigator.tabPanelSwitched}">
<rich:tab name="usage" label="Usage">
<ui:include src="/richfaces/effect/usage.xhtml"/>
</rich:tab>
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/filteringFeature.xhtml
===================================================================
---
trunk/samples/richfaces-demo/src/main/webapp/richfaces/filteringFeature.xhtml 2008-06-16
15:48:51 UTC (rev 9059)
+++
trunk/samples/richfaces-demo/src/main/webapp/richfaces/filteringFeature.xhtml 2008-06-16
16:12:20 UTC (rev 9060)
@@ -8,7 +8,8 @@
<ui:define name="title">RichFaces - Open Source Rich JSF Components -
Table Filtering Feature</ui:define>
<ui:define name="body">
<rich:tabPanel switchType="server" styleClass="top_tab"
contentClass="content_tab" headerClass="header_tabs_class"
- inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}">
+ inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}"
+ valueChangeListener="#{componentNavigator.tabPanelSwitched}">
<rich:tab name="usage" label="Built-In Filtering Usage">
<ui:include src="/richfaces/filteringFeature/filteringUsage.xhtml"
/>
</rich:tab>
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/panel.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/panel.xhtml 2008-06-16 15:48:51
UTC (rev 9059)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/panel.xhtml 2008-06-16 16:12:20
UTC (rev 9060)
@@ -10,7 +10,8 @@
<ui:define name="current">panel</ui:define>
<ui:define name="body">
<rich:tabPanel switchType="server" styleClass="top_tab"
headerClass="header_tabs_class" contentClass="content_tab"
- inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}">
+ inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}"
+ valueChangeListener="#{componentNavigator.tabPanelSwitched}">
<rich:tab name="usage" label="Usage">
<ui:include src="/richfaces/panel/usage.xhtml" />
</rich:tab>
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature.xhtml 2008-06-16
15:48:51 UTC (rev 9059)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature.xhtml 2008-06-16
16:12:20 UTC (rev 9060)
@@ -8,7 +8,8 @@
<ui:define name="title">RichFaces - Open Source Rich JSF Components -
Table Sorting Feature</ui:define>
<ui:define name="body">
<rich:tabPanel switchType="server" styleClass="top_tab"
contentClass="content_tab" headerClass="header_tabs_class"
- inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}">
+ inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}"
+ valueChangeListener="#{componentNavigator.tabPanelSwitched}">
<rich:tab name="usage" label="Built-in Sorting Feature">
<ui:include src="/richfaces/sortingFeature/sortingUsage.xhtml" />
</rich:tab>
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/tabPanel.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/tabPanel.xhtml 2008-06-16
15:48:51 UTC (rev 9059)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/tabPanel.xhtml 2008-06-16
16:12:20 UTC (rev 9060)
@@ -8,7 +8,8 @@
<ui:define name="title">RichFaces - Open Source Rich JSF Components -
TabPanel</ui:define>
<ui:define name="body">
<rich:tabPanel switchType="server" styleClass="top_tab"
contentClass="content_tab" headerClass="header_tabs_class"
- inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}">
+ inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}"
+ valueChangeListener="#{componentNavigator.tabPanelSwitched}">
<rich:tab name="usage" label="Usage">
<ui:include src="/richfaces/tabPanel/usage.xhtml" />
</rich:tab>
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/toolTip.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/toolTip.xhtml 2008-06-16
15:48:51 UTC (rev 9059)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/toolTip.xhtml 2008-06-16
16:12:20 UTC (rev 9060)
@@ -10,7 +10,8 @@
<ui:define name="current">panel</ui:define>
<ui:define name="body">
<rich:tabPanel switchType="server" styleClass="top_tab"
contentClass="content_tab" headerClass="header_tabs_class"
- inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}">
+ inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}"
+ valueChangeListener="#{componentNavigator.tabPanelSwitched}">
<rich:tab name="usage" label="Usage">
<ui:include src="/richfaces/toolTip/usage.xhtml" />
</rich:tab>
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree.xhtml 2008-06-16 15:48:51
UTC (rev 9059)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree.xhtml 2008-06-16 16:12:20
UTC (rev 9060)
@@ -10,7 +10,8 @@
<ui:define name="current">panel</ui:define>
<ui:define name="body">
<rich:tabPanel switchType="server" styleClass="top_tab"
contentClass="content_tab" headerClass="header_tabs_class"
- inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}">
+ inactiveTabClass="inactive_tab" activeTabClass="active_tab"
selectedTab="#{componentNavigator.currentComponent.activeTab}"
+ valueChangeListener="#{componentNavigator.tabPanelSwitched}">
<rich:tab name="usage" label="Usage">
<ui:include src="/richfaces/tree/usage.xhtml" />
</rich:tab>
Modified: trunk/samples/richfaces-demo/src/main/webapp/templates/include/tab-panel.xhtml
===================================================================
(Binary files differ)