[
https://issues.jboss.org/browse/RF-13116?page=com.atlassian.jira.plugin.s...
]
John Strandmyr commented on RF-13116:
-------------------------------------
{code}
package no.hmskontoret.hmskontoret.hendelsesregister;
import org.joda.time.DateTime;
import org.richfaces.model.Filter;
import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean;
import java.io.Serializable;
import java.util.Calendar;
@ManagedBean
@SessionScoped
public class TiltakFilter implements Serializable {
private static final long serialVersionUID = 3891868950010001044L;
/**
*
*/
private String fristFilter = "";
private String tittelFilter = "";
private String ansvarligFilter = "";
private String lokasjonFilter = "";
private String kategoriFilter = "";
private String statusFilter = "";
private String avdelingFilter = "";
public Filter<?> getTittelImpl() {
return new Filter<Object>() {
@Override
public boolean accept(Object i) {
String s = getTittelFilter();
Tiltak item = (Tiltak) i;
if (s.length() == 0)
return true;
if (item != null && item.getTittel() != null) {
if (item.getTittel().toLowerCase().indexOf(s.toLowerCase()) >= 0)
return true;
else
return false;
}
return false;
}
};
}
public Filter<?> getAnsvarligImpl() {
return new Filter<Object>() {
@Override
public boolean accept(Object i) {
String s = getAnsvarligFilter();
Tiltak item = (Tiltak) i;
if (s.length() == 0)
return true;
if (item != null && item.getAnsvarlig() != null &&
item.getAnsvarlig().getNavn() != null) {
if
(item.getAnsvarlig().getNavn().toLowerCase().indexOf(s.toLowerCase()) >= 0)
return true;
else
return false;
}
return false;
}
};
}
public Filter<?> getKategoriImpl() {
return new Filter<Object>() {
@Override
public boolean accept(Object i) {
String s = getKategoriFilter();
Tiltak item = (Tiltak) i;
if (s.length() == 0)
return true;
if (item != null && item.getKategori() != null) {
if (item.getKategori().toLowerCase().indexOf(s.toLowerCase()) >=
0)
return true;
else
return false;
}
return false;
}
};
}
public Filter<?> getLokasjonImpl() {
return new Filter<Object>() {
@Override
public boolean accept(Object i) {
String s = getTittelFilter();
Tiltak item = (Tiltak) i;
if (s.length() == 0)
return true;
if (item != null && item.getLokasjon() != null) {
if (item.getLokasjon().toLowerCase().indexOf(s.toLowerCase()) >=
0)
return true;
else
return false;
}
return false;
}
};
}
public Filter<?> getAvdelingImpl() {
return new Filter<Object>() {
@Override
public boolean accept(Object i) {
String s = getAvdelingFilter();
Tiltak item = (Tiltak) i;
if (s.length() == 0)
return true;
if (item != null && item.getAvdeling() != null &&
item.getAvdeling().getNavn() != null) {
if
(item.getAvdeling().getNavn().toLowerCase().indexOf(s.toLowerCase()) >= 0)
return true;
else
return false;
}
return false;
}
};
}
public Filter<?> getStatusImpl() {
return new Filter<Object>() {
@Override
public boolean accept(Object i) {
Integer s;
if( getStatusFilter() == null || getStatusFilter().equals(""))
return true;
else
s = Integer.valueOf(getStatusFilter());
Tiltak item = (Tiltak) i;
if (item != null && item.getStatus() != null &&
item.getStatus() != null) {
if (item.getStatus().equals(s))
return true;
else
return false;
}
return false;
}
};
}
public Filter<?> getFristImpl() {
return new Filter<Object>() {
@Override
public boolean accept(Object i) {
String s = getFristFilter();
Tiltak item = (Tiltak) i;
if (s.length() == 0)
return true;
if (item.getFrist() != null) {
if (s.matches("^\\d{4,4}$")) {
Calendar calFrom = Calendar.getInstance();
calFrom.set(Integer.valueOf(s), 0, 1);
Calendar calTo = Calendar.getInstance();
calTo.set(Integer.valueOf(s), 11, 31);
Calendar cal = Calendar.getInstance();
cal.setTime(item.getFrist());
if ((cal.after(calFrom) || cal.equals(calFrom)) &&
(cal.before(calTo) || cal.equals(calTo))) {
return true;
}
} else if (s.equals("ingen")) {
if (item.getFrist() == null)
return true;
} else if (s.equals("12mnd")) {
Calendar cal = Calendar.getInstance();
cal.setTime(item.getFrist());
Calendar calFrom = Calendar.getInstance();
calFrom.set(Calendar.YEAR, calFrom.get(Calendar.YEAR) - 1);
Calendar calTo = Calendar.getInstance();
if ((cal.after(calFrom) || cal.equals(calFrom)) &&
(cal.before(calTo) || cal.equals(calTo))) {
return true;
}
} else if (s.substring(0, 9).equals("tidligere")) {
String strYear = s.substring(s.indexOf("_") + 1);
Calendar calTo = Calendar.getInstance();
calTo.set(Calendar.YEAR, Integer.valueOf(strYear));
Calendar cal = Calendar.getInstance();
cal.setTime(item.getFrist());
if (cal.before(calTo) || cal.equals(calTo))
return true;
}
} else if (item.getFrist() == null && s.equals("ingen"))
{
return true;
}
return false;
}
};
}
public String getFristFilter() {
return fristFilter;
}
public void setFristFilter(String fristFilter) {
this.fristFilter = fristFilter;
}
/**
* @return the tittelFilter
*/
public String getTittelFilter() {
return this.tittelFilter;
}
/**
* @param tittelFilter the tittelFilter to set
*/
public void setTittelFilter(String tittelFilter) {
this.tittelFilter = tittelFilter;
}
/**
* @return the avdelingFilter
*/
public String getAvdelingFilter() {
return this.avdelingFilter;
}
/**
* @param avdelingFilter the avdelingFilter to set
*/
public void setAvdelingFilter(String avdelingFilter) {
this.avdelingFilter = avdelingFilter;
}
/**
* @return the lokasjonFilter
*/
public String getLokasjonFilter() {
return this.lokasjonFilter;
}
/**
* @param lokasjonFilter the lokasjonFilter to set
*/
public void setLokasjonFilter(String lokasjonFilter) {
this.lokasjonFilter = lokasjonFilter;
}
/**
* @return the ansvarligFilter
*/
public String getAnsvarligFilter() {
return this.ansvarligFilter;
}
/**
* @param ansvarligFilter the ansvarligFilter to set
*/
public void setAnsvarligFilter(String ansvarligFilter) {
this.ansvarligFilter = ansvarligFilter;
}
/**
* @return the kategoriFilter
*/
public String getKategoriFilter() {
return this.kategoriFilter;
}
/**
* @param kategoriFilter the kategoriFilter to set
*/
public void setKategoriFilter(String kategoriFilter) {
this.kategoriFilter = kategoriFilter;
}
/**
* @return the statusFilter
*/
public String getStatusFilter() {
return this.statusFilter;
}
/**
* @param statusFilter the statusFilter to set
*/
public void setStatusFilter(String statusFilter) {
this.statusFilter = statusFilter;
}
}
{code}
Using filters with paging / default filter value in
extendeddatatable
---------------------------------------------------------------------
Key: RF-13116
URL:
https://issues.jboss.org/browse/RF-13116
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Reporter: John Strandmyr
Priority: Critical
Labels: datascroller, extendedDataTable, filter, waiting_on_user
I've got an extededdatatable from richfaces and if i add a default value to the
filter, so that some rows are excluded on first rendering, and then change the filter to
show the rows that were hidden, I don't get any calls to the actionlisteners on the
rows that were hidden at first.
It works fine on those rows that was shown in the first page load, but not on those
hidden.
The same issue appears when i use paging, and some rows are on page two. if i use the
filter to show some rows from another page, the actionlistener isnt triggered. I can still
click on those rows that was apparent on the first page, but not on the other pages.
If I don't have a default filter, or a pager, i can add and remove filtering and
everything is fine.
{code}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:head>
<meta http-equiv="content-type" content="text/html;
charset=utf-8"/>
<h:outputScript name="jsf.js" library="javax.faces"/>
</h:head>
<h:body>
<h:form>
<rich:extendedDataTable value="#{tiltakServer.tiltak}"
var="tiltak" id="tiltakTable">
<rich:column filter="#{tiltakFilter.tittelImpl}">
<f:facet name="header">
<h:outputText value="Tittel" />
<h:panelGroup styleClass="filter">
<h:inputText
value="#{tiltakFilter.tittelFilter}">
<a4j:ajax event="keyup"
render="tiltakTable@body" execute="@this"/>
</h:inputText>
</h:panelGroup>
</f:facet>
<h:outputText value="#{tiltak.tittel}"/>
</rich:column>
<rich:column>
<f:facet name="header">
Edit
</f:facet>
<h:commandLink value="Goto">
<f:actionListener
type="no.hmskontoret.hmskontoret.hendelsesregister.TiltakOnEditActionListener"/>
</h:commandLink>
</rich:column>
</rich:extendedDataTable>
</h:form>
</h:body>
</html>
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira