[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