[Java lista] IPropertySelectionModel opcionalis ertekkel
Zsombor
gzsombor at gmail.com
2006. Nov. 8., Sze, 19:54:01 CET
On 11/8/06, Stef <stefhun at gmail.com> wrote:
>
> Sziasztok!
>
> Hogyan lehet "szepen" megoldani tapestry 4.0 + hibernate parossal, hogy a
> IPropertySelectionModel-t hasznalo pop-list-ben legyen ugymond "opcionalis",
> azaz ertek nelkuli sor, es az legyen a default?
>
> Gondolkoztam, es par otlet eszembe jutott, de a velemenyeteket
> kikerdeznem...
>
> Az elso gondolatom az volt, hogy a kerdeses POJO-k tartalmaznak olyan
> sort, melyben nincs kitoltve semmi, csak a primary-key, es esetleg a
> hivatkoztt mezok azt tartalmazzak hogy: "N/A" vagy hasonlo. Hat ez nem
> nagyon teccene :-(
> A masik otlet, hogy amikor a IPropertySelectionModel-nek atadnam a listat,
> akkor egy plusz sor kellene a lista elejere, amit egy add parancsal
> felvennek, de akkor meg hogyan tudom megkulonboztetni az "ertekes" soroktol?
>
> Vagy esetleg a form-on valamit varialjak? Feltegyek egy jelolo negyzetet,
> es azzal jelzem, hogy nem kell kitolteni, de ez meg annyira sem tetszik.
> Valahogy a plusz listaelemhez huz az eszem, de az uj sor
> megkulonboztetese...
>
> Valakinek van otlete? Biztos, hogy mas is talalkozott ilyen gonddal :-)
>
> Udv!
> Stef
>
>
Kb egy ilyen osztályt kell irni:
public class MyPojoSelectionModel implements IPropertySelectionModel {
List<MyPojo> instances;
String label = "-- select one --";
public MyPojoSelectionModel(List<MyPojo> instances) {
this.instances = instances;
}
public MyPojoSelectionModel(List<MyPojo> instances,String label) {
this.instances = instances;
this.label = label;
}
public String getLabel(int index) {
return index==0 ? label : instances.get(index-1).toString();
}
public Object getOption(int index) {
return (index==0 || index>instances.size())? null : instances.get
(index-1);
}
public int getOptionCount() {
return instances.size()+1;
}
public String getValue(int index) {
return index==0 ? "" : String.valueOf(index);
}
public Object translateValue(String value) {
if (value==null || value.trim().length()==0) {
return null;
}
int pos = Integer.parseInt(value)-1;
return pos>=0 && pos<instances.size() ? instances.get(pos) : null;
}
}
S müködik is. Ha customizálni akarod a kiirást, akkor a getLabel metódust
vágd felül.
ĂĽdv
Zsombor
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20061108/e59b51bd/attachment.html
További információk a(z) Javalist levelezőlistáról