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:com.haulmont.cuba.web.app.ui.core.settings.SettingsWindow.java

License:Apache License

@Override
public void init(Map<String, Object> params) {
    Boolean changeThemeEnabledParam = (Boolean) params.get("changeThemeEnabled");
    if (changeThemeEnabledParam != null) {
        changeThemeEnabled = changeThemeEnabledParam;
    }/*from  w w w . j a  v a2  s  . co  m*/

    AppWorkArea.Mode mode = userSettingsTools.loadAppWindowMode();
    msgTabbed = getMessage("modeTabbed");
    msgSingle = getMessage("modeSingle");

    modeOptions.setOptionsList(Arrays.asList(msgTabbed, msgSingle));
    if (mode == AppWorkArea.Mode.TABBED)
        modeOptions.setValue(msgTabbed);
    else
        modeOptions.setValue(msgSingle);

    ThemeConstantsRepository themeRepository = AppBeans.get(ThemeConstantsRepository.NAME);
    Set<String> supportedThemes = themeRepository.getAvailableThemes();
    appThemeField.setOptionsList(new ArrayList<>(supportedThemes));

    String userAppTheme = userSettingsTools.loadAppWindowTheme();
    appThemeField.setValue(userAppTheme);

    ComboBox vAppThemeField = (ComboBox) WebComponentsHelper.unwrap(appThemeField);
    vAppThemeField.setTextInputAllowed(false);
    appThemeField.setEditable(changeThemeEnabled);

    initTimeZoneFields();

    User user = userSession.getUser();
    changePasswordBtn.setAction(
            new BaseAction("changePassw").withCaption(getMessage("changePassw")).withHandler(event -> {
                Window passwordDialog = openWindow("sec$User.changePassword", OpenType.DIALOG,
                        ParamsMap.of("currentPasswordRequired", true));
                passwordDialog.addCloseListener(actionId -> {
                    // move focus back to window
                    changePasswordBtn.requestFocus();
                });
            }));

    if (!user.equals(userSession.getCurrentOrSubstitutedUser())
            || ExternalUserCredentials.isLoggedInWithExternalAuth(userSession)) {
        changePasswordBtn.setEnabled(false);
    }

    Map<String, Locale> locales = globalConfig.getAvailableLocales();
    TreeMap<String, Object> options = new TreeMap<>();
    for (Map.Entry<String, Locale> entry : locales.entrySet()) {
        options.put(entry.getKey(), messages.getTools().localeToString(entry.getValue()));
    }
    appLangField.setOptionsMap(options);
    appLangField.setValue(userManagementService.loadOwnLocale());

    Action commitAction = new BaseAction("commit").withCaption(messages.getMainMessage("actions.Ok"))
            .withShortcut(clientConfig.getCommitShortcut()).withHandler(event -> commit());
    addAction(commitAction);
    okBtn.setAction(commitAction);

    cancelBtn.setAction(new BaseAction("cancel").withCaption(messages.getMainMessage("actions.Cancel"))
            .withHandler(event -> cancel()));

    initDefaultScreenField();
}

From source file:com.save.client.promodeals.PDDataGridProperties.java

@Override
public void gridRenrderersAndGenerator() {
    getColumn("view").setWidth(40);
    getColumn("edit").setWidth(40);
    getColumn("del").setWidth(40);
    getDefaultHeaderRow().join("view", "edit", "del").setText("");

    setFrozenColumnCount(1);/*  w  ww.j  a  v a 2s.c  o  m*/

    getColumn("del").setRenderer(new FontIconRenderer(e -> {
        Object itemId = e.getItemId();
        Item item = getContainerDataSource().getItem(itemId);

        Window sub = delete(itemId,
                CommonUtilities.convertStringToInt(item.getItemProperty("sn").getValue().toString()));
        if (sub.getParent() == null) {
            UI.getCurrent().addWindow(sub);
        }
    }));

    getColumn("edit").setRenderer(new FontIconRenderer(e -> {
        Object itemId = e.getItemId();
        Item item = getContainerDataSource().getItem(itemId);

        Window sub = new AcknowledgementPromoForm(getClientId(), (int) item.getItemProperty("sn").getValue());
        if (sub.getParent() == null) {
            UI.getCurrent().addWindow(sub);
        }

        sub.addCloseListener((Window.CloseEvent event) -> {
            getContainerDataSource().removeAllItems();
            setContainerDataSource(new PDDataContainer(getClientId()));
        });
    }));

    getColumn("view").setRenderer(new FontIconRenderer(e -> {
        Object itemId = e.getItemId();
        Item item = getContainerDataSource().getItem(itemId);

        Window sub = new PromoDealAcknowledgementReport(
                CommonUtilities.convertStringToInt(item.getItemProperty("sn").getValue().toString()));
        if (sub.getParent() == null) {
            UI.getCurrent().addWindow(sub);
        }
    }));

    recalculateColumnWidths();
}

From source file:com.save.client.promodeals.PromoUI.java

public PromoUI(int clientId) {
    this.clientId = clientId;

    setWidth("90%");
    setHeight("100%");
    setMargin(new MarginInfo(true, true, false, false));

    PDDataGridProperties dataGrid = new PDDataGridProperties(getClientId());

    Button button = new Button("Acknowledgement Form");
    button.setWidthUndefined();/*from  w  ww. j  a  v  a2s . c om*/
    button.setIcon(FontAwesome.OPENID);
    button.addStyleName(ValoTheme.BUTTON_LINK);
    button.addStyleName(ValoTheme.BUTTON_SMALL);
    button.addClickListener((Button.ClickEvent event) -> {
        Window sub = new com.save.clients.AcknowledgementPromoForm(getClientId());
        if (sub.getParent() == null) {
            UI.getCurrent().addWindow(sub);
        }

        sub.addCloseListener((Window.CloseEvent e) -> {
            dataGrid.getContainerDataSource().removeAllItems();
            dataGrid.setContainerDataSource(new PDDataContainer(getClientId()));
        });
    });
    addComponent(button);
    setComponentAlignment(button, Alignment.TOP_RIGHT);

    addComponent(dataGrid);
    setExpandRatio(dataGrid, 2);
}

From source file:com.save.client.RemoveAccountWindow.java

void getConfirmationWindow(final String str) {
    final Window sub = new Window("Conifrm?");
    sub.setWidth("180px");
    sub.setHeight("150px");
    sub.center();/*from   w  w w  . ja v a  2  s  . co m*/
    sub.setResizable(false);
    UI.getCurrent().addWindow(sub);

    VerticalLayout vlayout = new VerticalLayout();
    vlayout.setMargin(true);
    vlayout.setSpacing(true);

    vlayout.addComponent(new Label("Client is a Distributor!"));

    Button removeBtn = new Button("REMOVE");
    removeBtn.setWidth("100%");
    removeBtn.addClickListener((Button.ClickEvent event) -> {
        boolean result = clientService.removeAccount(getClientId(), str);
        if (result) {
            sub.close();
            close();
        }
    });
    vlayout.addComponent(removeBtn);

    sub.setContent(vlayout);
    sub.addCloseListener((CloseEvent e) -> {
        close();
    });
}

From source file:com.save.employee.maintenance.MRUI.java

public MRUI(int employeeId) {
    this.employeeId = employeeId;

    setWidth("90%");
    setHeight("100%");
    setMargin(new MarginInfo(true, false, false, false));

    MRDataGridProperties dataGrid = new MRDataGridProperties(getEmployeeId());

    Button mrForm = new Button("Maintenance/Reimbursement Form");
    mrForm.setWidthUndefined();/*from w w  w.j a v a 2  s .co  m*/
    mrForm.setIcon(FontAwesome.OPENID);
    mrForm.addStyleName(ValoTheme.BUTTON_SMALL);
    mrForm.addStyleName(ValoTheme.BUTTON_LINK);
    mrForm.addClickListener((Button.ClickEvent event) -> {
        Window sub = new MRFormWindow(getEmployeeId());
        if (sub.getParent() == null) {
            UI.getCurrent().addWindow(sub);
        }

        sub.addCloseListener((Window.CloseEvent e) -> {
            dataGrid.getContainerDataSource().removeAllItems();
            dataGrid.setContainerDataSource(new MRDataContainer(getEmployeeId()));
        });
    });

    addComponent(mrForm);
    setComponentAlignment(mrForm, Alignment.MIDDLE_RIGHT);

    addComponent(dataGrid);
    setExpandRatio(dataGrid, 2);
}

From source file:com.save.employee.request.RLUI.java

public RLUI(int employeeId) {
    this.employeeId = employeeId;

    setWidth("90%");
    setHeight("100%");
    setMargin(new MarginInfo(true, false, false, false));

    RLDataGridProperties dataGrid = new RLDataGridProperties(getEmployeeId());

    Button rlForm = new Button("Request/Liquidation FORM");
    rlForm.setIcon(FontAwesome.OPENID);//w w w.  j  a  v  a2 s  .  c  o  m
    rlForm.addStyleName(ValoTheme.BUTTON_SMALL);
    rlForm.addStyleName(ValoTheme.BUTTON_LINK);
    rlForm.addClickListener((Button.ClickEvent event) -> {
        Window sub = new RequestFormWindow(getEmployeeId(), 0, false, dataGrid);
        if (sub.getParent() == null) {
            UI.getCurrent().addWindow(sub);
        }
        sub.addCloseListener((Window.CloseEvent e) -> {
            dataGrid.getContainerDataSource().removeAllItems();
            dataGrid.setContainerDataSource(new RLDataContainer(getEmployeeId()));
        });
    });

    addComponent(rlForm);
    setComponentAlignment(rlForm, Alignment.MIDDLE_RIGHT);

    addComponent(dataGrid);
    setExpandRatio(dataGrid, 2);
}

From source file:com.tripoin.util.ui.calendar.BeanItemContainerTestUI.java

License:Apache License

/**
 * Opens up a modal dialog window where an event can be modified
 * //from  w  ww  .  ja va  2s  .c  o  m
 * @param event
 *            The event to modify
 */
private void editEvent(final BasicEvent event) {
    Window modal = new Window("Add event");
    modal.setModal(true);
    modal.setResizable(false);
    modal.setDraggable(false);
    modal.setWidth("300px");
    final FieldGroup fieldGroup = new FieldGroup();

    FormLayout formLayout = new FormLayout();
    TextField captionField = new TextField("Caption");
    captionField.setImmediate(true);
    TextField descriptionField = new TextField("Description");
    descriptionField.setImmediate(true);
    DateField startField = new DateField("Start");
    startField.setResolution(Resolution.MINUTE);
    startField.setImmediate(true);
    DateField endField = new DateField("End");
    endField.setImmediate(true);
    endField.setResolution(Resolution.MINUTE);

    formLayout.addComponent(captionField);
    formLayout.addComponent(descriptionField);
    formLayout.addComponent(startField);
    formLayout.addComponent(endField);

    fieldGroup.bind(captionField, ContainerEventProvider.CAPTION_PROPERTY);
    fieldGroup.bind(descriptionField, ContainerEventProvider.DESCRIPTION_PROPERTY);
    fieldGroup.bind(startField, ContainerEventProvider.STARTDATE_PROPERTY);
    fieldGroup.bind(endField, ContainerEventProvider.ENDDATE_PROPERTY);

    fieldGroup.setItemDataSource(new BeanItem<BasicEvent>(event,
            Arrays.asList(ContainerEventProvider.CAPTION_PROPERTY, ContainerEventProvider.DESCRIPTION_PROPERTY,
                    ContainerEventProvider.STARTDATE_PROPERTY, ContainerEventProvider.ENDDATE_PROPERTY)));
    modal.setContent(formLayout);
    modal.addCloseListener(new Window.CloseListener() {
        /**
        * 
        */
        private static final long serialVersionUID = -3427881784024691882L;

        @Override
        public void windowClose(CloseEvent e) {
            // Commit changes to bean
            try {
                fieldGroup.commit();
            } catch (CommitException e1) {
                e1.printStackTrace();
            }

            if (events.containsId(event)) {
                /*
                 * BeanItemContainer does not notify container listeners
                 * when the bean changes so we need to trigger a
                 * ItemSetChange event
                 */
                BasicEvent dummy = new BasicEvent();
                events.addBean(dummy);
                events.removeItem(dummy);

            } else {
                events.addBean(event);
            }
        }
    });
    getUI().addWindow(modal);
}

From source file:de.symeda.sormas.ui.caze.CaseController.java

License:Open Source License

private void saveCase(CaseDataDto cazeDto) {
    // Compare old and new case
    CaseDataDto existingDto = FacadeProvider.getCaseFacade().getCaseDataByUuid(cazeDto.getUuid());
    onCaseChanged(existingDto, cazeDto);

    CaseDataDto resultDto = FacadeProvider.getCaseFacade().saveCase(cazeDto);

    if (resultDto.getPlagueType() != cazeDto.getPlagueType()) {
        // TODO would be much better to have a notification for this triggered in the backend
        Window window = VaadinUiUtil.showSimplePopupWindow(
                I18nProperties.getString(Strings.headingSaveNotification),
                String.format(I18nProperties.getString(Strings.messagePlagueTypeChange),
                        resultDto.getPlagueType().toString(), resultDto.getPlagueType().toString()));
        window.addCloseListener(new CloseListener() {
            private static final long serialVersionUID = 1L;

            @Override/*ww  w  .ja v a 2 s  .c o  m*/
            public void windowClose(CloseEvent e) {
                if (existingDto.getCaseClassification() != resultDto.getCaseClassification()
                        && resultDto.getClassificationUser() == null) {
                    Notification notification = new Notification(String.format(
                            I18nProperties.getString(Strings.messageCaseSavedClassificationChanged),
                            resultDto.getCaseClassification().toString()), Type.WARNING_MESSAGE);
                    notification.setDelayMsec(-1);
                    notification.show(Page.getCurrent());
                } else {
                    Notification.show(I18nProperties.getString(Strings.messageCaseSaved), Type.WARNING_MESSAGE);
                }
                SormasUI.refreshView();
            }
        });
    } else {
        // Notify user about an automatic case classification change
        if (existingDto != null && existingDto.getCaseClassification() != resultDto.getCaseClassification()
                && resultDto.getClassificationUser() == null) {
            Notification notification = new Notification(
                    String.format(I18nProperties.getString(Strings.messageCaseSavedClassificationChanged),
                            resultDto.getCaseClassification().toString()),
                    Type.WARNING_MESSAGE);
            notification.setDelayMsec(-1);
            notification.show(Page.getCurrent());
        } else {
            Notification.show(I18nProperties.getString(Strings.messageCaseSaved), Type.WARNING_MESSAGE);
        }
        SormasUI.refreshView();
    }
}

From source file:de.symeda.sormas.ui.caze.CaseController.java

License:Open Source License

public void openClassificationRulesPopup(CaseDataDto caze) {
    VerticalLayout classificationRulesLayout = new VerticalLayout();
    classificationRulesLayout.setMargin(true);

    DiseaseClassificationCriteriaDto diseaseCriteria = FacadeProvider.getCaseClassificationFacade()
            .getByDisease(caze.getDisease());
    if (diseaseCriteria != null) {
        Label suspectContent = new Label();
        suspectContent.setContentMode(ContentMode.HTML);
        suspectContent.setWidth(100, Unit.PERCENTAGE);
        suspectContent.setValue(ClassificationHtmlRenderer.createSuspectHtmlString(diseaseCriteria));
        classificationRulesLayout.addComponent(suspectContent);

        Label probableContent = new Label();
        probableContent.setContentMode(ContentMode.HTML);
        probableContent.setWidth(100, Unit.PERCENTAGE);
        probableContent.setValue(ClassificationHtmlRenderer.createProbableHtmlString(diseaseCriteria));
        classificationRulesLayout.addComponent(probableContent);

        Label confirmedContent = new Label();
        confirmedContent.setContentMode(ContentMode.HTML);
        confirmedContent.setWidth(100, Unit.PERCENTAGE);
        confirmedContent.setValue(ClassificationHtmlRenderer.createConfirmedHtmlString(diseaseCriteria));
        classificationRulesLayout.addComponent(confirmedContent);
    }//from  w  w  w . j  a  va  2  s  .  com

    Window popupWindow = VaadinUiUtil.showPopupWindow(classificationRulesLayout);
    popupWindow.addCloseListener(e -> {
        popupWindow.close();
    });
    popupWindow.setWidth(860, Unit.PIXELS);
    popupWindow.setHeight(80, Unit.PERCENTAGE);
    popupWindow.setCaption(
            I18nProperties.getString(Strings.classificationRulesFor) + " " + caze.getDisease().toString());
}

From source file:de.symeda.sormas.ui.caze.CasesView.java

License:Open Source License

public CasesView() {
    super(VIEW_NAME);
    originalViewTitle = getViewTitleLabel().getValue();

    criteria = ViewModelProviders.of(CasesView.class).get(CaseCriteria.class);
    if (criteria.getArchived() == null) {
        criteria.archived(false);//  ww  w  .  j  a va 2s .  c o  m
    }

    grid = new CaseGrid();
    grid.setCriteria(criteria);
    gridLayout = new VerticalLayout();
    gridLayout.addComponent(createFilterBar());
    gridLayout.addComponent(createStatusFilterBar());
    gridLayout.addComponent(grid);
    gridLayout.setMargin(true);
    gridLayout.setSpacing(false);
    gridLayout.setSizeFull();
    gridLayout.setExpandRatio(grid, 1);
    gridLayout.setStyleName("crud-main-layout");

    grid.getDataProvider().addDataProviderListener(e -> updateStatusButtons());

    if (UserProvider.getCurrent().hasUserRight(UserRight.CASE_IMPORT)) {
        Button importButton = new Button(I18nProperties.getCaption(Captions.actionImport));
        importButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
        importButton.setIcon(VaadinIcons.UPLOAD);
        importButton.addClickListener(e -> {
            Window popupWindow = VaadinUiUtil.showPopupWindow(new CaseImportLayout());
            popupWindow.setCaption(I18nProperties.getString(Strings.headingImportCases));
            popupWindow.addCloseListener(c -> {
                grid.reload();
            });
        });
        addHeaderComponent(importButton);
    }

    if (UserProvider.getCurrent().hasUserRight(UserRight.CASE_EXPORT)) {
        PopupButton exportButton = new PopupButton(I18nProperties.getCaption(Captions.export));
        exportButton.setId("export");
        exportButton.setIcon(VaadinIcons.DOWNLOAD);
        VerticalLayout exportLayout = new VerticalLayout();
        exportLayout.setSpacing(true);
        exportLayout.setMargin(true);
        exportLayout.addStyleName(CssStyles.LAYOUT_MINIMAL);
        exportLayout.setWidth(200, Unit.PIXELS);
        exportButton.setContent(exportLayout);
        addHeaderComponent(exportButton);

        Button basicExportButton = new Button(I18nProperties.getCaption(Captions.exportBasic));
        basicExportButton.setId("basicExport");
        basicExportButton.setDescription(I18nProperties.getString(Strings.infoBasicExport));
        basicExportButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
        basicExportButton.setIcon(VaadinIcons.TABLE);
        basicExportButton.setWidth(100, Unit.PERCENTAGE);
        exportLayout.addComponent(basicExportButton);

        StreamResource streamResource = new GridExportStreamResource(grid, "sormas_cases",
                "sormas_cases_" + DateHelper.formatDateForExport(new Date()) + ".csv");
        FileDownloader fileDownloader = new FileDownloader(streamResource);
        fileDownloader.extend(basicExportButton);

        Button extendedExportButton = new Button(I18nProperties.getCaption(Captions.exportDetailed));
        extendedExportButton.setId("extendedExport");
        extendedExportButton.setDescription(I18nProperties.getString(Strings.infoDetailedExport));
        extendedExportButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
        extendedExportButton.setIcon(VaadinIcons.FILE_TEXT);
        extendedExportButton.setWidth(100, Unit.PERCENTAGE);
        exportLayout.addComponent(extendedExportButton);

        StreamResource extendedExportStreamResource = DownloadUtil.createCsvExportStreamResource(
                CaseExportDto.class,
                (Integer start, Integer max) -> FacadeProvider.getCaseFacade()
                        .getExportList(UserProvider.getCurrent().getUuid(), grid.getCriteria(), start, max),
                (propertyId, type) -> {
                    String caption = I18nProperties.getPrefixCaption(CaseExportDto.I18N_PREFIX, propertyId,
                            I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, propertyId,
                                    I18nProperties.getPrefixCaption(PersonDto.I18N_PREFIX, propertyId,
                                            I18nProperties.getPrefixCaption(SymptomsDto.I18N_PREFIX, propertyId,
                                                    I18nProperties.getPrefixCaption(EpiDataDto.I18N_PREFIX,
                                                            propertyId,
                                                            I18nProperties.getPrefixCaption(
                                                                    HospitalizationDto.I18N_PREFIX,
                                                                    propertyId))))));
                    if (Date.class.isAssignableFrom(type)) {
                        caption += " (" + DateHelper.getLocalShortDatePattern() + ")";
                    }
                    return caption;
                }, "sormas_cases_" + DateHelper.formatDateForExport(new Date()) + ".csv");
        new FileDownloader(extendedExportStreamResource).extend(extendedExportButton);

        Button sampleExportButton = new Button(I18nProperties.getCaption(Captions.exportSamples));
        sampleExportButton.setId("sampleExport");
        sampleExportButton.setDescription(I18nProperties.getString(Strings.infoSampleExport));
        sampleExportButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
        sampleExportButton.setIcon(VaadinIcons.FILE_TEXT);
        sampleExportButton.setWidth(100, Unit.PERCENTAGE);
        exportLayout.addComponent(sampleExportButton);

        StreamResource sampleExportStreamResource = DownloadUtil.createCsvExportStreamResource(
                SampleExportDto.class,
                (Integer start, Integer max) -> FacadeProvider.getSampleFacade()
                        .getExportList(UserProvider.getCurrent().getUuid(), grid.getCriteria(), start, max),
                (propertyId, type) -> {
                    String caption = I18nProperties.getPrefixCaption(SampleExportDto.I18N_PREFIX, propertyId,
                            I18nProperties.getPrefixCaption(SampleDto.I18N_PREFIX, propertyId,
                                    I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, propertyId,
                                            I18nProperties.getPrefixCaption(PersonDto.I18N_PREFIX, propertyId,
                                                    I18nProperties.getPrefixCaption(
                                                            AdditionalTestDto.I18N_PREFIX, propertyId)))));
                    if (Date.class.isAssignableFrom(type)) {
                        caption += " (" + DateHelper.getLocalShortDatePattern() + ")";
                    }
                    return caption;
                }, "sormas_samples_" + DateHelper.formatDateForExport(new Date()) + ".csv");
        new FileDownloader(sampleExportStreamResource).extend(sampleExportButton);

        // Warning if no filters have been selected
        Label warningLabel = new Label(I18nProperties.getString(Strings.infoExportNoFilters), ContentMode.HTML);
        warningLabel.setWidth(100, Unit.PERCENTAGE);
        exportLayout.addComponent(warningLabel);
        warningLabel.setVisible(false);

        exportButton.addClickListener(e -> {
            warningLabel.setVisible(!criteria.hasAnyFilterActive());
        });
    }

    if (UserProvider.getCurrent().hasUserRight(UserRight.CASE_MERGE)) {
        Button mergeDuplicatesButton = new Button(I18nProperties.getCaption(Captions.caseMergeDuplicates));
        mergeDuplicatesButton.setId("mergeDuplicates");
        mergeDuplicatesButton.setIcon(VaadinIcons.COMPRESS_SQUARE);
        mergeDuplicatesButton
                .addClickListener(e -> ControllerProvider.getCaseController().navigateToMergeCasesView());
        addHeaderComponent(mergeDuplicatesButton);
    }

    if (UserProvider.getCurrent().hasUserRight(UserRight.CASE_CREATE)) {
        createButton = new Button(I18nProperties.getCaption(Captions.caseNewCase));
        createButton.setId("create");
        createButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
        createButton.setIcon(VaadinIcons.PLUS_CIRCLE);
        createButton.addClickListener(e -> ControllerProvider.getCaseController().create());
        addHeaderComponent(createButton);
    }

    addComponent(gridLayout);
}