Nested lookup example

Here is an example of how to make Nestet Lookup work.


public void onLookupClick(Component source) {

        ArrayList<Order> orderCollection = new ArrayList();
        ArrayList<Sample> sampleCollection = new ArrayList();
        List<SampleOrders> sampleOrderList = new ArrayList();


        openLookup("prodx$Smi.order.lookup", items -> {
            for (Object o : items) {
                Order order = (Order) o;
                orderCollection.add(order);

            }

            if(!orderCollection.isEmpty() ) {
                openLookup("prodx$Sample.lookup", samples -> {
                    for (Object obj : samples) {
                        Sample sample = (Sample) obj;
                        sampleCollection.add(sample);
                    }


                    for (Order o : orderCollection) {

                        for (Sample s: sampleCollection) {
                            SampleOrders sampleOrders = metadata.create(SampleOrders.class);
                            sampleOrders.setOrder(o);
                            sampleOrders.setSample(s);
                            sampleOrderList.add(sampleOrders);
                        }
                    }

                    saveSampleOrder(sampleOrderList);

                }, WindowManager.OpenType.DIALOG);
            }
        }, WindowManager.OpenType.DIALOG);


    }

    private void saveSampleOrder(List<SampleOrders> toSave){
        CommitContext commitContext = new CommitContext(toSave);
        dataManager.commit(commitContext);

        sampleOrdersesTable.refresh();
        sampleOrdersesDs.refresh();
    }

Hi Kjell,

May I know the output of this code?

Thanks in advance.

The output of this code is that when you select a value in the first lookup, the second lookup will be filled with values according to the selection in the first lookup.

What version of cuba-platform are you using?

Hi Kjell,

I’m using 6.10.2 studio version.