Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ReferenceTableComposite.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ReferenceTableComposite.java424
1 files changed, 0 insertions, 424 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ReferenceTableComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ReferenceTableComposite.java
deleted file mode 100644
index 5721341c17..0000000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ReferenceTableComposite.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 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.details;
-
-import java.util.Collection;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.ReferenceTable;
-import org.eclipse.jpt.core.context.Table;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.db.SchemaContainer;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.JoinColumnsComposite.JoinColumnsEditor;
-import org.eclipse.jpt.ui.internal.details.db.CatalogCombo;
-import org.eclipse.jpt.ui.internal.details.db.SchemaCombo;
-import org.eclipse.jpt.ui.internal.details.db.TableCombo;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.ui.internal.widgets.PostExecution;
-import org.eclipse.jpt.utility.internal.model.value.CachingTransformationPropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ListPropertyValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ReadOnlyWritablePropertyValueModelWrapper;
-import org.eclipse.jpt.utility.internal.model.value.ValueListAdapter;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-
-public abstract class ReferenceTableComposite<T extends ReferenceTable> extends Pane<T>
-{
- protected Button overrideDefaultJoinColumnsCheckBox;
-
- protected JoinColumnsComposite<T> joinColumnsComposite;
-
- /**
- * Creates a new <code>ReferenceTableComposite</code>.
- *
- * @param parentPane The parent container of this one
- * @param subjectHolder The holder of this pane's subject
- * @param parent The parent container
- */
- protected ReferenceTableComposite(
- Pane<?> parentPane,
- PropertyValueModel<? extends T> subjectHolder,
- Composite parent) {
-
- super(parentPane, subjectHolder, parent, false);
- }
-
- /**
- * Creates a new <code>ReferenceTableComposite</code>.
- *
- * @param subjectHolder The holder of the subject <code>CollectionTable2_0</code>
- * @param parent The parent container
- * @param widgetFactory The factory used to create various common widgets
- */
- protected ReferenceTableComposite(PropertyValueModel<? extends T> subjectHolder,
- Composite parent,
- WidgetFactory widgetFactory) {
-
- super(subjectHolder, parent, widgetFactory);
- }
-
-
- protected void installJoinColumnsPaneEnabler(JoinColumnsComposite<T> pane) {
- pane.installJoinColumnsPaneEnabler(new JoinColumnPaneEnablerHolder());
- }
-
- private void addJoinColumn(T referenceTable) {
-
- JoinColumnInReferenceTableDialog dialog =
- new JoinColumnInReferenceTableDialog(getShell(), referenceTable, null);
-
- dialog.openDialog(buildAddJoinColumnPostExecution());
- }
-
- private void addJoinColumnFromDialog(JoinColumnInReferenceTableStateObject stateObject) {
- int index = getSubject().specifiedJoinColumnsSize();
-
- JoinColumn joinColumn = getSubject().addSpecifiedJoinColumn(index);
- stateObject.updateJoinColumn(joinColumn);
- this.setSelectedJoinColumn(joinColumn);
- }
-
- private void setSelectedJoinColumn(JoinColumn joinColumn) {
- this.joinColumnsComposite.setSelectedJoinColumn(joinColumn);
- }
-
- private PostExecution<JoinColumnInReferenceTableDialog> buildAddJoinColumnPostExecution() {
- return new PostExecution<JoinColumnInReferenceTableDialog>() {
- public void execute(JoinColumnInReferenceTableDialog dialog) {
- if (dialog.wasConfirmed()) {
- addJoinColumnFromDialog(dialog.getSubject());
- }
- }
- };
- }
-
- private PostExecution<JoinColumnInReferenceTableDialog> buildEditJoinColumnPostExecution() {
- return new PostExecution<JoinColumnInReferenceTableDialog>() {
- public void execute(JoinColumnInReferenceTableDialog dialog) {
- if (dialog.wasConfirmed()) {
- editJoinColumn(dialog.getSubject());
- }
- }
- };
- }
-
- protected JoinColumnsProvider buildJoinColumnsEditor() {
- return new JoinColumnsProvider();
- }
-
- protected WritablePropertyValueModel<Boolean> buildOverrideDefaultJoinColumnHolder() {
- return new OverrideDefaultJoinColumnHolder();
- }
-
- private ListValueModel<JoinColumn> buildSpecifiedJoinColumnsListHolder() {
- return new ListAspectAdapter<T, JoinColumn>(getSubjectHolder(), ReferenceTable.SPECIFIED_JOIN_COLUMNS_LIST) {
- @Override
- protected ListIterator<JoinColumn> listIterator_() {
- return this.subject.specifiedJoinColumns();
- }
-
- @Override
- protected int size_() {
- return this.subject.specifiedJoinColumnsSize();
- }
- };
- }
-
- protected Composite addPane(Composite container, int groupBoxMargin) {
- return addSubPane(container, 0, groupBoxMargin, 10, groupBoxMargin);
- }
-
- protected TableCombo<T> addTableCombo(Composite container) {
-
- return new TableCombo<T>(this, container) {
-
- @Override
- protected void addPropertyNames(Collection<String> propertyNames) {
- super.addPropertyNames(propertyNames);
- propertyNames.add(Table.DEFAULT_NAME_PROPERTY);
- propertyNames.add(Table.SPECIFIED_NAME_PROPERTY);
- propertyNames.add(Table.DEFAULT_SCHEMA_PROPERTY);
- propertyNames.add(Table.SPECIFIED_SCHEMA_PROPERTY);
- propertyNames.add(Table.DEFAULT_CATALOG_PROPERTY);
- propertyNames.add(Table.SPECIFIED_CATALOG_PROPERTY);
- }
-
- @Override
- protected void propertyChanged(String propertyName) {
- super.propertyChanged(propertyName);
- if (propertyName == Table.DEFAULT_SCHEMA_PROPERTY
- || propertyName == Table.SPECIFIED_SCHEMA_PROPERTY
- || propertyName == Table.DEFAULT_CATALOG_PROPERTY
- || propertyName == Table.SPECIFIED_CATALOG_PROPERTY ) {
- repopulate();
- }
- }
-
- @Override
- protected String getDefaultValue() {
- return this.getSubject().getDefaultName();
- }
-
- @Override
- protected void setValue(String value) {
- this.getSubject().setSpecifiedName(value);
- }
-
- @Override
- protected String getValue() {
- return this.getSubject().getSpecifiedName();
- }
-
- @Override
- protected Schema getDbSchema_() {
- return this.getSubject().getDbSchema();
- }
-
- };
- }
-
- protected SchemaCombo<T> addSchemaCombo(Composite container) {
-
- return new SchemaCombo<T>(this, container) {
-
- @Override
- protected void addPropertyNames(Collection<String> propertyNames) {
- super.addPropertyNames(propertyNames);
- propertyNames.add(Table.DEFAULT_SCHEMA_PROPERTY);
- propertyNames.add(Table.SPECIFIED_SCHEMA_PROPERTY);
- propertyNames.add(Table.DEFAULT_CATALOG_PROPERTY);
- propertyNames.add(Table.SPECIFIED_CATALOG_PROPERTY);
- }
-
- @Override
- protected void propertyChanged(String propertyName) {
- super.propertyChanged(propertyName);
- if (propertyName == Table.DEFAULT_CATALOG_PROPERTY
- || propertyName == Table.SPECIFIED_CATALOG_PROPERTY ) {
- repopulate();
- }
- }
-
- @Override
- protected String getDefaultValue() {
- return this.getSubject().getDefaultSchema();
- }
-
- @Override
- protected void setValue(String value) {
- this.getSubject().setSpecifiedSchema(value);
- }
-
- @Override
- protected String getValue() {
- return this.getSubject().getSpecifiedSchema();
- }
-
- @Override
- protected SchemaContainer getDbSchemaContainer_() {
- return this.getSubject().getDbSchemaContainer();
- }
- };
- }
-
- protected CatalogCombo<T> addCatalogCombo(Composite container) {
-
- return new CatalogCombo<T>(this, container) {
-
- @Override
- protected void addPropertyNames(Collection<String> propertyNames) {
- super.addPropertyNames(propertyNames);
- propertyNames.add(Table.DEFAULT_CATALOG_PROPERTY);
- propertyNames.add(Table.SPECIFIED_CATALOG_PROPERTY);
- }
-
- @Override
- protected String getDefaultValue() {
- return this.getSubject().getDefaultCatalog();
- }
-
- @Override
- protected void setValue(String value) {
- this.getSubject().setSpecifiedCatalog(value);
- }
-
- @Override
- protected String getValue() {
- return this.getSubject().getSpecifiedCatalog();
- }
- };
- }
-
- private void editJoinColumn(JoinColumn joinColumn) {
-
- JoinColumnInReferenceTableDialog dialog =
- new JoinColumnInReferenceTableDialog(getShell(), getSubject(), joinColumn);
-
- dialog.openDialog(buildEditJoinColumnPostExecution());
- }
-
- private void editJoinColumn(JoinColumnInReferenceTableStateObject stateObject) {
- stateObject.updateJoinColumn(stateObject.getJoinColumn());
- }
-
- private void updateJoinColumns() {
- if (this.isPopulating()) {
- return;
- }
-
- T referenceTable = this.getSubject();
- if (referenceTable == null) {
- return;
- }
-
- boolean selected = this.overrideDefaultJoinColumnsCheckBox.getSelection();
- this.setPopulating(true);
-
- try {
- if (selected) {
- referenceTable.convertDefaultToSpecifiedJoinColumn();
- setSelectedJoinColumn(referenceTable.specifiedJoinColumns().next());
- } else {
- for (int index = referenceTable.specifiedJoinColumnsSize(); --index >= 0; ) {
- referenceTable.removeSpecifiedJoinColumn(index);
- }
- }
- } finally {
- this.setPopulating(false);
- }
- }
-
- private class JoinColumnsProvider implements JoinColumnsEditor<T> {
-
- public void addJoinColumn(T subject) {
- ReferenceTableComposite.this.addJoinColumn(subject);
- }
-
- public JoinColumn getDefaultJoinColumn(T subject) {
- return subject.getDefaultJoinColumn();
- }
-
- public String getDefaultPropertyName() {
- return ReferenceTable.DEFAULT_JOIN_COLUMN;
- }
-
- public void editJoinColumn(T subject, JoinColumn joinColumn) {
- ReferenceTableComposite.this.editJoinColumn(joinColumn);
- }
-
- public boolean hasSpecifiedJoinColumns(T subject) {
- return subject.hasSpecifiedJoinColumns();
- }
-
- public void removeJoinColumns(T subject, int[] selectedIndices) {
- for (int index = selectedIndices.length; --index >= 0; ) {
- subject.removeSpecifiedJoinColumn(selectedIndices[index]);
- }
- }
-
- public ListIterator<JoinColumn> specifiedJoinColumns(T subject) {
- return subject.specifiedJoinColumns();
- }
-
- public int specifiedJoinColumnsSize(T subject) {
- return subject.specifiedJoinColumnsSize();
- }
-
- public String getSpecifiedJoinColumnsListPropertyName() {
- return ReferenceTable.SPECIFIED_JOIN_COLUMNS_LIST;
- }
- }
-
-
- private class OverrideDefaultJoinColumnHolder extends ListPropertyValueModelAdapter<Boolean>
- implements WritablePropertyValueModel<Boolean> {
-
- public OverrideDefaultJoinColumnHolder() {
- super(buildSpecifiedJoinColumnsListHolder());
- }
-
- @Override
- protected Boolean buildValue() {
- return Boolean.valueOf(this.listHolder.size() > 0);
- }
-
- public void setValue(Boolean value) {
- updateJoinColumns();
- }
- }
-
-
- private class JoinColumnPaneEnablerHolder
- extends CachingTransformationPropertyValueModel<T, Boolean>
- {
- private StateChangeListener stateChangeListener;
-
-
- public JoinColumnPaneEnablerHolder() {
- super(
- new ValueListAdapter<T>(
- new ReadOnlyWritablePropertyValueModelWrapper(getSubjectHolder()),
- ReferenceTable.SPECIFIED_JOIN_COLUMNS_LIST));
- this.stateChangeListener = buildStateChangeListener();
- }
-
-
- private StateChangeListener buildStateChangeListener() {
- return new StateChangeListener() {
- public void stateChanged(StateChangeEvent event) {
- valueStateChanged(event);
- }
- };
- }
-
- private void valueStateChanged(StateChangeEvent event) {
- Object oldValue = this.cachedValue;
- Object newValue = transformNew(this.valueHolder.getValue());
- firePropertyChanged(VALUE, oldValue, newValue);
- }
-
- @Override
- protected Boolean transform(T value) {
- if (value == null) {
- return Boolean.FALSE;
- }
- return super.transform(value);
- }
-
- @Override
- protected Boolean transform_(T value) {
- boolean virtual = ReferenceTableComposite.this.isParentVirtual(value);
- return Boolean.valueOf(! virtual && value.specifiedJoinColumnsSize() > 0);
- }
-
- @Override
- protected void engageModel() {
- super.engageModel();
- this.valueHolder.addStateChangeListener(this.stateChangeListener);
- }
-
- @Override
- protected void disengageModel() {
- this.valueHolder.removeStateChangeListener(this.stateChangeListener);
- super.disengageModel();
- }
- }
-
- protected abstract boolean isParentVirtual(T referenceTable);
-} \ No newline at end of file

Back to the top