2012-09-13 3 views
1

규모가 biological classification과 비슷합니다. 나는 그들을 빠르게 연결할 수있는 태피스 트리 구성 요소를 찾고 있습니다. 그러나 태피스 트리 5.2.6에 제한됩니다.일대 다지도 작성을위한 태피스 트리 구성 요소

@Entity 
public class Species implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Basic(optional = false) 
    @NonVisual 
    private Long Id; 
    @Basic(optional = false) 
    private String Name; 
    @ManyToOne 
    @NotFound(action = NotFoundAction.IGNORE) 
    private Kingdom kingdom; 
    //getter and setter frod data above 
} 

@Entity 
public class Kingdom implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Basic(optional = false) 
    @NonVisual 
    private Long Id; 
    @Basic(optional = false) 
    private String Name; 
    @OneToMany 
    private Collection<Species> speciesCollection; 
    //getter and setter frod data above 
} 

종족에 대한 1000 개의 레코드를 데이터베이스에 입력 했으므로 링크하고 싶습니다. 내가 아는 솔루션은 테이블이있는 양식 안에 복잡한 코드가있는 select 개체 만 사용합니다. 나는 GenericValueEncoder를 사용한다고 생각한다.

<td><t:label for="species"/></td><td><t:selectObject t:id="species" blankOption="never" list="speciesList" value="species" labelField="literal:name"/></td> 

물론 SelectObject 매크로 그러나 그것 정말 느린 palette에 비교 또는 체크 박스를 반복 작동 각 입력 종 (내 버전에서 사용할 수 없습니다).

그러나 주요 문제는 팔레트 Java 코드를 이해할 수 없다는 것입니다. 많은 변수에 밑줄이있어 누가 알 수 있습니까? 댓글 어디서나 없기 때문에

, 그 무엇 하지만 내가 생각 내가 대신 EnumValueEncoder 그리고 GenericSelectModel 대신 EnumSelectModel의 GenericValueEncoder를 사용하도록 변경 라인을 14

할 필요가 무엇을하는지 이해하기 어렵다.

엔티티 개체로 팔레트를 구현할 수있는 관리 도구가 있다면 무엇을해야할까요?

+0

사랑이는 아무도 생각 – nkvnkv

+0

nkvnkv가 없습니다 : 그것은 전염병 인 것처럼 대부분의 사람들은 태피스트리에서 도망. http://stackoverflow.hewgill.com/questions/130/343/8.html - 그 질문은 SO에 있지만, (불행히도) 삭제되었습니다. – Augusto

+0

나는 태피스트리 5.3+가 많은 엔티티 관계에 대한 새로운 구현 된 컴포넌트를 가지고 있다고 생각합니다. 그리고 나는 대부분의 사람들이 전염병 인 것처럼 Tapestry에서 도망 간다는 것에 동의합니다. 그것의 과정이고 배워야한다. – nkvnkv

답변

1

다음은 팔레트의 예제입니다. 계정을 사용하는 경우 귀하의 종으로 대체 할 수 있습니다.

@Component(id = "accountsPalette", parameters = { 
     "label=literal:My palette", 
     "selected=selectedAccountsIds", 
     "model=availableAccountIdsModel", 
     "encoder=accountsEncoder"}) 
private Palette accountsPalette; 

public SelectModel getAvailableAccountIdsModel() throws Exception { 

    final List<OptionModel> options = new ArrayList<OptionModel>(); 

    for(Account account : availableAccounts) { 

     options.add(new OptionModelImpl(account.getFullNameSingleType(), account.getId())); 
    } 

    return new AbstractSelectModel() { 

     public List<OptionModel> getOptions() { 
      return options; 
     } 

     public List<OptionGroupModel> getOptionGroups() { 
      return null; 
     } 
    }; 
} 

public ValueEncoder<Long> getAccountsEncoder(){ 
    return new ValueEncoder<Long>() { 

     public String toClient(Long value) { 
      return value.toString(); 
     } 

     public Long toValue(String clientValue) { 
      return Long.parseLong(clientValue); 
     } 
    }; 
} 

public List<Long> getSelectedAccountsIds() { 
    return selectedAccountIds; 
} 

public void setSelectedAccountsIds(List<Long> selectedAccountIds) throws Exception { 
    ..... deal with the selected ids ..... 
} 
+0

당신이 그것을 올바르게 만들었지 만 교수가 다음과 같은 태피스 트리 버전 양식 5.2.6을 5.3.5로 옮기므로 예제 http://tawus.wordpress.com/2011/08/24/tapestry53/를 사용하여 체크리스트를 만들었습니다. 태피스트리 발달 및 능력의 교과 과정. – nkvnkv