diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableGeneratorComposite.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableGeneratorComposite.java | 535 |
1 files changed, 0 insertions, 535 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableGeneratorComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableGeneratorComposite.java deleted file mode 100644 index 7426882c70..0000000000 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TableGeneratorComposite.java +++ /dev/null @@ -1,535 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007 Oracle. All rights reserved. - * This program and the accompanying materials are 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.ui.internal.mappings.details; - -import java.util.Iterator; - -import org.eclipse.emf.common.command.CommandStack; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.jpt.core.internal.IJpaProject; -import org.eclipse.jpt.core.internal.mappings.IId; -import org.eclipse.jpt.core.internal.mappings.ITableGenerator; -import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage; -import org.eclipse.jpt.db.internal.ConnectionListener; -import org.eclipse.jpt.db.internal.ConnectionProfile; -import org.eclipse.jpt.db.internal.Database; -import org.eclipse.jpt.db.internal.Schema; -import org.eclipse.jpt.db.internal.Table; -import org.eclipse.jpt.ui.internal.IJpaHelpContextIds; -import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.help.IWorkbenchHelpSystem; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; - -public class TableGeneratorComposite extends GeneratorComposite<ITableGenerator> -{ - private CCombo tableNameCombo; - private CCombo pkColumnNameCombo; - private CCombo valueColumnNameCombo; - private CCombo pkColumnValueCombo; - - private ConnectionListener connectionListener; - - private ConnectionProfile connectionProfile; - - public TableGeneratorComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) { - super(parent, commandStack, widgetFactory); - this.connectionListener = this.buildConnectionListener(); - } - - protected ITableGenerator createGenerator() { - ITableGenerator tableGenerator = idMapping().createTableGenerator(); - idMapping().setTableGenerator(tableGenerator); - return tableGenerator; - } - - protected ITableGenerator generator(IId idMapping) { - return idMapping.getTableGenerator(); - } - - @Override - protected void initializeLayout(Composite composite) { - GridLayout layout = new GridLayout(2, false); - composite.setLayout(layout); - - IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem(); - - getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_name); - - this.nameTextWidget = buildNameText(composite); - GridData gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - this.nameTextWidget.setLayoutData(gridData); - helpSystem.setHelp(this.nameTextWidget, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_NAME); - - getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_table); - - this.tableNameCombo = buildTableNameCombo(composite); - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - this.tableNameCombo.setLayoutData(gridData); - helpSystem.setHelp(this.tableNameCombo, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_TABLE); - - getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_pkColumn); - - this.pkColumnNameCombo = buildPkColumnNameCombo(composite); - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - this.pkColumnNameCombo.setLayoutData(gridData); - helpSystem.setHelp(this.pkColumnNameCombo, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_PRIMARY_KEY_COLUMN); - - getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_valueColumn); - - this.valueColumnNameCombo = buildValueColumnNameCombo(composite); - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - this.valueColumnNameCombo.setLayoutData(gridData); - helpSystem.setHelp(this.valueColumnNameCombo, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_VALUE_COLUMN); - - getWidgetFactory().createLabel(composite, JptUiMappingsMessages.TableGeneratorComposite_pkColumnValue); - - this.pkColumnValueCombo = buildPkColumnValueCombo(composite); - gridData = new GridData(); - gridData.horizontalAlignment = GridData.FILL; - gridData.grabExcessHorizontalSpace = true; - this.pkColumnValueCombo.setLayoutData(gridData); - helpSystem.setHelp(this.pkColumnValueCombo, IJpaHelpContextIds.MAPPING_TABLE_GENERATOR_PRIMARY_KEY_COLUMN_VALUE); - } - - private CCombo buildTableNameCombo(Composite parent) { - CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT); - combo.add(JptUiMappingsMessages.TableGeneratorComposite_default); - combo.select(0); - combo.addModifyListener(buildTableNameListener()); - return combo; - } - - private CCombo buildPkColumnNameCombo(Composite parent) { - CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT); - combo.add(JptUiMappingsMessages.TableGeneratorComposite_default); - combo.select(0); - combo.addModifyListener(buildPkColumnNameListener()); - return combo; - } - - private CCombo buildValueColumnNameCombo(Composite parent) { - CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT); - combo.add(JptUiMappingsMessages.TableGeneratorComposite_default); - combo.select(0); - combo.addModifyListener(buildValueColumnNameListener()); - return combo; - } - - private CCombo buildPkColumnValueCombo(Composite parent) { - CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT); - combo.add(JptUiMappingsMessages.TableGeneratorComposite_default); - combo.select(0); - combo.addModifyListener(buildPkColumnValueListener()); - return combo; - } - - private ModifyListener buildTableNameListener() { - return new ModifyListener() { - public void modifyText(ModifyEvent e) { - if (isPopulating()) { - return; - } - String text = ((CCombo) e.getSource()).getText(); - if (text != null && tableNameCombo.getItemCount() > 0 && text.equals(tableNameCombo.getItem(0))) { - text = null; - } - ITableGenerator generator = getGenerator(); - if (generator == null) { - generator = createGenerator(); - } - generator.setSpecifiedTable(text); - } - }; - } - - private ModifyListener buildPkColumnNameListener() { - return new ModifyListener() { - public void modifyText(ModifyEvent e) { - if (isPopulating()) { - return; - } - String text = ((CCombo) e.getSource()).getText(); - if (text != null && pkColumnNameCombo.getItemCount() > 0 && text.equals(pkColumnNameCombo.getItem(0))) { - text = null; - } - ITableGenerator generator = getGenerator(); - if (generator == null) { - generator = createGenerator(); - } - generator.setSpecifiedPkColumnName(text); - } - }; - } - - private ModifyListener buildValueColumnNameListener() { - return new ModifyListener() { - public void modifyText(ModifyEvent e) { - if (isPopulating()) { - return; - } - String text = ((CCombo) e.getSource()).getText(); - if (text != null && valueColumnNameCombo.getItemCount() > 0 && text.equals(valueColumnNameCombo.getItem(0))) { - text = null; - } - ITableGenerator generator = getGenerator(); - if (generator == null) { - generator = createGenerator(); - } - generator.setSpecifiedValueColumnName(text); - } - }; - } - - private ModifyListener buildPkColumnValueListener() { - return new ModifyListener() { - public void modifyText(ModifyEvent e) { - if (isPopulating()) { - return; - } - String text = ((CCombo) e.getSource()).getText(); - if (text != null && pkColumnValueCombo.getItemCount() > 0 && text.equals(pkColumnValueCombo.getItem(0))) { - text = null; - } - ITableGenerator generator = getGenerator(); - if (generator == null) { - generator = createGenerator(); - } - generator.setSpecifiedPkColumnValue(text); - } - }; - } - - protected void generatorChanged(Notification notification) { - super.generatorChanged(notification); - if (notification.getFeatureID(ITableGenerator.class) == JpaCoreMappingsPackage.ITABLE_GENERATOR__SPECIFIED_TABLE) { - Display.getDefault().asyncExec(new Runnable() { - public void run() { - if (getControl().isDisposed()) { - return; - } - String tableName = getGenerator().getSpecifiedTable(); - if (tableName == null) { - tableNameCombo.select(0); - } - else if (!tableNameCombo.getText().equals(tableName)) { - tableNameCombo.setText(tableName); - } - populatePkColumnNameCombo(); - populateValueColumnNameCombo(); - } - }); - } - else if (notification.getFeatureID(ITableGenerator.class) == JpaCoreMappingsPackage.ITABLE_GENERATOR__SPECIFIED_PK_COLUMN_NAME) { - Display.getDefault().asyncExec(new Runnable() { - public void run() { - if (getControl().isDisposed()) { - return; - } - populatePkColumnName(); - - } - }); - } - else if (notification.getFeatureID(ITableGenerator.class) == JpaCoreMappingsPackage.ITABLE_GENERATOR__SPECIFIED_VALUE_COLUMN_NAME) { - Display.getDefault().asyncExec(new Runnable() { - public void run() { - if (getControl().isDisposed()) { - return; - } - String columnName = getGenerator().getSpecifiedValueColumnName(); - if (columnName == null) { - valueColumnNameCombo.select(0); - } - else if (!valueColumnNameCombo.getText().equals(columnName)) { - valueColumnNameCombo.setText(columnName); - } - } - }); - } - else if (notification.getFeatureID(ITableGenerator.class) == JpaCoreMappingsPackage.ITABLE_GENERATOR__SPECIFIED_PK_COLUMN_VALUE) { - Display.getDefault().asyncExec(new Runnable() { - public void run() { - if (getControl().isDisposed()) { - return; - } - String columnValue = getGenerator().getSpecifiedPkColumnValue(); - if (columnValue == null) { - pkColumnValueCombo.select(0); - } - else if (!pkColumnValueCombo.getText().equals(columnValue)) { - pkColumnValueCombo.setText(columnValue); - } - } - }); - } - } - - @Override - protected void doPopulate(EObject obj) { - super.doPopulate(obj); - if (obj == null) { - this.connectionProfile = null; - return; - } - populateTableNameCombo(); - populatePkColumnNameCombo(); - populateValueColumnNameCombo(); - populatePkColumnValueCombo(); - } - - @Override - protected void doPopulate() { - super.doPopulate(); - populateTableNameCombo(); - populatePkColumnNameCombo(); - populateValueColumnNameCombo(); - populatePkColumnValueCombo(); - } - - @Override - protected void engageListeners() { - super.engageListeners(); - if (getGenerator() != null) { - addConnectionListener(); - } - } - - @Override - protected void disengageListeners() { - if (getGenerator() != null) { - removeConnectionListener(); - } - super.disengageListeners(); - } - - private ConnectionProfile getConnectionProfile() { - if(this.connectionProfile == null) { - IJpaProject jpaProject = idMapping().getJpaProject(); - this.connectionProfile = jpaProject.connectionProfile(); - } - return this.connectionProfile; - } - - - private void addConnectionListener() { - this.getConnectionProfile().addConnectionListener(this.connectionListener); - } - - private void removeConnectionListener() { - this.getConnectionProfile().removeConnectionListener(this.connectionListener); - } - - protected Schema getSchema() { - if (getGenerator() != null) { - return this.getConnectionProfile().getDatabase().schemaNamed(getGenerator().getSchema()); - } - return null; - } - private void populateTableNameCombo() { - if (this.getGenerator() == null) { - return; - } - if (this.getConnectionProfile().isConnected()) { - this.tableNameCombo.remove(1, this.tableNameCombo.getItemCount()-1); - Schema schema = this.getSchema(); - if (schema != null) { - Iterator<String> tables = schema.tableNames(); - for (Iterator<String> stream = CollectionTools.sort(tables); stream.hasNext(); ) { - this.tableNameCombo.add(stream.next()); - } - } - } - String tableName = this.getGenerator().getSpecifiedTable(); - if (tableName != null) { - if (!this.tableNameCombo.getText().equals(tableName)) { - this.tableNameCombo.setText(tableName); - } - } - else { - this.tableNameCombo.select(0); - } - } - - private void populatePkColumnNameCombo() { - if (this.getGenerator() == null) { - return; - } - populatePkColumnChoices(); - populatePkColumnName(); - } - private void populatePkColumnChoices() { - this.pkColumnNameCombo.remove(1, this.pkColumnNameCombo.getItemCount() - 1); - - if (this.getConnectionProfile().isConnected()) { - if (!this.tableNameCombo.getText().equals(JptUiMappingsMessages.TableGeneratorComposite_default)) { // hmm, - // if - // they - // actually - // set - // the - // table - // to - // Default?? - String tableName = this.tableNameCombo.getText(); - Schema schema = getSchema(); - if (schema != null) { - Table table = schema.tableNamed(tableName); - if (table != null) { - for (Iterator<String> stream = CollectionTools.sort(table.columnNames()); stream.hasNext();) { - this.pkColumnNameCombo.add(stream.next()); - } - } - } - } - } - } - - private void populatePkColumnName() { - String pkColumnName = this.getGenerator().getSpecifiedPkColumnName(); - if (pkColumnName != null) { - if (!this.pkColumnNameCombo.getText().equals(pkColumnName)) { - this.pkColumnNameCombo.setText(pkColumnName); - } - } - else { - this.pkColumnNameCombo.select(0); - } - } - - private void populateValueColumnNameCombo() { - if (this.getGenerator() == null) { - return; - } - if (this.getConnectionProfile().isConnected()) { - this.valueColumnNameCombo.remove(1, this.valueColumnNameCombo.getItemCount() - 1); - if (!this.tableNameCombo.getText().equals(JptUiMappingsMessages.TableGeneratorComposite_default)) { // hmm, - // if - // they - // actually - // set - // the - // table - // to - // Default?? - String tableName = this.tableNameCombo.getText(); - Schema schema = getSchema(); - if (schema != null) { - Table table = schema.tableNamed(tableName); - if (table != null) { - for (Iterator<String> stream = CollectionTools.sort(table.columnNames()); stream.hasNext();) { - this.valueColumnNameCombo.add(stream.next()); - } - } - } - } - } - String valueColumnName = this.getGenerator().getSpecifiedValueColumnName(); - if (valueColumnName != null) { - if (!this.valueColumnNameCombo.getText().equals(valueColumnName)) { - this.valueColumnNameCombo.setText(valueColumnName); - } - } - else { - this.valueColumnNameCombo.select(0); - } - } - - private void populatePkColumnValueCombo() { - if (this.getGenerator() == null) { - return; - } - String pkColumnValue = this.getGenerator().getSpecifiedPkColumnValue(); - if (pkColumnValue != null) { - if (!this.pkColumnValueCombo.getText().equals(pkColumnValue)) { - this.pkColumnValueCombo.setText(pkColumnValue); - } - } - else { - this.pkColumnValueCombo.select(0); - } - } - - protected void clear() { - super.clear(); - this.tableNameCombo.select(0); - this.pkColumnNameCombo.select(0); - this.pkColumnValueCombo.select(0); - this.valueColumnNameCombo.select(0); - } - - private ConnectionListener buildConnectionListener() { - return new ConnectionListener() { - public void closed(ConnectionProfile profile) { - populate(); - } - - public void modified(ConnectionProfile profile) { - populate(); - } - - public void opened(ConnectionProfile profile) { - populate(); - } - - public void databaseChanged(ConnectionProfile profile, final Database database) { - populate(); - } - - public void schemaChanged(ConnectionProfile profile, final Schema schema) { - populate(); - } - - private void populate() { - getControl().getDisplay().asyncExec( new Runnable() { - public void run() { - if (getControl().isDisposed()) { - return; - } - populateTableNameCombo(); - populatePkColumnChoices(); - populateValueColumnNameCombo(); - } - }); - } - - public void aboutToClose(ConnectionProfile profile) { - // not interested to this event. - } - - public boolean okToClose(ConnectionProfile profile) { - // not interested to this event. - return true; - } - - public void tableChanged(ConnectionProfile profile, final Table table) { - // not interested to this event. - } - }; - } -} |