public boolean supportsConfigMode(PortletDefinitionForm form) {
        final Tuple<String, String> portletDescriptorKeys = this.getPortletDescriptorKeys(form);
        if (portletDescriptorKeys == null) {
            logger.trace("Unable to determine supportsConfig - portletDescriptorKeys is null.");
            return false;
        }
        final String portletAppId = portletDescriptorKeys.first;
        final String portletName = portletDescriptorKeys.second;

        final PortletRegistryService portletRegistryService =
                this.portalDriverContainerServices.getPortletRegistryService();
        final PortletDefinition portletDescriptor;
        try {
            portletDescriptor = portletRegistryService.getPortlet(portletAppId, portletName);
        } catch (PortletContainerException e) {
            this.logger.warn(
                    "Unable to determine supportsConfig - Failed to load portlet descriptor for appId='"
                            + portletAppId
                            + "', portletName='"
                            + portletName
                            + "'",
                    e);
            return false;
        }

        if (portletDescriptor == null) {
            logger.trace("Unable to determine supportsConfig - portletDescriptor is null.");
            return false;
        }
        logger.trace(
                "Checking supportsConfig for portlet ID=[{}] and Name=[{}].",
                portletAppId,
                portletName);

        // Iterate over supported portlet modes, this ignores the content types for now
        final List<? extends Supports> supports = portletDescriptor.getSupports();
        for (final Supports support : supports) {
            logger.trace("Checking Supports instance:  {}", support.getMimeType());
            final List<String> portletModes = support.getPortletModes();
            for (final String portletMode : portletModes) {
                logger.trace("Checking portletMode {}.", portletMode);
                if (IPortletRenderer.CONFIG.equals(PortletUtils.getPortletMode(portletMode))) {
                    logger.trace("Returning supportsConfig is true.");
                    return true;
                }
            }
        }
        logger.trace("Returning supportsConfig is false.");
        return false;
    }
public boolean supportsConfigMode ( PortletDefinitionForm form ) { final Tuple < String , String > portletDescriptorKeys = this . getPortletDescriptorKeys ( form ) ; if ( portletDescriptorKeys == null ) { logger . trace ( "Unable to determine supportsConfig - portletDescriptorKeys is null." ) ; return false ; } final String portletAppId = portletDescriptorKeys . first ; final String portletName = portletDescriptorKeys . second ; final PortletRegistryService portletRegistryService = this . portalDriverContainerServices . getPortletRegistryService ( ) ; final PortletDefinition portletDescriptor ; try { portletDescriptor = portletRegistryService . getPortlet ( portletAppId , portletName ) ; } catch ( PortletContainerException e ) { this . logger . warn ( "Unable to determine supportsConfig - Failed to load portlet descriptor for appId='" + portletAppId + "', portletName='" + portletName + "'" , e ) ; return false ; } if ( portletDescriptor == null ) { logger . trace ( "Unable to determine supportsConfig - portletDescriptor is null." ) ; return false ; } logger . trace ( "Checking supportsConfig for portlet ID=[{}] and Name=[{}]." , portletAppId , portletName ) ; final List < ? extends Supports > supports = portletDescriptor . getSupports ( ) ; for ( final Supports support : supports ) { logger . trace ( "Checking Supports instance:  {}" , support . getMimeType ( ) ) ; final List < String > portletModes = support . getPortletModes ( ) ; for ( final String portletMode : portletModes ) { logger . trace ( "Checking portletMode {}." , portletMode ) ; if ( IPortletRenderer . CONFIG . equals ( PortletUtils . getPortletMode ( portletMode ) ) ) { logger . trace ( "Returning supportsConfig is true." ) ; return true ; } } } logger . trace ( "Returning supportsConfig is false." ) ; return false ; }
If the portlet is a portlet and if one of the supported portlet modes is {@link
IPortletRenderer#CONFIG}