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();
}