class AboutPopup {

    @PostConstruct
    public void setup() {
        view.init(this);

        if (aboutPopupConfigs.isUnsatisfied()) {
            throw new RuntimeException("One AboutPopupConfig implementation must be provided");
        }

        if (aboutPopupConfigs.isAmbiguous()) {
            throw new RuntimeException("Only one AboutPopupConfig implementation must be provided");
        }

        final AboutPopupConfig aboutPopupConfig = aboutPopupConfigs.get();
        view.setProductName(aboutPopupConfig.productName());
        view.setProductVersion(aboutPopupConfig.productVersion());
        view.setProductLicense(aboutPopupConfig.productLicense());
        view.setProductImageUrl(aboutPopupConfig.productImageUrl());

        final String backgroundImageUrl = aboutPopupConfig.backgroundImageUrl();
        if (backgroundImageUrl != null && !backgroundImageUrl.isEmpty()) {
            view.setBackgroundImageUrl(backgroundImageUrl);
        }
    }

    @Inject public  AboutPopup(final View view,
                      final ManagedInstance<AboutPopupConfig> aboutPopupConfigs);

}