@Override @Nullable public Component getComponent(String id) { String[] elements = ValuePathHelper.parse(id); if (elements.length == 1) { return getOwnComponent(id); } else { throw new UnsupportedOperationException("Filter contains only one level of sub components"); } }
protected String getFilterComponentName() { String filterComponentName = ComponentsHelper.getFilterComponentPath(filter); String[] parts = ValuePathHelper.parse(filterComponentName); if (parts.length > 1) { filterComponentName = ValuePathHelper.format(Arrays.copyOfRange(parts, 1, parts.length)); } return filterComponentName; }
protected String getFilterComponentName(Filter filterComponent) { String filterComponentPath = ComponentsHelper.getFilterComponentPath(filterComponent); String[] strings = ValuePathHelper.parse(filterComponentPath); return ValuePathHelper.format(Arrays.copyOfRange(strings, 1, strings.length)); } }
String[] elements = ValuePathHelper.parse(actionName); if (elements.length > 1) { String id = elements[elements.length - 1];
@Nullable public static Component getWindowComponent(Window window, String id) { String[] elements = ValuePathHelper.parse(id); FrameImplementation frameImpl = (FrameImplementation) window; if (elements.length == 1) {
@Override public void actionPerform(Component component) { Set<Entity> ownerSelection = target.getSelected(); if (!ownerSelection.isEmpty()) { String entityType; if (target.getItems() instanceof EntityDataUnit) { MetaClass metaClass = ((EntityDataUnit) target.getItems()).getEntityMetaClass(); entityType = metaClass.getName(); } else { throw new UnsupportedOperationException("Unsupported data unit " + target.getItems()); } String[] strings = ValuePathHelper.parse(ComponentsHelper.getFilterComponentPath(filter)); String componentId = ValuePathHelper.format(Arrays.copyOfRange(strings, 1, strings.length)); Map<String, Object> params = new HashMap<>(); params.put("entityType", entityType); params.put("items", ownerSelection); params.put("componentPath", ComponentsHelper.getFilterComponentPath(filter)); params.put("componentId", componentId); params.put("foldersPane", filterHelper.getFoldersPane()); params.put("entityClass", adapter.getMetaClass().getJavaClass().getName()); params.put("query", adapter.getQuery()); WindowManager wm = (WindowManager) ComponentsHelper.getScreenContext(filter).getScreens(); WindowInfo windowInfo = windowConfig.getWindowInfo("saveSetInFolder"); wm.openWindow(windowInfo, OpenType.DIALOG, params); } } }
@Nullable public static Component getComponent(ComponentContainer container, String id) { String[] elements = ValuePathHelper.parse(id); if (elements.length == 1) { com.haulmont.cuba.gui.components.Component component = container.getOwnComponent(id);
String[] strings = ValuePathHelper.parse(componentPath); String name = ValuePathHelper.format(ArrayUtils.subarray(strings, 1, strings.length));
@Nullable public static Component getFrameComponent(Frame frame, String id) { FrameImplementation frameImpl = (FrameImplementation) frame; String[] elements = ValuePathHelper.parse(id); if (elements.length == 1) { Component component = frameImpl.getRegisteredComponent(id); if (component == null && frame.getFrame() != null && frame.getFrame() != frame) { component = frame.getFrame().getComponent(id); } return component; } else { Component innerComponent = frameImpl.getRegisteredComponent(elements[0]); if (innerComponent instanceof FieldGroup) { List<String> subList = Arrays.asList(elements).subList(1, elements.length); String subPath = ValuePathHelper.format(subList.toArray(new String[0])); FieldGroup fieldGroup = (FieldGroup) innerComponent; FieldGroup.FieldConfig field = fieldGroup.getField(subPath); return field != null ? field.getComponent() : null; } else if (innerComponent instanceof ComponentContainer) { List<String> subList = Arrays.asList(elements).subList(1, elements.length); String subPath = ValuePathHelper.format(subList.toArray(new String[0])); return ((ComponentContainer) innerComponent).getComponent(subPath); } else if (innerComponent instanceof HasNamedComponents) { List<String> subList = Arrays.asList(elements).subList(1, elements.length); String subPath = ValuePathHelper.format(subList.toArray(new String[0])); return ((HasNamedComponents) innerComponent).getComponent(subPath); } return null; } }
@Override public <T> T getValue(String property) { String[] elements = ValuePathHelper.parse(property); String[] path = elements;
@Override public void actionPerform(Component component) { if (filterEntity == null) { // todo add notification 'Filter not selected' return; } Frame frame = filter.getFrame(); String[] strings = ValuePathHelper.parse(ComponentsHelper.getFilterComponentPath(filter)); String windowAlias = strings[0]; StringBuilder lookupAlias = new StringBuilder(windowAlias); if (windowAlias.endsWith(Window.BROWSE_WINDOW_SUFFIX)) { int index = lookupAlias.lastIndexOf(Window.BROWSE_WINDOW_SUFFIX); lookupAlias.delete(index, lookupAlias.length()); lookupAlias.append(Window.LOOKUP_WINDOW_SUFFIX); } WindowManager wm = (WindowManager) ComponentsHelper.getScreenContext(frame).getScreens(); WindowInfo windowInfo = AppBeans.get(WindowConfig.class).getWindowInfo(lookupAlias.toString()); wm.openLookup(windowInfo, items -> { String filterXml = filterEntity.getXml(); filterEntity.setXml(UserSetHelper.addEntities(filterXml, items)); filterEntity.getFolder().setFilterXml(filterEntity.getXml()); filterEntity.setFolder(saveFolder(filterEntity.getFolder())); setFilterEntity(filterEntity); }, OpenType.THIS_TAB); } }
@Nullable protected Object findInstallTarget(String target, Frame frame) { String[] elements = ValuePathHelper.parse(target); if (elements.length == 1) { Object part = frame.getSubPart(target); if (part != null) { return part; } Component component = frame.getComponent(target); if (component != null) { return component; } } else if (elements.length > 1) { String id = elements[elements.length - 1]; String[] subPath = ArrayUtils.subarray(elements, 0, elements.length - 1); Component component = frame.getComponent(ValuePathHelper.format(subPath)); if (component != null) { if (component instanceof HasSubParts) { Object part = ((HasSubParts) component).getSubPart(id); if (part != null) { return part; } } if (component instanceof ComponentContainer) { return ((ComponentContainer) component).getComponent(id); } } } return null; }
protected String getRelatedEntitiesFilterXml(MetaClass relatedMetaCLass, Collection<? extends Entity> selectedEntities, Filter component, MetaDataDescriptor descriptor) { ConditionsTree tree = new ConditionsTree(); String filterComponentPath = ComponentsHelper.getFilterComponentPath(component); String[] strings = ValuePathHelper.parse(filterComponentPath); String filterComponentName = ValuePathHelper.format(Arrays.copyOfRange(strings, 1, strings.length)); MetaClass metaClass = getFilterMetaClass(component); String relatedPrimaryKey = metadataTools.getPrimaryKeyName(relatedMetaCLass); AbstractCondition condition = getOptimizedCondition(getParentIds(selectedEntities), metaClass, filterComponentName, relatedPrimaryKey, descriptor); if (condition == null) { condition = getNonOptimizedCondition(relatedMetaCLass, getRelatedIds(selectedEntities, descriptor), component, filterComponentName, relatedPrimaryKey); } tree.setRootNodes(Collections.singletonList(new Node<>(condition))); return filterParser.getXml(tree, Param.ValueProperty.VALUE); }
@Nullable protected Object findEventTarget(Frame frame, String target) { String[] elements = ValuePathHelper.parse(target); if (elements.length > 1) { String id = elements[elements.length - 1];
@Override public void execute(ComponentLoader.Context context, Frame window) { String[] elements = ValuePathHelper.parse(actionId); if (elements.length > 1) { final String id = elements[elements.length - 1];
String[] strings = ValuePathHelper.parse(folder.getFilterComponentId()); String screenId = strings[0];