protected LookupComponent getLookupComponent() { Component lookupComponent = window.getLookupComponent(); if (lookupComponent == null) { throw new IllegalStateException("lookupComponent is not set"); } if (!(lookupComponent instanceof LookupComponent)) { throw new UnsupportedOperationException("Unsupported lookupComponent type: " + lookupComponent.getClass()); } return (LookupComponent) lookupComponent; }
protected void setupLookupComponent() { if (this.lookupHandler != null) { Component lookupComponent = getLookupComponent(); if (lookupComponent instanceof LookupComponent) { ((LookupComponent<?>) lookupComponent).setLookupSelectHandler(this::selectItemsOnClick); } } }
protected void selectItemsOnClick(@SuppressWarnings("unused") Collection collection) { Action selectAction = getActionNN(LOOKUP_SELECT_ACTION_ID); selectAction.actionPerform(getLookupComponent()); }
@Override public void initLookupLayout() { Action selectAction = getAction(LOOKUP_SELECT_ACTION_ID); if (selectAction != null && selectAction.getOwner() == null) { Fragments fragments = UiControllerUtils.getScreenContext(this).getFragments(); ScreenFragment lookupWindowActions = fragments.create(this, "lookupWindowActions"); lookupWindowActions.getFragment().setId("lookupWindowActions"); lookupWindowActions.getFragment().setVisible(false); getFrame().add(lookupWindowActions.getFragment()); lookupWindowActions.init(); } Element element = ((Component.HasXmlDescriptor) getFrame()).getXmlDescriptor(); if (element != null) { String lookupComponent = element.attributeValue("lookupComponent"); if (StringUtils.isNotEmpty(lookupComponent)) { Component component = getFrame().getComponent(lookupComponent); setLookupComponent(component); } } Component lookupComponent = getLookupComponent(); if (lookupComponent instanceof LookupSelectionChangeNotifier) { LookupSelectionChangeNotifier selectionNotifier = (LookupSelectionChangeNotifier) lookupComponent; if (selectAction != null) { //noinspection unchecked selectionNotifier.addLookupValueChangeListener(valueChangeEvent -> selectAction.setEnabled(!selectionNotifier.getLookupSelectedItems().isEmpty())); selectAction.setEnabled(!selectionNotifier.getLookupSelectedItems().isEmpty()); } } }
}); Component lookupComponent = roleLookupWindow.getLookupComponent(); if (lookupComponent instanceof Table) { ((Table) lookupComponent).setMultiSelect(true);