/** Basically some hacks to acquire the underlying property descriptor in * the case of a wrapper. This is here because some property editors will * cast the result of PropertyEnv.getFeatureDescriptor() as a specific * implementation type, so even if we're wrapping a property model, we * still need to make sure we're returning the class they expect. */ static final FeatureDescriptor findFeatureDescriptor(PropertyDisplayer pd) { if (pd instanceof EditorPropertyDisplayer) { //Issue 38004, more gunk to ensure we get the right feature //descriptor EditorPropertyDisplayer epd = (EditorPropertyDisplayer) pd; if (epd.modelRef != null) { PropertyModel pm = epd.modelRef.get(); if (pm instanceof ExPropertyModel) { FeatureDescriptor fd = ((ExPropertyModel) pm).getFeatureDescriptor(); if (fd != null) { return fd; } } } } Property p = pd.getProperty(); if (p instanceof ModelProperty) { return ((ModelProperty) p).getFeatureDescriptor(); } else if (p instanceof ModelProperty.DPMWrapper) { return ((ModelProperty.DPMWrapper) p).getFeatureDescriptor(); } else { return p; } }
Property p = pd.getProperty(); if (p instanceof ModelProperty) { return ((ModelProperty) p).getFeatureDescriptor();
Property p = pd.getProperty(); if (p instanceof ModelProperty) { return ((ModelProperty) p).getFeatureDescriptor();
static final Object[] findBeans(PropertyDisplayer pd) { Object[] result = null; if (pd instanceof EditorPropertyDisplayer) { //Issue 38132, fiendish evil to support PropertyEnv.getBeans() EditorPropertyDisplayer epd = (EditorPropertyDisplayer) pd; if (epd.modelRef != null) { PropertyModel pm = (PropertyModel)epd.modelRef.get(); if (pm instanceof ExPropertyModel) { result = ((ExPropertyModel) pm).getBeans(); } } } if (result == null) { Property p = pd.getProperty(); if (p instanceof ModelProperty) { result = ((ModelProperty) p).getBeans(); } else if (p instanceof ModelProperty.DPMWrapper) { result = ((ModelProperty.DPMWrapper) p).getBeans(); } else { if (pd instanceof EditorPropertyDisplayer && ((EditorPropertyDisplayer)pd).getParent() instanceof PropertyPanel) { result = ((PropertyPanel) ((EditorPropertyDisplayer)pd).getParent()).getBeans(); } else if (pd instanceof RendererPropertyDisplayer && ((RendererPropertyDisplayer) pd).getParent() instanceof PropertyPanel) { result = ((PropertyPanel) ((RendererPropertyDisplayer)pd).getParent()).getBeans(); } } } return result; } }
Property p = pd.getProperty();
static final Object[] findBeans(PropertyDisplayer pd) { Object[] result = null; if (pd instanceof EditorPropertyDisplayer) { //Issue 38132, fiendish evil to support PropertyEnv.getBeans() EditorPropertyDisplayer epd = (EditorPropertyDisplayer) pd; if (epd.modelRef != null) { PropertyModel pm = (PropertyModel)epd.modelRef.get(); if (pm instanceof ExPropertyModel) { result = ((ExPropertyModel) pm).getBeans(); } } } if (result == null) { Property p = pd.getProperty(); if (p instanceof ModelProperty) { result = ((ModelProperty) p).getBeans(); } else if (p instanceof ModelProperty.DPMWrapper) { result = ((ModelProperty.DPMWrapper) p).getBeans(); } else { if (pd instanceof EditorPropertyDisplayer && ((EditorPropertyDisplayer)pd).getParent() instanceof PropertyPanel) { result = ((PropertyPanel) ((EditorPropertyDisplayer)pd).getParent()).getBeans(); } else if (pd instanceof RendererPropertyDisplayer && ((RendererPropertyDisplayer) pd).getParent() instanceof PropertyPanel) { result = ((PropertyPanel) ((RendererPropertyDisplayer)pd).getParent()).getBeans(); } } } return result; } }