Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.1
-
Fix Version/s: 2.1-Beta, 3.0, EE-2.0.0.GA_P01
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ACE
-
Assignee Priority:P2
Description
I tried adding this to TabSetMeta:
@Field
private List visitedTabClientIds;
The idea being that I'd store information from lifecycle to lifecycle, which would be state saved and unique per UIData row, but that would not be a public API. Unfortunately this would not produce any generated output in the TabSetBase class. That is, it's as if I had done nothing, as TabSetBase was generated the same as usual. I then changed it to a @Property, and then TabSetBase had all the proper state saving code and accessor methods. But it also now puts an entry in the Tag class and the TLD, and creates code to allow for this to use a ValueExpression to a bean, which I don't want.
I'm not sure if @Field is broken, or if it's because it's of type java.util.List.
@Field
private List visitedTabClientIds;
The idea being that I'd store information from lifecycle to lifecycle, which would be state saved and unique per UIData row, but that would not be a public API. Unfortunately this would not produce any generated output in the TabSetBase class. That is, it's as if I had done nothing, as TabSetBase was generated the same as usual. I then changed it to a @Property, and then TabSetBase had all the proper state saving code and accessor methods. But it also now puts an entry in the Tag class and the TLD, and creates code to allow for this to use a ValueExpression to a bean, which I don't want.
I'm not sure if @Field is broken, or if it's because it's of type java.util.List.
Issue Links
- blocks
-
ICE-6728 Add client-side cache support for ace:tabPane within a 'clientSide=false'
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Merged these commits to the development branch. Ran into a problem whereby the DataTable code was assuming that the @fields were generated the old way, so worked with Nils to try to modify the DataTable to work with the new method, but that didn't work since the new method relies on getClientId(), and those fields are used in getClientId(), so that we be recursive. So we instead manually used the old approach right in the DataTable class instead of via @Field in the Meta class. That points to some possible need for allowing the old-style @Field as a fallback, with the default being the new style. Alternatively, that may point to further need to move row indexing related work out of getClientId(), into getContainerClientId().
Development branch
Subversion 26335
icefaces2/ace/generator/src/org/icefaces/ace/generator/artifacts/ComponentArtifact.java