voyent
Messages posted by: Lazarus__  XML
Profile for Lazarus__ -> Messages posted by Lazarus__ [45] Go to Page: 1, 2, 3 Next 
Author Message
HI,

Thank you for your answer, I did not tried without icefaces (in liferay) but I did try to show pdf files in icefaces without liferay and it works perfectly. I do not really know what is wrong the only thing I can think about is that in liferay you do not have a proper httplservlet response (you should have a portlet response) for this reason I am using the Portlet util to get the servlet response and maybe I am missing something but I cannot understand what...

We are still trying but nothing seems to works..
Hello everyone,

We are facing problems trying to display jasper reports in our icefaces 1.8 + lefiray portal 6.06 and Jboss.

The reports are displayed correctly in a "normal" icefaces application but in liferay we get this exception ;

Code:
 2011-06-13 10:33:24,029 SEVERE [org.picas.managedbeans.azienda.AnnunciAz] (http-0.0.0.0-8080-5)
 
 java.lang.IllegalStateException: Cannot obtain OutputStream because Writer is already in use
 
 at com.liferay.portal.kernel.servlet.StringServletResponse.getOutputStream(StringServletResponse.java:62)
 
 at picas.JsfUtility.print(JsfUtility.java:714)
 
 at org.picas.managedbeans.azienda.AnnunciAz.stampatmp(AnnunciAz.java:160)
 
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 
 at java.lang.reflect.Method.invoke(Method.java:597)
 
 at org.apache.el.parser.AstValue.invoke(AstValue.java:170)
 
 at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
 
 at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
 
 at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
 
 at javax.faces.component.UICommand.broadcast(UICommand.java:383)
 
 at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
 
 at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
 
 at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
 
 at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
 
 at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
 
 at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:18)
 
 at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:132)
 
 at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:74)
 
 at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:31)
 
 at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
 
 at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:16)
 
 at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
 
 at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:53)
 
 at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:26)
 
 at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
 
 at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:131)
 


The function we are using (we have taken this function from another application we have in a normal environment and we have adapted it for liferay)

Code:
 String path = getPropertyConfiguration("reportsPath");
         System.out.println("2. path = " + path);
         String conn = getPropertyConfiguration("mysqldbconnection");
         Class.forName("com.mysql.jdbc.Driver");
 
         Connection connection = DriverManager.getConnection(conn, getPropertyConfiguration("mysqluser"), getPropertyConfiguration("mysqlpassword"));
         connection.setAutoCommit(false);
         // connection is the data source we used to fetch the data from
 
         // jasperParameter is a Hashmap contains the parameters
         // passed from application to the jrxml layout
         HashMap jasperParameter = new HashMap();
         jasperParameter.put(keyId, valueId);
 
         jasperParameter.put(JRParameter.REPORT_LOCALE, FacesContext.getCurrentInstance().getViewRoot().getLocale());
 
 
         /* JasperPrint is the object contains
         report after result filling process */
         JasperPrint jasperPrint;
         JasperReport jasperReportNew;
         // jrxml compiling process
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         try {
 
             String pathFile = getPropertyConfiguration("reportsPath") + nomeReport + ".jasper";
             System.out.println("4. pathFile = " + pathFile);
             jasperPrint = JasperFillManager.fillReport(pathFile, jasperParameter, connection);
             System.out.println("5. post fillReport ");
             JRExporter exporter = new JRPdfExporter();
             exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
             exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
             exporter.exportReport();
 
 
 
         } catch (JRException jre) {
             jre.printStackTrace();
         }
         PortletResponse response1 = (PortletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
         HttpServletResponse res = PortalUtil.getHttpServletResponse(response1);
         res.setContentType("application/vnd.pdf");
         res.setHeader("Content-Disposition", "attachment; filename=" + nomeReport + "_" + System.currentTimeMillis() + ".pdf");
         FacesContext.getCurrentInstance().responseComplete();
         ServletOutputStream output = res.getOutputStream();
         out.writeTo(output);
         output.flush();
         out.close();
         FacesContext.getCurrentInstance().responseComplete();
 


But there is no way to make it works...

Any idea? What are we missing?

Thank you in advance for your help

Best Regards

Nick
Hi there

I am developing an application based on Icefaces and Liferay, and I need to get the UserId to know if the user is logged to Lifray or not, I have seen the solution
Object userIDObj = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("USER_ID");

But I do not know why even if I am logged as bruno the UseIdObj is always null, What am I missing?

Please help thank you very much and regards

Laz
Hi there,

I am facing a problem with the validators. I have created a validator (jsf validator ) in the backing bean and used for an imput field and even if the validators is executed and the validation fails the next page is called (the navigation does not stop..

Anyone faced this problem before?

Regars

Nick
Hello, I have the same problem.

I am creating a custom validator for a text input field but it does not work even if ti is called and the validation fails the next page is called and I do not understand why.

Do I have to do something different when create a
validator in a portlet?
I have tryed with all the types of validators I know, creating a class that implement validator (in this case the validator is neve called) or implementing it in the backing bean (in this case the validator is called but do not stop the request)

the versione is icefaces 1.8

Thanks and regards

LAz
Hi there,

just to say that finally i have found the solution.

The best solution I have found is to change the ice:richText component with the tinyMCE editor.

The richtext component infact was giving to many problems and was very unstable so I have decided to change it.

TinyMCE is great, it is working very well for now and it is very light.

The integration with ice face 1.8.2 needs a litte bit of work but the results are amazing even for the good documentation and suport you can find on the web.

To make it compatible I have had to make some changes, the first is to edit the Editor.settings putting submit_patch = 0 in the js file, This will fix a bug that does not allow the component to be loaded under ie without refreshing the page.

you can see the original post where i have found this information here:

http://tinymce.moxiecode.com/punbb/viewtopic.php?id=10628

Another thing is to put in your css file width:0 higth:0 overflow:hidden and display:nonw as style of the textaerea that the editor will wrap.

This because when the page get re rendered sometimes the textaerea with the html code will be visible. Do not worry if the editor will be very small you can set the height property in the init function simply adding height:500 for ex, as parameter and the editor will be initialised with the correct height.

For what I have seen so far TinyMCE is fully compatible and the wiki well documented, the guys in the forum are very nice and if you have problems you will get help for sure.

I hope to have been helpful with this post for everybody that have had prblems with the richtext component like me.

Regards

Laz

Hi there,

I was thinking a solution could be to avoid that the ajax push request re render the view where the the richtext is.

I have used the renderable way to implement the ajax push for this reason (before i was using the simple way with sessionreder) but even if i render just the renderable bean the richText component get re-rendered.

I would like to isolate it what should i do?

In the developement guide it isi wirttend that with this method i could select wich view to render (so in theory i could isolate the one with the rich component) is this possible?


Please help...

Laz
Hi there,

Somebody knows how could I try to modify the richText javascript code?

I am trying to edit it but because I am using the netbeans package (version 1.8.2) the file is locked.

How can I do to edit it and try to fix this bug?

Nobody know how can is possible fixing this bug?

Regards

Laz
Hi there,

Here the peace of code that I think is the couse of the error

Code:
 <div id="mainForm:requestMoreInfoRichTexteditor" onmouseout="Ice.FCKeditorUtility.updateFields('mainForm:requestMoreInfoRichText');" onmouseover="Ice.FCKeditorUtility.activeEditor ='mainForm:requestMoreInfoRichText';"></div>
 


So when you click on the editor you set the focus on it but only when you click out of the editor the value of the editor is updated.

If in the main time ( between when you have clicked to give the focus to the rich editor and the time you will click out with the mouse) an ajax request push coumes up the value of the rich editor will be restored with the last one.

What do you think? Do you have any idea how it can be fixed this problem?

Thanks you very much.

Laz
Hi there,

I have tried your code and even that one is giving the same problem.

I have found the error. The rich text component hold the content value when you perform the mouseout event

So if you start your application in one machine and then from another machine you connect to the first one. Type something in the secon machine without moving out the mouse and then from the first machine send a message.

You will see that in the secon editor you lose the informations

if you see the Source code of the page where the richtext component is you will see the mouseon and mouse out events.....

That the proble, I have tried to write somethisn and then click out of the Rich component aerea and the value remain in the tichText.

If you try the application on just one machine you can not find out this problme because you have to change focus going from one browser to another but in 2 differents machines the problem comes up.....

Laz
Hi thanks for the example but i can see only This is my JSP page when i start your application...

No I do not need any special buttons for the richText now I will try to start your app and I will see if it works

Laz
Ps

Maibe it was not clear but only one user can write an email relating one order (lets say order number 1 only one user at time can write the email for this order) but another user can write an email for the order 2.

for both orders the initial template is the same

Now if the user 1 is writing an email for the order 1 and the user 2 is writing the email for the order 2it happens that if the user 2 send the email and and the resetAll is perfermoed (and so the ajax push request) the user 2 see his richText editor with the initial templated (all changes are lost).

if you do not perform the ajaxpush request everything works fine.

I do not know if it is clear the situation sob.

Reg

Laz
Hi there,

In theory the RichText should no be updated by the ajax push server because the only bean renderable i have in the whole application is the one called realTimeUpdate.

This bean show the number of email you recive (there is a thread that check an meail account and download the emails) and re render that bean.

The only thing is giving ptoblem to the richText is this peace of code that is in the resetAll function

Code:
    RenderManager.getInstance().getOnDemandRenderer("eventInterest").requestRender();
 


the renderable bean is

Code:
 public class RealTimeUpdate implements Renderable, Disposable{
 
     private PersistentFacesState state;
     private RenderManager renderManager;
     private OnDemandRenderer interestingEvent;
 
     public RealTimeUpdate() {
         state = PersistentFacesState.getInstance();
        
     }
 
     public PersistentFacesState getState() {
         return state;
     }
 
     public void renderingException(RenderingException re) {
         interestingEvent.remove(this);
         throw new UnsupportedOperationException("exception occurred in rendering.");
 
     }
 
     /**
      * @param renderManager the renderManager to set
      */
     public void setRenderManager(RenderManager renderManager) {
         interestingEvent = renderManager.getOnDemandRenderer("eventInterest");
         interestingEvent.add(this);
         this.renderManager = renderManager;
          
     }
 
     public List<OrderResultPriority> getOrderResultPrioritys() {
         List<OrderResultPriority> resultList = new LinkedList<OrderResultPriority>();
         List tmp = new OrdersJpaController().getOrdersWithPriority();
         OrderResultPriority ordPr = null;
         for (int i = 0; i < tmp.size(); i++) {
             Vector x = (Vector) tmp.get(i);
             ordPr = new OrderResultPriority();
             ordPr.setNumberOfStatuses((Long) x.get(1));
             ordPr.setStatusName((String) x.get(0));
             ordPr.setStatusId((Integer) x.get(2));
             resultList.add(ordPr);
         }
         return resultList;
     }
 
     public boolean isOrderOpen() {
 
         return JsfUtil.isOrderOpen();
     }
 
     public void dispose() {
         this.interestingEvent.remove(this);
     }
 }
 
 


I was looking the code of the richEditor and I think I have found the error

look this function ( it is in the file fck_editor.js)
Code:
 Ice.FCKeditorUtility = Class.create();
 Ice.FCKeditorUtility = {
     //this will be called on every render cycle
     updateValue: function(ele) {
         var onCompleteInvoked = $(ele + 'onCompleteInvoked');
         if (onCompleteInvoked){
             if (onCompleteInvoked.value != "true"){return}
         }
         try {
             var oEditor = FCKeditorAPI.GetInstance(ele) ;
             if (oEditor != null) {
                if (toogleState(oEditor)) return;
                 var valueHolder = $(ele + 'valueHolder');
                 var editorValue = $(ele);                
                 editorValue.value = valueHolder.value  
                 editorContent = oEditor.GetXHTML(true);
                 //update the editor only, when there is a value change 
                 if (editorContent != editorValue.value) {
 	                oEditor.SetHTML( editorValue.value) ;
 	                try {
 		                if (oEditor.HasFocus) { 
 		                    oEditor.Focus();                    
 		                } 
 	                } catch (err) {logger.info(err);} 
                 }
             }
         } catch(err) {}
     },
 

the thing is i can not modify this page because I am using the package for net beans do you know I can modify this file?

I am trying to create a javascript function to adjust this error ( I am trying to catch every key the user press and use that value for the editor)

but for now without any success :(

Reg
Laz
Hi there,

Here the code that is giving problems

first I will put the page that contains the rich component element

Code:
 
 <div xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ice="http://www.icesoft.com/icefaces/component">
     
     <ice:panelCollapsible >
         <f:facet name="header">
             <ice:outputLabel value="Order Deatils"/>
         </f:facet>
         <ice:panelGroup>
             <h:outputText styleClass="title" value="Order details"/>
             <ice:panelGrid columns="2">
                 <ice:outputText styleClass="label" value="Company"/><ice:outputText value="#{Session.orderSelected.company}"/>
                 <ice:outputText styleClass="label" value="Company"/><ice:outputText value="#{Session.orderSelected.company}"/>
                 <ice:outputText styleClass="label" value="Description"/><ice:outputText value="#{Session.orderSelected.description}"/>
                 <ice:outputText styleClass="label" value="Country"/><ice:outputText value=" #{Session.orderSelected.country}"/>
                 <ice:outputText styleClass="label" value="Assignment type"/><ice:outputText value=" #{Session.orderSelected.assigntype}"/>
                 <ice:outputText styleClass="label" value="Class"/><ice:outputText value="#{Session.orderSelected.class}"/>
                 <ice:outputText styleClass="label" value="Dead line"/><ice:outputText value=" #{Session.orderSelected.deadline}"/>
                 <ice:outputText styleClass="label" value="Degree"/><ice:outputText value=" #{Session.orderSelected.degree}"/>
                 <ice:outputText styleClass="label" value="Dissertation type"/><ice:outputText value=" #{Session.orderSelected.dissertationtype}"/>
                 <ice:outputText styleClass="label" value="e-mail"/><ice:outputText value=" #{Session.orderSelected.email}"/>
                 <ice:outputText styleClass="label" value="Level"/><ice:outputText value=" #{Session.orderSelected.level}"/>
                 <ice:outputText styleClass="label" value="Main subject"/><ice:outputText value=" #{Session.orderSelected.mainsubject.name}"/>
                 <ice:outputText styleClass="label" value="Name"/><ice:outputText value=" #{Session.orderSelected.name}"/>
                 <ice:outputText styleClass="label" value="Order type"/><ice:outputText value=" #{Session.orderSelected.orderType}"/>
                 <ice:outputText styleClass="label" value="Order number"/><ice:outputText value=" #{Session.orderSelected.ordernumber}"/>
                 <ice:outputText styleClass="label" value="Phone"/><ice:outputText value=" #{Session.orderSelected.phone}"/>
                 <ice:outputText styleClass="label" value="Promo"/><ice:outputText value=" #{Session.orderSelected.promo}"/>
                 <ice:outputText styleClass="label" value="Previous Order"/><ice:outputText value=" #{Session.orderSelected.previousOrder}"/>
                 <ice:outputText styleClass="label" value="Subject aerea"/><ice:outputText value=" #{Session.orderSelected.subjectarea}"/>
                 <ice:outputText styleClass="label" value="Status"/><ice:outputText value=" #{Session.orderSelected.status.status}"/>
                 <ice:outputText styleClass="label" value="Time"/><ice:outputText value=" #{Session.orderSelected.time}"/>
             </ice:panelGrid>
         </ice:panelGroup>
     </ice:panelCollapsible>
     <ice:panelGroup>
 
         <ice:dataTable width="450px" rendered="#{not empty inputFileController.fileList}"  value="#{inputFileController.fileList}" var="item">
         <ice:column>
             <f:facet name="header">
                 <ice:outputLabel value="file name"/>
             </f:facet>
             <ice:outputText value="#{item.fileName}"/>
         </ice:column>
         <ice:column>
             <f:facet name="header">
                 <ice:outputLabel
                     value="path"/>
             </f:facet>
             <ice:outputText value="#{item.filePath}"/>
         </ice:column>
         <ice:column>
             <f:facet name="header">
                 <ice:outputText
                     value="delete"/>
             </f:facet>
             <ice:commandLink
                 value="delete"
                 immediate="true"
                 actionListener="#{inputFileController.removeUploadedFile}">
                 <f:param name="fileName" value="#{item.fileName}"/>
             </ice:commandLink>
         </ice:column>
     </ice:dataTable>
         <ice:inputFile id="inputFileName" width="600" autoUpload="#{inputFileController.autoUpload}"
                      progressListener="#{inputFileController.fileUploadProgress}"
                      actionListener="#{inputFileController.uploadFile}"/>
     <!-- progress bar, percent value is upated via progressListener-->
 
     <ice:outputProgress value="#{inputFileController.fileProgress}"/>
         <ice:panelGrid columns="1">
            
             <ice:outputLabel value="Send the e-mail."><ice:selectBooleanCheckbox immediate="true" value="#{richText.setMessageForEmail}" /></ice:outputLabel>
         </ice:panelGrid>
     <ice:commandButton value="Submit" action="#{richText.save}"/>
 
 <!--[color=red]richText is a session bean that manage the requests of this page and below there is the RichInputText that get refreshed when a  ajax push request is performed the initial value of the template variable is a editable template[/color]-->
 
     <ice:inputRichText saveOnSubmit="true"  toolbar="myEditor" value="#{richText.template}" customConfigPath="/js/config.js"   height="500" language="en" skin="silver">
         </ice:inputRichText>
     </ice:panelGroup>
 </div>
 


here is the class richText that implement the logic to manage the request
As said in the comment this is a session managed bean

Code:
 public class RichTextComponent implements RichTextInt {
 
     private String template = null;
     private boolean disabled = false;
     private boolean save = false;
     private boolean alreadySaved = false;
     private boolean setMessageForEmail = false;
 
     /** Creates a new instance of RichTextComponent */
     public RichTextComponent() {
        
     }
 
 // this is the methods that save the message when the submit button is  //pressed it contains the logic to send the email with the message as well;
 //when the function finish the system return to the initial page and an //ajax push request is performed to inform alla the other users that they //can access to the porder and write an email.
 
     public void save() {
         try {
 
             Messages mexSent = JsfUtil.saveTheMessage(true, alreadySaved, setMessageForEmail, ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrderSelected(), template, ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrderSelected().getEmail(), ((InputFileController) JsfUtil.getObjectFromSession("inputFileController")).getFileList(), true);
             if (!this.alreadySaved) {
                 this.alreadySaved = true;
             }
             if (mexSent != null) {
 
                 AssignmentStatus assSt = ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrderStatusController().findAssignmentStatus(4);
                 JsfUtil.resetAll(assSt);
             }
 
         } catch (Exception ex) {
             Logger.getLogger(RichTextComponent.class.getName()).log(Level.SEVERE, null, ex);
         }
           new RealTimeUpdate().setRenderManager(RenderManager.getInstance());
        
     }
 
     public void setTemplate(String template) {
       
         this.template = template;
      }
      
 
     public void doSetTheField(String template) {
 
         this.template = template;
     }
 
     /**
      * @return the template
      */
     public String getTemplate() {
         return template;
     }
 
     /**
      * @return the save
      */
     public boolean isSave() {
         return save;
     }
 
     /**
      * @param save the save to set
      */
     public void setSave(boolean save) {
         this.save = save;
     }
 
     /**
      * @return the disabled
      */
     public boolean isDisabled() {
         return disabled;
     }
 
     /**
      * @param disabled the disabled to set
      */
     public void setDisabled(boolean disabled) {
         this.disabled = disabled;
     }
 
     /**
      * @return the setMessageForEmail
      */
     public boolean isSetMessageForEmail() {
         return setMessageForEmail;
     }
 
     /**
      * @param setMessageForEmail the setMessageForEmail to set
      */
     public void setSetMessageForEmail(boolean setMessageForEmail) {
         this.setMessageForEmail = setMessageForEmail;
     }
 
     /**
      * @return the alreadySaved
      */
     public boolean isAlreadySaved() {
         return alreadySaved;
     }
 
     /**
      * @param alreadySaved the alreadySaved to set
      */
     public void setAlreadySaved(boolean alreadySaved) {
         this.alreadySaved = alreadySaved;
     }
 }
 



As in the commen when the save function is executed a ajax push request is performed to inform alla the user waiting that the order is now avaliable and they can write a message related this order.

if a user is writing a message related another order as soon as this ajax push request is performed the initial context of the richtext component is reloaded deleting the changes made by the user.

the save function contains a resetAll() that clean some parameters in the session return to the initial page of the system and inform all the users that the order is available
here is the code

Code:
  public static void resetAll(AssignmentStatus ass) {
         if (((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrderSelected() != null && !isOrderOpen()) {
             try {
                 ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrderSelected().setOpen(false);
                 if (ass != null) {
                     ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrderSelected().setStatus(ass);
                 }
                 ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrders().setOrders(((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrderSelected());
                 List<Messages> mxList = ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getMessageController().getMessagesOrderRelated(((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrders().getOrders().getOrdernumber());
                 ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrders().getOrders().setMessages(mxList);
                 ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getOrders().edit();
                 setObjectFromSession("richText", null);
                 ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).setMessagesResultOrdered(null);
                 setObjectFromSession("SendPaymentDeatilsToClient", null);
                 setObjectFromSession("ExecutePaymentDetailsToClient", null);
                 setObjectFromSession("MailsToRead", null);
                 setObjectFromSession("ExecuteSendInfoToWriters", null);
                 setObjectFromSession("SendInfoToWriterRT", null);
                 setObjectFromSession("ExecuteOrderAssignmentToWriter", null);
                 setObjectFromSession("inputFileController", null);
                 setObjectFromSession("SendEmailWithTemplate", null);
                 setObjectFromSession("ExecuteReadEamilsWithNoOrder", null);
                 RenderManager.getInstance().getOnDemandRenderer("eventInterest").requestRender();
             } catch (Exception ex) {
                 Logger.getLogger(JsfUtil.class.getName()).log(Level.SEVERE, null, ex);
             }
         }
         if (JsfUtil.getObjectFromSession("SendQuoteToClientEditor") != null) {
             JsfUtil.setObjectFromSession("SendQuoteToClientEditor", null);
         }
         JsfUtil.setObjectFromSession("Navigator", new Navigator());
         ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getPageViewManager().setEastPanel(false);
         ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getPageViewManager().setWestPanel(true);
         ((SessionJsfApplication) JsfUtil.getObjectFromSession("Session")).getPageViewManager().setSouthPanel(false);
         ((PopUpMenuOrderActionsImp) getObjectFromSession("popUpMenuOrderActions")).setShowpanelRequestMoreInfo(false);
     }
 


Finally everything is put in a page (the initial one) that is a panelBorder Component that is managed by a pageViewManager that is a field of the a session bean as you can see from the code.

In this page there is a renderable bean (request scope) called realTimeUpdate

here the code of the page

Code:
  <ice:panelBorder styleClass="mainPanel" renderEast="#{Session.pageViewManager.eastPanel}"  renderCenter="#{Session.pageViewManager.centerPanel}" renderNorth="#{Session.pageViewManager.northPanel}" renderWest="#{Session.pageViewManager.westPanel}" renderSouth="#{Session.pageViewManager.southPanel}" id="mainPanel">
                     <f:facet name="north">
                         <ice:panelGroup style="border: 1px solid rgb(204,204, 255)" >
                             <ice:outputConnectionStatus cautionLabel="Caution connection in danger"  activeLabel="Active: working" disconnectedLabel="Disconnected" displayHourglassWhenActive="true" showPopupOnDisconnect="true"  inactiveLabel="Active: Idle"/>
                             <ice:outputText value="O.C.R.M."/>
                             <ice:panelGrid columns="2" style="width: 100%">
                                 <ice:commandLink action="#{Session.collapseLeftPanel}" value="collapse" rendered="#{Session.pageViewManager.westPanel}"/>
                                 <ice:commandLink action="#{Session.expandLeftPanel}" value="expand" rendered="#{not Session.pageViewManager.westPanel}"/>
                                 <ice:commandLink action="#{Session.collapseRightPanel}"  value="collapse" rendered="#{Session.pageViewManager.eastPanel}"/>
                                 <ice:commandLink action="#{Session.expandRightPanel}" value="expand"  rendered="#{not Session.pageViewManager.eastPanel}"/>
                             </ice:panelGrid>
                         </ice:panelGroup>
                     </f:facet>
                     <f:facet name="west">
                         <ice:panelGroup style="height:100%; width:350px; border: 1px solid rgb(204,204, 255);">
                             <ice:panelGroup rendered="#{Session.user.users.logged}">
                                 <ice:outputLabel style="font-size: 10px; white-space: nowrap; font-family: Georgia,'Times New Roman',times,serif; font-weight: bold; color: red;" value="you have the adverts off" rendered="#{Session.user.users.alertsOff}"/>
                                 <ice:outputLabel style="font-size: 10px; white-space: nowrap; font-family: Georgia,'Times New Roman',times,serif; font-weight: bold; color: green;" value="you have the adverts on" rendered="#{not Session.user.users.alertsOff}"/>
                                 <ice:commandLink value="change" styleClass="links textleftpanel" panelConfirmation="#{Session.user.users.alertsOff ? null : 'disAdverts'}" action="#{homePage.changeAdv}"/>
                             </ice:panelGroup>
                             <ice:panelGrid columns="2" style="white-space: nowrap">              
                                 <h:graphicImage url="images/groups.png" alt="group" rendered="#{Session.user.users.logged}" /><ice:outputLabel styleClass="textleftpanel"  rendered="#{Session.user.users.logged}" value="#{Session.user.users.groupId.name}"/>
                                 <ice:panelGroup rendered="#{Session.user.users.logged}"> <h:graphicImage url="images/user_female.png" alt="user" rendered="#{Session.user.users.sexF}" /> <h:graphicImage url="images/user_male.png" alt="user" rendered="#{not Session.user.users.sexF}" /> </ice:panelGroup><ice:outputLabel styleClass="textleftpanel" rendered="#{Session.user.users.logged}" value="#{Session.user.users.firstName} #{Session.user.users.secondName}"/>
                                 <ice:commandButton image="images/home_pic.png"  title="go to home" rendered="#{Session.user.users.logged}" partialSubmit="true" immediate="true" value="go to home" action="#{homePage.goHome}"></ice:commandButton> <ice:outputLabel value=""/>
                                 <ice:commandButton image="images/logout.png"  title="exit from the application" rendered="#{Session.user.users.logged}" value="logout" immediate="true" action="#{homePage.logout}"/> <ice:outputLabel value=""/>
                                 <ice:outputText styleClass="textleftpanel" rendered="#{Session.user.users.logged}" value="Number of total orders:"/> <ice:outputLabel rendered="#{Session.user.users.logged}" styleClass="textleftpanel" value="#{Session.orders.ordersCount}"/>
                             </ice:panelGrid>
                             <ice:dataTable style="border:0; white-space: nowrap" value="#{realTimeUpdate.orderResultPrioritys}" var="item">
                                 <ice:column style="border:0;white-space: nowrap">
                                     <ice:commandLink styleClass="textleftpanel" value="#{item.statusName}">
                                         <f:setPropertyActionListener target="#{Session.orders.statusIdSelectedFromLeftPanel}" value="#{item.statusId}"/>
                                     </ice:commandLink>
                                 </ice:column>
                                 <ice:column  style="border:0">
                                     <ice:outputText styleClass="textleftpanel" value="#{item.numberOfStatuses}"/>
                                 </ice:column>
                             </ice:dataTable>
                             <ice:commandLink styleClass="textleftpanel" value="reset">
                                 <f:setPropertyActionListener target="#{Session.orders.statusIdSelectedFromLeftPanel}" value="0"/>
                             </ice:commandLink>
                             <ice:panelGroup rendered="#{Session.user.users.logged}">
                                 <ice:commandLink  immediate="true" rendered="#{Session.user.users.logged}" styleClass="links textleftpanel" value="create a new order manually" action="#{homePage.goToCreateOrder}" /><br/>
                                 <ice:commandLink rendered="#{not empty Session.messageController.drafts}" immediate="true" styleClass="links textleftpanel" action="#{homePage.viewDrafts}" value="You have #{homePage.numberOfDraft} messages not sent"/><br/>
                                 <h:graphicImage url="images/emails.png" alt="emails" rendered="#{Session.user.users.logged}" />  <ice:commandLink  immediate="true" styleClass="links textleftpanel" action="#{homePage.viewMailsToRead}" value="You have #{Session.numberOfEmailToRead} Emails to read. Manage your E-mails"/><br/><br/>
                                 <ice:commandLink  immediate="true" rendered="#{Session.numberOfEmailToReadWithNoOrderRelated!=0}" styleClass="links textleftpanel" action="#{homePage.viewMailsToReadWtihNoOrderReleted}" value="You have #{Session.numberOfEmailToReadWithNoOrderRelated} Emails without any order related."/>
                             </ice:panelGroup>
                         </ice:panelGroup>
                     </f:facet>
                     <f:facet name="center">
                         <ice:panelGroup style="height:100%; width:100%; border: 1px solid rgb(204,204, 255);">
                             <ui:include src="#{Navigator.pagePath}"/>
                         </ice:panelGroup>
                     </f:facet>
                     <f:facet name="east">
                         <ice:panelGroup style="height:100%;width:150px; border: 1px solid rgb(204,204, 255);">
                             <ui:include src="#{Navigator.eastPanelPath}"/>
                         </ice:panelGroup>
                     </f:facet>
                     <f:facet name="south" >
                         <ice:panelGroup style="height:100%;  border: 1px solid rgb(204,204, 255);">
                             <ui:include src="#{Navigator.southPanelPath}"/>
                         </ice:panelGroup>
                     </f:facet>
                 </ice:panelBorder>
 


What am I doing wrong?

I tried everithing and I can not figure out what I have to do to fix this bug

Regards

Laz

scarsix06d wrote:
Don't worry. Finally if don't work the code you can create a javascript variable and before doing the partialsubmit you can get the richtext value and put the javascript variable and when the page load again put the javascript value variable on the richtext

 


I am thinking at this solution and I have these problems:

everything happens when the server ask to render again managed bean in the page so how can i know i have to save the value of the rich text component?

I do know how to initialize the rich text component via javascript(i initialize it from the server)

can you please make a simpe code ex. how could i do that?

Thank you the code I have now is very old and completely different from the one in the project i remeber the rich component is

Code:
  <ice:inputRichText  value="#{richText.template}" saveOnSubmit="true" height="500" language="en" skin="silver">
         </ice:inputRichText>
     </ice:panelGroup>
 


the richText.template is initialized from the server with an initial template when you press a button submit an email is sent and the message is stored in the db (this part works perfectly)

the current component use a custom conficuration for the buttons (i am not showing here this because i do not remeber the names anyway the configuration is working)

On Monday I will be able to post all the page and even the server side function if neded.

Can you show me on this component how to do the thng you suggested?

Regards

Laz
 
Profile for Lazarus__ -> Messages posted by Lazarus__ [45] Go to Page: 1, 2, 3 Next 
Go to:   
Powered by JForum 2.1.7ice © JForum Team