Example usage for com.vaadin.ui Window Window

List of usage examples for com.vaadin.ui Window Window

Introduction

In this page you can find the example usage for com.vaadin.ui Window Window.

Prototype

public Window(String caption) 

Source Link

Document

Creates a new, empty window with a given title.

Usage

From source file:de.symeda.sormas.ui.utils.VaadinUiUtil.java

License:Open Source License

public static Window showPopupWindow(Component content) {

    Window window = new Window(null);
    window.setModal(true);/*from   w ww.j av  a2 s.c  o m*/
    window.setSizeUndefined();
    window.setResizable(false);
    window.center();
    window.setContent(content);

    UI.getCurrent().addWindow(window);

    return window;
}

From source file:de.twenty11.skysail.MyVaadinApplication.java

License:Apache License

@Override
public void init() {
    window = new Window("Skysail OSGi Monitor Vaadin Client");
    setMainWindow(window);/*from w w w  .  j a  v a2  s.  c o m*/

    // Needed because composites are full size
    window.getContent().setSizeFull();

    MyComponent myComposite = new MyComponent();
    window.addComponent(myComposite);

    Button button = new Button("Click Me");
    button.addListener(new Button.ClickListener() {
        public void buttonClick(ClickEvent event) {
            window.addComponent(new Label("Thank you for clicking"));
        }
    });
    window.addComponent(button);

    /* Create the table with a caption. */
    Table table = new Table("This is my Table");

    /*
     * Define the names and data types of columns. The "default value" parameter is meaningless here.
     */
    table.addContainerProperty("First Name", String.class, null);
    table.addContainerProperty("Last Name", String.class, null);
    table.addContainerProperty("Year", Integer.class, null);

    /* Add a few items in the table. */
    table.addItem(new Object[] { "Nicolaus", "Copernicus", new Integer(1473) }, new Integer(1));
    table.addItem(new Object[] { "Tycho", "Brahe", new Integer(1546) }, new Integer(2));
    table.addItem(new Object[] { "Giordano", "Bruno", new Integer(1548) }, new Integer(3));
    table.addItem(new Object[] { "Galileo", "Galilei", new Integer(1564) }, new Integer(4));
    table.addItem(new Object[] { "Johannes", "Kepler", new Integer(1571) }, new Integer(5));
    table.addItem(new Object[] { "Isaac", "Newton", new Integer(1643) }, new Integer(6));

    window.addComponent(table);
    setTheme("skysail.client.osgimonitor.vaadintheme");
}

From source file:de.uni_leipzig.informatik.pcai042.boa.gui.evaluation.EvaluationApp.java

License:Open Source License

@Override
public void init() {
    rootFolder = new File(getContext().getBaseDirectory(), "WEB-INF/resources/");
    cl = new ConfigLoader(rootFolder);
    sf = new SearcherFactory(cl);
    annotator = new Annotator(sf);
    tokenizer = new Tokenizer();

    conWEIGHT = new ConverterWeight(cl);
    conLINEAR_MEASURE = new ConverterLinearMeasure(cl);
    conTEMPERATURE = new ConverterTemperature(cl);
    conDATE = new ConverterDate(cl);

    Window mainWindow = new Window("Boa");
    setMainWindow(mainWindow);/*  ww  w. ja va 2 s  .c o m*/
    mainWindow.getContent().setSizeFull();
    mainWindow.addComponent(view);

    view.getButtonAnnotate().addListener((ClickListener) this);
    view.getButtonNew().addListener((ClickListener) this);
    view.getButtonNext2().addListener((ClickListener) this);
    view.getTableEvaluation().addListener((Property.ValueChangeListener) this);
    view.getListSelectAnnotation().addListener((Property.ValueChangeListener) this);

    Scoring scoring = null;
    try {
        scoring = new Scoring(new File(rootFolder, "goldstandard.xml"), sf);
        sentences = scoring.getWorkSentences();
        goldstandard = scoring.getGoldstandard();
        ArrayList<double[]> result = scoring.score();
        for (int i = 0; i < result.size(); i++) {
            // last "new Integer()" represents position of object in table!
            view.getTableEvaluation().addItem(new Object[] { new Integer(i), sentences.get(i).getSentence(),
                    new Double(result.get(i)[0]), new Double(result.get(i)[1]), new Double(result.get(i)[2]) },
                    new Integer(i));
        }
    } catch (ValidityException e) {
    } catch (ParsingException e) {
    } catch (IOException e) {
    }
    if (scoring == null)
        logger.error("Failed to load goldstandard");
}

From source file:de.uni_leipzig.informatik.pcai042.boa.gui.goldstandard.GoldstandardApp.java

License:Open Source License

@Override
public void init() {
    if (!SentenceServer.isInitialized())
        SentenceServer.init(getContext().getBaseDirectory());
    Window mainWindow = new Window("Goldstandard");
    setMainWindow(mainWindow);/*  w w  w .  j  a  v  a2s.c  o  m*/
    mainWindow.getContent().setSizeFull();
    mainWindow.addComponent(gui);
}

From source file:de.uni_tuebingen.qbic.qbicmainportlet.BiologicalSamplesComponent.java

License:Open Source License

/**
 * // ww  w.  jav a  2 s  . c  o  m
 * @param id
 */
public void updateUI(String id) {

    currentID = id;
    sampleBioGrid = new Grid();
    sampleEntityGrid = new Grid();

    sampleEntityGrid.addSelectionListener(new SelectionListener() {

        @Override
        public void select(SelectionEvent event) {
            BeanItem<BiologicalEntitySampleBean> selectedBean = samplesEntity
                    .getItem(sampleEntityGrid.getSelectedRow());

            if (selectedBean == null) {
                TextField filterField = (TextField) sampleBioGrid.getHeaderRow(1).getCell("biologicalEntity")
                        .getComponent();
                filterField.setValue("");
            } else {
                TextField filterField = (TextField) sampleBioGrid.getHeaderRow(1).getCell("biologicalEntity")
                        .getComponent();
                filterField.setValue(selectedBean.getBean().getCode());
                // samplesBio.addContainerFilter("biologicalEntity",
                // selectedBean.getBean().getSecondaryName(), false, false);
            }
        }

    });

    if (id == null)
        return;

    BeanItemContainer<BiologicalSampleBean> samplesBioContainer = new BeanItemContainer<BiologicalSampleBean>(
            BiologicalSampleBean.class);
    BeanItemContainer<BiologicalEntitySampleBean> samplesEntityContainer = new BeanItemContainer<BiologicalEntitySampleBean>(
            BiologicalEntitySampleBean.class);

    List<Sample> allSamples = datahandler.getOpenBisClient()
            .getSamplesWithParentsAndChildrenOfProjectBySearchService(id);

    List<VocabularyTerm> terms = null;
    Map<String, String> termsMap = new HashMap<String, String>();

    for (Sample sample : allSamples) {

        if (sample.getSampleTypeCode().equals(sampleTypes.Q_BIOLOGICAL_ENTITY.toString())) {

            Map<String, String> sampleProperties = sample.getProperties();

            BiologicalEntitySampleBean newEntityBean = new BiologicalEntitySampleBean();
            newEntityBean.setCode(sample.getCode());
            newEntityBean.setId(sample.getIdentifier());
            newEntityBean.setType(sample.getSampleTypeCode());
            newEntityBean.setAdditionalInfo(sampleProperties.get("Q_ADDITIONAL_INFO"));
            newEntityBean.setExternalDB(sampleProperties.get("Q_EXTERNALDB_ID"));
            newEntityBean.setSecondaryName(sampleProperties.get("Q_SECONDARY_NAME"));

            String organismID = sampleProperties.get("Q_NCBI_ORGANISM");
            newEntityBean.setOrganism(organismID);

            if (terms != null) {
                if (termsMap.containsKey(organismID)) {
                    newEntityBean.setOrganismName(termsMap.get(organismID));
                } else {
                    for (VocabularyTerm term : terms) {
                        if (term.getCode().equals(organismID)) {
                            newEntityBean.setOrganismName(term.getLabel());
                            break;
                        }
                    }
                }
            } else {
                for (Vocabulary vocab : datahandler.getOpenBisClient().getFacade().listVocabularies()) {
                    if (vocab.getCode().equals("Q_NCBI_TAXONOMY")) {
                        terms = vocab.getTerms();
                        for (VocabularyTerm term : vocab.getTerms()) {
                            if (term.getCode().equals(organismID)) {
                                newEntityBean.setOrganismName(term.getLabel());
                                termsMap.put(organismID, term.getLabel());
                                break;
                            }
                        }
                        break;
                    }
                }
            }

            newEntityBean.setProperties(sampleProperties);
            newEntityBean.setGender(sampleProperties.get("Q_GENDER"));
            samplesEntityContainer.addBean(newEntityBean);

            // for (Sample child : datahandler.getOpenBisClient().getChildrenSamples(sample)) {
            for (Sample realChild : sample.getChildren()) {
                if (realChild.getSampleTypeCode().equals(sampleTypes.Q_BIOLOGICAL_SAMPLE.toString())) {
                    // Sample realChild =
                    // datahandler.getOpenBisClient().getSampleByIdentifier(child.getIdentifier());

                    Map<String, String> sampleBioProperties = realChild.getProperties();

                    BiologicalSampleBean newBean = new BiologicalSampleBean();
                    newBean.setCode(realChild.getCode());
                    newBean.setId(realChild.getIdentifier());
                    newBean.setType(realChild.getSampleTypeCode());
                    newBean.setPrimaryTissue(sampleBioProperties.get("Q_PRIMARY_TISSUE"));
                    newBean.setTissueDetailed(sampleBioProperties.get("Q_TISSUE_DETAILED"));
                    newBean.setBiologicalEntity(sample.getCode());

                    newBean.setAdditionalInfo(sampleBioProperties.get("Q_ADDITIONAL_INFO"));
                    newBean.setExternalDB(sampleBioProperties.get("Q_EXTERNALDB_ID"));
                    newBean.setSecondaryName(sampleBioProperties.get("Q_SECONDARY_NAME"));
                    newBean.setProperties(sampleBioProperties);

                    samplesBioContainer.addBean(newBean);
                }
            }
        }
    }

    numberOfBioSamples = samplesBioContainer.size();
    numberOfEntitySamples = samplesEntityContainer.size();

    samplesBio = samplesBioContainer;
    samplesEntity = samplesEntityContainer;

    sampleEntityGrid.removeAllColumns();

    final GeneratedPropertyContainer gpcEntity = new GeneratedPropertyContainer(samplesEntity);
    gpcEntity.removeContainerProperty("id");
    gpcEntity.removeContainerProperty("type");
    gpcEntity.removeContainerProperty("organismName");
    gpcEntity.removeContainerProperty("organism");

    sampleEntityGrid.setContainerDataSource(gpcEntity);
    sampleEntityGrid.setColumnReorderingAllowed(true);

    gpcEntity.addGeneratedProperty("Organism", new PropertyValueGenerator<String>() {

        @Override
        public Class<String> getType() {
            return String.class;
        }

        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            String ncbi = String.format(
                    "http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Undef&name=%s&lvl=0&srchmode=1&keep=1&unlock' target='_blank'>%s</a>",
                    item.getItemProperty("organism").getValue(),
                    item.getItemProperty("organismName").getValue());
            String link = String.format("<a href='%s", ncbi);

            return link;
        }
    });

    sampleEntityGrid.getColumn("Organism").setRenderer(new HtmlRenderer());

    final GeneratedPropertyContainer gpcBio = new GeneratedPropertyContainer(samplesBio);
    gpcBio.removeContainerProperty("id");
    gpcBio.removeContainerProperty("type");

    sampleBioGrid.setContainerDataSource(gpcBio);
    sampleBioGrid.setColumnReorderingAllowed(true);
    sampleBioGrid.setColumnOrder("secondaryName", "code");

    gpcEntity.addGeneratedProperty("edit", new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            return "Edit";
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    gpcBio.addGeneratedProperty("edit", new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            return "Edit";
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    sampleEntityGrid.addItemClickListener(new ItemClickListener() {

        @Override
        public void itemClick(ItemClickEvent event) {

            BeanItem selected = (BeanItem) samplesEntity.getItem(event.getItemId());
            BiologicalEntitySampleBean selectedExp = (BiologicalEntitySampleBean) selected.getBean();

            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("clicked");
            message.add(selectedExp.getId());
            message.add("sample");
            state.notifyObservers(message);
        }
    });

    sampleEntityGrid.getColumn("edit").setRenderer(new ButtonRenderer(new RendererClickListener() {

        @Override
        public void click(RendererClickEvent event) {
            BeanItem selected = (BeanItem) samplesEntity.getItem(event.getItemId());
            BiologicalEntitySampleBean selectedSample = (BiologicalEntitySampleBean) selected.getBean();

            Window subWindow = new Window("Edit Metadata");

            changeMetadata.updateUI(selectedSample.getId(), selectedSample.getType());
            VerticalLayout subContent = new VerticalLayout();
            subContent.setMargin(true);
            subContent.addComponent(changeMetadata);
            subWindow.setContent(subContent);
            // Center it in the browser window
            subWindow.center();
            subWindow.setModal(true);
            subWindow.setIcon(FontAwesome.PENCIL);
            subWindow.setHeight("75%");

            subWindow.addCloseListener(new CloseListener() {
                /**
                 * 
                 */
                private static final long serialVersionUID = -1329152609834711109L;

                @Override
                public void windowClose(CloseEvent e) {
                    updateUI(currentID);
                }
            });

            QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
            ui.addWindow(subWindow);
        }
    }));
    sampleEntityGrid.getColumn("edit").setWidth(70);
    sampleEntityGrid.getColumn("edit").setHeaderCaption("");
    sampleEntityGrid.setColumnOrder("edit", "secondaryName", "Organism", "properties", "code", "additionalInfo",
            "gender", "externalDB");

    sampleBioGrid.addItemClickListener(new ItemClickListener() {

        @Override
        public void itemClick(ItemClickEvent event) {

            BeanItem selected = (BeanItem) samplesBio.getItem(event.getItemId());
            BiologicalSampleBean selectedExp = (BiologicalSampleBean) selected.getBean();

            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("clicked");
            message.add(selectedExp.getId());
            message.add("sample");
            state.notifyObservers(message);
        }
    });

    sampleBioGrid.getColumn("edit").setRenderer(new ButtonRenderer(new RendererClickListener() {

        @Override
        public void click(RendererClickEvent event) {
            BeanItem selected = (BeanItem) samplesBio.getItem(event.getItemId());

            try {
                BiologicalSampleBean selectedSample = (BiologicalSampleBean) selected.getBean();

                Window subWindow = new Window();

                changeMetadata.updateUI(selectedSample.getId(), selectedSample.getType());
                VerticalLayout subContent = new VerticalLayout();
                subContent.setMargin(true);
                subContent.addComponent(changeMetadata);
                subWindow.setContent(subContent);
                // Center it in the browser window
                subWindow.center();
                subWindow.setModal(true);
                subWindow.setResizable(false);

                subWindow.addCloseListener(new CloseListener() {
                    /**
                    * 
                    */
                    private static final long serialVersionUID = -1329152609834711109L;

                    @Override
                    public void windowClose(CloseEvent e) {
                        updateUI(currentID);
                    }
                });

                QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
                ui.addWindow(subWindow);
            } catch (NullPointerException e) {
                System.err.println("NullPointerException while trying to set metadata: " + e.getMessage());

            }
        }
    }));

    sampleBioGrid.getColumn("edit").setWidth(70);
    sampleBioGrid.getColumn("edit").setHeaderCaption("");
    sampleBioGrid.setColumnOrder("edit", "secondaryName", "primaryTissue", "properties", "tissueDetailed",
            "code", "additionalInfo", "biologicalEntity", "externalDB");

    sampleBioGrid.getColumn("biologicalEntity").setHeaderCaption("Source");

    helpers.GridFunctions.addColumnFilters(sampleBioGrid, gpcBio);
    helpers.GridFunctions.addColumnFilters(sampleEntityGrid, gpcEntity);

    if (fileDownloaderSources != null)
        exportSources.removeExtension(fileDownloaderSources);
    StreamResource srSource = Utils.getTSVStream(Utils.containerToString(samplesEntityContainer),
            String.format("%s_%s_", id.substring(1).replace("/", "_"), "sample_sources"));
    fileDownloaderSources = new FileDownloader(srSource);
    fileDownloaderSources.extend(exportSources);

    if (fileDownloaderSamples != null)
        exportSamples.removeExtension(fileDownloaderSamples);
    StreamResource srSamples = Utils.getTSVStream(Utils.containerToString(samplesBioContainer),
            String.format("%s_%s_", id.substring(1).replace("/", "_"), "extracted_samples"));
    fileDownloaderSamples = new FileDownloader(srSamples);
    fileDownloaderSamples.extend(exportSamples);

    this.buildLayout();
}

From source file:de.uni_tuebingen.qbic.qbicmainportlet.DatasetView.java

License:Open Source License

/**
 * Precondition: {DatasetView#table} has to be initialized. e.g. with
 * {DatasetView#buildFilterTable} If it is not, strange behaviour has to be expected. builds the
 * Layout of this view./* w  ww . j  ava  2s .com*/
 */
private void buildLayout() {
    this.vert.removeAllComponents();

    int browserWidth = UI.getCurrent().getPage().getBrowserWindowWidth();
    int browserHeight = UI.getCurrent().getPage().getBrowserWindowHeight();

    this.vert.setWidth("100%");
    this.setWidth(String.format("%spx", (browserWidth * 0.6)));
    // this.setHeight(String.format("%spx", (browserHeight * 0.8)));

    VerticalLayout statistics = new VerticalLayout();
    HorizontalLayout statContent = new HorizontalLayout();
    statContent.setCaption("Statistics");
    statContent.setIcon(FontAwesome.BAR_CHART_O);
    statContent.addComponent(new Label(String.format("%s registered dataset(s).", numberOfDatasets)));
    statContent.setMargin(true);
    statContent.setSpacing(true);
    statistics.addComponent(statContent);
    statistics.setMargin(true);
    this.vert.addComponent(statistics);

    // Table (containing datasets) section
    VerticalLayout tableSection = new VerticalLayout();
    HorizontalLayout tableSectionContent = new HorizontalLayout();

    tableSectionContent.setCaption("Registered Datasets");
    tableSectionContent.setIcon(FontAwesome.FLASK);
    tableSectionContent.addComponent(this.table);

    tableSectionContent.setMargin(true);
    tableSection.setMargin(true);

    tableSection.addComponent(tableSectionContent);
    this.vert.addComponent(tableSection);

    table.setWidth("100%");
    tableSection.setWidth("100%");
    tableSectionContent.setWidth("100%");

    // this.table.setSizeFull();

    HorizontalLayout buttonLayout = new HorizontalLayout();
    buttonLayout.setHeight(null);
    buttonLayout.setWidth("100%");
    buttonLayout.setSpacing(false);

    final Button visualize = new Button(VISUALIZE_BUTTON_CAPTION);
    buttonLayout.addComponent(this.download);
    buttonLayout.addComponent(visualize);

    Button checkAll = new Button("Select all datasets");
    checkAll.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            for (Object itemId : table.getItemIds()) {
                ((CheckBox) table.getItem(itemId).getItemProperty("Select").getValue()).setValue(true);
            }
        }
    });

    Button uncheckAll = new Button("Unselect all datasets");
    uncheckAll.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            for (Object itemId : table.getItemIds()) {
                ((CheckBox) table.getItem(itemId).getItemProperty("Select").getValue()).setValue(false);
            }
        }
    });

    buttonLayout.addComponent(checkAll);
    buttonLayout.addComponent(uncheckAll);
    /**
     * prepare download.
     */
    download.setResource(new ExternalResource("javascript:"));
    download.setEnabled(false);
    visualize.setEnabled(false);

    for (final Object itemId : this.table.getItemIds()) {
        setCheckedBox(itemId, (String) this.table.getItem(itemId).getItemProperty("CODE").getValue());
    }

    /*
     * Update the visualize button. It is only enabled, if the files can be visualized.
     */
    this.table.addValueChangeListener(new ValueChangeListener() {
        /**
         * 
         */
        private static final long serialVersionUID = -4875903343717437913L;

        /**
         * check for what selection can be visualized. If so, enable the button. TODO change to
         * checked.
         */
        @Override
        public void valueChange(ValueChangeEvent event) {
            // Nothing selected or more than one selected.
            Set<Object> selectedValues = (Set<Object>) event.getProperty().getValue();
            if (selectedValues == null || selectedValues.size() == 0 || selectedValues.size() > 1) {
                visualize.setEnabled(false);
                return;
            }
            // if one selected check whether its dataset type is either fastqc or qcml.
            // For now we only visulize these two file types.
            Iterator<Object> iterator = selectedValues.iterator();
            Object next = iterator.next();
            String datasetType = (String) table.getItem(next).getItemProperty("Dataset Type").getValue();
            String fileName = (String) table.getItem(next).getItemProperty("File Name").getValue();
            // TODO: No hardcoding!!
            // if (datasetType.equals("FASTQC") || datasetType.equals("QCML") ||
            // datasetType.equals("BAM")
            // || datasetType.equals("VCF")) {
            if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_RESULTS")
                    && (fileName.endsWith(".html") || fileName.endsWith(".qcML"))) {
                visualize.setEnabled(true);
            } else if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_LOGS")
                    && (fileName.endsWith(".err") || fileName.endsWith(".out"))) {
                visualize.setEnabled(true);
            } else {
                visualize.setEnabled(false);
            }
        }
    });

    // TODO Workflow Views should get those data and be happy
    /*
     * Send message that in datasetview the following was selected. WorkflowViews get those messages
     * and save them, if it is valid information for them.
     */
    this.table.addValueChangeListener(new ValueChangeListener() {
        /**
         * 
         */
        private static final long serialVersionUID = -3554627008191389648L;

        @Override
        public void valueChange(ValueChangeEvent event) {
            // Nothing selected or more than one selected.
            Set<Object> selectedValues = (Set<Object>) event.getProperty().getValue();
            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("DataSetView");
            if (selectedValues != null && selectedValues.size() == 1) {
                Iterator<Object> iterator = selectedValues.iterator();
                Object next = iterator.next();
                String datasetType = (String) table.getItem(next).getItemProperty("Dataset Type").getValue();
                message.add(datasetType);
                String project = (String) table.getItem(next).getItemProperty("Project").getValue();

                String space = datahandler.getOpenBisClient().getProjectByCode(project).getSpaceCode();// .getIdentifier().split("/")[1];
                message.add(project);
                message.add((String) table.getItem(next).getItemProperty("Sample").getValue());
                // message.add((String) table.getItem(next).getItemProperty("Sample Type").getValue());
                message.add((String) table.getItem(next).getItemProperty("dl_link").getValue());
                message.add((String) table.getItem(next).getItemProperty("File Name").getValue());
                message.add(space);
                // state.notifyObservers(message);
            } else {
                message.add("null");
            } // TODO
              // state.notifyObservers(message);

        }
    });

    // TODO get the GV to work here. Together with reverse proxy
    // Assumes that table Value Change listner is enabling or disabling the button if preconditions
    // are not fullfilled
    visualize.addClickListener(new ClickListener() {
        /**
         * 
         */
        private static final long serialVersionUID = 9015273307461506369L;

        @Override
        public void buttonClick(ClickEvent event) {
            Set<Object> selectedValues = (Set<Object>) table.getValue();
            Iterator<Object> iterator = selectedValues.iterator();
            Object next = iterator.next();
            String datasetCode = (String) table.getItem(next).getItemProperty("CODE").getValue();
            String datasetFileName = (String) table.getItem(next).getItemProperty("File Name").getValue();
            URL url;
            try {
                Object parent = table.getParent(next);
                if (parent != null) {
                    String parentDatasetFileName = (String) table.getItem(parent).getItemProperty("File Name")
                            .getValue();
                    url = datahandler.getOpenBisClient().getUrlForDataset(datasetCode,
                            parentDatasetFileName + "/" + datasetFileName);
                } else {
                    url = datahandler.getOpenBisClient().getUrlForDataset(datasetCode, datasetFileName);
                }

                Window subWindow = new Window(
                        "QC of Sample: " + (String) table.getItem(next).getItemProperty("Sample").getValue());
                VerticalLayout subContent = new VerticalLayout();
                subContent.setMargin(true);
                subWindow.setContent(subContent);
                QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
                // Put some components in it
                Resource res = null;
                String datasetType = (String) table.getItem(next).getItemProperty("Dataset Type").getValue();
                final RequestHandler rh = new ProxyForGenomeViewerRestApi();
                boolean rhAttached = false;
                if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_RESULTS") && datasetFileName.endsWith(".qcML")) {
                    QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                    StreamResource streamres = new StreamResource(re, datasetFileName);
                    streamres.setMIMEType("application/xml");
                    res = streamres;
                } else if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_RESULTS")
                        && datasetFileName.endsWith(".html")) {
                    QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                    StreamResource streamres = new StreamResource(re, datasetFileName);
                    streamres.setMIMEType("text/html");
                    res = streamres;
                } else if (datasetType.equals("Q_WF_MS_QUALITYCONTROL_LOGS")
                        && (datasetFileName.endsWith(".err") || datasetFileName.endsWith(".out"))) {
                    QcMlOpenbisSource re = new QcMlOpenbisSource(url);
                    StreamResource streamres = new StreamResource(re, datasetFileName);
                    streamres.setMIMEType("text/plain");
                    res = streamres;
                } else if (datasetType.equals("FASTQC")) {
                    res = new ExternalResource(url);
                } else if (datasetType.equals("BAM") || datasetType.equals("VCF")) {
                    String filePath = (String) table.getItem(next).getItemProperty("dl_link").getValue();
                    filePath = String.format("/store%s", filePath.split("store")[1]);
                    String fileId = (String) table.getItem(next).getItemProperty("File Name").getValue();
                    // fileId = "control.1kg.panel.samples.vcf.gz";
                    // UI.getCurrent().getSession().addRequestHandler(rh);
                    rhAttached = true;
                    ThemeDisplay themedisplay = (ThemeDisplay) VaadinService.getCurrentRequest()
                            .getAttribute(WebKeys.THEME_DISPLAY);
                    String hostTmp = "http://localhost:7778/vizrest/rest";// "http://localhost:8080/web/guest/mainportlet?p_p_id=QbicmainportletApplicationPortlet_WAR_QBiCMainPortlet_INSTANCE_5pPd5JQ8uGOt&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_count=1";
                    // hostTmp +=
                    // "&qbicsession=" + UI.getCurrent().getSession().getAttribute("gv-restapi-session")
                    // + "&someblabla=";
                    // String hostTmp = themedisplay.getURLPortal() +
                    // UI.getCurrent().getPage().getLocation().getPath() + "?qbicsession=" +
                    // UI.getCurrent().getSession().getAttribute("gv-restapi-session") + "&someblabla=" ;
                    // String host = Base64.encode(hostTmp.getBytes());
                    String title = (String) table.getItem(next).getItemProperty("Sample").getValue();
                    // res =
                    // new ExternalResource(
                    // String
                    // .format(
                    // "http://localhost:7778/genomeviewer/?host=%s&title=%s&fileid=%s&featuretype=alignments&filepath=%s&removeZeroGenotypes=false",
                    // host, title, fileId, filePath));
                }
                BrowserFrame frame = new BrowserFrame("", res);
                if (rhAttached) {
                    frame.addDetachListener(new DetachListener() {

                        /**
                         * 
                         */
                        private static final long serialVersionUID = 1534523447730906543L;

                        @Override
                        public void detach(DetachEvent event) {
                            UI.getCurrent().getSession().removeRequestHandler(rh);
                        }

                    });
                }

                frame.setSizeFull();
                subContent.addComponent(frame);

                // Center it in the browser window
                subWindow.center();
                subWindow.setModal(true);
                subWindow.setSizeFull();

                frame.setHeight((int) (ui.getPage().getBrowserWindowHeight() * 0.8), Unit.PIXELS);
                // Open it in the UI
                ui.addWindow(subWindow);
            } catch (MalformedURLException e) {
                LOGGER.error(String.format("Visualization failed because of malformedURL for dataset: %s",
                        datasetCode));
                Notification.show(
                        "Given dataset has no file attached to it!! Please Contact your project manager. Or check whether it already has some data",
                        Notification.Type.ERROR_MESSAGE);
            }
        }
    });

    this.vert.addComponent(buttonLayout);

}

From source file:de.uni_tuebingen.qbic.qbicmainportlet.ExperimentComponent.java

License:Open Source License

public void updateUI(ProjectBean currentBean) {
    projectBean = currentBean;//from  w w  w  .  j av  a 2s .c o  m
    experiments.removeAllColumns();
    // experiments.setContainerDataSource(projectBean.getExperiments());

    // BeanItemContainer<ExperimentBean> experimentBeans =
    // loadMoreExperimentInformation(projectBean.getExperiments());
    // GeneratedPropertyContainer gpc = new GeneratedPropertyContainer(experimentBeans);
    GeneratedPropertyContainer gpc = new GeneratedPropertyContainer(projectBean.getExperiments());

    gpc.removeContainerProperty("containsData");
    gpc.removeContainerProperty("controlledVocabularies");
    gpc.removeContainerProperty("id");
    gpc.removeContainerProperty("lastChangedDataset");
    gpc.removeContainerProperty("lastChangedSample");
    gpc.removeContainerProperty("properties");
    gpc.removeContainerProperty("type");
    gpc.removeContainerProperty("samples");
    gpc.removeContainerProperty("status");
    gpc.removeContainerProperty("typeLabels");
    gpc.removeContainerProperty("registrationDate");

    experiments.addItemClickListener(new ItemClickListener() {

        /**
         * 
         */
        private static final long serialVersionUID = -43367719647620455L;

        @Override
        public void itemClick(ItemClickEvent event) {

            BeanItem selected = (BeanItem) projectBean.getExperiments().getItem(event.getItemId());
            ExperimentBean selectedExp = (ExperimentBean) selected.getBean();

            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("clicked");
            message.add(selectedExp.getId());
            message.add("experiment");
            state.notifyObservers(message);
        }
    });

    gpc.addGeneratedProperty("edit", new PropertyValueGenerator<String>() {

        /**
         * 
         */
        private static final long serialVersionUID = 7558511163500976236L;

        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            return "Edit";
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    gpc.addGeneratedProperty("registrationDate", new PropertyValueGenerator<String>() {

        @Override
        public Class<String> getType() {
            return String.class;
        }

        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            BeanItem selected = (BeanItem) projectBean.getExperiments().getItem(itemId);
            ExperimentBean expBean = (ExperimentBean) selected.getBean();
            Date date = expBean.getRegistrationDate();
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
            String dateString = sd.format(date);

            return dateString;
        }
    });

    experiments.setContainerDataSource(gpc);
    experiments.getColumn("prettyType").setHeaderCaption("Type");
    experiments.getColumn("edit").setRenderer(new ButtonRenderer(new RendererClickListener() {

        @Override
        public void click(RendererClickEvent event) {
            BeanItem selected = (BeanItem) projectBean.getExperiments().getItem(event.getItemId());
            ExperimentBean selectedSample = (ExperimentBean) selected.getBean();

            Window subWindow = new Window("Edit Metadata");

            changeMetadata.updateUI(selectedSample.getId(), selectedSample.getType());
            VerticalLayout subContent = new VerticalLayout();
            subContent.setMargin(true);
            subContent.addComponent(changeMetadata);
            subWindow.setContent(subContent);
            // Center it in the browser window
            subWindow.center();
            subWindow.setModal(true);
            subWindow.setSizeUndefined();
            subWindow.setIcon(FontAwesome.PENCIL);
            subWindow.setHeight("75%");
            subWindow.setResizable(false);

            QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
            ui.addWindow(subWindow);
        }

    }));

    experiments.getColumn("edit").setWidth(70);
    experiments.setColumnOrder("edit", "prettyType");
    experiments.getColumn("edit").setHeaderCaption("");

    // experiments.setHeightMode(HeightMode.ROW);
    // experiments.setHeightByRows(gpc.size());

    if (fileDownloader != null)
        this.export.removeExtension(fileDownloader);
    StreamResource sr = Utils.getTSVStream(Utils.containerToString(projectBean.getExperiments()),
            String.format("%s_%s_", projectBean.getId().substring(1).replace("/", "_"), "experimental_steps"));
    fileDownloader = new FileDownloader(sr);
    fileDownloader.extend(export);
}

From source file:de.uni_tuebingen.qbic.qbicmainportlet.HomeView.java

License:Open Source License

/**
 * sets the ContainerDataSource of this view. Should usually contain project information. Caption
 * is caption.//from   w w  w.  j av a 2s .  c o  m
 * 
 * @param homeViewInformation
 * @param caption
 */
public void setContainerDataSource(SpaceBean spaceBean, String newCaption) {

    caption = newCaption;
    currentBean = spaceBean;
    numberOfProjects = currentBean.getProjects().size();
    projectGrid = new Grid();

    GeneratedPropertyContainer gpcProjects = new GeneratedPropertyContainer(spaceBean.getProjects());
    gpcProjects.removeContainerProperty("members");
    gpcProjects.removeContainerProperty("id");
    gpcProjects.removeContainerProperty("experiments");
    gpcProjects.removeContainerProperty("contact");
    gpcProjects.removeContainerProperty("contactPerson");
    gpcProjects.removeContainerProperty("projectManager");
    gpcProjects.removeContainerProperty("containsData");
    gpcProjects.removeContainerProperty("containsResults");
    gpcProjects.removeContainerProperty("containsAttachments");
    gpcProjects.removeContainerProperty("description");
    gpcProjects.removeContainerProperty("progress");
    gpcProjects.removeContainerProperty("registrationDate");
    gpcProjects.removeContainerProperty("registrator");
    gpcProjects.removeContainerProperty("longDescription");

    projectGrid.setContainerDataSource(gpcProjects);

    projectGrid.setHeightMode(HeightMode.ROW);
    projectGrid.setHeightByRows(20);

    // projectGrid.getColumn("space").setWidthUndefined();
    // projectGrid.getColumn("code").setWidthUndefined();
    // projectGrid.getColumn("secondaryName").setWidthUndefined();
    // projectGrid.getColumn("principalInvestigator").setWidthUndefined();

    projectGrid.getColumn("code").setHeaderCaption("Sub-Project").setWidth(150);
    // projectGrid.getColumn("space").setWidth(200);

    Column nameCol = projectGrid.getColumn("secondaryName");
    nameCol.setHeaderCaption("Short Name");
    nameCol.setMaximumWidth(450);
    projectGrid.getColumn("space").setMaximumWidth(350);
    projectGrid.getColumn("space").setHeaderCaption("Project");
    projectGrid.getColumn("principalInvestigator").setHeaderCaption("Investigator");
    projectGrid.setColumnOrder("code", "space", "secondaryName", "principalInvestigator");

    projectGrid.setResponsive(true);

    helpers.GridFunctions.addColumnFilters(projectGrid, gpcProjects);

    gpcProjects.addGeneratedProperty("Summary", new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            return "show";
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    projectGrid.getColumn("Summary").setWidthUndefined();

    projectGrid.getColumn("Summary").setRenderer(new ButtonRenderer(new RendererClickListener() {

        @Override
        public void click(RendererClickEvent event) {
            // Show loading window
            ProgressBar bar = new ProgressBar();
            bar.setIndeterminate(true);
            VerticalLayout vl = new VerticalLayout(bar);
            vl.setComponentAlignment(bar, Alignment.MIDDLE_CENTER);
            vl.setWidth("50%");
            vl.setSpacing(true);
            vl.setMargin(true);

            Window loadingWindow = new Window("Loading project summary...");
            loadingWindow.setWidth("50%");
            loadingWindow.setContent(vl);
            loadingWindow.center();
            loadingWindow.setModal(true);
            loadingWindow.setResizable(false);
            QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
            ui.addWindow(loadingWindow);

            // fetch summary and create docx in tmp folder

            ProjectBean proj = (ProjectBean) event.getItemId();
            summaryFetcher.fetchSummaryComponent(proj.getCode(), proj.getSecondaryName(), proj.getDescription(),
                    new ProjectSummaryReadyRunnable(summaryFetcher, loadingWindow, proj.getCode()));
        }
    }));
    projectGrid.getColumn("Summary").setWidth(100);

    projectGrid.addSelectionListener(new SelectionListener() {

        @Override
        public void select(SelectionEvent event) {
            Set<Object> selectedElements = event.getSelected();
            if (selectedElements == null) {
                return;
            }

            ProjectBean selectedProject = (ProjectBean) selectedElements.iterator().next();

            if (selectedProject == null) {
                return;
            }

            String entity = selectedProject.getId();
            State state = (State) UI.getCurrent().getSession().getAttribute("state");
            ArrayList<String> message = new ArrayList<String>();
            message.add("clicked");
            message.add(entity);
            message.add(ProjectView.navigateToLabel);
            state.notifyObservers(message);
        }
    });
}

From source file:de.uni_tuebingen.qbic.qbicmainportlet.LevelComponent.java

License:Open Source License

public void updateUI(String type, String id, String filterFor) {

    sampleGrid = new Grid();
    typeString = type;/*  w ww.  j  a v  a 2  s  . com*/
    idString = id;
    filterString = filterFor;

    if (id == null)
        return;
    try {
        HierarchicalContainer datasetContainer = new HierarchicalContainer();
        datasetContainer.addContainerProperty("Select", CheckBox.class, null);
        datasetContainer.addContainerProperty("Project", String.class, null);
        datasetContainer.addContainerProperty("Sample", String.class, null);
        datasetContainer.addContainerProperty("Description", String.class, null);
        // datasetContainer.addContainerProperty("Sample Type", String.class, null);
        datasetContainer.addContainerProperty("File Name", String.class, null);
        datasetContainer.addContainerProperty("File Type", String.class, null);
        datasetContainer.addContainerProperty("Dataset Type", String.class, null);
        datasetContainer.addContainerProperty("Registration Date", String.class, null);
        datasetContainer.addContainerProperty("Validated", Boolean.class, null);
        datasetContainer.addContainerProperty("File Size", String.class, null);
        datasetContainer.addContainerProperty("file_size_bytes", Long.class, null);
        datasetContainer.addContainerProperty("dl_link", String.class, null);
        datasetContainer.addContainerProperty("isDirectory", Boolean.class, null);
        datasetContainer.addContainerProperty("CODE", String.class, null);

        List<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> retrievedDatasetsAll = null;
        List<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> retrievedDatasets = new ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet>();
        Map<String, ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet>> datasetFilter = new HashMap<String, ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet>>();

        // clear download queue for new view
        PortletSession portletSession = ((QbicmainportletUI) UI.getCurrent()).getPortletSession();
        portletSession.setAttribute("qbic_download",
                new HashMap<String, AbstractMap.SimpleEntry<String, Long>>(), PortletSession.APPLICATION_SCOPE);
        Map<String, Sample> checkedTestSamples = new HashMap<String, Sample>();

        switch (type) {
        case "project":
            String projectIdentifier = id;
            retrievedDatasetsAll = datahandler.getOpenBisClient()
                    .getDataSetsOfProjectByIdentifierWithSearchCriteria(projectIdentifier);

            for (ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet ds : retrievedDatasetsAll) {

                ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> values = datasetFilter
                        .get(ds.getSampleIdentifierOrNull());

                if (values == null) {
                    values = new ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet>();
                    datasetFilter.put(ds.getSampleIdentifierOrNull(), values);
                }
                values.add(ds);
            }

            if (filterFor.equals("measured")) {
                BeanItemContainer<TestSampleBean> samplesContainer = new BeanItemContainer<TestSampleBean>(
                        TestSampleBean.class);

                // List<Sample> allSamples =
                // datahandler.getOpenBisClient()
                // .getSamplesOfProjectBySearchService(projectIdentifier);

                List<Sample> allSamples = datahandler.getOpenBisClient()
                        .getSamplesWithParentsAndChildrenOfProjectBySearchService(id);

                for (Sample sample : allSamples) {
                    checkedTestSamples.put(sample.getCode(), sample);
                    if (sample.getSampleTypeCode().equals("Q_TEST_SAMPLE")) {
                        // samplesContainer.addBean(new SampleBean(sample.getIdentifier(), sample.getCode(),
                        // sample.getSampleTypeCode(), null, null, null, sample.getProperties(), null,
                        // null));

                        Map<String, String> sampleProperties = sample.getProperties();
                        TestSampleBean newBean = new TestSampleBean();
                        newBean.setCode(sample.getCode());
                        newBean.setId(sample.getIdentifier());
                        newBean.setType(sample.getSampleTypeCode());
                        newBean.setSampleType(sampleProperties.get("Q_SAMPLE_TYPE"));
                        newBean.setAdditionalInfo(sampleProperties.get("Q_ADDITIONAL_INFO"));
                        newBean.setExternalDB(sampleProperties.get("Q_EXTERNALDB_ID"));
                        newBean.setSecondaryName(sampleProperties.get("Q_SECONDARY_NAME"));
                        newBean.setProperties(sampleProperties);

                        samplesContainer.addBean(newBean);

                        ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> foundDataset = datasetFilter
                                .get(sample.getIdentifier());

                        if (foundDataset != null) {
                            retrievedDatasets.addAll(foundDataset);
                        }

                        for (Sample child : sample.getChildren()) {
                            foundDataset = datasetFilter.get(child.getIdentifier());
                            if (foundDataset != null) {
                                retrievedDatasets.addAll(foundDataset);
                            }
                        }
                    }

                    else if (sample.getSampleTypeCode().equals("Q_MHC_LIGAND_EXTRACT")) {
                        // samplesContainer.addBean(new SampleBean(sample.getIdentifier(), sample.getCode(),
                        // sample.getSampleTypeCode(), null, null, null, sample.getProperties(), null,
                        // null));

                        Map<String, String> sampleProperties = sample.getProperties();
                        TestSampleBean newBean = new TestSampleBean();
                        newBean.setCode(sample.getCode());
                        newBean.setId(sample.getIdentifier());
                        newBean.setType(sample.getSampleTypeCode());
                        newBean.setSampleType(sampleProperties.get("Q_MHC_CLASS"));
                        newBean.setAdditionalInfo(sampleProperties.get("Q_ANTIBODY"));
                        newBean.setExternalDB(sampleProperties.get("Q_EXTERNALDB_ID"));
                        newBean.setSecondaryName(sampleProperties.get("Q_SECONDARY_NAME"));
                        newBean.setProperties(sampleProperties);

                        samplesContainer.addBean(newBean);

                        ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> foundDataset = datasetFilter
                                .get(sample.getIdentifier());

                        if (foundDataset != null) {
                            retrievedDatasets.addAll(foundDataset);
                        }

                        for (Sample child : sample.getChildren()) {
                            foundDataset = datasetFilter.get(child.getIdentifier());
                            if (foundDataset != null) {
                                retrievedDatasets.addAll(foundDataset);
                            }
                        }
                    }
                }
                numberOfSamples = samplesContainer.size();
                samples = samplesContainer;
                final GeneratedPropertyContainer gpc = new GeneratedPropertyContainer(samples);
                gpc.removeContainerProperty("id");
                gpc.removeContainerProperty("type");
                sampleGrid.setContainerDataSource(gpc);
                sampleGrid.setColumnReorderingAllowed(true);

                gpc.addGeneratedProperty("edit", new PropertyValueGenerator<String>() {
                    @Override
                    public String getValue(Item item, Object itemId, Object propertyId) {
                        return "Edit";
                    }

                    @Override
                    public Class<String> getType() {
                        return String.class;
                    }
                });

                sampleGrid.addItemClickListener(new ItemClickListener() {

                    @Override
                    public void itemClick(ItemClickEvent event) {

                        BeanItem selected = (BeanItem) samples.getItem(event.getItemId());
                        TestSampleBean selectedExp = (TestSampleBean) selected.getBean();

                        State state = (State) UI.getCurrent().getSession().getAttribute("state");
                        ArrayList<String> message = new ArrayList<String>();
                        message.add("clicked");
                        message.add(selectedExp.getId());
                        message.add("sample");
                        state.notifyObservers(message);
                    }
                });

                sampleGrid.getColumn("edit").setRenderer(new ButtonRenderer(new RendererClickListener() {

                    @Override
                    public void click(RendererClickEvent event) {
                        BeanItem selected = (BeanItem) samples.getItem(event.getItemId());
                        TestSampleBean selectedSample = (TestSampleBean) selected.getBean();

                        Window subWindow = new Window("Edit Metadata");

                        changeMetadata.updateUI(selectedSample.getId(), selectedSample.getType());
                        VerticalLayout subContent = new VerticalLayout();
                        subContent.setMargin(true);
                        subContent.addComponent(changeMetadata);
                        subWindow.setContent(subContent);
                        // Center it in the browser window
                        subWindow.center();
                        subWindow.setModal(true);
                        subWindow.setIcon(FontAwesome.PENCIL);
                        subWindow.setHeight("75%");
                        subWindow.setResizable(false);

                        subWindow.addCloseListener(new CloseListener() {
                            /**
                             * 
                             */
                            private static final long serialVersionUID = -1329152609834711109L;

                            @Override
                            public void windowClose(CloseEvent e) {
                                updateUI(typeString, idString, filterString);
                            }
                        });
                        QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
                        ui.addWindow(subWindow);
                    }
                }));
                sampleGrid.getColumn("edit").setHeaderCaption("");
                sampleGrid.getColumn("edit").setWidth(70);
                sampleGrid.setColumnOrder("edit", "secondaryName", "sampleType", "code", "properties",
                        "additionalInfo", "externalDB");

                helpers.GridFunctions.addColumnFilters(sampleGrid, gpc);
                numberOfSamples = samplesContainer.size();

                sampleGrid.setCaption("Measured Samples");
                this.datasetTable.setCaption("Raw Data");

                numberOfDatasets = retrievedDatasets.size();
                this.datasetTable.setPageLength(Math.max(3, Math.min(numberOfDatasets, 10)));
                // sampleGrid.setHeightMode(HeightMode.ROW);
                // sampleGrid.setHeightByRows(numberOfSamples);
            }

            else if (filterFor.equals("results")) {
                BeanItemContainer<TestSampleBean> samplesContainer = new BeanItemContainer<TestSampleBean>(
                        TestSampleBean.class);

                List<Sample> allSamples = datahandler.getOpenBisClient()
                        .getSamplesWithParentsAndChildrenOfProjectBySearchService(projectIdentifier);

                for (Sample sample : allSamples) {
                    checkedTestSamples.put(sample.getCode(), sample);
                    if (!sample.getSampleTypeCode().equals("Q_TEST_SAMPLE")
                            && !sample.getSampleTypeCode().equals("Q_MICROARRAY_RUN")
                            && !sample.getSampleTypeCode().equals("Q_MS_RUN")
                            && !sample.getSampleTypeCode().equals("Q_BIOLOGICAL_SAMPLE")
                            && !sample.getSampleTypeCode().equals("Q_BIOLOGICAL_ENTITY")
                            && !sample.getSampleTypeCode().equals("Q_NGS_SINGLE_SAMPLE_RUN")) {

                        Map<String, String> sampleProperties = sample.getProperties();
                        TestSampleBean newBean = new TestSampleBean();
                        newBean.setCode(sample.getCode());
                        newBean.setId(sample.getIdentifier());
                        newBean.setType(prettyNameMapper.getPrettyName(sample.getSampleTypeCode()));
                        newBean.setAdditionalInfo(sampleProperties.get("Q_ADDITIONAL_INFO"));
                        newBean.setSecondaryName(sampleProperties.get("Q_SECONDARY_NAME"));
                        newBean.setProperties(sampleProperties);

                        samplesContainer.addBean(newBean);

                        ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet> foundDataset = datasetFilter
                                .get(sample.getIdentifier());

                        if (foundDataset != null) {
                            for (ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet ds : foundDataset) {
                                // we don't want to show project data or log files in the results tab
                                if (ds.getDataSetTypeCode().equals("Q_PROJECT_DATA")) {
                                    if (ds.getProperties().get("Q_ATTACHMENT_TYPE").equals("INFORMATION")) {
                                        continue;
                                    } else {
                                        retrievedDatasets.add(ds);
                                    }
                                } else if (ds.getDataSetTypeCode().contains("LOGS")) {
                                    continue;
                                } else {
                                    retrievedDatasets.add(ds);
                                }
                            }
                            // retrievedDatasets.addAll(foundDataset);
                        }
                    }
                }
                // numberOfSamples = samplesContainer.size();
                samples = samplesContainer;
                final GeneratedPropertyContainer gpc = new GeneratedPropertyContainer(samples);
                gpc.removeContainerProperty("id");
                gpc.removeContainerProperty("sampleType");
                sampleGrid.setContainerDataSource(gpc);
                sampleGrid.setColumnReorderingAllowed(true);
                sampleGrid.setColumnOrder("secondaryName", "type", "code", "properties");
                numberOfSamples = samplesContainer.size();
                // sampleGrid.setHeightMode(HeightMode.ROW);
                // sampleGrid.setHeightByRows(numberOfSamples);

                sampleGrid.setCaption("Workflow Runs");
                helpers.GridFunctions.addColumnFilters(sampleGrid, gpc);
                this.datasetTable.setCaption("Result Files");
                datasetTable.setColumnHeader("Sample", "Workflow Run");

                sampleGrid.addItemClickListener(new ItemClickListener() {

                    @Override
                    public void itemClick(ItemClickEvent event) {

                        BeanItem selected = (BeanItem) samples.getItem(event.getItemId());
                        TestSampleBean selectedExp = (TestSampleBean) selected.getBean();

                        State state = (State) UI.getCurrent().getSession().getAttribute("state");
                        ArrayList<String> message = new ArrayList<String>();
                        message.add("clicked");
                        message.add(selectedExp.getId());
                        message.add("sample");
                        state.notifyObservers(message);
                    }
                });

                numberOfDatasets = retrievedDatasets.size();
                this.datasetTable.setPageLength(Math.max(3, Math.min(numberOfDatasets, 10)));

            }
            break;

        case "experiment":

            String experimentIdentifier = id;
            retrievedDatasets = datahandler.getOpenBisClient()
                    .getDataSetsOfExperimentByCodeWithSearchCriteria(experimentIdentifier);
            break;

        case "sample":
            String sampleIdentifier = id;
            String sampleCode = sampleIdentifier.split("/")[2];
            retrievedDatasets = datahandler.getOpenBisClient().getDataSetsOfSample(sampleCode);
            break;

        default:
            retrievedDatasets = new ArrayList<ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet>();
            break;
        }

        BeanItemContainer<DatasetBean> forExport = new BeanItemContainer(DatasetBean.class);
        numberOfDatasets = retrievedDatasets.size();

        if (numberOfDatasets == 0 & filterFor.equals("measured")) {
            descriptionLabel = new Label(String.format(
                    "This project contains %s measured samples for which %s raw data dataset(s) have been registered.",
                    numberOfSamples, 0), ContentMode.HTML);

            helpers.Utils.Notification("No raw data available.",
                    "No raw data is available for this project. Please contact the project manager if this is not expected.",
                    "warning");
        } else if (numberOfDatasets == 0 & filterFor.equals("results")) {
            descriptionLabel = new Label(String.format("This project contains %s result datasets.", 0),
                    ContentMode.HTML);

            helpers.Utils.Notification("No results available.",
                    "No result data is available for this project. Please contact the project manager if this is not expected.",
                    "warning");
        } else {

            Map<String, String> samples = new HashMap<String, String>();

            // project same for all datasets
            String projectCode = retrievedDatasets.get(0).getExperimentIdentifier().split("/")[2];
            for (ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet dataset : retrievedDatasets) {
                samples.put(dataset.getCode(), dataset.getSampleIdentifierOrNull().split("/")[2]);
            }

            List<DatasetBean> dsBeans = datahandler.queryDatasetsForFolderStructure(retrievedDatasets);

            for (DatasetBean d : dsBeans) {
                Date date = d.getRegistrationDate();
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
                String dateString = sd.format(date);
                // Timestamp ts = Timestamp.valueOf(dateString);
                String sampleID = samples.get(d.getCode());
                forExport.addBean(d);

                Sample dsSample = checkedTestSamples.get(sampleID);
                String secNameDS = d.getProperties().get("Q_SECONDARY_NAME");
                String secName = datahandler.getSecondaryName(dsSample, secNameDS);

                registerDatasetInTable(d, datasetContainer, projectCode, sampleID, dateString, null, secName);
            }

            if (filterFor.equals("measured"))

            {
                descriptionLabel = new Label(String.format(
                        "This project contains %s measured samples for which %s raw data dataset(s) have been registered.",
                        numberOfSamples, dsBeans.size()), ContentMode.HTML);
            } else if (filterFor.equals("results")) {
                descriptionLabel = new Label(
                        String.format("This project contains %s result datasets.", dsBeans.size()),
                        ContentMode.HTML);
            }

        }

        this.setContainerDataSource(datasetContainer);

        if (fileDownloaderData != null)
            this.exportData.removeExtension(fileDownloaderData);
        StreamResource srData = Utils.getTSVStream(Utils.containerToString(forExport), String.format("%s_%s_",
                id.substring(1).replace("/", "_"), datasetTable.getCaption().replace(" ", "_")));
        fileDownloaderData = new FileDownloader(srData);
        fileDownloaderData.extend(exportData);

        if (fileDownloaderSamples != null)
            this.exportSamples.removeExtension(fileDownloaderSamples);
        StreamResource srSamples = Utils.getTSVStream(Utils.containerToString(samples), String.format("%s_%s_",
                id.substring(1).replace("/", "_"), sampleGrid.getCaption().replaceAll(" ", "_")));
        fileDownloaderSamples = new FileDownloader(srSamples);
        fileDownloaderSamples.extend(exportSamples);

    } catch (Exception e) {
        e.printStackTrace();
        LOGGER.error(String.format("getting dataset failed for dataset %s %s", type, id), e.getStackTrace());
    }
}

From source file:de.uni_tuebingen.qbic.qbicmainportlet.ProjInformationComponent.java

License:Open Source License

private void initUI() {
    vert = new VerticalLayout();
    descHorz = new HorizontalLayout();
    // horz = new HorizontalLayout();
    statusPanel = new Panel();
    descriptionPanel = new Panel();
    datasetTable = buildFilterTable();//from  ww  w.  jav a  2s  .  c  o  m
    peopleInCharge = new Accordion();

    setResponsive(true);
    vert.setResponsive(true);
    descHorz.setResponsive(true);
    statusPanel.setResponsive(true);
    descriptionPanel.setResponsive(true);

    vert.setMargin(new MarginInfo(true, true, false, false));

    setSizeFull();
    vert.setSizeFull();
    descHorz.setSizeFull();
    statusPanel.setSizeFull();
    descriptionPanel.setSizeFull();

    investigator = new Label("", ContentMode.HTML);
    contactPerson = new Label("", ContentMode.HTML);
    projectManager = new Label("", ContentMode.HTML);

    final VerticalLayout layoutI = new VerticalLayout(investigator);
    final VerticalLayout layoutC = new VerticalLayout(contactPerson);
    final VerticalLayout layoutP = new VerticalLayout(projectManager);

    layoutI.setMargin(true);
    layoutC.setMargin(true);
    layoutP.setMargin(true);

    peopleInCharge.addTab(layoutI, "Investigator");
    peopleInCharge.addTab(layoutC, "Contact Person");
    peopleInCharge.addTab(layoutP, "Project Manager");

    descEdit = new Button("Edit");
    descEdit.setIcon(FontAwesome.PENCIL);
    descEdit.setStyleName(ValoTheme.BUTTON_BORDERLESS_COLORED);
    descEdit.setResponsive(true);

    descEdit.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            changeMetadata.updateUI(projectBean);
            VerticalLayout subContent = new VerticalLayout();
            subContent.setMargin(true);
            subContent.addComponent(changeMetadata);

            Window subWindow = new Window("Edit Metadata");
            subWindow.setContent(subContent);
            // Center it in the browser window
            subWindow.center();
            subWindow.setModal(true);
            subWindow.setIcon(FontAwesome.PENCIL);
            subWindow.setHeight("75%");
            subWindow.setResizable(false);
            // subWindow.setSizeFull();

            subWindow.addCloseListener(new CloseListener() {
                /**
                 * 
                 */
                private static final long serialVersionUID = -1329152609834711109L;

                @Override
                public void windowClose(CloseEvent e) {
                    ProjectBean updatedBean = datahandler.getProjectFromDB(projectBean.getId());
                    updateUI(updatedBean, projectType);
                }
            });

            QbicmainportletUI ui = (QbicmainportletUI) UI.getCurrent();
            ui.addWindow(subWindow);
        }
    });

    // horz.addComponent(descEdit);
    // horz.setComponentAlignment(descEdit, Alignment.TOP_RIGHT);
    // horz.setExpandRatio(investigator, 0.4f);
    // horz.setExpandRatio(contactPerson, 0.4f);
    // horz.setExpandRatio(descEdit, 0.2f);

    contact = new Label("", ContentMode.HTML);
    patientInformation = new Label("No patient information provided.", ContentMode.HTML);

    experimentLabel = new Label("");
    statusContent = new VerticalLayout();
    hlaTypeLabel = new Label("Not available.", ContentMode.HTML);
    hlaTypeLabel.setStyleName("patientview");

    this.setCompositionRoot(vert);
    // this.setCompositionRoot(mainLayout);
}