2014-10-03 3 views
0

의 데이터베이스에서 뽑아리스트를 나는 다음과 같이 내 수업을 구조화 한 :는 필터링 태피스트리

@Entity 
@Table(name = "Tiket") 
public class Tiket { 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Basic(optional = false) 
@Column(name = "TICKET_ID") 
private int tiketID; 

@Basic(optional = false) 
@Column(name = "TICKET_DRAW_ID") 
private String tiketDrawID; 

@Basic(optional = false) 
@Column(name = "TICKET_DATE") 
@Temporal(TemporalType.TIMESTAMP) 
private Date ticketDate; 

@Basic(optional = false) 
@Column(name = "TICKET_DRAW_TYPE") 
@Enumerated(EnumType.STRING) 
private TipDrawTiketa ticketDrawTicket; 

@Basic(optional = false) 
@Column(name = "TICKET_SERIAL") 
private String ticketSerial; 

@Basic(optional = false) 
@Column(name = "TICKET_NUMBER") 
private String ticketNumber; 

@Basic(optional = false) 
@Column(name = "TICKET_STATUS_OF_A_TICKET") 
@Enumerated(EnumType.STRING) 
private TiketStatus ticketStatus; 

@Basic(optional = false) 
@Column(name = "TICKET_PRICE") 
private int ticketPrice; 

public Tiket(int tiketID, String tiketDrawID, Date tiketDatum, TipDrawTiketa tiketDrawTiketa, String tiketSerija, String tiketBroj, TiketStatus tiketStatusTiketa, int tiketCijena) { 
    this.tiketID = tiketID; 
    this.tiketDrawID = tiketDrawID; 
    this.ticketDate = tiketDatum; 
    this.ticketDrawTicket = tiketDrawTiketa; 
    this.ticketSerial = tiketSerija; 
    this.ticketNumber = tiketBroj; 
    this.ticketStatus = tiketStatusTiketa; 
    this.ticketPrice = tiketCijena; 
} 

    public Tiket(String tiketDrawID, Date tiketDatum, TipDrawTiketa tiketDrawTiketa, String tiketSerija, String tiketBroj, TiketStatus tiketStatusTiketa, int tiketCijena) { 
    this.tiketDrawID = tiketDrawID; 
    this.ticketDate = tiketDatum; 
    this.ticketDrawTicket = tiketDrawTiketa; 
    this.ticketSerial = tiketSerija; 
    this.ticketNumber = tiketBroj; 
    this.ticketStatus = tiketStatusTiketa; 
    this.ticketPrice = tiketCijena; 
} 


public Tiket() { 
} 

/** 
* @return the tiketID 
*/ 
public int getTiketID() { 
    return tiketID; 
} 

/** 
* @param tiketID the tiketID to set 
*/ 
public void setTiketID(int tiketID) { 
    this.tiketID = tiketID; 
} 

/** 
* @return the tiketDrawID 
*/ 
public String getTiketDrawID() { 
    return tiketDrawID; 
} 

/** 
* @param tiketDrawID the tiketDrawID to set 
*/ 
public void setTiketDrawID(String tiketDrawID) { 
    this.tiketDrawID = tiketDrawID; 
} 

/** 
* @return the ticketDate 
*/ 
public Date getTicketDate() { 
    return ticketDate; 
} 

/** 
* @param ticketDate the ticketDate to set 
*/ 
public void setTicketDate(Date ticketDate) { 
    this.ticketDate = ticketDate; 
} 

/** 
* @return the ticketDrawTicket 
*/ 
public TipDrawTiketa getTicketDrawTicket() { 
    return ticketDrawTicket; 
} 

/** 
* @param ticketDrawTicket the ticketDrawTicket to set 
*/ 
public void setTicketDrawTicket(TipDrawTiketa ticketDrawTicket) { 
    this.ticketDrawTicket = ticketDrawTicket; 
} 

/** 
* @return the ticketSerial 
*/ 
public String getTicketSerial() { 
    return ticketSerial; 
} 

/** 
* @param ticketSerial the ticketSerial to set 
*/ 
public void setTicketSerial(String ticketSerial) { 
    this.ticketSerial = ticketSerial; 
} 

/** 
* @return the ticketNumber 
*/ 
public String getTicketNumber() { 
    return ticketNumber; 
} 

/** 
* @param ticketNumber the ticketNumber to set 
*/ 
public void setTicketNumber(String ticketNumber) { 
    this.ticketNumber = ticketNumber; 
} 

/** 
* @return the ticketStatus 
*/ 
public TiketStatus getTicketStatus() { 
    return ticketStatus; 
} 

/** 
* @param ticketStatus the ticketStatus to set 
*/ 
public void setTicketStatus(TiketStatus ticketStatus) { 
    this.ticketStatus = ticketStatus; 
} 

/** 
* @return the ticketPrice 
*/ 
public int getTicketPrice() { 
    return ticketPrice; 
} 

/** 
* @param ticketPrice the ticketPrice to set 
*/ 
public void setTicketPrice(int ticketPrice) { 
    this.ticketPrice = ticketPrice; 
} 

는 지금은 목록을, 그리고하지이 클래스의 목록을뿐만 아니라 그 위에 기능을 검색합니다. 나는 자바 파일에 다음과 같이 Stitch component Observe를 사용하여 시도했다 :

public class ListTiket { 

// parametri klase 
@Inject 
private BiznisLogika biznisLogika; 

@Property 
private List<Tiket> listaTiketa; 

@InjectComponent 
private Zone zonaZaTikete; 

void setupRender() { 
    listaTiketa = getTikete(); 
} 


/** 
* This event is fired by the observe mixin 
*/ 
Block onFilter(String ticketSerial, String ticketNumber) { 
    //Date parsedDatum = parseDate(datumZaPromjenu); 
    List<Tiket> filtered = new ArrayList<Tiket>(); 
    for (Tiket tiketaa : getTikete()) { 
     //boolean include = datumZaPromjenu == null || phone.name.toLowerCase().contains(name.toLowerCase()); 
     boolean include = ticketSerial == null || ticketSerial.equals(tiketaa.getTicketSerial()); 
       //tiketaa.getTicketSerial().toLowerCase().contains(ticketSerial.toLowerCase()); 

     include &= ticketNumber == null || ticketNumber.equals(tiketaa.getTicketNumber()); 
     if (include) { 
      filtered.add(tiketaa); 
     } 
    } 
    listaTiketa = filtered; 
    return zonaZaTikete.getBody(); 
} 
/* 

    @CommitAfter 
    @SuppressWarnings("unchecked")*/ 
    public List<Tiket> getTikete() { 
     return biznisLogika.izlistajSveTikete(); 
    } 
} 

및 TML 파일 : 그것은 단지 전체 목록을 반환하지만

<div class="container_12" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter"> 

<t:form autofocus="literal:true"> 
     <div class="alert alert-info">Select some filter values to filter the list of tickets</div> 



     ${message:datum} <t:textfield t:id="ticketSerial" t:mixins="stitch/observe" value="literal:" clientEvent="keyup" event="filter" 
         zone="zonaZaTikete" context="literal:ticketSerial" fields="['ticketSerial','ticketNumber']" /><br /> 

     <t:any element="select" t:id="ticketNumber" t:mixins="stitch/observe" clientEvent="change" event="filter" 
        zone="zonaZaTikete" context="literal:ticketNumber" fields="['ticketSerial','ticketNumber']"> 
     <option value="">All</option> 
     <option value="TICKET1">TICKET1</option> 
     <option value="TICKET2">TICKET2</option> 
     <option value="TICKET3">TICKET3</option> 
     </t:any> 
    </t:form> 

    <t:zone t:id="zonaZaTikete"> 
     <t:grid source="listaTiketa" > 
      <p:empty> 
       <p>Nothing to display.</p> 
      </p:empty> 
     </t:grid> 

    </t:zone> 
</div> 

. 누군가 데이터베이스에서 끌어온 목록을 필터링하는 방법을 어떻게 도와 줄 수 있습니까?

미리 감사드립니다.

답변

0

특정 유스 케이스에서 문제가 해결되었는지 확실하지 않지만 Tapestry Functional Flows을 확인하십시오. 다른 것들은 컬렉션 필터링을 허용합니다.