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

org.ikasan.dashboard.ui.visualisation.view.GraphVisualisationDeepLinkView Maven / Gradle / Ivy

The newest version!
package org.ikasan.dashboard.ui.visualisation.view;


import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.page.Push;
import com.vaadin.flow.component.page.Viewport;
import com.vaadin.flow.router.*;
import com.vaadin.flow.spring.annotation.UIScope;
import com.vaadin.flow.theme.Theme;
import com.vaadin.flow.theme.material.Material;
import org.ikasan.dashboard.ui.util.DashboardContextNavigator;
import org.ikasan.dashboard.ui.util.DateFormatter;
import org.ikasan.rest.client.ReplayRestServiceImpl;
import org.ikasan.rest.client.ResubmissionRestServiceImpl;
import org.ikasan.solr.model.IkasanSolrDocument;
import org.ikasan.solr.model.IkasanSolrDocumentSearchResults;
import org.ikasan.spec.hospital.service.HospitalAuditService;
import org.ikasan.spec.metadata.*;
import org.ikasan.spec.module.client.ConfigurationService;
import org.ikasan.spec.module.client.MetaDataService;
import org.ikasan.spec.module.client.ModuleControlService;
import org.ikasan.spec.module.client.TriggerService;
import org.ikasan.spec.persistence.BatchInsert;
import org.ikasan.spec.solr.SolrGeneralService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.security.PermitAll;


@Route(value = "visualisationTab")
@UIScope
@Component
@PermitAll
@PreserveOnRefresh
public class GraphVisualisationDeepLinkView extends VerticalLayout implements HasUrlParameter, BeforeEnterObserver
{
    Logger logger = LoggerFactory.getLogger(GraphVisualisationDeepLinkView.class);

    private GraphVisualisation graphVisualisation;

    private SolrGeneralService solrSearchService;
    private ModuleControlService moduleControlRestService;
    private ModuleMetaDataService moduleMetadataService;
    private ConfigurationService configurationRestService;
    private TriggerService triggerRestService;
    private ConfigurationMetaDataService configurationMetadataService;
    private BusinessStreamMetaDataService businessStreamMetaDataService;
    private SolrGeneralService solrGeneralService;
    private HospitalAuditService hospitalAuditService;
    private ResubmissionRestServiceImpl resubmissionRestService;
    private ReplayRestServiceImpl replayRestService;
    private BatchInsert replayAuditService;
    private MetaDataService metaDataApplicationRestService;
    private BatchInsert moduleMetadataBatchInsert;

    @Value(value = "${integrated.systems.image.path}")
    private String dynamicImagePath;

    @Value("${max.download.bytes:50000000}")
    private int maxDownloadBytes;

    private boolean initialised = false;

    private String visualisationType = null;
    private String visualisationName = null;

    private DateFormatter dateFormatter;

    public GraphVisualisationDeepLinkView(SolrGeneralService solrSearchService, ModuleControlService moduleControlRestService,
                                          @Qualifier("moduleMetadataService") ModuleMetaDataService moduleMetadataService, ConfigurationService configurationRestService,
                                          @Qualifier("configurationMetadataService") ConfigurationMetaDataService configurationMetadataService,
                                          BusinessStreamMetaDataService businessStreamMetaDataService,
                                          SolrGeneralService solrGeneralService,
                                          HospitalAuditService hospitalAuditService,
                                          ResubmissionRestServiceImpl resubmissionRestService,
                                          ReplayRestServiceImpl replayRestService,
                                          @Qualifier("replayEventBatchInsert") BatchInsert replayAuditService,
                                          MetaDataService metaDataApplicationRestService,
                                          @Qualifier("moduleMetadataBatchInsert") BatchInsert moduleMetadataBatchInsert,
                                          TriggerService triggerRestService,
                                          DateFormatter dateFormatter)
    {
        this.solrSearchService = solrSearchService;
        this.moduleControlRestService = moduleControlRestService;
        this.moduleMetadataService = moduleMetadataService;
        this.configurationRestService = configurationRestService;
        this.configurationMetadataService = configurationMetadataService;
        this.businessStreamMetaDataService = businessStreamMetaDataService;
        this.solrGeneralService = solrGeneralService;
        this.hospitalAuditService = hospitalAuditService;
        this.resubmissionRestService = resubmissionRestService;
        this.replayRestService = replayRestService;
        this.replayAuditService = replayAuditService;
        this.metaDataApplicationRestService = metaDataApplicationRestService;
        this.moduleMetadataBatchInsert = moduleMetadataBatchInsert;
        this.triggerRestService = triggerRestService;
        this.dateFormatter = dateFormatter;
    }

    private void init() {
        this.graphVisualisation = new GraphVisualisation(solrSearchService,
            moduleControlRestService, moduleMetadataService, configurationRestService,
            configurationMetadataService, businessStreamMetaDataService, solrGeneralService,
            hospitalAuditService, resubmissionRestService, replayRestService, replayAuditService,
            metaDataApplicationRestService, moduleMetadataBatchInsert, triggerRestService, dynamicImagePath,
            this.dateFormatter, this.maxDownloadBytes);

        this.add(graphVisualisation);
        this.setSizeFull();
    }

    @Override
    public void setParameter(BeforeEvent beforeEvent, String parameter) {
        if(parameter.contains(":")) {
            logger.info(String.format("Deep link event life identifier [%s]", parameter));
            this.visualisationType = parameter.substring(0, parameter.indexOf(":"));
            this.visualisationName = parameter.substring(parameter.indexOf(":") + 1);
        }
    }

    @Override
    public void beforeEnter(BeforeEnterEvent beforeEnterEvent) {
        if(!initialised) {
            // Go to default view if there is no visualisation name
            if(this.visualisationName == null) {
                DashboardContextNavigator.navigateToLandingPage();
            }
            this.init();
            this.graphVisualisation.setVisualisationName(this.visualisationName);
            this.graphVisualisation.setVisualisationType(this.visualisationType);
            this.graphVisualisation.beforeEnter(beforeEnterEvent);
            this.initialised = true;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy