org.eclipse.datatools.sqltools.sqlbuilder.expressionbuilder.caseexpr.CaseExpressionWizard.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.datatools.sqltools.sqlbuilder.expressionbuilder.caseexpr.CaseExpressionWizard.java

Source

/*******************************************************************************
 * Copyright  2000, 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

package org.eclipse.datatools.sqltools.sqlbuilder.expressionbuilder.caseexpr;

import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;

import org.eclipse.datatools.modelbase.sql.query.QueryValueExpression;
import org.eclipse.datatools.modelbase.sql.query.SQLQueryObject;
import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSearch;
import org.eclipse.datatools.modelbase.sql.query.ValueExpressionCaseSimple;
import org.eclipse.datatools.sqltools.sqlbuilder.Messages;
import org.eclipse.datatools.sqltools.sqlbuilder.SQLBuilderPlugin;
import org.eclipse.datatools.sqltools.sqlbuilder.SQLResource;
import org.eclipse.datatools.sqltools.sqlbuilder.model.SQLDomainModel;

public class CaseExpressionWizard extends Wizard implements INewWizard {

    private CaseOptionsPage caseOptionsPage;
    private CaseSearchPage caseSearchPage;
    private CaseSimplePage caseSimplePage;

    private SQLDomainModel domainModel;
    private SQLQueryObject sqlStatement;
    private QueryValueExpression inputSQLExpression;
    private QueryValueExpression updatedSQLExpression;

    public CaseExpressionWizard(SQLDomainModel domainModel, SQLQueryObject sqlStatementArg,
            QueryValueExpression sqlExpr) {
        this.domainModel = domainModel;
        sqlStatement = sqlStatementArg;
        inputSQLExpression = sqlExpr;
        updatedSQLExpression = inputSQLExpression;
        setWindowTitle(Messages._UI_WIZARD_CASE_EXPRESSION_TITLE);
        setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(SQLBuilderPlugin.getPlugin().getClass(),
                SQLResource.IMG_EXPRESSION_BUILDER_WIZARD));
    }

    public Wizard createSmartGuide() {
        return this;
    }

    public void addPages() {
        if (inputSQLExpression == null) {
            caseOptionsPage = new CaseOptionsPage(sqlStatement, null);
            caseSearchPage = new CaseSearchPage(domainModel, sqlStatement, null);
            caseSimplePage = new CaseSimplePage(domainModel, sqlStatement, null);
            addPage(caseOptionsPage);
            addPage(caseSearchPage);
            addPage(caseSimplePage);
        } else if (inputSQLExpression != null) {
            if (inputSQLExpression instanceof ValueExpressionCaseSearch) {
                caseSearchPage = new CaseSearchPage(domainModel, sqlStatement, inputSQLExpression);
                addPage(caseSearchPage);
            } else if (inputSQLExpression instanceof ValueExpressionCaseSimple) {
                caseSimplePage = new CaseSimplePage(domainModel, sqlStatement, inputSQLExpression);
                addPage(caseSimplePage);
            } else {
                caseOptionsPage = new CaseOptionsPage(sqlStatement, null);
                caseSearchPage = new CaseSearchPage(domainModel, sqlStatement, null);
                caseSimplePage = new CaseSimplePage(domainModel, sqlStatement, null);
                addPage(caseOptionsPage);
                addPage(caseSearchPage);
                addPage(caseSimplePage);
            }
        }
    }

    public void init(IWorkbench workbench, IStructuredSelection selection) {
    }

    public void setSQLExpression(QueryValueExpression sqlExpr) {
        updatedSQLExpression = sqlExpr;
    }

    public QueryValueExpression getSQLExpression() {
        return updatedSQLExpression;
    }

    public IWizardPage getNextPage(IWizardPage currentPage) {
        WizardPage nextPage = null;
        if (currentPage instanceof CaseOptionsPage) {
            Object type = ((CaseOptionsPage) currentPage).getCaseType();
            if (type.equals(CaseOptionsPage.CASE_SEARCH_WHEN_CLAUSE)) {
                nextPage = caseSearchPage;
            } else if (type.equals(CaseOptionsPage.CASE_SIMPLE_WHEN_CLAUSE)) {
                nextPage = caseSimplePage;
            } else {
                return null;
            }
            return nextPage;
        }

        return null;
    }

    public void setCaseOptionsPageComplete(boolean bComplete) {
        if (caseOptionsPage != null) {
            caseOptionsPage.setPageComplete(bComplete);
        }
        if (caseSearchPage != null) {
            caseSearchPage.setPageComplete(bComplete);
        }
        if (caseSimplePage != null) {
            caseSimplePage.setPageComplete(bComplete);
        }
    }

    public boolean performFinish() {
        if (caseSearchPage != null && caseSearchPage.currentPage()) {
            caseSearchPage.performOk();
        } else if (caseSimplePage != null && caseSimplePage.currentPage()) {
            caseSimplePage.performOk();
        }

        return true;
    }

}