org.jboss.tools.common.model.ui.wizards.query.AbstractQueryDialog.java Source code

Java tutorial

Introduction

Here is the source code for org.jboss.tools.common.model.ui.wizards.query.AbstractQueryDialog.java

Source

/*******************************************************************************
 * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
 * Distributed under license by Red Hat, Inc. All rights reserved.
 * This program is made available under the terms of the
 * Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Exadel, Inc. and Red Hat, Inc. - initial API and implementation
 ******************************************************************************/
package org.jboss.tools.common.model.ui.wizards.query;

import org.jboss.tools.common.model.ui.action.CommandBar;
import org.jboss.tools.common.model.ui.action.CommandBarLayout;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

import org.jboss.tools.common.meta.impl.XModelEntityImpl;
import org.jboss.tools.common.model.ui.ModelUIImages;

public class AbstractQueryDialog extends TitleAreaDialog implements IQueryDialog {
    public static boolean hideHelp = XModelEntityImpl.hideHelp;
    private AbstractQueryWizardView view;
    private int pageWidth = 490;
    private int pageHeight = 225;

    public AbstractQueryDialog(Shell shell) {
        super(shell);
        setShellStyle(getShellStyle() | SWT.RESIZE);
    }

    public void setView(AbstractQueryWizardView view) {
        this.view = view;
    }

    protected Control createDialogArea(Composite parent) {
        setTitleImage(ModelUIImages.getImage(ModelUIImages.WIZARD_DEFAULT));

        Composite composite = new Composite(parent, SWT.NONE);
        GridLayout gridLayout = new GridLayout(1, false);
        gridLayout.marginHeight = 0;
        gridLayout.marginWidth = 0;
        gridLayout.horizontalSpacing = 0;
        gridLayout.verticalSpacing = 0;
        composite.setLayout(gridLayout);

        Label dialogAreaSeparator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
        dialogAreaSeparator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        Control pageArea = view.createControl(composite);
        GridData gd = new GridData(GridData.FILL_BOTH);
        pageArea.setLayoutData(gd);

        gd = new GridData(GridData.FILL_BOTH);

        Point p = view.getPreferredSize();
        gd.widthHint = (p == null) ? pageWidth : p.x;
        gd.heightHint = (p == null) ? pageHeight : p.y;
        composite.setLayoutData(gd);
        return composite;
    }

    protected Control createButtonBar(Composite parent) {
        CommandBar commandBar = view.getCommandBar();
        commandBar.addCommandBarListener(view);
        Composite composite = new Composite(parent, SWT.NONE);
        GridLayout gridLayout = new GridLayout(1, false);
        gridLayout.marginHeight = 0;
        gridLayout.marginWidth = 0;
        gridLayout.horizontalSpacing = 0;
        gridLayout.verticalSpacing = 0;
        composite.setLayout(gridLayout);
        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
        composite.setLayoutData(gd);

        Label titleBarSeparator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
        titleBarSeparator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        CommandBarLayout cbl = new CommandBarLayout();
        cbl.buttonHeight = convertHorizontalDLUsToPixels(20);
        cbl.buttonWidth = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
        cbl.gap = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_MARGIN);
        cbl.left = 10;
        cbl.right = 10;
        cbl.top = 11;
        cbl.bottom = 10;
        commandBar.setLayout(cbl);
        commandBar.setCommands(getCommands());
        commandBar.setDefaultCommand(view.getDefaultCommand());
        Control control = commandBar.createControl(composite);
        commandBar.getLayout().alignment = SWT.RIGHT;
        gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.heightHint = commandBar.getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
        control.setLayoutData(gd);
        if (view.getHelpKey() == null)
            commandBar.setEnabled(AbstractQueryWizardView.HELP, false);
        view.updateBar();
        return composite;
    }

    protected String[] getCommands() {
        String[] s = view.getCommands();
        if (s.length == 0 || !s[s.length - 1].equals(AbstractQueryWizardView.HELP)) {
            String[] s1 = new String[s.length + 1];
            for (int i = 0; i < s.length; i++)
                s1[i] = s[i];
            s1[s.length] = AbstractQueryWizardView.HELP;
            s = s1;
        }
        if (hideHelp) {
            String[] s1 = new String[s.length - 1];
            System.arraycopy(s, 0, s1, 0, s1.length);
            return s1;
        }
        return s;
    }

    public Dialog getDialog() {
        return this;
    }

}