diff options
author | tle | 2008-11-12 19:28:23 +0000 |
---|---|---|
committer | tle | 2008-11-12 19:28:23 +0000 |
commit | b70b07c9803e1a7f37cbcfc680080078d3c40603 (patch) | |
tree | 8edb4bf4f15795bff7ec22220ee00e12ca3f7888 | |
parent | 9b40d0ab99efd0c89a7e685999db73f567230cdb (diff) | |
download | webtools.dali-b70b07c9803e1a7f37cbcfc680080078d3c40603.tar.gz webtools.dali-b70b07c9803e1a7f37cbcfc680080078d3c40603.tar.xz webtools.dali-b70b07c9803e1a7f37cbcfc680080078d3c40603.zip |
247113 - Same mapping files can be registered with XML Mapping Files of the General tab
2 files changed, 31 insertions, 4 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitClassesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitClassesComposite.java index 09cac00811..acb6b247a0 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitClassesComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitClassesComposite.java @@ -32,8 +32,8 @@ import org.eclipse.jpt.ui.internal.JpaMappingImageHelper; import org.eclipse.jpt.ui.internal.JptUiIcons; import org.eclipse.jpt.ui.internal.JptUiMessages; import org.eclipse.jpt.ui.internal.persistence.JptUiPersistenceMessages; -import org.eclipse.jpt.ui.internal.widgets.Pane; import org.eclipse.jpt.ui.internal.widgets.AddRemoveListPane; +import org.eclipse.jpt.ui.internal.widgets.Pane; import org.eclipse.jpt.ui.internal.widgets.AddRemovePane.Adapter; import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter; import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter; @@ -98,11 +98,25 @@ public class PersistenceUnitClassesComposite extends Pane<PersistenceUnit> IType type = chooseType(); if (type != null) { + String className = type.getFullyQualifiedName('.'); + if(classRefExists(className)) { + return; + } ClassRef classRef = getSubject().addSpecifiedClassRef(); - classRef.setClassName(type.getFullyQualifiedName('.')); + classRef.setClassName(className); listSelectionModel.setSelectedValue(classRef); } } + + private boolean classRefExists(String className) { + for ( ListIterator<ClassRef> i = getSubject().specifiedClassRefs(); i.hasNext(); ) { + ClassRef classRef = i.next(); + if( classRef.getClassName().equals(className)) { + return true; + } + } + return false; + } private Adapter buildAdapter() { return new AddRemoveListPane.AbstractAdapter() { diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitMappingFilesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitMappingFilesComposite.java index 01a6ad979e..60518d703e 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitMappingFilesComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/persistence/details/PersistenceUnitMappingFilesComposite.java @@ -244,15 +244,28 @@ public abstract class PersistenceUnitMappingFilesComposite extends Pane<Persiste for (Object result : dialog.getResult()) { IFile file = (IFile) result; IPath filePath = removeSourcePath(file); - + String fileName = filePath.toPortableString(); + if(mappingFileRefExists(fileName)) { + continue; + } MappingFileRef mappingFileRef = getSubject().addSpecifiedMappingFileRef(index++); - mappingFileRef.setFileName(filePath.toPortableString()); + mappingFileRef.setFileName(fileName); listSelectionModel.addSelectedValue(mappingFileRef); } } }; } + + private boolean mappingFileRefExists(String fileName) { + for ( ListIterator<MappingFileRef> i = getSubject().specifiedMappingFileRefs(); i.hasNext(); ) { + MappingFileRef mappingFileRef = i.next(); + if( mappingFileRef.getFileName().equals(fileName)) { + return true; + } + } + return false; + } private ISelectionStatusValidator buildValidator() { return new ISelectionStatusValidator() { |