I was trying the sample code below but I got following error: The XML page cannot be displayed Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
-------------------------------------------------------------------------------- Only one top level element is allowed in an XML document. Error processing resource 'http://localhost:8080/Testing/faces/Ed... <script type="text/javascript">var _AdfWindowOpenError='A popup window blocker has been detected in your browser. Popu... My set up is as follows: trinidad verion 1.2.8 Tomacat 6 eclipse-jee-ganymede-win32 Any helpl will be appreciated Thanks Vijay Mathias Walter wrote: > > Hi Eric, > > did you read my post regarding to inline editable table yesterday? I'm > doing > the same stuff. You have to declare <tr:resetActionListener/> inside the > cancel button. > Did you ever try to use a selectOneChoice component? > > -- > Kind regards, > Mathias > > -----Original Message----- > From: Justin mcKay [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 19, 2008 10:09 PM > To: [email protected] > Subject: [Trinidad] Inline Editable Table > > > > I am creating a simple inline editable table example but am having a > little > bit of trouble. So far I am able to create new rows, edit rows, and > delete > rows. The problem I am having is I would like to be able to cancel from > an > edit and if a user has entered some data that is overwritten from the > existing entry. I will attach the code below but I was just trying to > come > up with a way of doing this where I don't have more than one copy of the > list around, any help or suggestions would be greatly appreciated. There > is > only one bean, one jsf page, and the managed bean definition. > > > > Jsf page.. > > > > > > <?xml version='1.0' encoding='windows-1252'?> > > <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" > > xmlns:f="http://java.sun.com/jsf/core" > > xmlns:tr="http://myfaces.apache.org/trinidad" > > xmlns:ui="http://java.sun.com/jsf/facelets"> > > <f:view> > > <tr:form> > > <tr:table value="#{testPeople.people}" var="row" > binding="#{testPeople.table}"> > > <tr:column> > > <f:facet name="header"> > > <tr:outputText value="First Name"/> > > </f:facet> > > <tr:inputText value="#{row.firstName}" > readOnly="#{not testPeople.entryRow and not testPeople.editRow}" > required="true"/> > > </tr:column> > > <tr:column> > > <f:facet name="header"> > > <tr:outputText value="Last Name"/> > > </f:facet> > > <tr:inputText value="#{row.lastName}" > readOnly="#{not testPeople.entryRow and not testPeople.editRow}" > required="true"/> > > </tr:column> > > <tr:column> > > <f:facet name="header"> > > <tr:outputText value="Age"/> > > </f:facet> > > <tr:inputText value="#{row.age}" > readOnly="#{not testPeople.entryRow and not testPeople.editRow}" > maximumLength="3"> > > <f:validateLongRange minimum="1" > maximum="125"/> > > </tr:inputText> > > </tr:column> > > <tr:column> > > <f:facet name="header"> > > <tr:outputText value="Actions"/> > > </f:facet> > > <tr:panelHorizontalLayout> > > <f:facet name="separator"> > > <tr:spacer > width="2px"></tr:spacer> > > </f:facet> > > <tr:commandButton text="Add" > action="#{testPeople.add}" rendered="#{testPeople.entryRow}" > partialSubmit="true"/> > > <tr:commandButton text="Delete" > action="#{testPeople.delete}" rendered="#{not testPeople.entryRow and not > testPeople.editMode}" immediate="true" partialSubmit="true"/> > > <tr:commandButton text="Edit" > action="#{testPeople.edit}" rendered="#{not testPeople.entryRow and not > testPeople.editMode}" immediate="true" partialSubmit="true"/> > > <tr:commandButton text="Update" > action="#{testPeople.update}" rendered="#{testPeople.editMode and > testPeople.editRow}" partialSubmit="true"/> > > <tr:commandButton text="Cancel" > action="#{testPeople.cancel}" rendered="#{testPeople.editMode and > testPeople.editRow}" immediate="true" partialSubmit="true"/> > > </tr:panelHorizontalLayout> > > </tr:column> > > </tr:table> > > </tr:form> > > </f:view> > > </jsp:root> > > > > > > Java code.. > > > > import java.util.ArrayList; > > import java.util.List; > > > > import org.apache.myfaces.trinidad.component.core.data.CoreTable; > > import org.apache.myfaces.trinidad.context.RequestContext; > > > > > > > > /** > > * Class: PersonFinder.java > > * Author: > > * Date: Mar 17, 2008 > > * Version: 1.0 > > * Description: > > */ > > public class PersonFinder { > > private final String PEOPLE = "PEOPLE_LIST"; > > private final String EDIT_ROW = "PERSON_EDIT_ROW"; > > private CoreTable table; > > > > public PersonFinder(){ > > if(getPeople() == null){ > > List<Person> people = new ArrayList<Person>(); > > people.add(new Person()); > > setPeople(people); > > } > > } > > > > /** > > * @return the people > > */ > > public List<Person> getPeople() { > > return > (List<Person>)RequestContext.getCurrentInstance().getPageFlowScope().get(PEO > PLE); > > } > > /** > > * @param people the people to set > > */ > > public void setPeople(List<Person> people) { > > > RequestContext.getCurrentInstance().getPageFlowScope().put(PEOPLE, > people); > > } > > > > /** > > * @return the table > > */ > > public CoreTable getTable() { > > return table; > > } > > > > /** > > * @param table the table to set > > */ > > public void setTable(CoreTable table) { > > this.table = table; > > } > > > > /** > > * isEntryRow ie the bottom entry row > > * @return true if it is the entry row, false otherwise > > */ > > public boolean isEntryRow(){ > > Person row = (Person) getTable().getRowData(); > > return row != null && row.getFirstName() == null; > > } > > > > /** > > * isEditRow ie the row the user wants to edit > > * @return true if it is the edit row, false otherwise > > */ > > public boolean isEditRow(){ > > boolean editRow = false; > > if(getEditRowNum() != null){ > > editRow = getEditRowNum().intValue() == > getTable().getRowIndex(); > > } > > return editRow; > > } > > > > > > /** > > * isEditMode ie the user clicked edit on a row > > * @return true if we are in editMode, false otherwise > > */ > > public boolean isEditMode(){ > > boolean editMode = false; > > if(getEditRowNum() != null){ > > editMode = true; > > } > > return editMode; > > > > } > > > > /** > > * Helper to store the editRowNum in the PageScope > > * @param num > > */ > > private void setEditRowNum(Integer num){ > > > RequestContext.getCurrentInstance().getPageFlowScope().put(EDIT_ROW, num); > > } > > > > > > /** > > * Helper to retrieve the editRowNum from the PageScope > > * @return > > */ > > private Integer getEditRowNum(){ > > return (Integer) > RequestContext.getCurrentInstance().getPageFlowScope().get(EDIT_ROW); > > } > > > > //Actions > > public void add(){ > > List<Person> people = getPeople(); > > people.add(new Person()); > > > > RequestContext.getCurrentInstance().addPartialTarget(table); > > } > > > > public void delete(){ > > List<Person> people = getPeople(); > > people.remove(table.getRowIndex()); > > RequestContext.getCurrentInstance().addPartialTarget(table); > > } > > > > public void edit(){ > > setEditRowNum(table.getRowIndex()); > > > > //Delete the entry row > > List<Person> people = getPeople(); > > if(people.size() > 0){ > > people.remove(people.size()-1); > > } > > > > RequestContext.getCurrentInstance().addPartialTarget(table); > > } > > > > public void update(){ > > List<Person> people = getPeople(); > > people.add(new Person()); > > > > setEditRowNum(null); > > RequestContext.getCurrentInstance().addPartialTarget(table); > > } > > > > public void cancel(){ > > //How do I do it? > > } > > > > public class Person { > > private String firstName; > > private String lastName; > > private Integer age; > > > > /** > > * @return the firstName > > */ > > public String getFirstName() { > > return firstName; > > } > > /** > > * @param firstName the firstName to set > > */ > > public void setFirstName(String firstName) { > > this.firstName = firstName; > > } > > /** > > * @return the lastName > > */ > > public String getLastName() { > > return lastName; > > } > > /** > > * @param lastName the lastName to set > > */ > > public void setLastName(String lastName) { > > this.lastName = lastName; > > } > > /** > > * @return the age > > */ > > public Integer getAge() { > > return age; > > } > > /** > > * @param age the age to set > > */ > > public void setAge(Integer age) { > > this.age = age; > > } > > } > > } > > > > > > Faces config mapping... > > > > > > <managed-bean> > > <managed-bean-name>testPeople</managed-bean-name> > > > <managed-bean-class>com.faces.bean.test.dynamicTable.PersonFinder</managed-b > ean-class> > > <managed-bean-scope>request</managed-bean-scope> > > </managed-bean> > > > -- View this message in context: http://www.nabble.com/-Trinidad--Inline-Editable-Table-tp16165160p18410749.html Sent from the MyFaces - Users mailing list archive at Nabble.com.

