All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.structurizr.dsl.ImageViewDslContext Maven / Gradle / Ivy

The newest version!
package com.structurizr.dsl;

import com.structurizr.util.ImageUtils;
import com.structurizr.util.StringUtils;
import com.structurizr.view.ImageView;

import java.io.IOException;

class ImageViewDslContext extends ViewDslContext {

    ImageViewDslContext(ImageView view) {
        super(view);
    }

    ImageView getView() {
        return (ImageView)super.getView();
    }

    @Override
    protected String[] getPermittedTokens() {
        return new String[] {
                StructurizrDslTokens.VIEW_TITLE_TOKEN,
                StructurizrDslTokens.VIEW_DESCRIPTION_TOKEN,
                StructurizrDslTokens.PLANTUML_TOKEN,
                StructurizrDslTokens.MERMAID_TOKEN,
                StructurizrDslTokens.KROKI_TOKEN,
                StructurizrDslTokens.IMAGE_TOKEN
        };
    }

    @Override
    void end() {
        super.end();

        // try to set the content type if it hasn't been set ... this helps the diagram render with image sizing/scaling
        ImageView imageView = getView();
        if (StringUtils.isNullOrEmpty(imageView.getContentType())) {
            if (ImageUtils.isSupportedDataUri(imageView.getContent())) {
                imageView.setContentType(ImageUtils.getContentTypeFromDataUri(imageView.getContent()));
            } else {
                try {
                    imageView.setContentType(ImageUtils.getContentType(imageView.getContent()));
                } catch (IOException e) {
                    e.printStackTrace();
                    // ignore
                }
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy