@Override protected void loadDatasource(DatasourceComponent component, Element element) { super.loadDatasource(component, element); String datasource = element.attributeValue("optionsDatasource"); if (!StringUtils.isEmpty(datasource)) { Datasource ds = context.getDsContext().get(datasource); ((LookupField) component).setOptionsDatasource((CollectionDatasource) ds); } }
protected void initCategoryField() { categoryField.setDatasource(rds.getMainDs(), "category"); categoryField.setOptionsDatasource(categoriesDs); }
protected void initProcActorsTable() { procActorsTable.addGeneratedColumn("user", entity -> { LookupField<User> lookupField = uiComponents.create(LookupField.NAME); lookupField.setWidth("100%"); lookupField.setOptionsDatasource(usersDs); lookupField.setValue(entity.getUser()); lookupField.addValueChangeListener(e -> { entity.setUser(e.getValue()); }); return lookupField; }); }
protected void initProcAttachmentsTable() { procAttachmentsTable.addGeneratedColumn("type", entity -> { LookupField<ProcAttachmentType> lookupField = componentsFactory.createComponent(LookupField.class); lookupField.setOptionsDatasource(procAttachmentTypesDs); lookupField.setValue(entity.getType()); lookupField.addValueChangeListener(e -> { entity.setType((ProcAttachmentType) e.getValue()); }); return lookupField; }); FileDownloadHelper.initGeneratedColumn(procAttachmentsTable, "file"); //replace standard edit action because we want to pass parent datasource to attachment editor procAttachmentsTable.addAction(new EditAction(procAttachmentsTable) { @Override public void actionPerform(Component component) { final Window.Editor editor = openEditor("bpm$ProcAttachment.edit", procAttachmentsDs.getItem(), WindowManager.OpenType.DIALOG, procAttachmentsDs); editor.addCloseListener(actionId -> { procAttachmentsDs.updateItem((ProcAttachment) editor.getItem()); }); } }); }
protected void initAggregationTable() { Supplier<Map<String, Object>> paramsSupplier = () -> ParamsMap.of("existingItems", aggregationsDs.getItems()); CreateAction createAction = CreateAction.create(aggregationsTable); createAction.setWindowParamsSupplier(paramsSupplier); aggregationsTable.addAction(createAction); EditAction editAction = EditAction.create(aggregationsTable); editAction.setWindowParamsSupplier(paramsSupplier); aggregationsTable.addAction(editAction); aggregationsTable.addAction(RemoveAction.create(aggregationsTable)); aggregationsDs.addCollectionChangeListener(e -> { if (e.getOperation() == CollectionDatasource.Operation.REMOVE) { defaultAggregation.setOptionsDatasource(aggregationsDs); } }); }
optionsDs.refresh(); lookupField.setOptionsDatasource(optionsDs); lookupField.setOptionCaptionProvider(optionCaptionProvider); componentForEntity = lookupField;