Example usage for com.vaadin.ui Window addCloseListener

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

Introduction

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

Prototype

public Registration addCloseListener(CloseListener listener) 

Source Link

Document

Adds a CloseListener to the window.

Usage

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

License:Open Source License

public static Window showConfirmationPopup(String caption, Component content, String confirmCaption,
        String cancelCaption, Integer width, Consumer<Boolean> resultConsumer) {
    Window popupWindow = VaadinUiUtil.createPopupWindow();
    if (width != null) {
        popupWindow.setWidth(width, Unit.PIXELS);
    } else {//from  ww  w .j  ava2s .c om
        popupWindow.setWidthUndefined();
    }
    popupWindow.setCaption(caption);

    VerticalLayout layout = new VerticalLayout();
    layout.setMargin(true);
    content.setWidth(100, Unit.PERCENTAGE);
    layout.addComponent(content);

    ConfirmationComponent confirmationComponent = new ConfirmationComponent(false) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onConfirm() {
            popupWindow.close();
            resultConsumer.accept(true);
        }

        @Override
        protected void onCancel() {
            popupWindow.close();
            resultConsumer.accept(false);
        }
    };
    confirmationComponent.getConfirmButton().setCaption(confirmCaption);
    confirmationComponent.getCancelButton().setCaption(cancelCaption);

    popupWindow.addCloseListener(new CloseListener() {
        private static final long serialVersionUID = 1L;

        @Override
        public void windowClose(CloseEvent e) {
            confirmationComponent.getCancelButton().click();
        }
    });

    layout.addComponent(confirmationComponent);
    layout.setComponentAlignment(confirmationComponent, Alignment.BOTTOM_RIGHT);
    layout.setWidth(100, Unit.PERCENTAGE);
    layout.setSpacing(true);
    popupWindow.setContent(layout);

    UI.getCurrent().addWindow(popupWindow);
    return popupWindow;
}

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

License:Open Source License

/**
 * //from  w w  w .  j  a  v  a  2s  .c om
 * @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.LevelComponent.java

License:Open Source License

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

    sampleGrid = new Grid();
    typeString = type;// w w w .  ja v a 2s  .c o  m
    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   www. j  ava2s .  com
    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);
}

From source file:dev.DevUI.java

License:Open Source License

@Override
protected void init(VaadinRequest request) {

    final VerticalLayout mainLayout = new VerticalLayout();
    mainLayout.setSpacing(true);//from ww  w . ja va  2s .  c o m
    mainLayout.setMargin(true);

    PluploadManager mgr = createUploadManager("Manager 1");
    PluploadManager mgr2 = createUploadManager("Manager 2");
    PluploadManager mgr3 = createChunkingUploadManager("Manager 3");

    mgr.getUploader().addFilter(new PluploadFilter("music", "mp3,flac"));

    VerticalLayout dropZone = new VerticalLayout() {
        {
            addComponent(new Label("Additional drop zone for music files"));
            setId("music-drop-zone");
        }
    };

    mgr.getUploader().addDropZone(dropZone);

    mgr2.getUploader().addFilter(new PluploadFilter("images", "jpg, jpeg, png"));
    mgr2.getUploader().setImageResize(
            new PluploadImageResize().setEnabled(true).setCrop(true).setHeight(200).setWidth(400));

    mainLayout.addComponent(mgr);
    mainLayout.addComponent(dropZone);
    mainLayout.addComponent(mgr2);
    mainLayout.addComponent(mgr3);

    PluploadField<File> field = createUploadField();
    final Form form = new Form();
    form.addField("file", field);
    field.addValidator(new NullValidator("file must not be null", false));
    Button submit = new Button("commit form");
    submit.addClickListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            form.commit();
        }
    });
    mainLayout.addComponent(form);
    mainLayout.addComponent(submit);

    PluploadField<byte[]> byteField = createByteUploadField();
    mainLayout.addComponent(byteField);

    final Plupload uploader = createSimpleUploader();
    uploader.setEnabled(false);
    Button b = new Button("toggle Enabled!", new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            uploader.setEnabled(!uploader.isEnabled());
        }
    });
    mainLayout.addComponent(b);
    mainLayout.addComponent(uploader);
    final Counter c = new Counter();
    final Button.ClickListener l = new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            Window w = new Window("win");

            if (c.get() < 5) {
                w.setContent(new Button("win", this));
                c.increment();
            } else {
                Field f = createUploadField();
                w.setContent(f);
                c.reset();
            }
            w.setWidth("400px");
            w.setHeight("200px");
            getUI().addWindow(w);
        }
    };

    Button win = new Button("Win");
    win.addClickListener(l);
    mainLayout.addComponent(win);

    Button modal = new Button("modal");
    modal.addClickListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            Window w = new Window("modal");

            final PluploadField f = createUploadField();
            w.addCloseListener(new Window.CloseListener() {

                @Override
                public void windowClose(Window.CloseEvent e) {
                    Notification.show("closed modal");
                    f.getUploader().destroy();
                }
            });
            VerticalLayout lay = new VerticalLayout();
            lay.addComponent(f);
            lay.addComponent(new Button("destroy", new Button.ClickListener() {

                @Override
                public void buttonClick(Button.ClickEvent event) {
                    f.getUploader().destroy();
                }
            }));

            w.setContent(lay);
            w.setModal(true);
            getUI().addWindow(w);
        }
    });

    Accordion acc = new Accordion();
    acc.addTab(this.createUploadManager("mgr3"), "uploader");
    acc.addTab(new HorizontalLayout(), "Stub");

    mainLayout.addComponent(acc);

    mainLayout.addComponent(modal);
    this.setContent(mainLayout);

}

From source file:edu.nps.moves.mmowgli.modules.gamemaster.UserAdminPanel.java

License:Open Source License

@SuppressWarnings("serial")
Table createTable(TableFiller filler) {//from   ww w  .j av  a  2  s .co  m
    final Table tab = new Table();
    tab.setStyleName("m-useradmintable");
    tab.setWidth("920px");
    tab.setHeight("100%");
    tab.setPageLength(40);

    // Special column renderers
    Table.ColumnGenerator colGen = new columnCustomizer();
    tab.addGeneratedColumn(USER_ID_COL, colGen);
    tab.addGeneratedColumn(ADMIN_COL, colGen);
    tab.addGeneratedColumn(DESIGNER_COL, colGen);
    tab.addGeneratedColumn(LOCKEDOUT_COL, colGen);
    tab.addGeneratedColumn(TWEETER_COL, colGen);
    tab.addGeneratedColumn(GAMEMASTER_COL, colGen);
    tab.addGeneratedColumn(EMAIL_COL, colGen);
    tab.addGeneratedColumn(CONFIRMED_COL, colGen);

    filler.fillTable(tab);

    tab.setColumnWidth(USER_ID_COL, 25);
    tab.setColumnWidth(ADMIN_COL, 25);
    tab.setColumnWidth(GAMEMASTER_COL, 25);
    tab.setColumnWidth(DESIGNER_COL, 25);
    tab.setColumnWidth(LOCKEDOUT_COL, 43);
    tab.setColumnWidth(TWEETER_COL, 50);
    tab.setColumnWidth(UNAME_COL, 120);
    tab.setColumnWidth(FIRSTNAME_COL, 108); //128);
    tab.setColumnWidth(LASTNAME_COL, 108); //128);
    tab.setColumnWidth(EMAIL_COL, 190);
    tab.setColumnWidth(CONFIRMED_COL, 67);

    tab.setEditable(false);
    tab.setSelectable(true);
    tab.setImmediate(true); // to immed update view
    tab.setNullSelectionAllowed(false); // can't deselect a row

    tab.addItemClickListener(new ItemClickListener() {
        EditPanel ep;

        @Override
        @MmowgliCodeEntry
        @HibernateOpened
        @HibernateClosed
        @HibernateUserRead
        public void itemClick(ItemClickEvent event) {
            if (event.isDoubleClick()) {
                HSess.init();
                Window w = new Window("Edit Player Account");
                w.setWidth("620px");
                w.setHeight("505px");
                w.setModal(true);

                @SuppressWarnings({ "unchecked" })
                final QuickUser qu = (QuickUser) ((BeanItem<QuickUser>) event.getItem()).getBean();
                User u = User.getTL(qu.getId());
                if (u == null) {
                    // This has been happening infrequently...some error on signup where (maybe) a user object gets created
                    // but doesn't make it into the db.
                    Notification.show("Woops, database error!",
                            "A player account identified by id = " + qu.getId() + " is not in the database.",
                            Notification.Type.ERROR_MESSAGE);
                    HSess.close();
                    return;
                }
                VerticalLayout vl = new VerticalLayout();
                w.setContent(vl);
                vl.addComponent(ep = new EditPanel(w, qu.getId()));
                ep.setWidth("100%");
                UI.getCurrent().addWindow(w);
                w.center();

                w.addCloseListener(new CloseListener() {
                    @Override
                    public void windowClose(CloseEvent e) {
                        if (ep.user != null) {
                            BeanItem<QuickUser> bi = lastTableFiller.getContainer().getItem(ep.user.getId());
                            QuickUser qu = bi.getBean();
                            qu.update(ep.user);
                            tab.refreshRowCache();
                        }
                    }
                });
                HSess.close();
            }
        }
    });
    return tab;
}

From source file:edu.nps.moves.mmowgli.modules.registrationlogin.RegistrationPageBase.java

License:Open Source License

@SuppressWarnings("serial")
public static void openPopupWindow(final UI browserWindow, Window popup, int topOffset) {
    popup.setModal(true);/* w w  w . j a  v a 2  s . c o m*/
    browserWindow.addWindow(popup);
    popup.center();
    browserWindow.setScrollTop(topOffset);

    popup.addCloseListener(new CloseListener() {
        @Override
        public void windowClose(CloseEvent e) {
            browserWindow.setScrollTop(0);
        }
    });
}

From source file:edu.nps.moves.mmowgli.modules.registrationlogin.RegistrationPageBase.java

License:Open Source License

@SuppressWarnings("serial")
@HibernateUserRead/*w w w  . j a  v  a  2 s.c  o m*/
public void checkUserLimitsTL() {
    Serializable uid = Mmowgli2UI.getGlobals().getUserID();
    if (uid != NO_LOGGEDIN_USER_ID) { // can't do this check if we don't have a user yet
        MSysOut.println(DEBUG_LOGS, "User.getTL() in RegistrationPageBase.checkUserLimitsTL()");
        User u = User.getTL(uid);
        if (u != null) // why should it be?
            if (u.getUserName() != null) // why should it be?
                if (u.isGameMaster())//getUserName().toLowerCase().startsWith("gm_"))
                    return;
    }

    int maxIn = Game.getTL().getMaxUsersOnline();
    // List<User> lis = (List<User>)HibernateContainers.getSession().createCriteria(User.class).add(Restrictions.eq("online", true)).list();
    // if(lis.size()>=maxIn) {
    if (Mmowgli2UI.getGlobals().getSessionCount() >= maxIn) { // new improved
        lockedOut = true;
        VerticalLayout vl = new VerticalLayout();
        vl.setWidth("325px");
        vl.addStyleName("m-errorNotificationEquivalent");
        vl.setSpacing(false);
        vl.setMargin(true);
        Label lab = new Label("We're loaded to the max with players right now.");
        lab.setSizeUndefined();
        vl.addComponent(lab);
        lab = new Label("Idle players are timed-out after 15 minutes.");
        lab.setSizeUndefined();
        vl.addComponent(lab);
        lab = new Label("Please try again later.");
        lab.setSizeUndefined();
        vl.addComponent(lab);

        Window win = new Window("Sorry, but....");
        win.setSizeUndefined();
        win.addStyleName("m-transparent");
        win.setWidth("308px");
        win.setResizable(false);
        win.setContent(vl);

        openPopupWindowInMainWindow(win, 400);
        win.setModal(false);

        win.addCloseListener(new CloseListener() {
            @Override
            @MmowgliCodeEntry
            @HibernateOpened
            @HibernateClosed
            public void windowClose(CloseEvent e) {
                HSess.init();
                Mmowgli2UI.getAppUI().quitAndGoTo(GameLinks.getTL().getGameFullLink());
                HSess.close();
            }
        });
    }
}

From source file:fi.vtt.RVaadin.RContainer.java

License:Apache License

/**
 * Generate a preview Window of R data.frame with Excel download option.
 * //from  w  w w .jav a 2 s  .  c  o m
 * @param rs
 *            R string which evaluates into R data.frame
 * @param caption
 *            Window caption
 * @param maxRows
 *            Maximum number of rows shown in the window. Value null uses
 *            the internal default.
 * @param width
 *            Explicit width of the table, or null for automatic width.
 * @return Vaadin Window
 */
public Window getRTableWindow(String rs, String caption, Integer maxRows, String width) {

    final Integer DEFAULT_MAX_ROWS = 15;

    /* Initiate a new SpreadSheetFacotry, if it does not exist already */
    if (ssf == null) {
        ssf = new SpreadSheetFactory();
    }

    /* Initiate the Table showing the data.frame */
    RTable table = getRTable(rs);

    /* Show only part of large tables */
    if (maxRows == null) {
        maxRows = DEFAULT_MAX_ROWS;
    }
    if (table.getDataFrame().nrow() >= maxRows) {
        table.setPageLength(maxRows);
        table.setCacheRate(2.0);
    }

    if (width != null) {
        table.setWidth(width);
    }

    DataFrame df = table.getDataFrame();
    String[] columnNames = table.getColumnNames();

    /* The element with XLSX download button */
    final SpreadSheetDownload ssd = new SpreadSheetDownload(df, columnNames, null, null, ssf);

    HorizontalLayout ssdBox = new HorizontalLayout();
    ssdBox.setHeight("23px");
    ssdBox.addComponent(ssd);

    Window window = new Window(caption);
    VerticalLayout root = new VerticalLayout();
    root.setSpacing(true);
    root.setMargin(true);
    window.setContent(root);

    root.addComponent(ssdBox);
    root.addComponent(table);

    @SuppressWarnings("serial")
    Window.CloseListener windowListener = new Window.CloseListener() {

        @Override
        public void windowClose(CloseEvent e) {

            /* Delete the XLSX file, if it was generated */
            ssd.clear();
        }
    };
    window.addCloseListener(windowListener);

    return window;
}

From source file:io.mateu.ui.vaadin.framework.MyUI.java

License:Apache License

public void showInWindow(String caption, Component vaadinComponent, Window.CloseListener closeListener) {

    // Create a sub-window and set the content
    Window subWindow = new Window(caption);

    subWindow.setContent(vaadinComponent);

    if (closeListener != null)
        subWindow.addCloseListener(closeListener);

    // Center it in the browser window
    subWindow.center();//from  w w w.j  a  va 2s. co m

    subWindow.setModal(true);

    // Open it in the UI
    UI.getCurrent().addWindow(subWindow);

}