descriptor = componentDescriptor.getPropertyDescriptor(propertyName.substring(nestedDotIndex + 1)); if (descriptor != null) { descriptor = descriptor.clone(); if (descriptor instanceof BasicPropertyDescriptor) { ((BasicPropertyDescriptor) descriptor).setName(propertyName);
private void completeWithComputedNlsDescriptors(IPropertyDescriptor rawDescriptor) { String barePropertyName = rawDescriptor.getName(); if (barePropertyName.endsWith(RAW_SUFFIX)) { barePropertyName = barePropertyName.substring(0, barePropertyName.length() - RAW_SUFFIX.length()); } BasicStringPropertyDescriptor nlsDescriptor = (BasicStringPropertyDescriptor) rawDescriptor.clone(); nlsDescriptor.setName(barePropertyName + NLS_SUFFIX); nlsDescriptor.setDelegateWritable(true); nlsDescriptor.setComputed(true); if (!isPurelyAbstract()) { nlsDescriptor.setSqlName("(SELECT T.TRANSLATED_VALUE FROM {tableName}_T T WHERE T." + "T_{tableName}_ID = ID AND T.LANGUAGE = :JspressoSessionGlobals.language AND " + "T.PROPERTY_NAME = '" + barePropertyName + "')"); } BasicStringPropertyDescriptor rawOrNlsDescriptor = (BasicStringPropertyDescriptor) rawDescriptor.clone(); rawOrNlsDescriptor.setName(barePropertyName); rawOrNlsDescriptor.setDelegateWritable(true); rawOrNlsDescriptor.setComputed(true); if (!isPurelyAbstract()) { rawOrNlsDescriptor.setSqlName( "CASE WHEN " + nlsDescriptor.getSqlName() + " IS NULL THEN " + ((BasicPropertyDescriptor) rawDescriptor) .getSqlName() + " ELSE " + nlsDescriptor.getSqlName() + " END"); } propertyDescriptorsMap.put(nlsDescriptor.getName(), nlsDescriptor); propertyDescriptorsMap.put(rawOrNlsDescriptor.getName(), rawOrNlsDescriptor); }
/** * {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public IReferencePropertyDescriptor<IDescriptor> createLovReferenceDescriptor() { BasicReferencePropertyDescriptor<IDescriptor> enumRefPropertyDescriptor = new BasicReferencePropertyDescriptor<>(); enumRefPropertyDescriptor.setName(getName()); BasicComponentDescriptor<IDescriptor> elementDescriptor = (BasicComponentDescriptor<IDescriptor>) ( (BasicComponentDescriptor<IDescriptor>) BasicDescriptorDescriptor.INSTANCE) .clone(); elementDescriptor.setI18nNameKey(getName()); elementDescriptor.setRenderedProperties(Arrays.asList("description")); BasicPropertyDescriptor descriptionDescriptor = (BasicPropertyDescriptor) elementDescriptor.getPropertyDescriptor("description").clone(); descriptionDescriptor.setI18nNameKey(getName()); Collection<IPropertyDescriptor> pds = elementDescriptor.getPropertyDescriptors(); pds.add(descriptionDescriptor); elementDescriptor.setPropertyDescriptors(pds); enumRefPropertyDescriptor.setReferencedDescriptor(elementDescriptor); return enumRefPropertyDescriptor; } }