You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by xa...@apache.org on 2007/01/24 18:35:22 UTC

svn commit: r499517 [1/5] - in /incubator/ivy/ivyde/trunk: ./ .settings/ icons/ src/ src/java/ src/java/org/ src/java/org/jayasoft/ src/java/org/jayasoft/ivyde/ src/java/org/jayasoft/ivyde/eclipse/ src/java/org/jayasoft/ivyde/eclipse/cpcontainer/ src/j...

Author: xavier
Date: Wed Jan 24 10:35:18 2007
New Revision: 499517

URL: http://svn.apache.org/viewvc?view=rev&rev=499517
Log:
IvyDE migration to ASF incubator

Added:
    incubator/ivy/ivyde/trunk/.classpath
    incubator/ivy/ivyde/trunk/.project
    incubator/ivy/ivyde/trunk/.settings/
    incubator/ivy/ivyde/trunk/.settings/org.jayasoft.ivyde.eclipse.prefs
    incubator/ivy/ivyde/trunk/CHANGES.txt
    incubator/ivy/ivyde/trunk/IvyDE.launch
    incubator/ivy/ivyde/trunk/LICENSE.txt
    incubator/ivy/ivyde/trunk/build.properties
    incubator/ivy/ivyde/trunk/build.xml
    incubator/ivy/ivyde/trunk/icons/
    incubator/ivy/ivyde/trunk/icons/jsearch_obj.gif   (with props)
    incubator/ivy/ivyde/trunk/icons/logo.png   (with props)
    incubator/ivy/ivyde/trunk/icons/logo16x16.gif   (with props)
    incubator/ivy/ivyde/trunk/icons/refresh.gif   (with props)
    incubator/ivy/ivyde/trunk/icons/resolve-all.gif   (with props)
    incubator/ivy/ivyde/trunk/icons/sample.gif   (with props)
    incubator/ivy/ivyde/trunk/ivy.xml
    incubator/ivy/ivyde/trunk/ivyconf.xml
    incubator/ivy/ivyde/trunk/plugin.xml
    incubator/ivy/ivyde/trunk/src/
    incubator/ivy/ivyde/trunk/src/java/
    incubator/ivy/ivyde/trunk/src/java/org/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPlugin.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPluginResources.properties
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/FileExtFilter.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/IvyClasspathContainer.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/IvyClasspathEntry.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/IvyClasspathUtil.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/IvydeContainerPage.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/core/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/core/AddClasspathContainer.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/fragmentinfo/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/fragmentinfo/IPackageFragmentExtraInfo.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/fragmentinfo/PreferenceStoreInfo.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/actions/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/actions/CreateContainerAction.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/actions/OpenIvyFileAction.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/actions/RefreshAction.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/actions/ResolveAction.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/actions/ResolveAllAction.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/console/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/console/ConsoleDocument.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/console/IvyConsole.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/console/IvyConsoleFactory.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/IvyFileEditorInput.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/IValueProvider.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/IvyBooleanTagAttribute.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/IvyFile.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/IvyModel.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/IvyTag.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/IvyTagAttribute.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/ListValueProvider.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/PreferenceValueProvider.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/Proposal.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/SingleValueProvider.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/core/model/defaults.properties
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/IvyEditor.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/IvyEditorContributor.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/pages/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/pages/IvyConfSection.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/pages/IvyInfoSection.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/pages/OverviewFormPage.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/ColorManager.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/IXMLColorConstants.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/IvyContentAssistProcessor.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/NonRuleBasedDamagerRepairer.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/TagRule.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/XMLConfiguration.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/XMLDocumentProvider.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/XMLDoubleClickStrategy.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/XMLEditor.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/XMLPartitionScanner.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/XMLScanner.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/XMLTagScanner.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/editors/xml/XMLWhitespaceDetector.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/preferences/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/preferences/IvyPreferencePage.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/preferences/PreferenceConstants.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/preferences/PreferenceInitializer.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/properties/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/properties/IvyProjectPropertyPage.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/search/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/search/FixedJavaSearchPage.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/views/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/views/ReportView.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/wizards/
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/wizards/IvyNewWizard.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/wizards/IvyNewWizardPage.java
    incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/ui/wizards/ivy-template.xml
    incubator/ivy/ivyde/trunk/test/
    incubator/ivy/ivyde/trunk/test/java/
    incubator/ivy/ivyde/trunk/test/java/ivy-hibernate.xml
    incubator/ivy/ivyde/trunk/test/java/org/
    incubator/ivy/ivyde/trunk/test/java/org/jayasoft/
    incubator/ivy/ivyde/trunk/test/java/org/jayasoft/ivyde/
    incubator/ivy/ivyde/trunk/test/java/org/jayasoft/ivyde/eclipse/
    incubator/ivy/ivyde/trunk/test/java/org/jayasoft/ivyde/eclipse/core/
    incubator/ivy/ivyde/trunk/test/java/org/jayasoft/ivyde/eclipse/core/model/
    incubator/ivy/ivyde/trunk/test/java/org/jayasoft/ivyde/eclipse/core/model/IvyFileUtilTest.java

Added: incubator/ivy/ivyde/trunk/.classpath
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/.classpath?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/.classpath (added)
+++ incubator/ivy/ivyde/trunk/.classpath Wed Jan 24 10:35:18 2007
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/java"/>
+	<classpathentry kind="src" path="test/java"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="var" path="JUNIT_HOME/junit.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.jdt.source_3.0.0/src/org.junit_3.8.1/junitsrc.zip"/>
+	<classpathentry kind="con" path="org.jayasoft.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/ivy.xml/*"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: incubator/ivy/ivyde/trunk/.project
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/.project?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/.project (added)
+++ incubator/ivy/ivyde/trunk/.project Wed Jan 24 10:35:18 2007
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ivyde</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: incubator/ivy/ivyde/trunk/.settings/org.jayasoft.ivyde.eclipse.prefs
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/.settings/org.jayasoft.ivyde.eclipse.prefs?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/.settings/org.jayasoft.ivyde.eclipse.prefs (added)
+++ incubator/ivy/ivyde/trunk/.settings/org.jayasoft.ivyde.eclipse.prefs Wed Jan 24 10:35:18 2007
@@ -0,0 +1,5 @@
+#Sun Oct 22 13:54:09 CEST 2006
+acceptedTypes=[inherited]
+eclipse.preferences.version=1
+ivy_conf_path=file\:/./ivyconf.xml
+retreive.pattern=lib/[conf]/[artifact].[ext]

Added: incubator/ivy/ivyde/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/CHANGES.txt?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/CHANGES.txt (added)
+++ incubator/ivy/ivyde/trunk/CHANGES.txt Wed Jan 24 10:35:18 2007
@@ -0,0 +1,57 @@
+				IvyDE 
+				- http://www.jayasoft.org/ivyde
+				============================================
+				
+for detailed view of each issue, please consult http://jira.jayasoft.org/
+
+  version 1.2.0
+===========================
+- upgraded to Ivy 1.4.1
+- NEW: Link Sources to Classes by Artifact Type in Classpath Container (IVYDE-12) (thanks to Peter Blstak)
+- FIX: No resolve messages in console (IVYDE-39)
+
+  version 1.1.0
+===========================
+- NEW: enabling user to choose what types get added to the classpath (IVYDE-24)
+- NEW: Provide [create ivy aware library] when opening the context menu of an ivy.xml file (IVYDE-21)
+- NEW: report view (Windows -> Show View -> IvyDE > Report) (IVYDE-20)
+- IMPROVE: Deal with cancel resolve job (IVYDE-30)
+- IMPROVE: Support for relative path in the prefence fields when declaring location of ivyconf.xml file. (IVYDE-25) (thanks to Peter Chanthamynavong)
+- IMPROVE: store per project settings in a shareable file (namely .settings/org.jayasoft.ivyde.eclipse.prefs) (IVYDE-15)
+- FIX: junit classpath not resolved correctly with several IvyDE classpath containers (IVYDE-31)
+
+   version 1.0.4 - 
+===========================
+- remove PDE plugin requirement
+- prevent NPE when ivy resolve failed
+
+   version 1.0.3 - 
+===========================
+- add sources in distrib
+
+   version 1.0.2 - 
+===========================
+- Include IVY 1.3.1 release
+- Fix common-logging classloader issue
+
+   version 1.0.1 - 
+===========================
+- Include IVY 1.3 release
+
+   version 0.9.8 - 
+===========================
+- Fix source attachment from class editor
+
+   version 0.9.7 - 
+===========================
+- Fix source attachment for contained in ivycontainer 
+
+   version 0.9.6 - 
+===========================
+- Fix startup refresh problem
+
+   version 0.9.3 - 
+===========================
+initial public version
+- integration of plugin formerly known as ivyeclipseui
+- added IvyClasspathContainer and configuration stuff

Added: incubator/ivy/ivyde/trunk/IvyDE.launch
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/IvyDE.launch?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/IvyDE.launch (added)
+++ incubator/ivy/ivyde/trunk/IvyDE.launch Wed Jan 24 10:35:18 2007
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="usefeatures" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<booleanAttribute key="useProduct" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<stringAttribute key="pde.version" value="3.2a"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu,com.ibm.icu.source,com.jcraft.jsch,org.apache.ant,org.apache.lucene,org.eclipse.ant.core,org.eclipse.ant.ui,org.eclipse.compare,org.eclipse.core.boot,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.win32.x86,org.eclipse.core.jobs,org.eclipse.core.resources,org.eclipse.core.resources.compatibility,org.eclipse.core.resources.win32,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.variables,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.equinox.common,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.help.appserver,org.eclipse.help.base,org.eclipse.help.ui,org.eclipse.help.webapp,org.eclipse.jdt,org.eclipse.jdt.apt.core,org.e
 clipse.jdt.apt.ui,org.eclipse.jdt.core,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.debug,org.eclipse.jdt.debug.ui,org.eclipse.jdt.doc.isv,org.eclipse.jdt.doc.user,org.eclipse.jdt.junit,org.eclipse.jdt.junit.runtime,org.eclipse.jdt.junit4.runtime,org.eclipse.jdt.launching,org.eclipse.jdt.source,org.eclipse.jdt.ui,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde,org.eclipse.pde.build,org.eclipse.pde.core,org.eclipse.pde.doc.user,org.eclipse.pde.junit.runtime,org.eclipse.pde.runtime,org.eclipse.pde.source,org.eclipse.pde.ui,org.eclipse.platform,org.eclipse.platform.doc.isv,org.eclipse.platform.doc.user,org.eclipse.platform.source,org.eclipse.platform.source.win32.win32.x86,org.eclipse.rcp,org.eclipse.rcp.source,org.eclipse.rcp.source.win32.win32.x86,org.eclipse.sdk,org.eclipse.search,org.eclipse.swt,org.ecli
 pse.swt.win32.win32.x86,org.eclipse.team.core,org.eclipse.team.cvs.core,org.eclipse.team.cvs.ssh,org.eclipse.team.cvs.ssh2,org.eclipse.team.cvs.ui,org.eclipse.team.ui,org.eclipse.text,org.eclipse.tomcat,org.eclipse.ui,org.eclipse.ui.browser,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.externaltools,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.intro,org.eclipse.ui.intro.universal,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.presentations.r21,org.eclipse.ui.views,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.win32,org.eclipse.ui.workbench,org.eclipse.ui.workbench.compatibility,org.eclipse.ui.workbench.texteditor,org.eclipse.update.configurator,org.eclipse.update.core,org.eclipse.update.core.win32,org.eclipse.update.scheduler,org.eclipse.update.ui,org.junit,org.junit4"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="includeFragments" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-IvyDE"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="configLocation" value=""/>
+</launchConfiguration>

Added: incubator/ivy/ivyde/trunk/LICENSE.txt
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/LICENSE.txt?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/LICENSE.txt (added)
+++ incubator/ivy/ivyde/trunk/LICENSE.txt Wed Jan 24 10:35:18 2007
@@ -0,0 +1,26 @@
+BSD License for IvyDE
+Copyright (c) 2005 - 2006, JAYASOFT
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, 
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice, 
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice, 
+      this list of conditions and the following disclaimer in the documentation 
+      and/or other materials provided with the distribution.
+    * Neither the name of JAYASOFT nor the names of its contributors 
+      may be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Added: incubator/ivy/ivyde/trunk/build.properties
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/build.properties?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/build.properties (added)
+++ incubator/ivy/ivyde/trunk/build.properties Wed Jan 24 10:35:18 2007
@@ -0,0 +1,48 @@
+lib.dir=${basedir}/lib
+src.dir=${basedir}/src/java
+test.dir=${basedir}/test/java
+build.dir=${basedir}/build
+classes.build.dir=${basedir}/build/classes
+artifacts.build.dir=${basedir}/build/artifact
+
+ivy.minimum.javaversion=1.4
+debug.mode=on
+ivy.install.version=1.4
+
+source.ivyde-eclipse.jar = src/java/
+output.ivyde-eclipse.jar = bin/
+bin.includes = plugin.xml,\
+               ivyde-eclipse.jar,\
+               icons/,\
+               CHANGES.txt,\
+               lib/default/commons-logging.jar,\
+               lib/default/commons-httpclient.jar,\
+               LICENSE.txt,\
+               lib/default/ivy-core.jar,\
+               lib/default/oro.jar,\
+               lib/default/commons-codec.jar,\
+               lib/ant/ivy.jar,\
+               lib/default/commons-vfs.jar,\
+               lib/default/jsch.jar,\
+               lib/default/slide-webdavlib.jar
+               
+module.type = tools
+common.dir = ${env.JAYA_WKSPACE}/common
+
+debug.mode=on
+deprecation.mode=on
+test.fork=on
+test.haltonfailure=off
+jars.compile.order = ivyde-eclipse.jar
+src.includes = plugin.xml,\
+               src/,\
+               icons/,\
+               LICENSE.txt,\
+               CHANGES.txt,\
+               ivy-dev.xml
+src.excludes = src/doc/
+jars.extra.classpath = lib/default/commons-codec.jar,\
+                       lib/default/commons-httpclient.jar,\
+                       lib/default/commons-logging.jar,\
+                       lib/default/ivy-core.jar,\
+                       lib/default/oro.jar

Added: incubator/ivy/ivyde/trunk/build.xml
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/build.xml?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/build.xml (added)
+++ incubator/ivy/ivyde/trunk/build.xml Wed Jan 24 10:35:18 2007
@@ -0,0 +1,88 @@
+<project name="ivyde" default="resolve" xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
+	<property environment="env"/>
+	<property file="build.properties"/>
+	
+	<property name="ivy.install.version" value="1.4" />
+
+	<!-- =================================================================
+               IVY AUTO INSTALL
+               Ivy eats its own dog food, and thus require Ivy jar to
+               be built. This section will download Ivy from
+               internet and use it for ivy tasks of this build.
+         ================================================================= -->
+	<condition property="ivy.home" value="${env.IVY_HOME}">
+		<isset property="env.IVY_HOME" />
+	</condition>
+	<property name="ivy.home" value="${user.home}/.ivy" />
+	<property name="ivy.jar.dir" value="${ivy.home}/jars" />
+	<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
+	
+	<target name="download-ivy" unless="offline">
+    	<mkdir dir="${ivy.jar.dir}"/>
+		<!-- download Ivy from web site so that it can be used even without any special installation -->
+    	<get src="http://www.jayasoft.org/downloads/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
+    		 dest="${ivy.jar.file}" usetimestamp="true"/>
+	</target>
+	
+	<target name="init-ivy" depends="download-ivy">
+    	<!-- try to load ivy here from local ivy dir, in case the user has not already dropped
+    	      it into ant's lib dir (note that the latter copy will always take precedence).
+    	      We will not fail as long as local lib dir exists (it may be empty) and
+    	      ivy is in at least one of ant's lib dir or the local lib dir. -->
+    	<path id="ivy.lib.path">
+    	    <fileset dir="${ivy.jar.dir}" includes="*.jar"/>
+    	</path>
+    	<taskdef resource="fr/jayasoft/ivy/ant/antlib.xml"
+    	          uri="antlib:fr.jayasoft.ivy.ant" classpathref="ivy.lib.path"/>
+    </target>
+	
+	
+    <!-- =================================================================
+               PREPARATION, CLEANING AND FLAGS TASKS
+         ================================================================= -->
+	<target name="init">
+		<path id="build.classpath">
+			<fileset dir="${lib.dir}">
+				<include name="*.jar"/>
+			</fileset>
+		</path>
+		<path id="run.classpath">
+			<path refid="build.classpath"/>
+			<pathelement location="${classes.build.dir}"/>
+		</path>
+	</target>
+	
+	<target name="prepare" depends="init">
+	   <mkdir dir="${classes.build.dir}"/>
+	   <mkdir dir="${artifacts.build.dir}"/>
+	</target>
+	
+	<target name="clean">
+	   <delete dir="${classes.build.dir}"/>
+	   <delete dir="${artifacts.build.dir}"/>
+	   <delete dir="${build.dir}"/>
+	</target>
+	
+	<target name="clean-lib">
+    	<delete dir="${lib.dir}"/>
+	</target>
+	
+	<target name="clean-all" depends="clean, clean-lib"/>
+	
+	<target name="noresolve" description="use to skip dependency resolution">
+		<property name="no.resolve" value="true"/>
+	</target>
+	
+	<target name="offline" depends="noresolve" description="use to indicate no internet connection is available">
+		<property name="offline" value="true" />
+	</target>
+	
+
+    <!-- =================================================================
+               DEPENDENCY MNGT
+         ================================================================= -->
+	<target name="resolve" depends="init-ivy, prepare" unless="no.resolve">
+		<ivy:retrieve conf="*" pattern="${lib.dir}/[conf]/[artifact].[ext]" />
+	</target>
+	
+</project>

Added: incubator/ivy/ivyde/trunk/icons/jsearch_obj.gif
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/icons/jsearch_obj.gif?view=auto&rev=499517
==============================================================================
Binary file - no diff available.

Propchange: incubator/ivy/ivyde/trunk/icons/jsearch_obj.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ivy/ivyde/trunk/icons/logo.png
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/icons/logo.png?view=auto&rev=499517
==============================================================================
Binary file - no diff available.

Propchange: incubator/ivy/ivyde/trunk/icons/logo.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ivy/ivyde/trunk/icons/logo16x16.gif
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/icons/logo16x16.gif?view=auto&rev=499517
==============================================================================
Binary file - no diff available.

Propchange: incubator/ivy/ivyde/trunk/icons/logo16x16.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ivy/ivyde/trunk/icons/refresh.gif
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/icons/refresh.gif?view=auto&rev=499517
==============================================================================
Binary file - no diff available.

Propchange: incubator/ivy/ivyde/trunk/icons/refresh.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ivy/ivyde/trunk/icons/resolve-all.gif
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/icons/resolve-all.gif?view=auto&rev=499517
==============================================================================
Binary file - no diff available.

Propchange: incubator/ivy/ivyde/trunk/icons/resolve-all.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ivy/ivyde/trunk/icons/sample.gif
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/icons/sample.gif?view=auto&rev=499517
==============================================================================
Binary file - no diff available.

Propchange: incubator/ivy/ivyde/trunk/icons/sample.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ivy/ivyde/trunk/ivy.xml
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/ivy.xml?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/ivy.xml (added)
+++ incubator/ivy/ivyde/trunk/ivy.xml Wed Jan 24 10:35:18 2007
@@ -0,0 +1,14 @@
+<ivy-module version="1.0">
+    <info 
+        organisation="jayasoft"
+        module="ivyde" 
+        status="integration"/>
+    <configurations>
+    	<conf name="default" visibility="public" description="Default configuration"/>
+    	<conf name="ant" visibility="public" description="For ant contribution"/>
+    </configurations>
+    <dependencies>
+        <dependency org="jayasoft" name="ivy" rev="1.4.1" conf="default->core,httpclient,oro,vfs,sftp;ant->default"/>
+        <dependency org="apache" name="commons-logging" rev="1.0.4" conf="default->default"/>
+    </dependencies>
+</ivy-module>

Added: incubator/ivy/ivyde/trunk/ivyconf.xml
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/ivyconf.xml?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/ivyconf.xml (added)
+++ incubator/ivy/ivyde/trunk/ivyconf.xml Wed Jan 24 10:35:18 2007
@@ -0,0 +1,10 @@
+<ivyconf>
+	<conf defaultResolver="public" />
+	<resolvers>
+		<url name="public">
+			<ivy pattern="http://ivyrep.jayasoft.org/[organisation]/[module]/ivy-[revision].xml"/>
+			<artifact pattern="http://ivyrep.jayasoft.org/[organisation]/[module]/[revision]/[artifact].[ext]"/>
+			<artifact pattern="http://www.ibiblio.org/maven/[module]/[type]s/[artifact]-[revision].[ext]"/>
+		</url>
+	</resolvers>
+</ivyconf>
\ No newline at end of file

Added: incubator/ivy/ivyde/trunk/plugin.xml
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/plugin.xml?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/plugin.xml (added)
+++ incubator/ivy/ivyde/trunk/plugin.xml Wed Jan 24 10:35:18 2007
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin
+   id="org.jayasoft.ivyde.eclipse"
+   name="IvyDE Eclipse Plug-in"
+   version="1.2.0"
+   provider-name="Jayasoft"
+   class="org.jayasoft.ivyde.eclipse.IvyPlugin">
+
+   <runtime>
+      <library name="ivyde-eclipse.jar"/>
+      <library name="lib/default/ivy-core.jar">
+         <export name="*"/>
+      </library>
+      <library name="lib/default/commons-codec.jar">
+      </library>
+      <library name="lib/default/commons-httpclient.jar">
+      </library>
+      <library name="lib/default/commons-logging.jar">
+      </library>
+      <library name="lib/default/oro.jar">
+         <export name="*"/>
+      </library>
+      <library name="lib/default/commons-vfs.jar">
+         <export name="*"/>
+      </library>
+      <library name="lib/default/jsch.jar">
+         <export name="*"/>
+      </library>
+      <library name="lib/default/slide-webdavlib.jar">
+         <export name="*"/>
+      </library>
+   </runtime>
+
+   <requires>
+      <import plugin="org.eclipse.ui"/>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.eclipse.jface.text"/>
+      <import plugin="org.eclipse.ui.editors"/>
+      <import plugin="org.eclipse.ui.workbench.texteditor"/>
+      <import plugin="org.eclipse.core.resources"/>
+      <import plugin="org.eclipse.ui.ide"/>
+      <import plugin="org.eclipse.ui.forms"/>
+      <import plugin="org.eclipse.search"/>
+      <import plugin="org.eclipse.jdt.core" /> 
+      <import plugin="org.eclipse.jdt.ui" />
+      <import plugin="org.eclipse.ui.console"/>
+   </requires>
+   
+   <extension
+        point="org.eclipse.ant.core.extraClasspathEntries">
+      <extraClasspathEntry library="lib/ant/ivy.jar"/>
+  	</extension>
+  	
+	<extension point="org.eclipse.ui.console.consoleFactories">
+	  <consoleFactory 
+	     label="Ivy Console"
+	     class="org.jayasoft.ivyde.eclipse.ui.console.IvyConsoleFactory"
+	     icon="icons/logo16x16.gif">
+	  </consoleFactory>
+	</extension>
+
+   <extension
+         point="org.eclipse.jdt.ui.classpathContainerPage">
+      <classpathContainerPage
+      		id="org.jayasoft.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER"
+      		name="IvyDE Managed Dependencies"
+            class="org.jayasoft.ivyde.eclipse.cpcontainer.IvydeContainerPage"
+            >
+      </classpathContainerPage>
+   </extension>
+   
+    <extension
+          id="org.jayasoft.ivyde.eclipse.cpcontainer.Container"
+          name="IvyDE Classpath Container"
+          point="org.eclipse.jdt.core.classpathContainerInitializer">
+      <classpathContainerInitializer
+            class="org.jayasoft.ivyde.eclipse.cpcontainer.IvyClasspathInitializer"
+            id="org.jayasoft.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER">
+      </classpathContainerInitializer>
+   </extension>
+
+   <extension point="org.eclipse.ui.popupMenus"> 
+      <objectContribution 
+         id="org.jayasoft.ivyde.eclipse.ui.actions.RefreshAction" 
+         objectClass="org.eclipse.jdt.internal.ui.packageview.ClassPathContainer"> 
+         <action
+            id="org.jayasoft.ivyde.eclipse.ui.actions.RefreshAction" 
+            label="Re&amp;fresh"
+            class="org.jayasoft.ivyde.eclipse.ui.actions.RefreshAction" 
+            enablesFor="1"
+			/> 
+      </objectContribution> 
+      <objectContribution 
+         id="org.jayasoft.ivyde.eclipse.ui.actions.ResolveAction" 
+         objectClass="org.eclipse.jdt.internal.ui.packageview.ClassPathContainer"> 
+         <action
+            id="org.jayasoft.ivyde.eclipse.ui.actions.ResolveAction" 
+            label="&amp;Resolve"
+            class="org.jayasoft.ivyde.eclipse.ui.actions.ResolveAction" 
+            enablesFor="1"
+			/> 
+      </objectContribution> 
+      <objectContribution 
+         id="org.jayasoft.ivyde.eclipse.ui.actions.OpenIvyFileAction" 
+         objectClass="org.eclipse.jdt.internal.ui.packageview.ClassPathContainer"> 
+         <action
+            id="org.jayasoft.ivyde.eclipse.ui.actions.OpenIvyFileAction" 
+            label="&amp;Edit"
+            class="org.jayasoft.ivyde.eclipse.ui.actions.OpenIvyFileAction" 
+            enablesFor="1"
+			/> 
+      </objectContribution> 
+      <objectContribution 
+         id="org.jayasoft.ivyde.eclipse.ui.actions.CreateContainerAction" 
+         objectClass="org.eclipse.core.resources.IFile"
+         nameFilter="*.xml"> 
+         <action
+            id="org.jayasoft.ivyde.eclipse.ui.actions.CreateContainerAction" 
+            label="Add &amp;Ivy Library"
+            class="org.jayasoft.ivyde.eclipse.ui.actions.CreateContainerAction" 
+            enablesFor="1"
+			/> 
+      </objectContribution> 
+   </extension> 
+
+   <extension
+         point="org.eclipse.ui.editors">
+      <editor
+            class="org.jayasoft.ivyde.eclipse.ui.editors.IvyEditor"
+            contributorClass="org.jayasoft.ivyde.eclipse.ui.editors.IvyEditorContributor"
+            filenames="ivy.xml,ivy-dev.xml,ivy-snapshot.xml"
+            icon="icons/logo16x16.gif"
+            id="org.jayasoft.ivyde.editors.IvyEditor"
+            name="Ivy Editor">
+      </editor>
+   </extension>
+   <extension
+         point="org.eclipse.ui.newWizards">
+		<category 
+		   id="org.jayasoft.ivyde.eclipse.ui.new"
+		   name="IvyDE">
+		</category>
+      <wizard
+            class="org.jayasoft.ivyde.eclipse.ui.wizards.IvyNewWizard"
+            icon="icons/logo16x16.gif"
+            id="org.jayasoft.ivyde.eclipse.ui.wizards.IvyNewWizard"
+            category="org.jayasoft.ivyde.eclipse.ui.new"
+            name="Ivy file">
+      </wizard>
+   </extension>
+   <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            name="Ivy"
+            class="org.jayasoft.ivyde.eclipse.ui.preferences.IvyPreferencePage"
+            id="org.jayasoft.ivyde.eclipse.ui.preferences.IvyPreferencePage">
+      </page>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.preferences">
+      <initializer
+            class="org.jayasoft.ivyde.eclipse.ui.preferences.PreferenceInitializer">
+      </initializer>
+   </extension>
+   
+   <extension
+         point="org.eclipse.ui.propertyPages">
+      <page
+            objectClass="org.eclipse.core.resources.IProject"
+            class="org.jayasoft.ivyde.eclipse.ui.properties.IvyProjectPropertyPage"
+            id="org.jayasoft.ivyde.eclipse.properties.ivyProjectPropertyPage"
+            name="Ivy">
+         <filter
+               name="nature"
+               value="org.eclipse.jdt.core.javanature">
+         </filter>
+         <keywordReference id="org.eclipse.jdt.ui.buildpath"/>
+      </page>
+      <page
+            objectClass="org.eclipse.jdt.core.IJavaProject"
+            class="org.jayasoft.ivyde.eclipse.ui.properties.IvyProjectPropertyPage"
+            id="org.jayasoft.ivyde.eclipse.properties.ivyProjectPropertyPage"
+            name="Ivy">
+         <filter
+               name="nature"
+               value="org.eclipse.jdt.core.javanature">
+         </filter>
+         <keywordReference id="org.eclipse.jdt.ui.buildpath"/>
+      </page>
+   </extension>
+   
+	<extension 
+	   point="org.eclipse.ui.views">
+		<category 
+		   id="org.jayasoft.ivyde.eclipse.ui.views"
+		   name="IvyDE">
+		</category>
+		<view
+	 	   id="org.jayasoft.ivyde.eclipse.ui.views.ReportView"
+		   name="Ivy Report"
+		   icon="icons/logo16x16.gif"
+		   category="org.jayasoft.ivyde.eclipse.ui.views"
+		   class="org.jayasoft.ivyde.eclipse.ui.views.ReportView">
+		</view>
+	</extension>
+	
+   <!-- uncomment to enable fixed search
+   <extension
+         point="org.eclipse.search.searchPages">
+      <page
+            showScopeSection="true"
+            canSearchEnclosingProjects="true"
+            label="(f)Java Search"
+            icon="icons/jsearch_obj.gif"
+            extensions="java:90, jav:90"
+            class="org.jayasoft.ivyde.eclipse.ui.search.FixedJavaSearchPage"
+            sizeHint="460,160"
+            id="org.jayasoft.ivyde.eclipse.ui.search.FixedJavaSearchPage">
+      </page>
+   </extension>
+   -->
+
+   <!-- Uncomment to enable resolve all action
+   
+   <extension point = "org.eclipse.ui.actionSets">
+	   <actionSet id="org.jayasoft.ivyde.eclipse.ui.actions.actionSet"
+		   label="IvyDE Actions"
+		   visible="true">
+		   <action id="org.jayasoft.ivyde.eclipse.ui.actions.resolveAll"
+			   toolbarPath="readme"
+			   label="Resolve All Dependencies"
+			   icon="icons/resolve-all.gif"
+			   class="org.jayasoft.ivyde.eclipse.ui.actions.ResolveAllAction"
+			   definitionID="org.jayasoft.ivyde.eclipse.ui.actions.resolveAll">
+		   </action>
+	   </actionSet>
+   </extension>
+   
+   <extension point="org.eclipse.ui.commands">
+      <command
+            name="Resolve All Dependencies"
+            description="Resolve All Project Dependencies with Ivy"
+            categoryId="org.eclipse.ui.category.project"
+            id="org.jayasoft.ivyde.eclipse.ui.actions.resolveAll">
+      </command>
+   </extension>
+   -->
+   
+
+
+   <!--
+   <extension point="org.eclipse.ui.commands">
+      <command
+            name="Resolve Dependencies"
+            description="Resolve Project Dependencies with Ivy"
+            categoryId="org.eclipse.ui.category.project"
+            id="org.jayasoft.ivyde.eclipse.cpcontainer.command.resolve">
+      </command>
+   </extension>
+   
+   <extension point="org.eclipse.ui.bindings">
+      <key
+            sequence="M2+F5"
+            commandId="org.jayasoft.ivyde.eclipse.cpcontainer.command.resolve"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
+   </extension>
+   -->
+	
+      <!--
+   <extension 
+   		 point="org.eclipse.core.runtime.contentTypes">
+      <content-type 
+      		id="ivyfile" 
+      		name="ivyfile" 
+    		base-type="org.eclipse.core.runtime.xml"
+   			priority="high"				
+    		file-names="ivy*.xml"/>
+    </extension>
+
+   <extension
+         point="org.eclipse.ui.propertyPages">
+      <page
+            objectClass="org.eclipse.core.resources.IFile"
+            name="Ivy Page"
+            nameFilter="ivy.xml"
+            class="org.jayasoft.ivyde.eclipse.ui.properties.IvyPropertyPage"
+            id="org.jayasoft.ivyde.eclipse.ui.properties.samplePropertyPage">
+      </page>
+   </extension>
+   -->
+</plugin>

Added: incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPlugin.java
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPlugin.java?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPlugin.java (added)
+++ incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPlugin.java Wed Jan 24 10:35:18 2007
@@ -0,0 +1,589 @@
+package org.jayasoft.ivyde.eclipse;
+
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ProjectScope;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.core.JavaModelManager;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.jayasoft.ivyde.eclipse.cpcontainer.IvyClasspathContainer;
+import org.jayasoft.ivyde.eclipse.cpcontainer.fragmentinfo.IPackageFragmentExtraInfo;
+import org.jayasoft.ivyde.eclipse.cpcontainer.fragmentinfo.PreferenceStoreInfo;
+import org.jayasoft.ivyde.eclipse.ui.console.IvyConsole;
+import org.jayasoft.ivyde.eclipse.ui.preferences.PreferenceConstants;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.prefs.BackingStoreException;
+
+import fr.jayasoft.ivy.Artifact;
+import fr.jayasoft.ivy.Ivy;
+import fr.jayasoft.ivy.IvyContext;
+import fr.jayasoft.ivy.util.Message;
+
+/**
+ * The main plugin class to be used in the desktop.
+ */
+public class IvyPlugin extends AbstractUIPlugin {
+	public static final String ID = "org.jayasoft.ivyde.eclipse";
+    
+    public static final String PREF_CONSOLE_DEBUG_COLOR = ID+ ".console.color.debug";
+    public static final String PREF_CONSOLE_VERBOSE_COLOR = ID+ ".console.color.verbose";
+    public static final String PREF_CONSOLE_INFO_COLOR = ID+ ".console.color.info";
+    public static final String PREF_CONSOLE_WARN_COLOR = ID+ ".console.color.warn";
+    public static final String PREF_CONSOLE_ERROR_COLOR = ID+ ".console.color.error";
+    
+    //The shared instance.
+	private static IvyPlugin plugin;
+	//Resource bundle.
+	private ResourceBundle resourceBundle;
+    private IvyConsole console;
+    
+	
+	/**
+	 * The constructor.
+	 */
+	public IvyPlugin() {
+		super();
+		plugin = this;
+	}
+
+	/**
+	 * This method is called upon plug-in activation
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+        log(IStatus.INFO, "starting IvyDE plugin", null); 
+        try {
+            console = new IvyConsole();
+        } catch (RuntimeException e) {
+            // Don't let the console bring down the CVS UI
+            log(IStatus.ERROR, "Errors occurred starting the Ivy console", e); 
+        }
+        getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() {
+            public void propertyChange(PropertyChangeEvent event) {
+                if(event.getProperty() == PreferenceConstants.IVYCONF_PATH) {
+                    ivyConfPathChanged();
+                }
+                if(event.getProperty() == PreferenceConstants.ACCEPTED_TYPES ||
+                		event.getProperty() == PreferenceConstants.SOURCES_TYPES ||
+                		event.getProperty() == PreferenceConstants.JAVADOC_TYPES) {
+                    typesChanged(event.getProperty());
+                }
+            }
+        });
+        log(IStatus.INFO, "IvyDE plugin started", null); 
+	}
+
+	/**
+	 * This method is called when the plug-in is stopped
+	 */
+	public void stop(BundleContext context) throws Exception {
+		super.stop(context);
+		plugin = null;
+		resourceBundle = null;
+//        if (console != null)
+//            console.shutdown();
+	}
+
+    /**
+     * Convenience method for logging statuses to the plugin log
+     * 
+     * @param status  the status to log
+     */
+    public static void log(IStatus status) {
+        getDefault().getLog().log(status);
+    }
+    
+    public static void log(CoreException e) {
+        log(e.getStatus().getSeverity(), "IvyDE internal error", e); 
+    }
+    
+    /**
+     * Log the given exception along with the provided message and severity indicator
+     */
+    public static void log(int severity, String message, Throwable e) {
+        log(new Status(severity, ID, 0, message, e));
+    }
+	/**
+	 * Returns the shared instance.
+	 */
+	public static IvyPlugin getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the string from the plugin's resource bundle,
+	 * or 'key' if not found.
+	 */
+	public static String getResourceString(String key) {
+		ResourceBundle bundle = IvyPlugin.getDefault().getResourceBundle();
+		try {
+			return (bundle != null) ? bundle.getString(key) : key;
+		} catch (MissingResourceException e) {
+			return key;
+		}
+	}
+
+	/**
+	 * Returns the plugin's resource bundle,
+	 */
+	public ResourceBundle getResourceBundle() {
+		try {
+			if (resourceBundle == null)
+				resourceBundle = ResourceBundle.getBundle("org.jayasoft.ivyde.IvyPluginResources");
+		} catch (MissingResourceException x) {
+			resourceBundle = new ResourceBundle() {
+                protected Object handleGetObject(String key) {
+                    return null;
+                }
+            
+                public Enumeration getKeys() {
+                    return Collections.enumeration(Collections.EMPTY_LIST);
+                }
+            
+            };
+		}
+		return resourceBundle;
+	}
+
+	/**
+	 * Returns an image descriptor for the image file at the given
+	 * plug-in relative path.
+	 *
+	 * @param path the path
+	 * @return the image descriptor
+	 */
+	public static ImageDescriptor getImageDescriptor(String path) {
+		return AbstractUIPlugin.imageDescriptorFromPlugin("org.jayasoft.ivyde", path);
+	}
+
+
+    private static class IvyConfig {
+        Ivy ivy;
+        IvyContext context;
+        long configTime = -1;
+        public IvyConfig() {
+        	context = IvyContext.getContext();
+        }
+        public IvyConfig(Ivy ivy) {
+        	context = IvyContext.getContext();
+            this.ivy = ivy;
+        }
+    }
+    private static Map _ivysByProject = new HashMap(); // Map (IJavaProject -> IvyConfig)
+    private static Map _ivysByConf = new HashMap(); // Map (configPath -> IvyConfig)
+
+	private static boolean _inChange;
+
+	private static Set _todo = new HashSet();
+
+    private PreferenceStoreInfo _packageExtraInfo;
+
+	private Map _containers = new HashMap();
+    
+
+
+    public static Ivy getIvy(IJavaProject javaProject) {
+        Ivy ivy = refreshIvyConfiguration(javaProject, getIvyconfURL(javaProject));
+        setIvyContext(javaProject);
+        return ivy == null ? new Ivy() : ivy;
+    }
+    
+    public static void setIvyContext(IJavaProject javaProject) {
+    	IvyConfig ic = (IvyConfig)_ivysByProject.get(javaProject);
+        if (ic != null) {
+        	IvyContext.setContext(ic.context);
+        }
+	}
+
+	public static void ivyConfPathChanged() {
+        try {
+            IJavaProject[] projects = JavaModelManager.getJavaModelManager().getJavaModel().getJavaProjects();
+            String defaultConfURL = getIvyconfURL();
+            for (int i = 0; i < projects.length; i++) {
+                if (getStrictIvyconfURL(projects[i]) == null) {
+                	resolve(projects[i]);
+                }
+            }
+        } catch (JavaModelException e) {
+        }
+    }
+
+    public static void typesChanged(String typesCode) {
+        try {
+            IJavaProject[] projects = JavaModelManager.getJavaModelManager().getJavaModel().getJavaProjects();
+            String defaultConfURL = getIvyconfURL();
+            for (int i = 0; i < projects.length; i++) {
+                if ("[inherited]".equals(getTypesString(projects[i], typesCode))) {
+                	resolve(projects[i]);
+                }
+            }
+        } catch (JavaModelException e) {
+        }
+    }
+
+    private static synchronized Ivy refreshIvyConfiguration(IJavaProject javaProject, String configPath) {        
+        try {
+            if (configPath == null || configPath.trim().length() == 0 || "default".equals(configPath)) {
+                return defaultIvyConfigure(javaProject);
+            } else {
+                IvyConfig ic = (IvyConfig)_ivysByProject.get(javaProject);
+                if (ic == null) {
+                    ic = (IvyConfig)_ivysByConf.get(configPath);
+                    if (ic == null) {
+                        ic = new IvyConfig();
+                        _ivysByProject.put(javaProject, ic);
+                        _ivysByConf.put(configPath, ic);
+                    }
+                }
+                
+                URL url = new URL(configPath);
+                if (url.getProtocol().startsWith("file")) {
+                    File file = new File(url.getPath());
+                    
+//                  BEGIN - JIRA: IVYDE-25 by Peter Chanthamynavong
+                    //Getting an Absolute Filename Path from a Relative Filename Path for the current project
+                    if (!file.exists()) {
+                        IProject project = javaProject.getProject();
+                        File loc = project.getLocation().toFile();
+                    	file = new File(loc,url.getPath());
+                    	Message.info("\n\nIVYDE: ivyconf from relative path: "+file.getAbsolutePath());
+                    }
+//                  END - JIRA: IVYDE-25
+                    
+                    if (!file.exists()) {
+                        MessageDialog.openWarning(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "No ivyConf found", configPath+" ivyconf cannot be found.\nPlease set your ivy conf url in the preference or in your project properties to be able to use IvyDE");
+                        if (ic.ivy == null) {
+                            ic.ivy = new Ivy();
+                        }
+                    } else {
+                        if (file.lastModified() != ic.configTime) {
+                            ic.ivy = new Ivy();
+                            if (ic.configTime == -1) {
+                                Message.info("\n\n");
+                            } else {
+                                Message.info("\n\nIVYDE: ivyconf has changed, configuring ivy again\n");
+                            }
+                            ic.ivy.configure(file);
+                            ic.configTime = file.lastModified();
+                        }
+                    }
+                } else {
+                    if (ic.ivy == null) {
+                        ic.ivy = new Ivy();
+                        ic.ivy.configure(url);
+                    }
+                }
+                return ic.ivy;
+            }
+        } catch (Exception e) {
+            try {
+                MessageDialog.openWarning(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Bad ivyConf found", "Problem occured while using "+configPath+" to configure Ivy.\nPlease set your ivy conf url properly in the preference or in the project properties to be able to use IvyDE.\nException message: "+e.getMessage());
+            } catch (Exception ex) {}
+            log(IStatus.WARNING, "Problem occured while using "+configPath+" to configure Ivy", e);
+            Message.warn("IVYDE: Problem occured while using "+configPath+" to configure Ivy. See error log for details");
+            _ivysByProject.remove(javaProject);
+            _ivysByConf.remove(configPath);
+            return new Ivy();
+        }
+    }
+
+    private static Ivy defaultIvyConfigure(IJavaProject javaProject) {
+        IvyConfig ic = (IvyConfig)_ivysByProject.get(javaProject);
+        if (ic == null) {
+            ic = (IvyConfig)_ivysByConf.get("default");
+        }
+        Ivy ivy = ic == null ? null : ic.ivy;
+        if (ivy == null) {
+            ivy = new Ivy();
+            try {
+                ivy.configureDefault();
+                IvyConfig ivyConfig = new IvyConfig(ivy);
+                _ivysByProject.put(javaProject, ivyConfig);
+                _ivysByConf.put("default", ivyConfig);
+            } catch (Exception ex) {
+                MessageDialog.openWarning(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Impossible to configure Ivy", "Problem occured while configuring Ivy with its default configuration.\nPlease set an ivy conf url properly in the preference or in the project properties to be able to use IvyDE.\nException message: "+ex.getMessage());
+                log(IStatus.WARNING, "Problem occured while configuring Ivy with its default configuration.", ex);
+                Message.warn("IVYDE: Problem occured while configuring Ivy with its default configuration.. See error log for details");
+            }
+        }
+        return ivy;
+    }
+
+    public static String getIvyconfURL(IJavaProject project) {
+        String ivyconf = getStrictIvyconfURL(project);
+        if (ivyconf == null) {
+            return getIvyconfURL();
+        } else {
+            return ivyconf;
+        }
+    }
+
+    public static String getStrictIvyconfURL(IJavaProject project) {
+        if (project == null) {
+            return null;
+        }
+        String opt = IvyPlugin.getDefault().getProjectPreferences(project).get(PreferenceConstants.IVYCONF_PATH, null);
+        if (opt == null || opt.trim().length() == 0 || "inherited".equals(opt)) {
+            return null;
+        } else {
+            return opt.trim();
+        }
+    }
+
+    public static String getIvyconfURL() {
+        String configPath = IvyPlugin.getDefault().getPreferenceStore().getString(PreferenceConstants.IVYCONF_PATH);
+        if (configPath == null || configPath.trim().length() == 0) {
+            return "default";
+        } else {
+            return configPath.trim();
+        }
+    }
+
+    public static void setIvyconfURL(IJavaProject project, String ivyconfURL) {
+        _ivysByProject.remove(project);
+        if (ivyconfURL == null) {
+        	IvyPlugin.getDefault().getProjectPreferences(project).put(PreferenceConstants.IVYCONF_PATH, "inherited");
+        } else {
+        	IvyPlugin.getDefault().getProjectPreferences(project).put(PreferenceConstants.IVYCONF_PATH, ivyconfURL);
+        }
+    	flushProjectPreferences(project);
+
+        resolve(project);
+    }
+    
+
+	public static boolean accept(IJavaProject project, Artifact artifact) {
+		return getAcceptedTypes(project).contains(artifact.getType()) && 
+			!getSourcesTypes(project).contains(artifact.getType()) &&
+			!getJavadocTypes(project).contains(artifact.getType());
+	}
+
+    private static Collection getAcceptedTypes(IJavaProject project) {
+    	return getTypes(project, PreferenceConstants.ACCEPTED_TYPES, "jar");
+        }
+
+	public static String getAcceptedTypesString(IJavaProject project) {
+		return getTypesString(project, PreferenceConstants.ACCEPTED_TYPES);
+			}
+
+	public static void setAcceptedTypes(IJavaProject project, String types) {
+		setTypes(project, types, PreferenceConstants.ACCEPTED_TYPES);
+		}
+	
+
+	public static boolean isSources(IJavaProject project, Artifact artifact) {
+		return getSourcesTypes(project).contains(artifact.getType());
+	}
+
+    private static Collection getSourcesTypes(IJavaProject project) {
+    	return getTypes(project, PreferenceConstants.SOURCES_TYPES, "source");
+	}
+
+	public static String getSourcesTypesString(IJavaProject project) {
+		return getTypesString(project, PreferenceConstants.SOURCES_TYPES);
+	}
+    
+	public static void setSourcesTypes(IJavaProject project, String types) {
+		setTypes(project, types, PreferenceConstants.SOURCES_TYPES);
+    }
+	
+	
+	public static boolean isJavadoc(IJavaProject project, Artifact artifact) {
+		return getJavadocTypes(project).contains(artifact.getType());
+	}
+
+    private static Collection getJavadocTypes(IJavaProject project) {
+    	return getTypes(project, PreferenceConstants.JAVADOC_TYPES, "javadoc");
+	}
+
+	public static String getJavadocTypesString(IJavaProject project) {
+		return getTypesString(project, PreferenceConstants.JAVADOC_TYPES);
+	}
+    
+	public static void setJavadocTypes(IJavaProject project, String types) {
+		setTypes(project, types, PreferenceConstants.JAVADOC_TYPES);
+    }
+	
+	
+    private static Collection getTypes(IJavaProject project, String typesCode, String defaultTypes) {
+        String types = getTypesString(project, typesCode);
+        
+        if ("[inherited]".equals(types)) {
+            String workspaceTypes = IvyPlugin.getDefault().getPreferenceStore().getString(typesCode);
+            if (workspaceTypes == null || workspaceTypes.trim().length() == 0) {
+                types = defaultTypes;
+            } else {
+                types = workspaceTypes.trim();
+            }
+        }
+        return split(types);
+	}
+
+	private static String getTypesString(IJavaProject project, String typesCode) {
+		String types = IvyPlugin.getDefault().getProjectPreferences(project).get(typesCode, null);
+		if (types == null || types.trim().length() == 0) {
+			return "[inherited]";
+		}
+		return types.trim();
+	}
+
+	private static void setTypes(IJavaProject project, String types, String typesCode) {
+        if (types == null || types.trim().length() == 0 || types.trim().startsWith("[inherited]")) {
+        	IvyPlugin.getDefault().getProjectPreferences(project).put(typesCode, "[inherited]");
+        } else {
+        	IvyPlugin.getDefault().getProjectPreferences(project).put(typesCode, types);
+        }
+    	flushProjectPreferences(project);
+        resolve(project);
+    }
+
+    private static Collection split(String str) {
+        String[] t = str.split(",");
+        Collection ret = new ArrayList();
+        for (int i = 0; i < t.length; i++) {
+			if (t[i].trim().length() > 0) {
+				ret.add(t[i].trim());
+			}
+		}
+		return ret;
+    }
+    
+
+    public IvyConsole getConsole() {
+        return console;
+    }
+    
+    public static String getRetreivePattern() {
+    	if (IvyPlugin.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.DO_RETRIEVE)) {
+    		String pattern = IvyPlugin.getDefault().getPreferenceStore().getString(PreferenceConstants.RETRIEVE_PATTERN);
+    		return pattern == null ? "":pattern.trim();
+    	} else {
+    		return "";
+    	}
+    }
+    
+    public static String getRetreivePattern(IJavaProject project) {
+        String pattern = IvyPlugin.getDefault().getProjectPreferences(project).get(PreferenceConstants.RETRIEVE_PATTERN, null);
+
+        return pattern == null?"":pattern.trim();
+    }
+    
+	public static void setRetreivePattern(String pattern) {
+        IvyPlugin.getDefault().getPreferenceStore().putValue(PreferenceConstants.RETRIEVE_PATTERN, pattern);
+    }
+    
+    public static void setRetreivePattern(IJavaProject project, String pattern) {
+    	if (pattern == null || pattern.trim().length() == 0) {
+    		pattern = "none";
+    	} else if (pattern.startsWith("[inherited]")) {
+    		pattern = "[inherited]";
+    	}
+    	IvyPlugin.getDefault().getProjectPreferences(project).put(PreferenceConstants.RETRIEVE_PATTERN, pattern);
+    	flushProjectPreferences(project);
+    }
+
+	private static void flushProjectPreferences(IJavaProject project) {
+		try {
+			   IvyPlugin.getDefault().getProjectPreferences(project).flush();
+		   } catch (BackingStoreException e) {
+			   log(IStatus.WARNING, "impossible to store IvyDE project preferences", e);
+		   }
+	}
+    
+    public IPackageFragmentExtraInfo getPackageFragmentExtraInfo() {
+        if(_packageExtraInfo == null) {
+            _packageExtraInfo = new PreferenceStoreInfo(getPreferenceStore());
+        }
+        return _packageExtraInfo;
+    }
+    
+    public static String getRetrievePatternHerited(IJavaProject project) {
+        String retreivePattern = getRetreivePattern(project);
+        if ("".equals(retreivePattern) || retreivePattern.startsWith("[inherited]")) {
+            retreivePattern = getRetreivePattern();
+            if (!"".equals(retreivePattern)) {
+            	retreivePattern = "[inherited] "+retreivePattern;
+            }
+        } else if ("none".equals(retreivePattern)) {
+        	retreivePattern = "";
+        }
+        return retreivePattern.trim();
+    }
+    
+    public static String getFullRetrievePatternHerited(IJavaProject project) {
+        String retreivePattern = getRetrievePatternHerited(project);
+        if (!"".equals(retreivePattern)) {
+        	if (retreivePattern.startsWith("[inherited] ")) {
+        		retreivePattern = retreivePattern.substring("[inherited] ".length());
+        	}
+            return project.getProject().getLocation().toPortableString()+"/"+retreivePattern;
+        } else {
+        	return "";
+        }
+    }
+    
+    public static boolean shouldDoRetrieve(IJavaProject project) {
+        return !"".equals(getRetrievePatternHerited(project));
+    }
+
+    public IEclipsePreferences getProjectPreferences(final IJavaProject project) {
+    	IScopeContext projectScope = new ProjectScope(project.getProject());
+    	IEclipsePreferences projectNode = projectScope.getNode(ID);
+    	return projectNode;
+
+	}
+
+	public static void beginChanges() {
+		_inChange = true;
+	}
+
+	public static void commitChanges() {
+		_inChange = false;
+		for (Iterator iter = _todo.iterator(); iter.hasNext();) {
+			IJavaProject project = (IJavaProject) iter.next();
+			IvyClasspathContainer.resolve(project);
+		}
+	}
+
+	private static void resolve(IJavaProject project) {
+		if (_inChange) {
+			_todo .add(project);
+		} else {
+			IvyClasspathContainer.resolve(project);
+		}
+	}
+
+	public void register(IvyClasspathContainer container) {
+		_containers.put(container.getProject().getProject().getName()+"/"+container.getPath(), container);
+	}
+
+	public Collection getAllContainers() {
+		Message.debug("all known ivy classpath containers are: "+_containers.keySet());
+		return _containers.values();
+	}
+
+}

Added: incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPluginResources.properties
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPluginResources.properties?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPluginResources.properties (added)
+++ incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/IvyPluginResources.properties Wed Jan 24 10:35:18 2007
@@ -0,0 +1 @@
+ContentAssistProposal=Proposal
\ No newline at end of file

Added: incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/FileExtFilter.java
URL: http://svn.apache.org/viewvc/incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/FileExtFilter.java?view=auto&rev=499517
==============================================================================
--- incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/FileExtFilter.java (added)
+++ incubator/ivy/ivyde/trunk/src/java/org/jayasoft/ivyde/eclipse/cpcontainer/FileExtFilter.java Wed Jan 24 10:35:18 2007
@@ -0,0 +1,51 @@
+/*
+ * This file is subject to the licence found in LICENCE.TXT in the root directory of the project.
+ * Copyright Jayasoft 2005 - All rights reserved
+ * 
+ * #SNAPSHOT#
+ */
+package org.jayasoft.ivyde.eclipse.cpcontainer;
+
+import java.util.Locale;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.jayasoft.ivyde.eclipse.IvyPlugin;
+
+public class FileExtFilter extends ViewerFilter {
+
+    private String[] fTargetExtension;
+
+    public FileExtFilter(String[] targetExtension) {
+        fTargetExtension = targetExtension;
+    }
+
+    public boolean select(Viewer viewer, Object parent, Object element) {
+        if (element instanceof IFile) {
+            for (int i = 0; i < fTargetExtension.length; i++) {
+                if (((IFile)element).getName().toLowerCase(Locale.ENGLISH).endsWith("." + fTargetExtension[i])) {
+                    return true; 
+                }
+                return false;
+            }
+        }
+
+        if (element instanceof IContainer){ // i.e. IProject, IFolder
+            try {
+                IResource[] resources = ((IContainer)element).members();
+                for (int i = 0; i < resources.length; i++){
+                    if (select(viewer, parent, resources[i]))
+                        return true;
+                }
+            } catch (CoreException e) {
+                IvyPlugin.log(e);
+            }
+        }
+        return false;
+    }
+
+}