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/TargetEntityChooser.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TargetEntityChooser.java223
1 files changed, 0 insertions, 223 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TargetEntityChooser.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TargetEntityChooser.java
deleted file mode 100644
index dd5e76a6ee..0000000000
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/TargetEntityChooser.java
+++ /dev/null
@@ -1,223 +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 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.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.ui.IJavaElementSearchConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.internal.mappings.IRelationshipMapping;
-import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
-import org.eclipse.jpt.ui.internal.IJpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.details.BaseJpaController;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class TargetEntityChooser extends BaseJpaController
-{
- private IRelationshipMapping relationshipMapping;
- private Adapter relationshipMappingListener;
-
- protected CCombo targetEntityCombo;
-
-
- private Composite composite;
-
- public TargetEntityChooser(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
- super(parent, theCommandStack, widgetFactory);
- buildRelationshipMappingListener();
- }
-
-
- private void buildRelationshipMappingListener() {
- relationshipMappingListener = new AdapterImpl() {
- public void notifyChanged(Notification notification) {
- relationshipMappingChanged(notification);
- }
- };
- }
-
- @Override
- protected void buildWidget(Composite parent) {
- this.composite = getWidgetFactory().createComposite(parent);
- GridLayout gridLayout = new GridLayout();
- gridLayout.marginHeight = 0;
- gridLayout.marginWidth = 0;
- gridLayout.numColumns = 3;
- this.composite.setLayout(gridLayout);
-
- CommonWidgets.buildTargetEntityLabel(this.composite, getWidgetFactory());
-
- this.targetEntityCombo = buildTargetEntityCombo(this.composite);
- GridData gridData = new GridData();
- gridData.horizontalAlignment = GridData.FILL;
- gridData.grabExcessHorizontalSpace = true;
- this.targetEntityCombo.setLayoutData(gridData);
-
- buildTargetEntitySelectionButton(this.composite);
-
- }
-
- protected CCombo buildTargetEntityCombo(Composite parent) {
- final CCombo combo = getWidgetFactory().createCCombo(parent, SWT.FLAT);
- combo.add(JptUiMappingsMessages.TargetEntityChooser_defaultEmpty);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(combo, IJpaHelpContextIds.MAPPING_TARGET_ENTITY);
- combo.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- if (isPopulating()) {
- return;
- }
- String targetEntityName = ((CCombo) e.getSource()).getText();
- if (targetEntityName.equals(combo.getItem(0)) || targetEntityName.equals("")) { //$NON-NLS-1$
- targetEntityName = null;
- }
- else if (!relationshipMapping.targetEntityIsValid(targetEntityName)) {
- return;
- }
- relationshipMapping.setSpecifiedTargetEntity(targetEntityName);
- }
- });
- return combo;
- }
-
-
- private void relationshipMappingChanged(Notification notification) {
- if (notification.getFeatureID(IRelationshipMapping.class) ==
- JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY) {
- Display.getDefault().asyncExec(
- new Runnable() {
- public void run() {
- populate();
- }
- });
- }
- else if (notification.getFeatureID(IRelationshipMapping.class) ==
- JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY) {
- Display.getDefault().asyncExec(
- new Runnable() {
- public void run() {
- populate();
- }
- });
- }
- }
-
- @Override
- protected void engageListeners() {
- if (relationshipMapping != null) {
- relationshipMapping.eAdapters().add(relationshipMappingListener);
- }
- }
-
- @Override
- protected void disengageListeners() {
- if (this.relationshipMapping != null) {
- this.relationshipMapping.eAdapters().remove(relationshipMappingListener);
- }
- }
-
- @Override
- public void doPopulate(EObject obj) {
- this.relationshipMapping = (IRelationshipMapping) obj;
- populateCombo();
- }
-
- @Override
- protected void doPopulate() {
- populateCombo();
- }
-
- private void populateCombo() {
- if (relationshipMapping == null) {
- targetEntityCombo.clearSelection();
- return;
- }
- String targetEntity = this.relationshipMapping.getSpecifiedTargetEntity();
- this.targetEntityCombo.setItem(0, NLS.bind(JptUiMappingsMessages.TargetEntityChooser_defaultWithOneParam, this.relationshipMapping.getDefaultTargetEntity()));
- if (targetEntity != null) {
- if (!this.targetEntityCombo.getText().equals(targetEntity)) {
- this.targetEntityCombo.setText(targetEntity);
- }
- }
- else {
- if (this.targetEntityCombo.getSelectionIndex() != 0) {
- this.targetEntityCombo.select(0);
- }
- }
- }
-
- @Override
- public Control getControl() {
- return this.composite;
- }
-
- //see org.eclipse.pde.internal.ui.editor.plugin.rows.ClassAttributeRow
- //for example of the hyperlink opening a resource
- protected Button buildTargetEntitySelectionButton(Composite parent) {
- Button button = new Button(parent, SWT.PUSH);
- button.setText(JptUiMappingsMessages.TargetEntityChooser_browse);
- button.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- browse();
- }
- });
- return button;
- }
-
- protected void browse() {
- BusyIndicator.showWhile(this.targetEntityCombo.getDisplay(), new Runnable() {
- public void run() {
- doOpenSelectionDialog();
- }
- });
- }
-
- private void doOpenSelectionDialog() {
- SelectionDialog dialog;
- try {
- dialog = JavaUI.createTypeDialog(getControl().getShell(),
- PlatformUI.getWorkbench().getProgressService(),
- SearchEngine.createWorkspaceScope(),
- IJavaElementSearchConstants.CONSIDER_ALL_TYPES,
- false,
- ""); //$NON-NLS-1$
- }
- catch (JavaModelException e) {
- throw new RuntimeException(e);
- }
- dialog.setTitle("Select Type"); //$NON-NLS-1$
- if (dialog.open() == Window.OK) {
- IType type = (IType) dialog.getResult()[0];
- this.targetEntityCombo.setText(type.getFullyQualifiedName('$'));
- }
- }
-}

Back to the top