diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPackageChooser.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPackageChooser.java | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPackageChooser.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPackageChooser.java deleted file mode 100644 index fbaf451347..0000000000 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/xml/details/XmlPackageChooser.java +++ /dev/null @@ -1,255 +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.xml.details; - -import org.eclipse.core.resources.IProject; -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.IJavaProject; -import org.eclipse.jdt.core.IPackageFragment; -import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper; -import org.eclipse.jdt.internal.ui.refactoring.contentassist.JavaPackageCompletionProcessor; -import org.eclipse.jdt.ui.JavaElementLabelProvider; -import org.eclipse.jdt.ui.JavaUI; -import org.eclipse.jface.text.contentassist.IContentAssistProcessor; -import org.eclipse.jface.window.Window; -import org.eclipse.jpt.core.internal.XmlEObject; -import org.eclipse.jpt.core.internal.content.orm.EntityMappings; -import org.eclipse.jpt.core.internal.content.orm.EntityMappingsInternal; -import org.eclipse.jpt.core.internal.content.orm.OrmPackage; -import org.eclipse.jpt.ui.internal.JptUiPlugin; -import org.eclipse.jpt.ui.internal.details.BaseJpaController; -import org.eclipse.jpt.ui.internal.xml.JptUiXmlMessages; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -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.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.dialogs.SelectionDialog; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; - -public class XmlPackageChooser extends BaseJpaController -{ - private EntityMappingsInternal entityMappings; - private Adapter entityMappingsListener; - private IContentAssistProcessor contentAssistProcessor; - - private Composite composite; - private Text text; - - - public XmlPackageChooser(Composite parent, CommandStack theCommandStack, TabbedPropertySheetWidgetFactory widgetFactory) { - super(parent, theCommandStack, widgetFactory); - buildSchemaHolderListener(); - } - - - private void buildSchemaHolderListener() { - this.entityMappingsListener = new AdapterImpl() { - public void notifyChanged(Notification notification) { - entityMappingsChanged(notification); - } - }; - } - - @Override - protected void buildWidget(Composite parent) { - this.composite = getWidgetFactory().createComposite(parent); - GridLayout gridLayout = new GridLayout(); - gridLayout.marginHeight = 0; - gridLayout.marginWidth = 1; - gridLayout.numColumns = 2; - this.composite.setLayout(gridLayout); - this.text = getWidgetFactory().createText(this.composite, ""); - GridData data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - this.text.setLayoutData(data); - this.contentAssistProcessor = new JavaPackageCompletionProcessor(new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_ROOT)); - ControlContentAssistHelper.createTextContentAssistant(this.text, this.contentAssistProcessor); - - this.text.addModifyListener( - new ModifyListener() { - public void modifyText(ModifyEvent e) { - textModified(e); - } - }); - - Button browseButton = getWidgetFactory().createButton(this.composite, "Browse...", SWT.FLAT); - data = new GridData(); - browseButton.setLayoutData(data); - browseButton.addSelectionListener(new SelectionListener() { - public void widgetSelected(SelectionEvent e) { - IPackageFragment packageFragment = choosePackage(); - if (packageFragment != null) { - text.setText(packageFragment.getElementName()); - } - } - public void widgetDefaultSelected(SelectionEvent e) { - IPackageFragment packageFragment = choosePackage(); - if (packageFragment != null) { - text.setText(packageFragment.getElementName()); - } - } - }); - } - - private void textModified(ModifyEvent e) { - if (isPopulating()) { - return; - } - - String text = ((Text) e.getSource()).getText(); - this.entityMappings.setPackage(text); - //TODO set a JEM Package?? - //.setJavaClass(JavaRefFactory.eINSTANCE.createClassRef(text)); - - // TODO Does this need to be done? - //this.editingDomain.getCommandStack().execute(SetCommand.create(this.editingDomain, this.entity, MappingsPackage.eINSTANCE.getEntity_SpecifiedName(), text)); - } - - private void entityMappingsChanged(Notification notification) { - if (notification.getFeatureID(EntityMappings.class) == - OrmPackage.ENTITY_MAPPINGS__PACKAGE) { - Display.getDefault().asyncExec( - new Runnable() { - public void run() { - populate(); - } - }); - } - } - - @Override - protected void engageListeners() { - if (this.entityMappings != null) { - entityMappings.eAdapters().add(this.entityMappingsListener); - } - } - - @Override - protected void disengageListeners() { - if (this.entityMappings != null) { - this.entityMappings.eAdapters().remove(this.entityMappingsListener); - } - } - - @Override - public void doPopulate(EObject obj) { - this.entityMappings = (EntityMappingsInternal) obj; - populateText(); - } - - @Override - protected void doPopulate() { - populateText(); - } - - private void populateText() { - if (entityMappings == null) { - text.clearSelection(); - return; - } - - IPackageFragmentRoot root = getPackageFragmentRoot(); - if (root != null) { - ((JavaPackageCompletionProcessor)this.contentAssistProcessor).setPackageFragmentRoot(root); - } - - String package_ = this.entityMappings.getPackage(); - - if (package_ == null) { - setTextData(""); - } - else { - setTextData(package_); - } - } - - private IPackageFragmentRoot getPackageFragmentRoot() { - IProject project = ((XmlEObject) this.entityMappings).getJpaProject().getProject(); - IJavaProject root = JavaCore.create(project); - try { - return root.getAllPackageFragmentRoots()[0]; - } - catch (JavaModelException e) { - JptUiPlugin.log(e); - } - return null; - } - - private void setTextData(String textData) { - if (! textData.equals(text.getText())) { - text.setText(textData); - } - } - - @Override - public Control getControl() { - return this.composite; - } - - /** - * Opens a selection dialog that allows to select a package. - * - * @return returns the selected package or <code>null</code> if the dialog has been canceled. - * The caller typically sets the result to the package input field. - * <p> - * Clients can override this method if they want to offer a different dialog. - * </p> - * - * @since 3.2 - */ - protected IPackageFragment choosePackage() { - SelectionDialog selectionDialog; - try { - selectionDialog = JavaUI.createPackageDialog(text.getShell(), getPackageFragmentRoot()); - } - catch (JavaModelException e) { - JptUiPlugin.log(e); - throw new RuntimeException(e); - } - selectionDialog.setTitle(JptUiXmlMessages.XmlPackageChooser_PackageDialog_title); - selectionDialog.setMessage(JptUiXmlMessages.XmlPackageChooser_PackageDialog_message); - selectionDialog.setHelpAvailable(false); - IPackageFragment pack= getPackageFragment(); - if (pack != null) { - selectionDialog.setInitialSelections(new Object[] { pack }); - } - - if (selectionDialog.open() == Window.OK) { - return (IPackageFragment) selectionDialog.getResult()[0]; - } - return null; - } - - /** - * Returns the package fragment corresponding to the current input. - * - * @return a package fragment or <code>null</code> if the input - * could not be resolved. - */ - public IPackageFragment getPackageFragment() { - String packageString = this.text.getText(); - return getPackageFragmentRoot().getPackageFragment(packageString); - } -} |