Details
-
Type: New Feature
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.3.0.GA_P02, EE-4.0.0.GA
-
Fix Version/s: 4.1, EE-3.3.0.GA_P04
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ace tagHandler
-
Assignee Priority:P1
-
Support Case References:Support Case #13374 - https://icesoft.my.salesforce.com/50070000016KZZU
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial
Description
<ace:panelStack selectedId="pane2">
<ace:stackPane id="pane1" client="true">
<!-- some content here-->
</ace:stackPane>
<ace:stackPane id="pane2" >
<!-- some content here but this content would be regular
jsf handled content and managed by domdiff algorithm
and rendered flag to either show the content or not-->
</ace:stackPane>
<ace:stackPane id="pane3" facelet="true">
<!-- some content here but this would NOT be part of the server side
component tree unless it were the selectedId of the parent-->
</ace:stackPane>
</ace:panelStack>
........
The panelStack would require a proxy so that each child could contain it's own form and the panelStack would always be updated as to which child is selected.
facelet="true" would act same as ui:include, but these components can be nested without worrying about the issues regarding ui:include and jstl tags since the div is always rendered, it's just the content of the divs which would be either included in the component tree (or not if facelet="true").
if you want other content to be rendered, you would nest your panelStacks:-
Modification to this could be having a list of selectedId's instead of a single selectedId, but easiest to implement a singleId to be included than a list of them. (take longer to implement).
for example:-
<ace:panelStack id="stack1" selectedId="pane1">
<ace:stackPane id="pane1" client="true">
<!-- some content here-->
</ace:stackPane>
<ace:stackPane id="pane2" >
<!-- some content here but this content would be regular
jsf handled content and managed by domdiff algorithm
and rendered flag to either show the content or not-->
</ace:stackPane>
<ace:stackPane id="pane3" facelet="true">
<ace:panelStack id="stack2" seletedId="pane5">
<ace:stackPane id="pane4" facelet="true">
<!-- note this panes content is not in the tree unless pane 3 and
pane4 are both selected -->
</ace:stackPane>
<ace:stackPane id="pane5" facelet="true">
<!-- note this panes content is not in the tree unless pane 3 and
pane5 are both selected -->
</ace:stackPane>
<ace:stackPane id="pane6">
<!-- note this panes content is not in the tree unless pane 3 and
is selected even if pane6 is not selected-->
</ace:stackPane>
</ace:panelStack>
</ace:stackPane>
</ace:panelStack>
The client="true" does not have to immediately be part of this component, but might be something to consider down the road....(?). Main difference between this component and ice:panelStack is that child pane's content can be removed from component tree unless it is "selected".
-
Hide
- iceMock2.zip
- 284 kB
- Judy Guglielmin
-
- iceMock2/.classpath 1 kB
- iceMock2/.DS_Store 6 kB
- __MACOSX/iceMock2/._.DS_Store 0.1 kB
- __MACOSX/iceMock2/.git/._branches 0.2 kB
- iceMock2/.git/COMMIT_EDITMSG 0.0 kB
- __MACOSX/iceMock2/.git/._COMMIT_EDITMSG 0.2 kB
- iceMock2/.git/config 0.3 kB
- __MACOSX/iceMock2/.git/._config 0.2 kB
- iceMock2/.git/description 0.1 kB
- __MACOSX/iceMock2/.git/._description 0.2 kB
- iceMock2/.git/FETCH_HEAD 0.1 kB
- __MACOSX/iceMock2/.git/._FETCH_HEAD 0.2 kB
- iceMock2/.git/HEAD 0.0 kB
- __MACOSX/iceMock2/.git/._HEAD 0.2 kB
- iceMock2/.git/.../applypatch-msg.sample 0.4 kB
- __MACOSX/.../._applypatch-msg.sample 0.2 kB
- iceMock2/.git/hooks/commit-msg.sample 0.9 kB
- __MACOSX/iceMock2/.../._commit-msg.sample 0.2 kB
- iceMock2/.git/hooks/post-update.sample 0.2 kB
- __MACOSX/iceMock2/.../._post-update.sample 0.2 kB
- iceMock2/.git/.../pre-applypatch.sample 0.4 kB
- __MACOSX/.../._pre-applypatch.sample 0.2 kB
- iceMock2/.git/hooks/pre-commit.sample 2 kB
- __MACOSX/iceMock2/.../._pre-commit.sample 0.2 kB
- iceMock2/.git/hooks/pre-push.sample 1 kB
- __MACOSX/iceMock2/.../._pre-push.sample 0.2 kB
- iceMock2/.git/hooks/pre-rebase.sample 5 kB
- __MACOSX/iceMock2/.../._pre-rebase.sample 0.2 kB
- iceMock2/.git/.../prepare-commit-msg.sample 1 kB
- __MACOSX/.../._prepare-commit-msg.sample 0.2 kB
-
Hide
- panelStack3.zip
- 26 kB
- Judy Guglielmin
-
- panelStack3/.classpath 4 kB
- panelStack3/.DS_Store 6 kB
- __MACOSX/panelStack3/._.DS_Store 0.1 kB
- panelStack3/.project 1.0 kB
- panelStack3/.settings/.jsdtscope 0.5 kB
- panelStack3/.../oracle.eclipse.tools.webtier.ui.prefs 0.6 kB
- panelStack3/.../org.eclipse.jdt.core.prefs 0.3 kB
- panelStack3/.../org.eclipse.wst.common.component 0.5 kB
- panelStack3/.../org.eclipse.wst.common.project.facet.core.prefs.xml 0.3 kB
- panelStack3/.../org.eclipse.wst.common.project.facet.core.xml 0.4 kB
- panelStack3/.../org.eclipse.wst.jsdt.ui.superType.container 0.0 kB
- panelStack3/.../org.eclipse.wst.jsdt.ui.superType.name 0.0 kB
- panelStack3/src/InputDefinitions.java 0.7 kB
- panelStack3/src/.../CompTreeMonitor.java 2 kB
- panelStack3/src/.../VisitTreeMonitor.java 5 kB
- panelStack3/src/SinglePane.java 1 kB
- panelStack3/src/TestBean.java 5 kB
- panelStack3/WebContent/cForEach.xhtml 2 kB
- __MACOSX/panelStack3/.../._cForEach.xhtml 0.2 kB
- panelStack3/WebContent/dataTable.xhtml 3 kB
- __MACOSX/panelStack3/.../._dataTable.xhtml 0.2 kB
- panelStack3/WebContent/.../stackSize.xhtml 2 kB
- __MACOSX/panelStack3/.../._stackSize.xhtml 0.2 kB
- panelStack3/WebContent/index.jsp 0.1 kB
- panelStack3/WebContent/index.xhtml 1 kB
- panelStack3/WebContent/.../MANIFEST.MF 0.0 kB
- panelStack3/WebContent/panelSeries.xhtml 4 kB
- panelStack3/WebContent/simple.xhtml 4 kB
- panelStack3/WebContent/simpleProxy.xhtml 5 kB
- panelStack3/WebContent/uiRepeat.xhtml 3 kB
Issue Links
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Modified StackPane.visitTree method to visit only the children of the selected stack pane.
Remaining problems exists with ace:checkboxButton / f:selectBooleanCheckbox and ace:comboBox when used with ace:ajax / f:ajax. This is visible in the showcase example using either ace:checkboxButton or h:selectBooleanCheckbox. ice:selectBooleanCheckbox works as it does NOT use ace:ajax or f:ajax. ace:comboBox does not work either (see first simple example). By do not work, they do not get decoded properly and save their state.
fixed the other 2 showcase example which did not even show the checkbox stackPane (application code)
problem with these components not keeping their state in the first example -request is good, but it is not decoding/saving state correctly. ice component does.
Note that now was the following js console error for the component/widgets in the stackPanes:-
Uncaught TypeError: Cannot read property 'updateProperties' of undefined
....
fixed this by using mandatory configuration for tabSet.
fixed showcase examples for checkbox and resource loading tabSet rev 45260 IF4 and rev 45259 for IF 3.3 mtce.
iceads1.icesoft.domain/Public/Users/mircea/iceMock3.war
location of new test case for problem with ice:selectInputDate and ice:selectInputText which do not popup or work within ace:panelStack.
choose medium or large button (top example and small is the one that is not in the panelStack).
Still issue with ace:checkboxButton and ace:comboBox as well not maintaining state in showcase examples
Modified StackPane.visitTree method once again to visit only the children of the selected stack pane but avoid to shortcut the tree visiting when non-selected stack panes are encountered.
test had three lists of types of records. select control allows user to change these records and the bottom part of the page is the ice:panelSeries which controls the stack to show the correct panes are being rendered/selected.