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/mappings/details/SecondaryTablesComposite.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTablesComposite.java382
1 files changed, 0 insertions, 382 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTablesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTablesComposite.java
deleted file mode 100644
index 2ff149d987..0000000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/SecondaryTablesComposite.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 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.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.mappings.IEntity;
-import org.eclipse.jpt.core.internal.mappings.ISecondaryTable;
-import org.eclipse.jpt.core.internal.mappings.ITable;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-//TODO handle xml, how to handle virtual secondaryTables, adding them to xml, are they overriden, etc??
-public class SecondaryTablesComposite extends BaseJpaComposite
-{
- private IEntity entity;
- private final Adapter entityListener;
- private final Adapter secondaryTableListener;
-
- ListViewer secondaryTablesListViewer;
-
- private Button addButton;
- private Button editButton;
- private Button removeButton;
-
- private PrimaryKeyJoinColumnsInSecondaryTableComposite pkJoinColumnsComposite;
-
- public SecondaryTablesComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
- super(parent, SWT.NULL, commandStack, widgetFactory);
- this.entityListener = buildEntityListener();
- this.secondaryTableListener = buildSecondaryTableListener();
- }
-
- private Adapter buildEntityListener() {
- return new AdapterImpl() {
- public void notifyChanged(Notification notification) {
- entityChanged(notification);
- }
- };
- }
-
- private Adapter buildSecondaryTableListener() {
- return new AdapterImpl() {
- public void notifyChanged(Notification notification) {
- seoncaryTableChanged(notification);
- }
- };
- }
-
- @Override
- protected void initializeLayout(Composite composite) {
- GridLayout layout = new GridLayout(2, false);
- layout.marginWidth = 0;
- composite.setLayout(layout);
-
- GridData gridData = new GridData();
-
- Composite secondaryTablesComposite = new Composite(composite, SWT.NONE);
- layout = new GridLayout(3, false);
- layout.marginWidth = 0;
- secondaryTablesComposite.setLayout(layout);
- gridData = new GridData();
- gridData.horizontalAlignment = GridData.FILL;
- gridData.verticalAlignment = GridData.FILL;
- gridData.grabExcessHorizontalSpace = true;
- gridData.grabExcessVerticalSpace = true;
- secondaryTablesComposite.setLayoutData(gridData);
-
- this.secondaryTablesListViewer = buildSecondaryTablesListViewer(secondaryTablesComposite);
- gridData = new GridData();
- gridData.horizontalAlignment = GridData.FILL;
- gridData.verticalAlignment = GridData.FILL;
- gridData.horizontalSpan = 3;
- gridData.grabExcessHorizontalSpace = true;
- gridData.grabExcessVerticalSpace = true;
- this.secondaryTablesListViewer.getList().setLayoutData(gridData);
- //PlatformUI.getWorkbench().getHelpSystem().setHelp(this.secondaryTablesListViewer.getList(), IJpaHelpContextIds.MAPPING_JOIN_TABLE_COLUMNS);
-
- Composite buttonsComposite = new Composite(secondaryTablesComposite, SWT.NONE);
- layout = new GridLayout(3, false);
- layout.marginWidth = 0;
- buttonsComposite.setLayout(layout);
- gridData = new GridData();
- gridData.horizontalAlignment = SWT.END;
- buttonsComposite.setLayoutData(gridData);
-
- this.addButton = new Button(buttonsComposite, SWT.NONE);
- this.addButton.setText(JptUiMappingsMessages.SecondaryTablesComposite_add);
- gridData = new GridData();
- gridData.horizontalAlignment = GridData.FILL;
- this.addButton.setLayoutData(gridData);
- this.addButton.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- // do nothing
- }
-
- public void widgetSelected(SelectionEvent e) {
- addSecondaryTable();
- }
- });
-
- this.editButton = new Button(buttonsComposite, SWT.NONE);
- this.editButton.setText(JptUiMappingsMessages.SecondaryTablesComposite_edit);
- gridData = new GridData();
- gridData.horizontalAlignment = GridData.FILL;
- this.editButton.setLayoutData(gridData);
- this.editButton.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- // do nothing
- }
-
- public void widgetSelected(SelectionEvent e) {
- editSecondaryTable();
- }
- });
-
- this.removeButton = new Button(buttonsComposite, SWT.NONE);
- this.removeButton.setText(JptUiMappingsMessages.SecondaryTablesComposite_remove);
- gridData = new GridData();
- gridData.horizontalAlignment = GridData.FILL;
- gridData.verticalAlignment = GridData.BEGINNING;
- this.removeButton.setLayoutData(gridData);
- this.removeButton.addSelectionListener(new SelectionListener() {
- public void widgetDefaultSelected(SelectionEvent e) {
- // do nothing
- }
-
- public void widgetSelected(SelectionEvent e) {
- removeSecondaryTable();
- }
- });
-
- this.pkJoinColumnsComposite = new PrimaryKeyJoinColumnsInSecondaryTableComposite(composite, this.commandStack, getWidgetFactory());
- gridData = new GridData();
- gridData.horizontalAlignment = GridData.FILL;
- gridData.verticalAlignment = GridData.FILL;
- gridData.grabExcessHorizontalSpace = true;
- gridData.grabExcessVerticalSpace = true;
- this.pkJoinColumnsComposite.getControl().setLayoutData(gridData);
- }
-
- private ListViewer buildSecondaryTablesListViewer(Composite parent) {
- ListViewer listViewer = new ListViewer(parent, SWT.SINGLE | SWT.BORDER);
- listViewer.setLabelProvider(buildSecondaryTablesListLabelProvider());
- listViewer.setContentProvider(buildSecondaryTablesListContentProvider());
-
- listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updateEnablement();
- secondaryTablesListSelectionChanged(event);
- }
- });
-
- return listViewer;
- }
-
- protected void secondaryTablesListSelectionChanged(SelectionChangedEvent event) {
- if (((StructuredSelection) event.getSelection()).isEmpty()) {
- this.pkJoinColumnsComposite.populate(null);
- this.pkJoinColumnsComposite.enableWidgets(false);
- }
- else {
- ISecondaryTable selectedSecondaryTable = getSelectedSecondaryTable();
- this.pkJoinColumnsComposite.populate(selectedSecondaryTable);
- this.pkJoinColumnsComposite.enableWidgets(true);
- }
- }
-
- private IContentProvider buildSecondaryTablesListContentProvider() {
- return new IStructuredContentProvider(){
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // do nothing
- }
-
- public void dispose() {
- // do nothing
- }
-
- public Object[] getElements(Object inputElement) {
- return ((IEntity) inputElement).getSecondaryTables().toArray();
- }
- };
- }
-
- private ILabelProvider buildSecondaryTablesListLabelProvider() {
- return new LabelProvider() {
- public String getText(Object element) {
- //TODO display a qualified name instead
- ISecondaryTable secondaryTable = (ISecondaryTable) element;
- return secondaryTable.getName();
- }
- };
- }
-
- void addSecondaryTable() {
- SecondaryTableDialog dialog = new SecondaryTableDialog(this.getControl().getShell(), this.entity);
- addSecondaryTableFromDialog(dialog);
- }
-
- private void addSecondaryTableFromDialog(SecondaryTableDialog dialog) {
- if (dialog.open() == Window.OK) {
- int index = this.entity.getSpecifiedSecondaryTables().size();
- String name = dialog.getSelectedName();
- String catalog = dialog.getSelectedCatalog();
- String schema = dialog.getSelectedSchema();
- ISecondaryTable secondaryTable = this.entity.createSecondaryTable(index);
- this.entity.getSpecifiedSecondaryTables().add(secondaryTable);
- secondaryTable.setSpecifiedName(name);
- secondaryTable.setSpecifiedCatalog(catalog);
- secondaryTable.setSpecifiedSchema(schema);
-
- this.secondaryTablesListViewer.setSelection(new StructuredSelection(secondaryTable));
- }
- }
-
- void editSecondaryTable() {
- ISecondaryTable secondaryTable = getSelectedSecondaryTable();
- SecondaryTableDialog dialog = new SecondaryTableDialog(this.getControl().getShell(), secondaryTable, this.entity);
- editSecondaryTableFromDialog(dialog, secondaryTable);
- }
-
- private void editSecondaryTableFromDialog(SecondaryTableDialog dialog, ISecondaryTable secondaryTable) {
- if (dialog.open() == Window.OK) {
- editSecondaryTableDialogOkd(dialog, secondaryTable);
- }
- }
-
- private void editSecondaryTableDialogOkd(SecondaryTableDialog dialog, ISecondaryTable secondaryTable) {
- String name = dialog.getSelectedName();
- String catalog = dialog.getSelectedCatalog();
- String schema = dialog.getSelectedSchema();
-
- if (secondaryTable.getSpecifiedName() == null || !secondaryTable.getSpecifiedName().equals(name)){
- secondaryTable.setSpecifiedName(name);
- }
-
- if (dialog.isDefaultCatalogSelected()) {
- if (secondaryTable.getSpecifiedCatalog() != null) {
- secondaryTable.setSpecifiedCatalog(null);
- }
- }
- else if (secondaryTable.getSpecifiedCatalog() == null || !secondaryTable.getSpecifiedCatalog().equals(catalog)){
- secondaryTable.setSpecifiedCatalog(catalog);
- }
-
- if (dialog.isDefaultSchemaSelected()) {
- if (secondaryTable.getSpecifiedSchema() != null) {
- secondaryTable.setSpecifiedSchema(null);
- }
- }
- else if (secondaryTable.getSpecifiedSchema() == null || !secondaryTable.getSpecifiedSchema().equals(schema)){
- secondaryTable.setSpecifiedSchema(schema);
- }
- }
-
- private ISecondaryTable getSelectedSecondaryTable() {
- return (ISecondaryTable) ((StructuredSelection) this.secondaryTablesListViewer.getSelection()).getFirstElement();
- }
-
-
- void removeSecondaryTable() {
- ISelection selection = this.secondaryTablesListViewer.getSelection();
- if (selection instanceof StructuredSelection) {
- for (Iterator<ISecondaryTable> i = ((StructuredSelection) selection).iterator(); i.hasNext(); ) {
- this.entity.getSpecifiedSecondaryTables().remove(i.next());
- }
- }
- }
-
- void updateEnablement() {
- this.editButton.setEnabled(!((StructuredSelection) this.secondaryTablesListViewer.getSelection()).isEmpty());
- this.removeButton.setEnabled(!((StructuredSelection) this.secondaryTablesListViewer.getSelection()).isEmpty());
- }
-
- public void doPopulate(EObject obj) {
- this.entity = (IEntity) obj;
- if (this.entity == null) {
- this.secondaryTablesListViewer.setInput(null);
- return;
- }
-
- this.secondaryTablesListViewer.setInput(this.entity);
- if (!this.entity.getSecondaryTables().isEmpty()) {
- this.secondaryTablesListViewer.setSelection(new StructuredSelection(this.entity.getSecondaryTables().get(0)));
- }
- else {
- this.secondaryTablesListViewer.setSelection(null);
- }
- updateEnablement();
- }
-
- @Override
- protected void doPopulate() {
- }
-
- protected void engageListeners() {
- if (this.entity != null) {
- this.entity.eAdapters().add(this.entityListener);
- for (ISecondaryTable secondaryTable : this.entity.getSecondaryTables()) {
- secondaryTable.eAdapters().add(this.secondaryTableListener);
- }
- }
- }
-
- protected void disengageListeners() {
- if (this.entity != null) {
- for (ISecondaryTable secondaryTable : this.entity.getSecondaryTables()) {
- secondaryTable.eAdapters().remove(this.secondaryTableListener);
- }
- this.entity.eAdapters().remove(this.entityListener);
- }
- }
-
- protected void entityChanged(Notification notification) {
- if (notification.getFeatureID(IEntity.class) == JpaCoreMappingsPackage.IENTITY__SPECIFIED_SECONDARY_TABLES) {
- if (notification.getEventType() == Notification.ADD) {
- ((ISecondaryTable) notification.getNewValue()).eAdapters().add(this.secondaryTableListener);
- }
- else if (notification.getEventType() == Notification.REMOVE) {
- ((ISecondaryTable) notification.getOldValue()).eAdapters().remove(this.secondaryTableListener);
- }
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- if (getControl().isDisposed()) {
- return;
- }
- secondaryTablesListViewer.refresh();
- updateEnablement();
- }
- });
- }
- }
-
- protected void seoncaryTableChanged(Notification notification) {
- if (notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_NAME
- || notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_CATALOG
- || notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__SPECIFIED_SCHEMA
- || notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_CATALOG
- || notification.getFeatureID(ITable.class) == JpaCoreMappingsPackage.ITABLE__DEFAULT_SCHEMA) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- if (getControl().isDisposed()) {
- return;
- }
- secondaryTablesListViewer.refresh();
- }
- });
- }
- }
-}

Back to the top