X-Git-Url: http://secure.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/sql/SQLStatementWizard.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/sql/SQLStatementWizard.java new file mode 100644 index 0000000..25adccf --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/sql/SQLStatementWizard.java @@ -0,0 +1,64 @@ +package com.quantum.wizards.sql; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import com.quantum.sql.parser.SQL; +import com.quantum.wizards.PropertyChangeWizardPage; + +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardPage; + +/** + * @author BC Holmes + */ +public class SQLStatementWizard extends Wizard implements PropertyChangeListener { + + private List wizardPages = Collections.synchronizedList(new ArrayList()); + private ShowSQLStatementWizardPage finalPage; + + public SQLStatementWizard(WizardPage[] pages, SQL sql) { + setWindowTitle("SQL Statement: " + sql.getCommand()); + + for (int i = 0, length = pages == null ? 0 : pages.length; i < length; i++) { + this.wizardPages.add(pages[i]); + } + this.finalPage = new ShowSQLStatementWizardPage("finalPage"); + this.finalPage.setSQLStatement(sql == null ? "" : sql.toString()); + } + + public void addPages() { + for (Iterator i = this.wizardPages.iterator(); i.hasNext();) { + WizardPage wizardPage = (WizardPage) i.next(); + addPage(wizardPage); + if (wizardPage instanceof PropertyChangeWizardPage) { + ((PropertyChangeWizardPage) wizardPage).addPropertyChangeListener(this); + } + } + addPage(this.finalPage); + } + + public void dispose() { + for (Iterator i = this.wizardPages.iterator(); i.hasNext();) { + WizardPage wizardPage = (WizardPage) i.next(); + if (wizardPage instanceof PropertyChangeWizardPage) { + ((PropertyChangeWizardPage) wizardPage).removePropertyChangeListener(this); + } + } + super.dispose(); + } + + public boolean performFinish() { + return true; + } + + public void propertyChange(PropertyChangeEvent event) { + if ("sqlStatement".equals(event.getPropertyName())) { + this.finalPage.setSQLStatement((String) event.getNewValue()); + } + } +}