Details
Description
I have a ViewScoped backing bean that has a partial submit on screen component the @PostConstruct method is called when the partial submit is perform; I don't believe that this functionality is correct.
Activity
Simon Fryer
created issue -
Simon Fryer
made changes -
Field | Original Value | New Value |
---|---|---|
Comment |
[ Hi, I have replicated the problem with the following code. There are three files below an xhtml, a java and a js file. As you can see I call the iceSubmitPartial function manually. The postconstruct method is called if a selectInputDate is placed inside a tooltip and poup calendar button is pressed. I've also found if you put a displaylistener on a panelTooltip the postconstruct method is called. test.xhtml [ <ice:form id="frmIndex1"> <ice:panelGrid> <ice:panelGroup id="divIntelText" onmouseup="setSelectedText();" style="width: 630px; height: 350px; overflow: auto; border-style: solid; border-width: 1px; border-color: #D9D9D9;"> <f:verbatim> #{testBean.bodyText} </f:verbatim> </ice:panelGroup> <ice:inputText id="txtSelected" value="#{testBean.selectedText}" onchange="iceSubmitPartial( form, this, event);" style="display: none" /> </ice:panelGrid> </ice:form> ] TestBean.java [ import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; @ManagedBean @ViewScoped public class TestBean { private String selectedText; private String bodyText = "Hello there"; @PostConstruct public void init() { System.out.println("Init"); } public String getBodyText() { return bodyText; } public void setBodyText(String bodyText) { } public void setSelectedText(String selectedText) { System.out.println("Selected text is: " + selectedText); } public String getSelectedText() { return selectedText; } } ] intel.js [ var selectedText; // Sets the selected text in the server code. function setSelectedText() { var txt = ''; if(window.getSelection) { txt = window.getSelection(); } else if(document.getSelection) { txt = document.getSelection(); } else if(document.selection) { txt = document.selection.createRange().text; } txt = new String(txt); if(txt.length > 0) { selectedText = document.getElementById("frmIndex1:txtSelected"); selectedText.value = txt; selectedText.onchange(); } } ] ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Component/s | Framework [ 10013 ] | |
Component/s | Components [ 10012 ] | |
Assignee Priority | P1 |
Deryk Sinotte
made changes -
Attachment | verbatim-beans.zip [ 12406 ] |
Deryk Sinotte
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Won't Fix [ 2 ] |
Ken Fyten
made changes -
Fix Version/s | 2.0.0 [ 10230 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee Priority | P1 |
Hi, I have replicated the problem with the following code. There are three files below an xhtml, a java and a js file.
As you can see I call the iceSubmitPartial function manually.
The postconstruct method is called if a selectInputDate is placed inside a tooltip and poup calendar button is pressed.
I've also found if you put a displaylistener on a panelTooltip the postconstruct method is called.
test.xhtml
{testBean.bodyText}[
<ice:form id="frmIndex1">
<ice:panelGrid>
<ice:panelGroup id="divIntelText" onmouseup="setSelectedText();" style="width: 630px; height: 350px; overflow: auto; border-style: solid; border-width: 1px; border-color: #D9D9D9;">
<f:verbatim>
#
</f:verbatim>
</ice:panelGroup>
<ice:inputText id="txtSelected"
value="#
"
onchange="iceSubmitPartial( form, this, event);"
style="display: none" />
</ice:panelGrid>
</ice:form>
]
TestBean.java
[
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class TestBean
{
private String selectedText;
private String bodyText = "Hello there";
@PostConstruct
{ System.out.println("Init"); }public void init()
public String getBodyText()
{ return bodyText; }public void setBodyText(String bodyText)
{
}
public void setSelectedText(String selectedText)
{ System.out.println("Selected text is: " + selectedText); }public String getSelectedText()
{ return selectedText; }}
]
intel.js
[
var selectedText;
// Sets the selected text in the server code.
function setSelectedText()
{
var txt = '';
if(window.getSelection)
{ txt = window.getSelection(); }else if(document.getSelection)
{ txt = document.getSelection(); }else if(document.selection)
{ txt = document.selection.createRange().text; }txt = new String(txt);
if(txt.length > 0)
{ selectedText = document.getElementById("frmIndex1:txtSelected"); selectedText.value = txt; selectedText.onchange(); }}
]