Example usage for org.eclipse.jface.dialogs IDialogPage createControl

List of usage examples for org.eclipse.jface.dialogs IDialogPage createControl

Introduction

In this page you can find the example usage for org.eclipse.jface.dialogs IDialogPage createControl.

Prototype

void createControl(Composite parent);

Source Link

Document

Creates the top level control for this dialog page under the given parent composite.

Usage

From source file:org.jkiss.dbeaver.ui.dialogs.connection.ConnectionPageSettings.java

License:Open Source License

private void createProviderPage(Composite parent) {
    if (this.connectionEditor != null) {
        return;/*from www.j  a v a  2 s. co m*/
    }
    if (getControl() != null) {
        getControl().dispose();
    }

    try {
        this.connectionEditor = viewDescriptor.createView(IDataSourceConnectionEditor.class);
        this.connectionEditor.setSite(this);
        // init sub pages (if any)
        getSubPages();

        if (wizard.isNew() && !ArrayUtils.isEmpty(subPages)) {
            // Create tab folder
            List<IDialogPage> allPages = new ArrayList<>();
            allPages.add(connectionEditor);
            Collections.addAll(allPages, subPages);

            TabFolder tabFolder = new TabFolder(parent, SWT.TOP);
            tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));

            for (IDialogPage page : allPages) {
                TabItem item = new TabItem(tabFolder, SWT.NONE);
                page.createControl(tabFolder);
                Control pageControl = page.getControl();
                item.setControl(pageControl);
                item.setText(CommonUtils.isEmpty(page.getTitle()) ? "General" : page.getTitle());
                item.setToolTipText(page.getDescription());
            }
            tabFolder.setSelection(0);
            setControl(tabFolder);
        } else {
            // Create single editor control
            this.connectionEditor.createControl(parent);
            setControl(this.connectionEditor.getControl());
        }

        UIUtils.setHelp(getControl(), IHelpContextIds.CTX_CON_WIZARD_SETTINGS);
    } catch (Exception ex) {
        log.warn(ex);
        setErrorMessage("Can't create settings dialog: " + ex.getMessage());
    }
    parent.layout();
}

From source file:org.jkiss.dbeaver.ui.dialogs.MultiPageWizardDialog.java

License:Open Source License

private TreeItem addPage(TreeItem parentItem, IDialogPage page, Point maxSize) {
    boolean hasPages = pagesTree.getItemCount() != 0;
    page.createControl(pageArea);
    Control control = page.getControl();
    Point pageSize = control.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    if (pageSize.x > maxSize.x)
        maxSize.x = pageSize.x;/*from   www . j  a  v a2  s.  c  o m*/
    if (pageSize.y > maxSize.y)
        maxSize.y = pageSize.y;
    GridData gd = (GridData) control.getLayoutData();
    if (gd == null) {
        gd = new GridData(GridData.FILL_BOTH);
        control.setLayoutData(gd);
    }
    gd.exclude = hasPages;
    control.setVisible(!gd.exclude);

    TreeItem item = parentItem == null ? new TreeItem(pagesTree, SWT.NONE) : new TreeItem(parentItem, SWT.NONE);
    item.setText(page.getTitle());
    item.setData(page);

    // Ad sub pages
    if (page instanceof ICompositeDialogPage) {
        IDialogPage[] subPages = ((ICompositeDialogPage) page).getSubPages();
        if (!ArrayUtils.isEmpty(subPages)) {
            for (IDialogPage subPage : subPages) {
                addPage(item, subPage, maxSize);
            }
            item.setExpanded(true);
        }
    }

    return item;
}