Hi Chane,
we used Seam and Trinidad in several of our POCs. No production applications
yet, though.
I remember that we had to incorporate an additional phase listener along with
an action listener configured in faces-config when using the dialog framework
of Trinidad / ADF, because the conversation id was not propagated to the
dialog.
Otherwise, there are no known incompatibility issues.
We even use AJAX4JSF to "ajaxify" non-ajax components.
Here is the code to get dialogs of trinidad to work w/ seam:
PhaseListener:
| private static final String CONVERSATION_ID_SESSION_PARAMETER =
"conversationId";
|
| private Map createParameterMapForConversationRestore(String
conversationId) {
| Map paramterMap = new Hashtable();
| paramterMap.put(CONVERSATION_ID_SESSION_PARAMETER,
conversationId);
| return paramterMap;
| }
|
| private void restoreConversation(Context context) {
| if (context.isSet(CONVERSATION_ID_SESSION_PARAMETER)) {
| String convId =
context.get(CONVERSATION_ID_SESSION_PARAMETER).toString();
|
Manager.instance().restoreConversation(createParameterMapForConversationRestore(convId));
| context.remove(CONVERSATION_ID_SESSION_PARAMETER);
| }
| }
|
| public void afterPhase(PhaseEvent event) {
| try {
| if (event.getPhaseId().equals(PhaseId.RESTORE_VIEW)) {
| UIViewRoot root =
event.getFacesContext().getViewRoot();
| if (root != null) {
| String viewId = root.getViewId();
| if ((viewId != null) &&
viewId.endsWith("_dlg.jspx")) {
|
restoreConversation(Contexts.getSessionContext());
| }
| }
| } else {
| log.info("after " + event.getPhaseId());
| }
| } catch (Exception e) {
| log.error("Could not restore Seam conversation", e);
| }
| }
|
Here is the code for the action listener:
| public void processAction(ActionEvent actionEvent)
| throws AbortProcessingException {
|
| if (actionEvent.getComponent() instanceof CoreCommandLink) {
| CoreCommandLink link =
(CoreCommandLink)actionEvent.getComponent();
| if (link.isUseWindow()) {
|
Contexts.getSessionContext().set("conversationId",
Manager.instance().getCurrentConversationId());
| }
| }
| super.processAction(actionEvent);
| }
|
The example above assumes that popup dialogs end with a _dlg.jspx extensions,
which you may alter to your desire.
Please remember, those were quick and dirty hacks in order to get conversations
working with Trinidad.
This issue may have already been resolved, and if not there might be far better
solutions.
Hope it helps.
Kind regareds,
dj
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3995439#3995439
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3995439
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user