diff options
author | pfullbright | 2009-04-20 21:49:03 +0000 |
---|---|---|
committer | pfullbright | 2009-04-20 21:49:03 +0000 |
commit | 5b68dea7f326575e54523a16f0c1df271d93667d (patch) | |
tree | faeef4a1dd5e4c866c3674f10b115e4ff658ed92 | |
parent | 6cf6ce877c047467142d572c46f11f5ecda76c2e (diff) | |
download | webtools.dali-5b68dea7f326575e54523a16f0c1df271d93667d.tar.gz webtools.dali-5b68dea7f326575e54523a16f0c1df271d93667d.tar.xz webtools.dali-5b68dea7f326575e54523a16f0c1df271d93667d.zip |
added jar files to structure view/navigator
8 files changed, 220 insertions, 20 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-jar-file.gif b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-jar-file.gif Binary files differnew file mode 100644 index 0000000000..e92828d2d9 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.ui/icons/full/obj16/jpa-jar-file.gif diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java index eb5fe697ce..f113159cb0 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/JptUiIcons.java @@ -31,6 +31,8 @@ public class JptUiIcons public static final String JPA_FILE = "full/obj16/jpa-file"; //$NON-NLS-1$ + public static final String JAR_FILE = "full/obj16/jpa-jar-file"; //$NON-NLS-1$ + public static final String WARNING = "full/obj16/warning"; //$NON-NLS-1$ @@ -52,6 +54,8 @@ public class JptUiIcons public static final String MAPPING_FILE_REF = "full/obj16/jpa-file"; //$NON-NLS-1$ public static final String CLASS_REF = "full/obj16/null-type-mapping"; //$NON-NLS-1$ + + public static final String JAR_FILE_REF = "full/obj16/jpa-jar-file"; //$NON-NLS-1$ // **************** Orm icons ********************************************** diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/JarFileItemLabelProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/JarFileItemLabelProvider.java new file mode 100644 index 0000000000..128f96fbbc --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jface/JarFileItemLabelProvider.java @@ -0,0 +1,46 @@ +/******************************************************************************* + * Copyright (c) 2009 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.jface; + +import org.eclipse.jpt.core.context.java.JarFile; +import org.eclipse.jpt.ui.JptUiPlugin; +import org.eclipse.jpt.ui.internal.JptUiIcons; +import org.eclipse.jpt.ui.jface.DelegatingContentAndLabelProvider; +import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel; +import org.eclipse.jpt.utility.model.value.PropertyValueModel; +import org.eclipse.swt.graphics.Image; + +public class JarFileItemLabelProvider extends AbstractItemLabelProvider +{ + public JarFileItemLabelProvider( + JarFile jarFile, DelegatingContentAndLabelProvider labelProvider) { + super(jarFile, labelProvider); + } + + + @Override + protected PropertyValueModel<Image> buildImageModel() { + return new StaticPropertyValueModel<Image>(JptUiPlugin.getImage(JptUiIcons.JAR_FILE)); + } + + @Override + protected PropertyValueModel<String> buildTextModel() { + return new StaticPropertyValueModel<String>(((JarFile) model()).getResource().getName()); + } + + @Override + protected PropertyValueModel<String> buildDescriptionModel() { + JarFile jarFile = (JarFile) model(); + return new StaticPropertyValueModel<String>( + jarFile.getResource().getName() + + " - " + jarFile.getResource().getParent().getFullPath().makeRelative().toString()); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemContentProviderFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemContentProviderFactory.java index 528b801941..2f1c558a18 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemContentProviderFactory.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemContentProviderFactory.java @@ -13,16 +13,17 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; - import org.eclipse.jpt.core.context.JpaContextNode; import org.eclipse.jpt.core.context.JpaRootContextNode; import org.eclipse.jpt.core.context.MappingFile; import org.eclipse.jpt.core.context.PersistentAttribute; import org.eclipse.jpt.core.context.PersistentType; +import org.eclipse.jpt.core.context.java.JarFile; import org.eclipse.jpt.core.context.java.JavaPersistentType; import org.eclipse.jpt.core.context.orm.OrmPersistentType; import org.eclipse.jpt.core.context.orm.OrmXml; import org.eclipse.jpt.core.context.persistence.ClassRef; +import org.eclipse.jpt.core.context.persistence.JarFileRef; import org.eclipse.jpt.core.context.persistence.MappingFileRef; import org.eclipse.jpt.core.context.persistence.PersistenceUnit; import org.eclipse.jpt.core.context.persistence.PersistenceXml; @@ -97,6 +98,7 @@ public class GenericNavigatorItemContentProviderFactory list.add(buildSpecifiedOrmXmlCvm()); list.add(buildImpliedMappingFileCvm()); list.add(buildPersistentTypeCvm()); + list.add(buildJarFileCvm()); return new CompositeCollectionValueModel<CollectionValueModel<? extends JpaContextNode>, JpaContextNode>(list); } @@ -211,5 +213,42 @@ public class GenericNavigatorItemContentProviderFactory } }; } + + protected CollectionValueModel<JpaContextNode> buildJarFileCvm() { + return new FilteringCollectionValueModel<JpaContextNode>( + new ListCollectionValueModelAdapter<JarFile>( + new TransformationListValueModelAdapter<JarFileRef, JarFile>( + new ItemPropertyListValueModelAdapter<JarFileRef>(buildJarFileRefCvm(), JarFileRef.JAR_FILE_PROPERTY)) { + @Override + protected JarFile transformItem(JarFileRef item) { + return item.getJarFile(); + } + })) { + @Override + protected Iterator<JpaContextNode> filter(Iterator<? extends JpaContextNode> items) { + return new FilteringIterator<JpaContextNode, JpaContextNode>(items) { + @Override + protected boolean accept(JpaContextNode o) { + return o != null; + } + }; + } + }; + } + + protected CollectionValueModel<JarFileRef> buildJarFileRefCvm() { + return new ListCollectionValueModelAdapter<JarFileRef>( + new ListAspectAdapter<PersistenceUnit, JarFileRef>( + PersistenceUnit.JAR_FILE_REFS_LIST, getModel()) { + @Override + protected ListIterator<JarFileRef> listIterator_() { + return subject.jarFileRefs(); + } + @Override + protected int size_() { + return subject.jarFileRefsSize(); + } + }); + } } } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemLabelProviderFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemLabelProviderFactory.java index 7ff974ca6d..6496b7f6ee 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemLabelProviderFactory.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/GenericNavigatorItemLabelProviderFactory.java @@ -12,9 +12,11 @@ package org.eclipse.jpt.ui.internal.platform.generic; import org.eclipse.jpt.core.context.JpaRootContextNode; import org.eclipse.jpt.core.context.PersistentAttribute; import org.eclipse.jpt.core.context.PersistentType; +import org.eclipse.jpt.core.context.java.JarFile; import org.eclipse.jpt.core.context.orm.OrmXml; import org.eclipse.jpt.core.context.persistence.PersistenceUnit; import org.eclipse.jpt.core.context.persistence.PersistenceXml; +import org.eclipse.jpt.ui.internal.jface.JarFileItemLabelProvider; import org.eclipse.jpt.ui.jface.DelegatingContentAndLabelProvider; import org.eclipse.jpt.ui.jface.ItemLabelProvider; import org.eclipse.jpt.ui.jface.ItemLabelProviderFactory; @@ -41,6 +43,9 @@ public class GenericNavigatorItemLabelProviderFactory else if (item instanceof PersistentAttribute) { return new PersistentAttributeItemLabelProvider((PersistentAttribute) item, contentAndLabelProvider); } + else if (item instanceof JarFile) { + return new JarFileItemLabelProvider((JarFile) item, contentAndLabelProvider); + } return null; } } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/JarFileRefItemLabelProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/JarFileRefItemLabelProvider.java new file mode 100644 index 0000000000..3154f64654 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/generic/JarFileRefItemLabelProvider.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * Copyright (c) 2009 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.platform.generic; + +import org.eclipse.jpt.core.context.persistence.JarFileRef; +import org.eclipse.jpt.ui.JptUiPlugin; +import org.eclipse.jpt.ui.internal.JptUiIcons; +import org.eclipse.jpt.ui.internal.jface.AbstractItemLabelProvider; +import org.eclipse.jpt.ui.jface.DelegatingContentAndLabelProvider; +import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; +import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel; +import org.eclipse.jpt.utility.model.value.PropertyValueModel; +import org.eclipse.swt.graphics.Image; + +public class JarFileRefItemLabelProvider extends AbstractItemLabelProvider +{ + public JarFileRefItemLabelProvider( + JarFileRef jarFileRef, DelegatingContentAndLabelProvider labelProvider) { + super(jarFileRef, labelProvider); + } + + + @Override + protected PropertyValueModel<String> buildTextModel() { + return new PropertyAspectAdapter<JarFileRef, String>(JarFileRef.FILE_NAME_PROPERTY, (JarFileRef) model()) { + @Override + protected String buildValue_() { + return subject.getFileName(); + } + }; + } + + @Override + protected PropertyValueModel<Image> buildImageModel() { + return new StaticPropertyValueModel<Image>(JptUiPlugin.getImage(JptUiIcons.JAR_FILE_REF)); + } + + @Override + protected PropertyValueModel<String> buildDescriptionModel() { + return new PropertyAspectAdapter<JarFileRef, String>(JarFileRef.FILE_NAME_PROPERTY, (JarFileRef) model()) { + @Override + protected String buildValue_() { + return subject.getPersistenceUnit().getName() + + "/\"" + subject.getFileName() + + "\" - " + subject.getResource().getFullPath().makeRelative(); + } + }; + } +} diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemContentProviderFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemContentProviderFactory.java index ede70bab5e..af59784fd0 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemContentProviderFactory.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemContentProviderFactory.java @@ -13,10 +13,10 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; - import org.eclipse.jpt.core.JpaFile; import org.eclipse.jpt.core.JpaStructureNode; import org.eclipse.jpt.core.context.persistence.ClassRef; +import org.eclipse.jpt.core.context.persistence.JarFileRef; import org.eclipse.jpt.core.context.persistence.MappingFileRef; import org.eclipse.jpt.core.context.persistence.Persistence; import org.eclipse.jpt.core.context.persistence.PersistenceUnit; @@ -26,12 +26,14 @@ import org.eclipse.jpt.ui.jface.DelegatingContentAndLabelProvider; import org.eclipse.jpt.ui.jface.TreeItemContentProvider; import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory; import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter; -import org.eclipse.jpt.utility.internal.model.value.CompositeCollectionValueModel; +import org.eclipse.jpt.utility.internal.model.value.CollectionListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel; import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter; import org.eclipse.jpt.utility.internal.model.value.ListCollectionValueModelAdapter; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter; import org.eclipse.jpt.utility.model.value.CollectionValueModel; +import org.eclipse.jpt.utility.model.value.ListValueModel; public class PersistenceItemContentProviderFactory implements TreeItemContentProviderFactory @@ -54,6 +56,9 @@ public class PersistenceItemContentProviderFactory else if (item instanceof ClassRef) { return new ClassRefItemContentProvider((ClassRef) item, treeContentProvider); } + else if (item instanceof JarFileRef) { + return new JarFileRefItemContentProvider((JarFileRef) item, treeContentProvider); + } return null; } @@ -113,8 +118,7 @@ public class PersistenceItemContentProviderFactory @Override protected CollectionValueModel<JpaStructureNode> buildChildrenModel() { - CollectionValueModel<MappingFileRef> specifiedMappingFileLvm = - new ListCollectionValueModelAdapter<MappingFileRef>( + ListValueModel<MappingFileRef> specifiedMappingFileLvm = new ListAspectAdapter<PersistenceUnit, MappingFileRef>( PersistenceUnit.SPECIFIED_MAPPING_FILE_REFS_LIST, getModel()) { @@ -126,10 +130,9 @@ public class PersistenceItemContentProviderFactory protected int size_() { return subject.specifiedMappingFileRefsSize(); } - }); + }; - CollectionValueModel<MappingFileRef> impliedMappingFileCvm = - new ListCollectionValueModelAdapter<MappingFileRef>( + ListValueModel<MappingFileRef> impliedMappingFileCvm = new PropertyListValueModelAdapter<MappingFileRef>( new PropertyAspectAdapter<PersistenceUnit, MappingFileRef>( PersistenceUnit.IMPLIED_MAPPING_FILE_REF_PROPERTY, @@ -139,9 +142,8 @@ public class PersistenceItemContentProviderFactory return subject.getImpliedMappingFileRef(); } } - )); - CollectionValueModel<ClassRef> specifiedClassCvm = - new ListCollectionValueModelAdapter<ClassRef>( + ); + ListValueModel<ClassRef> specifiedClassCvm = new ListAspectAdapter<PersistenceUnit, ClassRef>( PersistenceUnit.SPECIFIED_CLASS_REFS_LIST, getModel()) { @@ -153,27 +155,45 @@ public class PersistenceItemContentProviderFactory protected int size_() { return subject.specifiedClassRefsSize(); } - }); - CollectionValueModel<ClassRef> impliedClassCvm = - new CollectionAspectAdapter<PersistenceUnit, ClassRef>( - PersistenceUnit.IMPLIED_CLASS_REFS_COLLECTION, + }; + ListValueModel<ClassRef> impliedClassCvm = + new CollectionListValueModelAdapter( + new CollectionAspectAdapter<PersistenceUnit, ClassRef>( + PersistenceUnit.IMPLIED_CLASS_REFS_COLLECTION, + getModel()) { + @Override + protected Iterator<ClassRef> iterator_() { + return subject.impliedClassRefs(); + } + @Override + protected int size_() { + return subject.impliedClassRefsSize(); + } + }); + ListValueModel<JarFileRef> jarFileCvm = + new ListAspectAdapter<PersistenceUnit, JarFileRef>( + PersistenceUnit.JAR_FILE_REFS_LIST, getModel()) { @Override - protected Iterator<ClassRef> iterator_() { - return subject.impliedClassRefs(); + protected ListIterator<JarFileRef> listIterator_() { + return subject.jarFileRefs(); } @Override protected int size_() { - return subject.impliedClassRefsSize(); + return subject.jarFileRefsSize(); } }; - List<CollectionValueModel<? extends JpaStructureNode>> list = new ArrayList<CollectionValueModel<? extends JpaStructureNode>>(4); + List<ListValueModel<? extends JpaStructureNode>> list = new ArrayList<ListValueModel<? extends JpaStructureNode>>(4); list.add(specifiedMappingFileLvm); list.add(impliedMappingFileCvm); list.add(specifiedClassCvm); list.add(impliedClassCvm); + list.add(jarFileCvm); - return new CompositeCollectionValueModel<CollectionValueModel<? extends JpaStructureNode>, JpaStructureNode>(list); + return new ListCollectionValueModelAdapter( + new CompositeListValueModel + <ListValueModel<? extends JpaStructureNode>, JpaStructureNode> + (list)); } } @@ -224,4 +244,28 @@ public class PersistenceItemContentProviderFactory return false; } } + + + public static class JarFileRefItemContentProvider extends AbstractTreeItemContentProvider<JarFileRef> + { + public JarFileRefItemContentProvider( + JarFileRef jarFileRef, DelegatingTreeContentAndLabelProvider contentProvider) { + super(jarFileRef, contentProvider); + } + + @Override + public JarFileRef getModel() { + return (JarFileRef) super.getModel(); + } + + @Override + public Object getParent() { + return getModel().getPersistenceUnit(); + } + + @Override + public boolean hasChildren() { + return false; + } + } } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemLabelProviderFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemLabelProviderFactory.java index 08196cfa6c..6a3496a310 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemLabelProviderFactory.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/structure/PersistenceItemLabelProviderFactory.java @@ -10,10 +10,12 @@ package org.eclipse.jpt.ui.internal.structure; import org.eclipse.jpt.core.context.persistence.ClassRef; +import org.eclipse.jpt.core.context.persistence.JarFileRef; import org.eclipse.jpt.core.context.persistence.MappingFileRef; import org.eclipse.jpt.core.context.persistence.Persistence; import org.eclipse.jpt.core.context.persistence.PersistenceUnit; import org.eclipse.jpt.ui.internal.platform.generic.ClassRefItemLabelProvider; +import org.eclipse.jpt.ui.internal.platform.generic.JarFileRefItemLabelProvider; import org.eclipse.jpt.ui.internal.platform.generic.MappingFileRefItemLabelProvider; import org.eclipse.jpt.ui.internal.platform.generic.PersistenceItemLabelProvider; import org.eclipse.jpt.ui.internal.platform.generic.PersistenceUnitItemLabelProvider; @@ -38,6 +40,9 @@ public class PersistenceItemLabelProviderFactory else if (item instanceof ClassRef) { return new ClassRefItemLabelProvider((ClassRef) item, contentAndLabelProvider); } + else if (item instanceof JarFileRef) { + return new JarFileRefItemLabelProvider((JarFileRef) item, contentAndLabelProvider); + } return null; } } |