private IComponentDescriptor<? extends IComponent> createOrGetRefQueryDescriptor( IComponentDescriptor<? extends IComponent> referencedDescriptor, Class<? extends IComponent> referencedType) { IComponentDescriptor<? extends IComponent> refQueryDescriptor; synchronized (registry) { refQueryDescriptor = registry.get(referencedType); if (refQueryDescriptor == null) { refQueryDescriptor = new RefQueryComponentDescriptor<>(referencedDescriptor, referencedType, registry, accessorFactory); ((RefQueryComponentDescriptor<?>) refQueryDescriptor).finishConfiguration(); } } return refQueryDescriptor; }
/** * {@inheritDoc} */ @Override public boolean isEntity() { return IEntity.class.isAssignableFrom(getComponentContract()); }
/** * {@inheritDoc} */ @Override public String getPermId() { return super.getPermId() + ".filter"; } }
/** * Performs delayed configuration. */ protected void finishConfiguration() { setDescription(getQueriedComponentsDescriptor().getDescription()); setIcon(getQueriedComponentsDescriptor().getIcon()); List<String> qProperties = new ArrayList<>(); for (String queryableProperty : queryComponentsDescriptorProvider.getQueryableProperties()) { IPropertyDescriptor propertyDescriptor = getPropertyDescriptor(queryableProperty); if (propertyDescriptor instanceof ComparableQueryStructureDescriptor) { for (String nestedRenderedProperty : ((ComparableQueryStructureDescriptor) propertyDescriptor) .getRenderedProperties()) { qProperties.add(propertyDescriptor.getName() + "." + nestedRenderedProperty); } } else { qProperties.add(propertyDescriptor.getName()); } } setRenderedProperties(qProperties); setQueryableProperties(queryComponentsDescriptorProvider.getQueryableProperties()); setToStringProperty(getQueriedComponentsDescriptor().getToStringProperty()); setToHtmlProperty(getQueriedComponentsDescriptor().getToHtmlProperty()); setAutoCompleteProperty(getQueriedComponentsDescriptor().getAutoCompleteProperty()); setUnclonedProperties(getQueriedComponentsDescriptor().getUnclonedProperties()); setPageSize(getQueriedComponentsDescriptor().getPageSize()); setOrderingProperties(getQueriedComponentsDescriptor().getOrderingProperties()); }
this.accessorFactory = accessorFactory; this.componentContract = componentContract; if (getI18nNameKey() == null && componentContract != null) { setI18nNameKey(componentContract.getName()); for (IPropertyDescriptor propertyDescriptor : getQueriedComponentsDescriptor().getPropertyDescriptors()) { propertyDescriptors.add(propertyDescriptor.createQueryDescriptor()); propertyDescriptors.addAll(getExtraPropertyDescriptors()); setPropertyDescriptors(propertyDescriptors);
protected IPropertyDescriptor refinePropertyDescriptor(IPropertyDescriptor propertyDescriptor) { if (propertyDescriptor == null || getQueriedComponentsDescriptor().getPropertyDescriptor( propertyDescriptor.getName()) == null) { return propertyDescriptor; refinedPropertyDescriptor = new EnumQueryStructureDescriptor( (AbstractEnumerationPropertyDescriptor) propertyDescriptor); } else if (propertyDescriptor instanceof BasicPropertyDescriptor && isPropertyFilterComparable( propertyDescriptor)) { refinedPropertyDescriptor = new ComparableQueryStructureDescriptor( basicRefPropDesc.setReferencedDescriptor(createOrGetRefQueryDescriptor(referencedDescriptor, referencedType));
/** * Creates basic query component descriptors. * <p/> * {@inheritDoc} */ @Override public IComponentDescriptor<IQueryComponent> createQueryComponentDescriptor( IComponentDescriptorProvider<IComponent> componentDescriptorProvider) { IComponentDescriptorProvider<? extends IComponent> realComponentDescriptorProvider; if (componentDescriptorProvider.getComponentDescriptor() instanceof RefQueryComponentDescriptor<?>) { realComponentDescriptorProvider = ((RefQueryComponentDescriptor<?>) componentDescriptorProvider .getComponentDescriptor()).getQueriedComponentsDescriptor(); } else { realComponentDescriptorProvider = componentDescriptorProvider; } return createOrGetQueryComponentDescriptor(realComponentDescriptorProvider); }