You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ds...@apache.org on 2009/07/21 20:51:41 UTC
svn commit: r796467 [16/25] - in /felix/trunk/sigil:
common/core.tests/src/org/apache/felix/sigil/core/
common/core/src/org/apache/felix/sigil/bnd/
common/core/src/org/apache/felix/sigil/config/
common/core/src/org/apache/felix/sigil/core/ common/core/...
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependenciesForm.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependenciesForm.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependenciesForm.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependenciesForm.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import java.util.Set;
import org.apache.felix.sigil.eclipse.SigilCore;
@@ -34,36 +35,43 @@
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
-public class DependenciesForm extends SigilPage {
- public static final String PAGE_ID = "dependencies";
-
- private final ISigilProjectModel project;
- private final Set<IModelElement> unresolvedElements;
-
- private ImportPackagesSection importPackages;
- private RequiresBundleSection requiresSection;
-
-
- public DependenciesForm(FormEditor editor, ISigilProjectModel project, Set<IModelElement> unresolved) {
- super(editor, PAGE_ID, "Dependencies");
- this.project = project;
- this.unresolvedElements = unresolved;
- }
-
+public class DependenciesForm extends SigilPage
+{
+
+ public static final String PAGE_ID = "dependencies";
+
+ private final ISigilProjectModel project;
+ private final Set<IModelElement> unresolvedElements;
+
+ private ImportPackagesSection importPackages;
+ private RequiresBundleSection requiresSection;
+
+
+ public DependenciesForm( FormEditor editor, ISigilProjectModel project, Set<IModelElement> unresolved )
+ {
+ super( editor, PAGE_ID, "Dependencies" );
+ this.project = project;
+ this.unresolvedElements = unresolved;
+ }
+
+
@Override
- public boolean canLeaveThePage() {
- return !isDirty();
- }
+ public boolean canLeaveThePage()
+ {
+ return !isDirty();
+ }
- @Override
- protected void createFormContent(IManagedForm managedForm) {
+
+ @Override
+ protected void createFormContent( IManagedForm managedForm )
+ {
FormToolkit toolkit = managedForm.getToolkit();
-
+
ScrolledForm form = managedForm.getForm();
form.setText( "Dependencies" );
-
- Composite body = form.getBody();
+
+ Composite body = form.getBody();
TableWrapLayout layout = new TableWrapLayout();
layout.bottomMargin = 10;
layout.topMargin = 5;
@@ -71,41 +79,43 @@
layout.rightMargin = 10;
layout.numColumns = 2;
layout.horizontalSpacing = 10;
- body.setLayout(layout);
- body.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- Composite left = toolkit.createComposite(body);
+ body.setLayout( layout );
+ body.setLayoutData( new TableWrapData( TableWrapData.FILL_GRAB ) );
+
+ Composite left = toolkit.createComposite( body );
layout = new TableWrapLayout();
layout.verticalSpacing = 20;
- left.setLayout(layout);
- TableWrapData layoutData = new TableWrapData(TableWrapData.FILL_GRAB);
+ left.setLayout( layout );
+ TableWrapData layoutData = new TableWrapData( TableWrapData.FILL_GRAB );
layoutData.rowspan = 2;
- left.setLayoutData(layoutData);
-
- Composite right = toolkit.createComposite(body);
+ left.setLayoutData( layoutData );
+
+ Composite right = toolkit.createComposite( body );
layout = new TableWrapLayout();
layout.verticalSpacing = 20;
- right.setLayout(layout);
- right.setLayoutData(new TableWrapData( TableWrapData.FILL_GRAB) );
-
- Composite bottom = toolkit.createComposite(body);
+ right.setLayout( layout );
+ right.setLayoutData( new TableWrapData( TableWrapData.FILL_GRAB ) );
+
+ Composite bottom = toolkit.createComposite( body );
layout = new TableWrapLayout();
layout.verticalSpacing = 20;
- bottom.setLayout(layout);
- bottom.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-
- try {
- importPackages = new ImportPackagesSection( this, left, project, unresolvedElements );
- managedForm.addPart( importPackages );
-
- requiresSection = new RequiresBundleSection(this, right, project, unresolvedElements );
- managedForm.addPart(requiresSection);
-
- DependencyManagementSection depMgmt = new DependencyManagementSection(this, bottom, project);
- managedForm.addPart(depMgmt);
+ bottom.setLayout( layout );
+ bottom.setLayoutData( new TableWrapData( TableWrapData.FILL_GRAB ) );
+
+ try
+ {
+ importPackages = new ImportPackagesSection( this, left, project, unresolvedElements );
+ managedForm.addPart( importPackages );
+
+ requiresSection = new RequiresBundleSection( this, right, project, unresolvedElements );
+ managedForm.addPart( requiresSection );
+
+ DependencyManagementSection depMgmt = new DependencyManagementSection( this, bottom, project );
+ managedForm.addPart( depMgmt );
}
- catch (CoreException e) {
- SigilCore.error( "Failed to create dependencies form", e);
+ catch ( CoreException e )
+ {
+ SigilCore.error( "Failed to create dependencies form", e );
}
}
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependencyManagementSection.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependencyManagementSection.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependencyManagementSection.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DependencyManagementSection.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -62,135 +63,174 @@
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.eclipse.ui.forms.widgets.Section;
-public class DependencyManagementSection extends SigilSection {
- private Hyperlink hypConvertRBtoIP;
+public class DependencyManagementSection extends SigilSection
+{
+
+ private Hyperlink hypConvertRBtoIP;
+
- public DependencyManagementSection(SigilPage page, Composite parent,
- ISigilProjectModel project) throws CoreException {
- super(page, parent, project);
- }
-
- protected void createSection(Section section, FormToolkit toolkit) throws CoreException {
- setTitle("Dependency Management");
-
- Composite body = createGridBody(1, false, toolkit);
-
- hypConvertRBtoIP = toolkit.createHyperlink(body, "Convert Required Bundles to Imported Packages", SWT.NONE);
- hypConvertRBtoIP.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
- hypConvertRBtoIP.addHyperlinkListener(new HyperlinkAdapter() {
- public void linkActivated(HyperlinkEvent e) {
- run();
- }
- });
- }
-
- protected void run() {
- final Map<String, IPackageExport> exports = new HashMap<String, IPackageExport>();
- final Set<String> imports = new HashSet<String>();
-
- // Find all exports
- final ExportedPackageFinder exportFinder = new ExportedPackageFinder(getProjectModel(), new AccumulatorAdapter<IPackageExport>() {
- public void addElements(Collection<? extends IPackageExport> elements) {
- for (IPackageExport export : elements) {
- exports.put(export.getPackageName(), export);
- }
- }
- });
- Job findExportsJob = new Job("Find exports") {
- protected IStatus run(IProgressMonitor monitor) {
- return exportFinder.run(monitor);
- }
- };
- findExportsJob.setUser(true);
- findExportsJob.schedule();
-
- // Find imports from Java source
- Job findImportsJob = new Job("Find imports") {
- protected IStatus run(IProgressMonitor monitor) {
- IJavaProject javaProject = getProjectModel().getJavaModel();
- try {
- IPackageFragment[] packages = javaProject.getPackageFragments();
- for (IPackageFragment pkg : packages) {
- ICompilationUnit[] compilationUnits = pkg.getCompilationUnits();
- for (ICompilationUnit compilationUnit : compilationUnits) {
- IImportDeclaration[] importDecls = compilationUnit.getImports();
- for (IImportDeclaration importDecl : importDecls) {
- imports.add(getPackageName(importDecl));
- }
- }
- }
- return Status.OK_STATUS;
- } catch (JavaModelException e) {
- return new Status(IStatus.ERROR, SigilUI.PLUGIN_ID, 0, "Error finding imports", e);
- }
- }
- };
- findImportsJob.setUser(true);
- findImportsJob.schedule();
-
- // Wait for both jobs to complete
- try {
- findImportsJob.join();
- findExportsJob.join();
- } catch (InterruptedException e) {
- // Aborted, just do nothing
- return;
- }
-
- // Get the version rules
- IPreferenceStore prefStore = SigilCore.getDefault().getPreferenceStore();
- VersionRangeBoundingRule lowerBoundRule = VersionRangeBoundingRule.valueOf(prefStore.getString(SigilCore.DEFAULT_VERSION_LOWER_BOUND));
- VersionRangeBoundingRule upperBoundRule = VersionRangeBoundingRule.valueOf(prefStore.getString(SigilCore.DEFAULT_VERSION_UPPER_BOUND));
-
- // Get the existing imports for the bundle
- IBundleModelElement bundleInfo = getProjectModel().getBundle().getBundleInfo();
- Set<IPackageImport> existingImports = bundleInfo.getImports();
- Map<String, IPackageImport> existingImportsMap = new HashMap<String, IPackageImport>();
- for (IPackageImport existingImport : existingImports) {
- existingImportsMap.put(existingImport.getPackageName(), existingImport);
- }
-
- // Add imports to the bundle
- ModelElementFactory elementFactory = ModelElementFactory.getInstance();
- int count = 0;
- for (String pkgImport : imports) {
- IPackageExport export = exports.get(pkgImport);
- if(export != null && !existingImportsMap.containsKey(pkgImport)) {
- VersionRange versionRange = VersionRange.newInstance(export.getVersion(), lowerBoundRule, upperBoundRule);
- IPackageImport newImport = elementFactory.newModelElement(IPackageImport.class);
- newImport.setPackageName(pkgImport);
- newImport.setVersions(versionRange);
- newImport.setOptional(false);
-
- bundleInfo.addImport(newImport);
- count++;
- }
- }
-
- // Remove required bundles
- Set<IRequiredBundle> requiredBundles = bundleInfo.getRequiredBundles();
- int requiredBundlesSize = requiredBundles.size();
- for (IRequiredBundle requiredBundle : requiredBundles) {
- bundleInfo.removeRequiredBundle(requiredBundle);
- }
-
- // Update the editor
- if(count + requiredBundlesSize > 0) {
- IFormPart[] parts = getPage().getManagedForm().getParts();
- for (IFormPart formPart : parts) {
- formPart.refresh();
- ((AbstractFormPart) formPart).markDirty();
- }
- }
-
- MessageDialog.openInformation(getManagedForm().getForm().getShell(), "Dependency Management", "Removed " + requiredBundlesSize + " required bundle(s) and added " + count + " imported package(s).");
- }
-
- private static String getPackageName(IImportDeclaration decl) {
- String name = decl.getElementName();
- int lastDot = name.lastIndexOf('.');
- return name.substring(0, lastDot);
- }
+ public DependencyManagementSection( SigilPage page, Composite parent, ISigilProjectModel project )
+ throws CoreException
+ {
+ super( page, parent, project );
+ }
+
+
+ protected void createSection( Section section, FormToolkit toolkit ) throws CoreException
+ {
+ setTitle( "Dependency Management" );
+
+ Composite body = createGridBody( 1, false, toolkit );
+
+ hypConvertRBtoIP = toolkit.createHyperlink( body, "Convert Required Bundles to Imported Packages", SWT.NONE );
+ hypConvertRBtoIP.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
+
+ hypConvertRBtoIP.addHyperlinkListener( new HyperlinkAdapter()
+ {
+ public void linkActivated( HyperlinkEvent e )
+ {
+ run();
+ }
+ } );
+ }
+
+
+ protected void run()
+ {
+ final Map<String, IPackageExport> exports = new HashMap<String, IPackageExport>();
+ final Set<String> imports = new HashSet<String>();
+
+ // Find all exports
+ final ExportedPackageFinder exportFinder = new ExportedPackageFinder( getProjectModel(),
+ new AccumulatorAdapter<IPackageExport>()
+ {
+ public void addElements( Collection<? extends IPackageExport> elements )
+ {
+ for ( IPackageExport export : elements )
+ {
+ exports.put( export.getPackageName(), export );
+ }
+ }
+ } );
+ Job findExportsJob = new Job( "Find exports" )
+ {
+ protected IStatus run( IProgressMonitor monitor )
+ {
+ return exportFinder.run( monitor );
+ }
+ };
+ findExportsJob.setUser( true );
+ findExportsJob.schedule();
+
+ // Find imports from Java source
+ Job findImportsJob = new Job( "Find imports" )
+ {
+ protected IStatus run( IProgressMonitor monitor )
+ {
+ IJavaProject javaProject = getProjectModel().getJavaModel();
+ try
+ {
+ IPackageFragment[] packages = javaProject.getPackageFragments();
+ for ( IPackageFragment pkg : packages )
+ {
+ ICompilationUnit[] compilationUnits = pkg.getCompilationUnits();
+ for ( ICompilationUnit compilationUnit : compilationUnits )
+ {
+ IImportDeclaration[] importDecls = compilationUnit.getImports();
+ for ( IImportDeclaration importDecl : importDecls )
+ {
+ imports.add( getPackageName( importDecl ) );
+ }
+ }
+ }
+ return Status.OK_STATUS;
+ }
+ catch ( JavaModelException e )
+ {
+ return new Status( IStatus.ERROR, SigilUI.PLUGIN_ID, 0, "Error finding imports", e );
+ }
+ }
+ };
+ findImportsJob.setUser( true );
+ findImportsJob.schedule();
+
+ // Wait for both jobs to complete
+ try
+ {
+ findImportsJob.join();
+ findExportsJob.join();
+ }
+ catch ( InterruptedException e )
+ {
+ // Aborted, just do nothing
+ return;
+ }
+
+ // Get the version rules
+ IPreferenceStore prefStore = SigilCore.getDefault().getPreferenceStore();
+ VersionRangeBoundingRule lowerBoundRule = VersionRangeBoundingRule.valueOf( prefStore
+ .getString( SigilCore.DEFAULT_VERSION_LOWER_BOUND ) );
+ VersionRangeBoundingRule upperBoundRule = VersionRangeBoundingRule.valueOf( prefStore
+ .getString( SigilCore.DEFAULT_VERSION_UPPER_BOUND ) );
+
+ // Get the existing imports for the bundle
+ IBundleModelElement bundleInfo = getProjectModel().getBundle().getBundleInfo();
+ Set<IPackageImport> existingImports = bundleInfo.getImports();
+ Map<String, IPackageImport> existingImportsMap = new HashMap<String, IPackageImport>();
+ for ( IPackageImport existingImport : existingImports )
+ {
+ existingImportsMap.put( existingImport.getPackageName(), existingImport );
+ }
+
+ // Add imports to the bundle
+ ModelElementFactory elementFactory = ModelElementFactory.getInstance();
+ int count = 0;
+ for ( String pkgImport : imports )
+ {
+ IPackageExport export = exports.get( pkgImport );
+ if ( export != null && !existingImportsMap.containsKey( pkgImport ) )
+ {
+ VersionRange versionRange = VersionRange.newInstance( export.getVersion(), lowerBoundRule,
+ upperBoundRule );
+ IPackageImport newImport = elementFactory.newModelElement( IPackageImport.class );
+ newImport.setPackageName( pkgImport );
+ newImport.setVersions( versionRange );
+ newImport.setOptional( false );
+
+ bundleInfo.addImport( newImport );
+ count++;
+ }
+ }
+
+ // Remove required bundles
+ Set<IRequiredBundle> requiredBundles = bundleInfo.getRequiredBundles();
+ int requiredBundlesSize = requiredBundles.size();
+ for ( IRequiredBundle requiredBundle : requiredBundles )
+ {
+ bundleInfo.removeRequiredBundle( requiredBundle );
+ }
+
+ // Update the editor
+ if ( count + requiredBundlesSize > 0 )
+ {
+ IFormPart[] parts = getPage().getManagedForm().getParts();
+ for ( IFormPart formPart : parts )
+ {
+ formPart.refresh();
+ ( ( AbstractFormPart ) formPart ).markDirty();
+ }
+ }
+
+ MessageDialog.openInformation( getManagedForm().getForm().getShell(), "Dependency Management", "Removed "
+ + requiredBundlesSize + " required bundle(s) and added " + count + " imported package(s)." );
+ }
+
+
+ private static String getPackageName( IImportDeclaration decl )
+ {
+ String name = decl.getElementName();
+ int lastDot = name.lastIndexOf( '.' );
+ return name.substring( 0, lastDot );
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DownloadSection.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DownloadSection.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DownloadSection.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/DownloadSection.java Tue Jul 21 18:51:33 2009
@@ -20,8 +20,6 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
-
-
import org.apache.felix.sigil.eclipse.SigilCore;
import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
import org.apache.felix.sigil.model.ModelElementFactory;
@@ -41,100 +39,124 @@
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapData;
+
/**
* @author dave
*
*/
-public class DownloadSection extends AbstractResourceSection {
+public class DownloadSection extends AbstractResourceSection
+{
+
+ /**
+ * @param page
+ * @param parent
+ * @param project
+ * @throws CoreException
+ */
+
+ private IDownloadJar dl;
+
- /**
- * @param page
- * @param parent
- * @param project
- * @throws CoreException
- */
-
- private IDownloadJar dl;
-
- public DownloadSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException {
- super( page, parent, project );
- }
-
- @Override
- protected void createSection(Section section, FormToolkit toolkit) throws CoreException {
- setTitle( "Codebase" );
-
- Composite body = createTableWrapBody(1, toolkit);
+ public DownloadSection( SigilPage page, Composite parent, ISigilProjectModel project ) throws CoreException
+ {
+ super( page, parent, project );
+ }
+
+
+ @Override
+ protected void createSection( Section section, FormToolkit toolkit ) throws CoreException
+ {
+ setTitle( "Codebase" );
+
+ Composite body = createTableWrapBody( 1, toolkit );
toolkit.createLabel( body, "Specify which resources are included as part of this bundles remote codebase." );
-
- tree = toolkit.createTree( body, SWT.CHECK | SWT.BORDER );
-
- TableWrapData data = new TableWrapData( TableWrapData.FILL_GRAB);
- data.heightHint = 200;
- tree.setLayoutData( data );
-
- viewer = new CheckboxTreeViewer( tree );
- IFolder base = ResourcesPlugin.getWorkspace().getRoot().getFolder(getProjectModel().getJavaModel().getOutputLocation());
- viewer.setContentProvider( new ContainerTreeProvider() );
- viewer.setLabelProvider( new ModelLabelProvider() );
- viewer.addCheckStateListener( this );
- viewer.setInput( base );
-
- dl = getProjectModel().getBundle().getDownloadJar();
-
- startWorkspaceListener(base.getWorkspace());
- }
-
- @Override
- public void refresh() {
- dl = getProjectModel().getBundle().getDownloadJar();
- super.refresh();
- }
-
- @Override
- public void commit(boolean onSave) {
- getProjectModel().getBundle().setDownloadJar(dl);
- super.commit(onSave);
- }
-
- @Override
- protected void refreshSelections() {
- // zero the state
- if ( dl != null ) {
- for ( IPath path : dl.getEntrys() ) {
- IResource r = findResource( path );
- if ( r != null ) {
- viewer.expandToLevel(r, 0);
- viewer.setChecked( r, true );
- viewer.setGrayed( r, false );
- handleStateChanged(r, true, false, false);
- }
- else {
- SigilCore.error( "Unknown path " + path );
- }
- }
- }
- }
-
- protected void syncResourceModel(IResource element, boolean checked) {
- try {
- if ( dl == null ) {
- dl = ModelElementFactory.getInstance().newModelElement(IDownloadJar.class);
- getProjectModel().getBundle().setDownloadJar(dl);
- }
-
- if ( checked ) {
- dl.addEntry( element.getProjectRelativePath() );
- }
- else {
- dl.removeEntry( element.getProjectRelativePath() );
- }
-
- markDirty();
- }
- catch (ModelElementFactoryException e) {
- SigilCore.error( "Failed to create model element", e );
- }
- }
+
+ tree = toolkit.createTree( body, SWT.CHECK | SWT.BORDER );
+
+ TableWrapData data = new TableWrapData( TableWrapData.FILL_GRAB );
+ data.heightHint = 200;
+ tree.setLayoutData( data );
+
+ viewer = new CheckboxTreeViewer( tree );
+ IFolder base = ResourcesPlugin.getWorkspace().getRoot().getFolder(
+ getProjectModel().getJavaModel().getOutputLocation() );
+ viewer.setContentProvider( new ContainerTreeProvider() );
+ viewer.setLabelProvider( new ModelLabelProvider() );
+ viewer.addCheckStateListener( this );
+ viewer.setInput( base );
+
+ dl = getProjectModel().getBundle().getDownloadJar();
+
+ startWorkspaceListener( base.getWorkspace() );
+ }
+
+
+ @Override
+ public void refresh()
+ {
+ dl = getProjectModel().getBundle().getDownloadJar();
+ super.refresh();
+ }
+
+
+ @Override
+ public void commit( boolean onSave )
+ {
+ getProjectModel().getBundle().setDownloadJar( dl );
+ super.commit( onSave );
+ }
+
+
+ @Override
+ protected void refreshSelections()
+ {
+ // zero the state
+ if ( dl != null )
+ {
+ for ( IPath path : dl.getEntrys() )
+ {
+ IResource r = findResource( path );
+ if ( r != null )
+ {
+ viewer.expandToLevel( r, 0 );
+ viewer.setChecked( r, true );
+ viewer.setGrayed( r, false );
+ handleStateChanged( r, true, false, false );
+ }
+ else
+ {
+ SigilCore.error( "Unknown path " + path );
+ }
+ }
+ }
+ }
+
+
+ protected void syncResourceModel( IResource element, boolean checked )
+ {
+ try
+ {
+ if ( dl == null )
+ {
+ dl = ModelElementFactory.getInstance().newModelElement( IDownloadJar.class );
+ getProjectModel().getBundle().setDownloadJar( dl );
+ }
+
+ if ( checked )
+ {
+ dl.addEntry( element.getProjectRelativePath() );
+ }
+ else
+ {
+ dl.removeEntry( element.getProjectRelativePath() );
+ }
+
+ markDirty();
+ }
+ catch ( ModelElementFactoryException e )
+ {
+ SigilCore.error( "Failed to create model element", e );
+ }
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExcludedResourcesFilter.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExcludedResourcesFilter.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExcludedResourcesFilter.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExcludedResourcesFilter.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;
@@ -31,33 +32,44 @@
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
-public class ExcludedResourcesFilter extends ViewerFilter {
- private final Set<Pattern> exclusionSet = new HashSet<Pattern>();
-
- public ExcludedResourcesFilter() {
- loadExclusions();
- }
-
- public final synchronized void loadExclusions() {
- exclusionSet.clear();
- IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
- String[] exclusions = PrefsUtils.stringToArray(store.getString(SigilCore.DEFAULT_EXCLUDED_RESOURCES));
- for (String exclusion : exclusions) {
- exclusionSet.add(GlobCompiler.compile(exclusion));
- }
- }
-
- @Override
- public synchronized boolean select(Viewer viewer, Object parentElement, Object element) {
- IResource file = (IResource) element;
- String path = file.getName();
- for ( Pattern p :exclusionSet ) {
- if ( p.matcher(path).matches() ) {
- return false;
- }
- }
- return true;
- }
+public class ExcludedResourcesFilter extends ViewerFilter
+{
+
+ private final Set<Pattern> exclusionSet = new HashSet<Pattern>();
+
+
+ public ExcludedResourcesFilter()
+ {
+ loadExclusions();
+ }
+
+
+ public final synchronized void loadExclusions()
+ {
+ exclusionSet.clear();
+ IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
+ String[] exclusions = PrefsUtils.stringToArray( store.getString( SigilCore.DEFAULT_EXCLUDED_RESOURCES ) );
+ for ( String exclusion : exclusions )
+ {
+ exclusionSet.add( GlobCompiler.compile( exclusion ) );
+ }
+ }
+
+
+ @Override
+ public synchronized boolean select( Viewer viewer, Object parentElement, Object element )
+ {
+ IResource file = ( IResource ) element;
+ String path = file.getName();
+ for ( Pattern p : exclusionSet )
+ {
+ if ( p.matcher( path ).matches() )
+ {
+ return false;
+ }
+ }
+ return true;
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import java.util.Iterator;
import java.util.List;
@@ -46,131 +47,173 @@
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.osgi.framework.Version;
-public class ExportPackagesSection extends BundleDependencySection {
- public ExportPackagesSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException {
- super( page, parent, project );
- }
-
- @Override
- protected String getTitle() {
- return "Export Packages";
- }
-
- @Override
- protected Label createLabel(Composite parent, FormToolkit toolkit) {
- return toolkit.createLabel( parent, "Specify which packages this bundle shares with other bundles." );
- }
-
- @Override
- protected IContentProvider getContentProvider() {
- return new DefaultTableProvider() {
- public Object[] getElements(Object inputElement) {
- return getBundle().getBundleInfo().getExports().toArray();
- }
- };
- }
-
- @Override
- protected void handleAdd() {
- NewPackageExportDialog dialog = ResourcesDialogHelper.createNewExportDialog(getSection().getShell(), "Add Exported Package", null, getProjectModel(), true);
-
- if ( dialog.open() == Window.OK ) {
- try {
- // Add selected exports
- boolean exportsAdded = false;
-
- List<IPackageFragment> newPkgFragments = dialog.getSelectedElements();
- for (IPackageFragment pkgFragment : newPkgFragments) {
- IPackageExport pkgExport = ModelElementFactory.getInstance().newModelElement(IPackageExport.class);
- pkgExport.setPackageName(pkgFragment.getElementName());
- pkgExport.setVersion(dialog.getVersion());
- getBundle().getBundleInfo().addExport(pkgExport);
-
- exportsAdded = true;
- }
-
- // Add corresponding imports (maybe)
- boolean importsAdded = false;
-
- IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
- boolean shouldAddImports = OptionalPrompt.optionallyPrompt(store, SigilCore.PREFERENCES_ADD_IMPORT_FOR_EXPORT, "Add Exports", "Should corresponding imports be added?", getSection().getShell());
- if(shouldAddImports) {
- for (IPackageFragment pkgFragment : newPkgFragments) {
- IPackageImport pkgImport = ModelElementFactory.getInstance().newModelElement(IPackageImport.class);
- pkgImport.setPackageName(pkgFragment.getElementName());
- VersionRangeBoundingRule lowerBound = VersionRangeBoundingRule.valueOf(store.getString(SigilCore.DEFAULT_VERSION_LOWER_BOUND));
- VersionRangeBoundingRule upperBound = VersionRangeBoundingRule.valueOf(store.getString(SigilCore.DEFAULT_VERSION_UPPER_BOUND));
- Version version = dialog.getVersion();
- if(version == null) {
- version = getBundle().getVersion();
- }
- VersionRange versionRange = VersionRange.newInstance(version, lowerBound, upperBound);
- pkgImport.setVersions(versionRange);
-
- getBundle().getBundleInfo().addImport(pkgImport);
-
- importsAdded = true;
- }
- }
-
- if(importsAdded) {
- ((SigilProjectEditorPart) getPage().getEditor()).refreshAllPages();
- markDirty();
- } else if(exportsAdded) {
- refresh();
- markDirty();
- }
- }
- catch (ModelElementFactoryException e) {
- SigilCore.error( "Failed to buiild model element for package export", e);
- }
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- protected void handleEdit() {
- IStructuredSelection selection = (IStructuredSelection) getSelection();
-
- boolean changed = false;
-
- if ( !selection.isEmpty() ) {
- for ( Iterator<IPackageExport> i = selection.iterator(); i.hasNext(); ) {
- IPackageExport packageExport = i.next();
- NewPackageExportDialog dialog = ResourcesDialogHelper.createNewExportDialog(getSection().getShell(), "Edit Imported Package", packageExport, getProjectModel(), false);
- if ( dialog.open() == Window.OK ) {
- changed = true;
- IPackageFragment pkgFragment = dialog.getSelectedElement();
- packageExport.setPackageName(pkgFragment.getElementName());
- packageExport.setVersion(dialog.getVersion());
- }
- }
- }
-
- if ( changed ) {
- refresh();
- markDirty();
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- protected void handleRemoved() {
- IStructuredSelection selection = (IStructuredSelection) getSelection();
-
- if ( !selection.isEmpty() ) {
- for ( Iterator<IPackageExport> i = selection.iterator(); i.hasNext(); ) {
- getBundle().getBundleInfo().removeExport( i.next() );
- }
-
- refresh();
- markDirty();
- }
- }
-
- private ISigilBundle getBundle() {
- return getProjectModel().getBundle();
- }
+public class ExportPackagesSection extends BundleDependencySection
+{
+
+ public ExportPackagesSection( SigilPage page, Composite parent, ISigilProjectModel project ) throws CoreException
+ {
+ super( page, parent, project );
+ }
+
+
+ @Override
+ protected String getTitle()
+ {
+ return "Export Packages";
+ }
+
+
+ @Override
+ protected Label createLabel( Composite parent, FormToolkit toolkit )
+ {
+ return toolkit.createLabel( parent, "Specify which packages this bundle shares with other bundles." );
+ }
+
+
+ @Override
+ protected IContentProvider getContentProvider()
+ {
+ return new DefaultTableProvider()
+ {
+ public Object[] getElements( Object inputElement )
+ {
+ return getBundle().getBundleInfo().getExports().toArray();
+ }
+ };
+ }
+
+
+ @Override
+ protected void handleAdd()
+ {
+ NewPackageExportDialog dialog = ResourcesDialogHelper.createNewExportDialog( getSection().getShell(),
+ "Add Exported Package", null, getProjectModel(), true );
+
+ if ( dialog.open() == Window.OK )
+ {
+ try
+ {
+ // Add selected exports
+ boolean exportsAdded = false;
+
+ List<IPackageFragment> newPkgFragments = dialog.getSelectedElements();
+ for ( IPackageFragment pkgFragment : newPkgFragments )
+ {
+ IPackageExport pkgExport = ModelElementFactory.getInstance().newModelElement( IPackageExport.class );
+ pkgExport.setPackageName( pkgFragment.getElementName() );
+ pkgExport.setVersion( dialog.getVersion() );
+ getBundle().getBundleInfo().addExport( pkgExport );
+
+ exportsAdded = true;
+ }
+
+ // Add corresponding imports (maybe)
+ boolean importsAdded = false;
+
+ IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
+ boolean shouldAddImports = OptionalPrompt.optionallyPrompt( store,
+ SigilCore.PREFERENCES_ADD_IMPORT_FOR_EXPORT, "Add Exports",
+ "Should corresponding imports be added?", getSection().getShell() );
+ if ( shouldAddImports )
+ {
+ for ( IPackageFragment pkgFragment : newPkgFragments )
+ {
+ IPackageImport pkgImport = ModelElementFactory.getInstance().newModelElement(
+ IPackageImport.class );
+ pkgImport.setPackageName( pkgFragment.getElementName() );
+ VersionRangeBoundingRule lowerBound = VersionRangeBoundingRule.valueOf( store
+ .getString( SigilCore.DEFAULT_VERSION_LOWER_BOUND ) );
+ VersionRangeBoundingRule upperBound = VersionRangeBoundingRule.valueOf( store
+ .getString( SigilCore.DEFAULT_VERSION_UPPER_BOUND ) );
+ Version version = dialog.getVersion();
+ if ( version == null )
+ {
+ version = getBundle().getVersion();
+ }
+ VersionRange versionRange = VersionRange.newInstance( version, lowerBound, upperBound );
+ pkgImport.setVersions( versionRange );
+
+ getBundle().getBundleInfo().addImport( pkgImport );
+
+ importsAdded = true;
+ }
+ }
+
+ if ( importsAdded )
+ {
+ ( ( SigilProjectEditorPart ) getPage().getEditor() ).refreshAllPages();
+ markDirty();
+ }
+ else if ( exportsAdded )
+ {
+ refresh();
+ markDirty();
+ }
+ }
+ catch ( ModelElementFactoryException e )
+ {
+ SigilCore.error( "Failed to buiild model element for package export", e );
+ }
+ }
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void handleEdit()
+ {
+ IStructuredSelection selection = ( IStructuredSelection ) getSelection();
+
+ boolean changed = false;
+
+ if ( !selection.isEmpty() )
+ {
+ for ( Iterator<IPackageExport> i = selection.iterator(); i.hasNext(); )
+ {
+ IPackageExport packageExport = i.next();
+ NewPackageExportDialog dialog = ResourcesDialogHelper.createNewExportDialog( getSection().getShell(),
+ "Edit Imported Package", packageExport, getProjectModel(), false );
+ if ( dialog.open() == Window.OK )
+ {
+ changed = true;
+ IPackageFragment pkgFragment = dialog.getSelectedElement();
+ packageExport.setPackageName( pkgFragment.getElementName() );
+ packageExport.setVersion( dialog.getVersion() );
+ }
+ }
+ }
+
+ if ( changed )
+ {
+ refresh();
+ markDirty();
+ }
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void handleRemoved()
+ {
+ IStructuredSelection selection = ( IStructuredSelection ) getSelection();
+
+ if ( !selection.isEmpty() )
+ {
+ for ( Iterator<IPackageExport> i = selection.iterator(); i.hasNext(); )
+ {
+ getBundle().getBundleInfo().removeExport( i.next() );
+ }
+
+ refresh();
+ markDirty();
+ }
+ }
+
+
+ private ISigilBundle getBundle()
+ {
+ return getProjectModel().getBundle();
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportsForm.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportsForm.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportsForm.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportsForm.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import org.apache.felix.sigil.eclipse.SigilCore;
import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
import org.apache.felix.sigil.ui.eclipse.ui.form.SigilPage;
@@ -30,23 +31,29 @@
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
-public class ExportsForm extends SigilPage {
- public static final String PAGE_ID = "exports";
-
- private ISigilProjectModel project;
-
- public ExportsForm(FormEditor editor, ISigilProjectModel project) {
- super(editor, PAGE_ID, "Exports");
- this.project = project;
- }
-
+public class ExportsForm extends SigilPage
+{
+
+ public static final String PAGE_ID = "exports";
+
+ private ISigilProjectModel project;
+
+
+ public ExportsForm( FormEditor editor, ISigilProjectModel project )
+ {
+ super( editor, PAGE_ID, "Exports" );
+ this.project = project;
+ }
+
+
@Override
- protected void createFormContent(IManagedForm managedForm) {
+ protected void createFormContent( IManagedForm managedForm )
+ {
ScrolledForm form = managedForm.getForm();
form.setText( "Exports" );
-
- Composite body = form.getBody();
+
+ Composite body = form.getBody();
TableWrapLayout layout = new TableWrapLayout();
layout.bottomMargin = 10;
layout.topMargin = 5;
@@ -55,15 +62,17 @@
layout.numColumns = 1;
layout.horizontalSpacing = 10;
layout.verticalSpacing = 20;
- body.setLayout(layout);
- body.setLayoutData(new TableWrapData(TableWrapData.FILL));
-
- try {
- ExportPackagesSection exportPackages = new ExportPackagesSection( this, body, project );
- managedForm.addPart( exportPackages );
+ body.setLayout( layout );
+ body.setLayoutData( new TableWrapData( TableWrapData.FILL ) );
+
+ try
+ {
+ ExportPackagesSection exportPackages = new ExportPackagesSection( this, body, project );
+ managedForm.addPart( exportPackages );
}
- catch (CoreException e) {
- SigilCore.error( "Failed to create contents form", e);
+ catch ( CoreException e )
+ {
+ SigilCore.error( "Failed to create contents form", e );
}
}
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/GeneralInfoSection.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/GeneralInfoSection.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/GeneralInfoSection.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/GeneralInfoSection.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
import org.apache.felix.sigil.model.ModelElementFactory;
import org.apache.felix.sigil.model.eclipse.ISigilBundle;
@@ -43,180 +44,227 @@
import org.osgi.framework.BundleActivator;
import org.osgi.framework.Version;
+
/**
* @author dave
*
*/
-public class GeneralInfoSection extends SigilSection {
+public class GeneralInfoSection extends SigilSection
+{
- private String name;
- private String symbolicName;
+ private String name;
+ private String symbolicName;
private Version version;
private String description;
private String provider;
private String activator;
private IRequiredBundle fragmentHost;
-
+
private SigilFormEntry nameEntry;
- private SigilFormEntry symbolicNameEntry;
+ private SigilFormEntry symbolicNameEntry;
private SigilFormEntry versionEntry;
private SigilFormEntry descriptionEntry;
private SigilFormEntry providerEntry;
private SigilFormEntry activatorEntry;
private SigilFormEntry fragmentHostEntry;
-
+
+
/**
* @param parent
* @param toolkit
* @param style
* @throws CoreException
*/
- public GeneralInfoSection(SigilPage page, Composite parent, ISigilProjectModel project) throws CoreException {
- super( page, parent, project );
- }
-
- protected void createSection(Section section,FormToolkit toolkit ) {
- setTitle("General Information");
-
- Composite body = createGridBody(3, false, toolkit);
-
+ public GeneralInfoSection( SigilPage page, Composite parent, ISigilProjectModel project ) throws CoreException
+ {
+ super( page, parent, project );
+ }
+
+
+ protected void createSection( Section section, FormToolkit toolkit )
+ {
+ setTitle( "General Information" );
+
+ Composite body = createGridBody( 3, false, toolkit );
+
Label label = toolkit.createLabel( body, "This section describes general information about this project." );
- label.setLayoutData( new GridData(SWT.LEFT, SWT.CENTER, true, false, 3, 1) );
-
- symbolicNameEntry = new SigilFormEntry(body, toolkit, "Symbolic Name");
- symbolicNameEntry.setFormEntryListener( new SigilFormEntryAdapter() {
- @Override
- public void textValueChanged(SigilFormEntry form) {
- symbolicName = nullIfEmpty((String) form.getValue());
- checkDirty();
- }
- });
-
- nameEntry = new SigilFormEntry(body, toolkit, "Name");
- nameEntry.setFormEntryListener( new SigilFormEntryAdapter() {
- @Override
- public void textValueChanged(SigilFormEntry form) {
- name = nullIfEmpty((String) form.getValue());
- checkDirty();
- }
- });
-
- descriptionEntry = new SigilFormEntry(body, toolkit, "Description");
- descriptionEntry.setFormEntryListener( new SigilFormEntryAdapter() {
- @Override
- public void textValueChanged(SigilFormEntry form) {
- description = nullIfEmpty((String) form.getValue());
- checkDirty();
- }
- });
-
- IFormValueConverter converter = new IFormValueConverter() {
- public String getLabel(Object value) {
- Version v = (Version) value;
- return v.toString();
- }
-
- public Object getValue(String label) {
- return Version.parseVersion(label);
- }
+ label.setLayoutData( new GridData( SWT.LEFT, SWT.CENTER, true, false, 3, 1 ) );
+
+ symbolicNameEntry = new SigilFormEntry( body, toolkit, "Symbolic Name" );
+ symbolicNameEntry.setFormEntryListener( new SigilFormEntryAdapter()
+ {
+ @Override
+ public void textValueChanged( SigilFormEntry form )
+ {
+ symbolicName = nullIfEmpty( ( String ) form.getValue() );
+ checkDirty();
+ }
+ } );
+
+ nameEntry = new SigilFormEntry( body, toolkit, "Name" );
+ nameEntry.setFormEntryListener( new SigilFormEntryAdapter()
+ {
+ @Override
+ public void textValueChanged( SigilFormEntry form )
+ {
+ name = nullIfEmpty( ( String ) form.getValue() );
+ checkDirty();
+ }
+ } );
+
+ descriptionEntry = new SigilFormEntry( body, toolkit, "Description" );
+ descriptionEntry.setFormEntryListener( new SigilFormEntryAdapter()
+ {
+ @Override
+ public void textValueChanged( SigilFormEntry form )
+ {
+ description = nullIfEmpty( ( String ) form.getValue() );
+ checkDirty();
+ }
+ } );
+
+ IFormValueConverter converter = new IFormValueConverter()
+ {
+ public String getLabel( Object value )
+ {
+ Version v = ( Version ) value;
+ return v.toString();
+ }
+
+
+ public Object getValue( String label )
+ {
+ return Version.parseVersion( label );
+ }
+ };
+
+ versionEntry = new SigilFormEntry( body, toolkit, "Version", null, converter );
+ versionEntry.setFormEntryListener( new SigilFormEntryAdapter()
+ {
+ @Override
+ public void textValueChanged( SigilFormEntry form )
+ {
+ version = ( Version ) form.getValue();
+ checkDirty();
+ }
+ } );
+
+ providerEntry = new SigilFormEntry( body, toolkit, "Provider" );
+ providerEntry.setFormEntryListener( new SigilFormEntryAdapter()
+ {
+ @Override
+ public void textValueChanged( SigilFormEntry form )
+ {
+ provider = nullIfEmpty( ( String ) form.getValue() );
+ checkDirty();
+ }
+ } );
+
+ activatorEntry = new SigilFormEntry( body, toolkit, "Bundle Activator", "Browse...", null );
+ activatorEntry.setFormEntryListener( new SigilFormEntryAdapter()
+ {
+ @Override
+ public void textValueChanged( SigilFormEntry form )
+ {
+ activator = ( String ) form.getValue();
+ checkDirty();
+ }
+
+
+ @Override
+ public void browseButtonSelected( SigilFormEntry form )
+ {
+ BackgroundLoadingSelectionDialog<String> dialog = ResourcesDialogHelper.createClassSelectDialog(
+ getShell(), "Add Bundle Activator", getProjectModel(), activator, BundleActivator.class.getName() );
+
+ if ( dialog.open() == Window.OK )
+ {
+ form.setValue( dialog.getSelectedElement() );
+ }
+ }
+ } );
+
+ converter = new IFormValueConverter()
+ {
+ public String getLabel( Object value )
+ {
+ IRequiredBundle b = ( IRequiredBundle ) value;
+ return b == null ? null : b.getSymbolicName() + " " + b.getVersions();
+ }
+
+
+ public Object getValue( String label )
+ {
+ return null;
+ }
};
-
- versionEntry = new SigilFormEntry(body, toolkit, "Version", null, converter);
- versionEntry.setFormEntryListener( new SigilFormEntryAdapter() {
- @Override
- public void textValueChanged(SigilFormEntry form) {
- version = (Version) form.getValue();
- checkDirty();
- }
- });
-
- providerEntry = new SigilFormEntry(body, toolkit, "Provider");
- providerEntry.setFormEntryListener( new SigilFormEntryAdapter() {
- @Override
- public void textValueChanged(SigilFormEntry form) {
- provider = nullIfEmpty((String) form.getValue());
- checkDirty();
- }
- });
-
- activatorEntry = new SigilFormEntry(body, toolkit, "Bundle Activator", "Browse...", null);
- activatorEntry.setFormEntryListener( new SigilFormEntryAdapter() {
- @Override
- public void textValueChanged(SigilFormEntry form) {
- activator = (String) form.getValue();
- checkDirty();
- }
-
- @Override
- public void browseButtonSelected(SigilFormEntry form) {
- BackgroundLoadingSelectionDialog<String> dialog = ResourcesDialogHelper.createClassSelectDialog(getShell(), "Add Bundle Activator", getProjectModel(), activator, BundleActivator.class.getName());
-
- if (dialog.open() == Window.OK) {
- form.setValue(dialog.getSelectedElement());
- }
- }
- });
-
- converter = new IFormValueConverter() {
- public String getLabel(Object value) {
- IRequiredBundle b = (IRequiredBundle) value;
- return b == null ? null : b.getSymbolicName() + " " + b.getVersions();
- }
-
- public Object getValue(String label) {
- return null;
- }
- };
-
- fragmentHostEntry = new SigilFormEntry(body, toolkit, "Fragment Host", "Browse...", converter );
- fragmentHostEntry.setFormEntryListener( new SigilFormEntryAdapter() {
- @Override
- public void textValueChanged(SigilFormEntry form) {
- fragmentHost = (IRequiredBundle) form.getValue();
- checkDirty();
- }
-
- @Override
- public void browseButtonSelected(SigilFormEntry form) {
- NewResourceSelectionDialog<IBundleModelElement> dialog = ResourcesDialogHelper.createRequiredBundleDialog( getSection().getShell(), "Add Required Bundle", getProjectModel(), null, getBundle().getBundleInfo().getRequiredBundles() );
-
- if (dialog.open() == Window.OK) {
- IRequiredBundle required = ModelElementFactory.getInstance().newModelElement( IRequiredBundle.class );
- required.setSymbolicName(dialog.getSelectedName());
- required.setVersions(dialog.getSelectedVersions());
- form.setValue(required);
- }
- }
- });
- fragmentHostEntry.setFreeText(false);
- }
-
- private static String nullIfEmpty(String value) {
- if ( value.trim().length() == 0 ) {
- return null;
- }
- return value;
- }
-
- private Shell getShell() {
- return getSection().getShell();
- }
-
- @Override
- public void commit(boolean onSave) {
- getBundle().getBundleInfo().setSymbolicName( symbolicName );
- getBundle().getBundleInfo().setName( name );
- getBundle().getBundleInfo().setVersion( version );
- getBundle().getBundleInfo().setDescription( description );
- getBundle().getBundleInfo().setVendor( provider );
- getBundle().getBundleInfo().setFragmentHost(fragmentHost);
- getBundle().getBundleInfo().setActivator(activator);
-
- super.commit(onSave);
- }
- @Override
- public void refresh() {
+ fragmentHostEntry = new SigilFormEntry( body, toolkit, "Fragment Host", "Browse...", converter );
+ fragmentHostEntry.setFormEntryListener( new SigilFormEntryAdapter()
+ {
+ @Override
+ public void textValueChanged( SigilFormEntry form )
+ {
+ fragmentHost = ( IRequiredBundle ) form.getValue();
+ checkDirty();
+ }
+
+
+ @Override
+ public void browseButtonSelected( SigilFormEntry form )
+ {
+ NewResourceSelectionDialog<IBundleModelElement> dialog = ResourcesDialogHelper
+ .createRequiredBundleDialog( getSection().getShell(), "Add Required Bundle", getProjectModel(),
+ null, getBundle().getBundleInfo().getRequiredBundles() );
+
+ if ( dialog.open() == Window.OK )
+ {
+ IRequiredBundle required = ModelElementFactory.getInstance()
+ .newModelElement( IRequiredBundle.class );
+ required.setSymbolicName( dialog.getSelectedName() );
+ required.setVersions( dialog.getSelectedVersions() );
+ form.setValue( required );
+ }
+ }
+ } );
+ fragmentHostEntry.setFreeText( false );
+ }
+
+
+ private static String nullIfEmpty( String value )
+ {
+ if ( value.trim().length() == 0 )
+ {
+ return null;
+ }
+ return value;
+ }
+
+
+ private Shell getShell()
+ {
+ return getSection().getShell();
+ }
+
+
+ @Override
+ public void commit( boolean onSave )
+ {
+ getBundle().getBundleInfo().setSymbolicName( symbolicName );
+ getBundle().getBundleInfo().setName( name );
+ getBundle().getBundleInfo().setVersion( version );
+ getBundle().getBundleInfo().setDescription( description );
+ getBundle().getBundleInfo().setVendor( provider );
+ getBundle().getBundleInfo().setFragmentHost( fragmentHost );
+ getBundle().getBundleInfo().setActivator( activator );
+
+ super.commit( onSave );
+ }
+
+
+ @Override
+ public void refresh()
+ {
symbolicName = getProjectModel().getBundle().getBundleInfo().getSymbolicName();
name = getProjectModel().getBundle().getBundleInfo().getName();
description = getProjectModel().getBundle().getBundleInfo().getDescription();
@@ -224,35 +272,42 @@
provider = getProjectModel().getBundle().getBundleInfo().getVendor();
fragmentHost = getProjectModel().getBundle().getBundleInfo().getFragmentHost();
activator = getProjectModel().getBundle().getBundleInfo().getActivator();
-
- nameEntry.setValue(name);
- symbolicNameEntry.setValue(symbolicName);
- versionEntry.setValue(version);
- descriptionEntry.setValue(description);
- providerEntry.setValue(provider);
- fragmentHostEntry.setValue(fragmentHost);
- activatorEntry.setValue(activator);
-
- super.refresh();
- }
-
- private void checkDirty() {
- boolean dirty = different(symbolicName, getProjectModel().getBundle().getBundleInfo().getSymbolicName() ) ||
- different(name, getProjectModel().getBundle().getBundleInfo().getName() ) ||
- different(version, getProjectModel().getBundle().getBundleInfo().getVersion() ) ||
- different(description, getProjectModel().getBundle().getBundleInfo().getDescription()) ||
- different(provider, getProjectModel().getBundle().getBundleInfo().getVendor()) ||
- different(fragmentHost, getProjectModel().getBundle().getBundleInfo().getFragmentHost()) ||
- different(activator, getProjectModel().getBundle().getBundleInfo().getActivator());
-
- if ( dirty ) markDirty();
- }
-
- private boolean different(Object val1, Object val2) {
- return val1 == null ? val2 != null : !val1.equals( val2 );
- }
-
- private ISigilBundle getBundle() {
- return getProjectModel().getBundle();
- }
+
+ nameEntry.setValue( name );
+ symbolicNameEntry.setValue( symbolicName );
+ versionEntry.setValue( version );
+ descriptionEntry.setValue( description );
+ providerEntry.setValue( provider );
+ fragmentHostEntry.setValue( fragmentHost );
+ activatorEntry.setValue( activator );
+
+ super.refresh();
+ }
+
+
+ private void checkDirty()
+ {
+ boolean dirty = different( symbolicName, getProjectModel().getBundle().getBundleInfo().getSymbolicName() )
+ || different( name, getProjectModel().getBundle().getBundleInfo().getName() )
+ || different( version, getProjectModel().getBundle().getBundleInfo().getVersion() )
+ || different( description, getProjectModel().getBundle().getBundleInfo().getDescription() )
+ || different( provider, getProjectModel().getBundle().getBundleInfo().getVendor() )
+ || different( fragmentHost, getProjectModel().getBundle().getBundleInfo().getFragmentHost() )
+ || different( activator, getProjectModel().getBundle().getBundleInfo().getActivator() );
+
+ if ( dirty )
+ markDirty();
+ }
+
+
+ private boolean different( Object val1, Object val2 )
+ {
+ return val1 == null ? val2 != null : !val1.equals( val2 );
+ }
+
+
+ private ISigilBundle getBundle()
+ {
+ return getProjectModel().getBundle();
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/IDependencyChecker.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/IDependencyChecker.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/IDependencyChecker.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/IDependencyChecker.java Tue Jul 21 18:51:33 2009
@@ -19,10 +19,15 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import org.apache.felix.sigil.model.osgi.IPackageImport;
import org.apache.felix.sigil.model.osgi.IRequiredBundle;
-public interface IDependencyChecker {
- boolean isSatisfied(IPackageImport packageImport);
- boolean isSatisfied(IRequiredBundle requiredBundle);
+
+public interface IDependencyChecker
+{
+ boolean isSatisfied( IPackageImport packageImport );
+
+
+ boolean isSatisfied( IRequiredBundle requiredBundle );
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/IElementDescriptor.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/IElementDescriptor.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/IElementDescriptor.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/IElementDescriptor.java Tue Jul 21 18:51:33 2009
@@ -19,18 +19,21 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
-public interface IElementDescriptor<E> {
- /**
- * Return the short identifying name of the element.
- */
- String getName(E element);
- /**
- * Return a label for the element, including the name but possibly supplying
- * additional information.
- *
- * @param element
- * @return
- */
- String getLabel(E element);
+public interface IElementDescriptor<E>
+{
+ /**
+ * Return the short identifying name of the element.
+ */
+ String getName( E element );
+
+
+ /**
+ * Return a label for the element, including the name but possibly supplying
+ * additional information.
+ *
+ * @param element
+ * @return
+ */
+ String getLabel( E element );
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ImportPackagesSection.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ImportPackagesSection.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ImportPackagesSection.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ImportPackagesSection.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -42,112 +43,133 @@
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.forms.widgets.FormToolkit;
-public class ImportPackagesSection extends BundleDependencySection {
-
- public ImportPackagesSection(SigilPage page, Composite parent, ISigilProjectModel project, Set<IModelElement> unresolvedPackages) throws CoreException {
- super( page, parent, project, unresolvedPackages );
- }
-
- @Override
- protected String getTitle() {
- return "Import Packages";
- }
-
- @Override
- protected Label createLabel(Composite parent, FormToolkit toolkit) {
- return toolkit.createLabel( parent, "Specify which packages this bundle imports from other bundles." );
- }
-
-
- @Override
- protected IContentProvider getContentProvider() {
- return new DefaultTableProvider() {
- public Object[] getElements(Object inputElement) {
- ArrayList<IPackageImport> imports = new ArrayList<IPackageImport>(getBundle().getBundleInfo().getImports());
- Collections.sort(imports, new Comparator<IPackageImport>() {
- public int compare(IPackageImport o1, IPackageImport o2) {
- return o1.getPackageName().compareTo( o2.getPackageName() );
- }
- });
- return imports.toArray();
- }
+
+public class ImportPackagesSection extends BundleDependencySection
+{
+
+ public ImportPackagesSection( SigilPage page, Composite parent, ISigilProjectModel project,
+ Set<IModelElement> unresolvedPackages ) throws CoreException
+ {
+ super( page, parent, project, unresolvedPackages );
+ }
+
+
+ @Override
+ protected String getTitle()
+ {
+ return "Import Packages";
+ }
+
+
+ @Override
+ protected Label createLabel( Composite parent, FormToolkit toolkit )
+ {
+ return toolkit.createLabel( parent, "Specify which packages this bundle imports from other bundles." );
+ }
+
+
+ @Override
+ protected IContentProvider getContentProvider()
+ {
+ return new DefaultTableProvider()
+ {
+ public Object[] getElements( Object inputElement )
+ {
+ ArrayList<IPackageImport> imports = new ArrayList<IPackageImport>( getBundle().getBundleInfo()
+ .getImports() );
+ Collections.sort( imports, new Comparator<IPackageImport>()
+ {
+ public int compare( IPackageImport o1, IPackageImport o2 )
+ {
+ return o1.getPackageName().compareTo( o2.getPackageName() );
+ }
+ } );
+ return imports.toArray();
+ }
};
- }
+ }
+
- protected ISigilBundle getBundle() {
- return getProjectModel().getBundle();
- }
-
- @Override
- protected void handleAdd() {
- NewResourceSelectionDialog<? extends IPackageModelElement> dialog =
- ResourcesDialogHelper.createImportDialog(
- getSection().getShell(),
- "Add Imported Package",
- getProjectModel(),
- null,
- getBundle().getBundleInfo().getImports() );
-
- if ( dialog.open() == Window.OK ) {
- IPackageImport pi = ModelElementFactory.getInstance().newModelElement(IPackageImport.class);
- pi.setPackageName(dialog.getSelectedName());
- pi.setVersions(dialog.getSelectedVersions());
- pi.setOptional(dialog.isOptional());
-
- getBundle().getBundleInfo().addImport(pi);
- refresh();
- markDirty();
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- protected void handleRemoved() {
- IStructuredSelection selection = (IStructuredSelection) getSelection();
-
- if ( !selection.isEmpty() ) {
- for ( Iterator<IPackageImport> i = selection.iterator(); i.hasNext(); ) {
- getBundle().getBundleInfo().removeImport( i.next() );
- }
-
- refresh();
- markDirty();
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- protected void handleEdit() {
- IStructuredSelection selection = (IStructuredSelection) getSelection();
-
- boolean changed = false;
-
- if ( !selection.isEmpty() ) {
- for ( Iterator<IPackageImport> i = selection.iterator(); i.hasNext(); ) {
- IPackageImport packageImport = i.next();
- NewResourceSelectionDialog<? extends IPackageModelElement> dialog =
- ResourcesDialogHelper.createImportDialog(
- getSection().getShell(),
- "Edit Imported Package",
- getProjectModel(),
- packageImport,
- getBundle().getBundleInfo().getImports() );
- if ( dialog.open() == Window.OK ) {
- changed = true;
- IPackageImport newImport = ModelElementFactory.getInstance().newModelElement(IPackageImport.class);
- newImport.setPackageName(dialog.getSelectedName());
- newImport.setVersions(dialog.getSelectedVersions());
- newImport.setOptional(dialog.isOptional());
-
- getBundle().getBundleInfo().removeImport( packageImport );
- getBundle().getBundleInfo().addImport(newImport);
- }
- }
- }
-
- if ( changed ) {
- refresh();
- markDirty();
- }
- }
+ protected ISigilBundle getBundle()
+ {
+ return getProjectModel().getBundle();
+ }
+
+
+ @Override
+ protected void handleAdd()
+ {
+ NewResourceSelectionDialog<? extends IPackageModelElement> dialog = ResourcesDialogHelper.createImportDialog(
+ getSection().getShell(), "Add Imported Package", getProjectModel(), null, getBundle().getBundleInfo()
+ .getImports() );
+
+ if ( dialog.open() == Window.OK )
+ {
+ IPackageImport pi = ModelElementFactory.getInstance().newModelElement( IPackageImport.class );
+ pi.setPackageName( dialog.getSelectedName() );
+ pi.setVersions( dialog.getSelectedVersions() );
+ pi.setOptional( dialog.isOptional() );
+
+ getBundle().getBundleInfo().addImport( pi );
+ refresh();
+ markDirty();
+ }
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void handleRemoved()
+ {
+ IStructuredSelection selection = ( IStructuredSelection ) getSelection();
+
+ if ( !selection.isEmpty() )
+ {
+ for ( Iterator<IPackageImport> i = selection.iterator(); i.hasNext(); )
+ {
+ getBundle().getBundleInfo().removeImport( i.next() );
+ }
+
+ refresh();
+ markDirty();
+ }
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void handleEdit()
+ {
+ IStructuredSelection selection = ( IStructuredSelection ) getSelection();
+
+ boolean changed = false;
+
+ if ( !selection.isEmpty() )
+ {
+ for ( Iterator<IPackageImport> i = selection.iterator(); i.hasNext(); )
+ {
+ IPackageImport packageImport = i.next();
+ NewResourceSelectionDialog<? extends IPackageModelElement> dialog = ResourcesDialogHelper
+ .createImportDialog( getSection().getShell(), "Edit Imported Package", getProjectModel(),
+ packageImport, getBundle().getBundleInfo().getImports() );
+ if ( dialog.open() == Window.OK )
+ {
+ changed = true;
+ IPackageImport newImport = ModelElementFactory.getInstance().newModelElement( IPackageImport.class );
+ newImport.setPackageName( dialog.getSelectedName() );
+ newImport.setVersions( dialog.getSelectedVersions() );
+ newImport.setOptional( dialog.isOptional() );
+
+ getBundle().getBundleInfo().removeImport( packageImport );
+ getBundle().getBundleInfo().addImport( newImport );
+ }
+ }
+ }
+
+ if ( changed )
+ {
+ refresh();
+ markDirty();
+ }
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewPackageExportDialog.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewPackageExportDialog.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewPackageExportDialog.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewPackageExportDialog.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import java.util.Comparator;
import org.apache.felix.sigil.ui.eclipse.ui.util.BackgroundLoadingSelectionDialog;
@@ -37,114 +38,144 @@
import org.eclipse.swt.widgets.Text;
import org.osgi.framework.Version;
-public class NewPackageExportDialog extends BackgroundLoadingSelectionDialog<IPackageFragment> {
-
- private static final IElementDescriptor<IPackageFragment> PKG_FRAGMENT_STRINGIFIER = new IElementDescriptor<IPackageFragment>() {
- public String getLabel(IPackageFragment element) {
- return getName(element);
- }
- public String getName(IPackageFragment element) {
- return element.getElementName();
- }
- };
-
- private static final Comparator<IPackageFragment> PKG_FRAGMENT_COMPARATOR = new Comparator<IPackageFragment>() {
- public int compare(IPackageFragment o1, IPackageFragment o2) {
- return o1.getElementName().compareTo(o2.getElementName());
- }
- };
-
- private Version version = null;
- private String error = null;
- private Version projectVersion = new Version(0,0,0);
-
- private Button btnInheritBundleVersion;
- private Button btnExplicitVersion;
- private Text txtVersion;
-
-
- public NewPackageExportDialog(Shell parentShell, boolean multiSelect) {
- super(parentShell, "Package:", multiSelect);
- setDescriptor(PKG_FRAGMENT_STRINGIFIER);
- setComparator(PKG_FRAGMENT_COMPARATOR);
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- // Create controls
- Composite container = (Composite) super.createDialogArea(parent);
- Composite composite = new Composite(container, SWT.NONE);
-
- Group grpVersion = new Group(composite, SWT.NONE);
- grpVersion.setText("Version");
-
- btnInheritBundleVersion = new Button(grpVersion, SWT.RADIO);
- btnInheritBundleVersion.setText("Inherit bundle version");
- new Label(grpVersion, SWT.NONE); // Spacer
- btnExplicitVersion = new Button(grpVersion, SWT.RADIO);
- btnExplicitVersion.setText("Fixed version:");
- txtVersion = new Text(grpVersion, SWT.BORDER);
-
- // Initialize
- if(version == null) {
- btnInheritBundleVersion.setSelection(true);
- txtVersion.setEnabled(false);
- txtVersion.setText(projectVersion.toString());
- } else {
- btnExplicitVersion.setSelection(true);
- txtVersion.setEnabled(true);
- txtVersion.setText(version.toString());
- }
- updateButtons();
-
- // Listeners
- Listener radioAndTextListener = new Listener() {
- public void handleEvent(Event event) {
- error = null;
- if(btnInheritBundleVersion.getSelection()) {
- version = null;
- txtVersion.setEnabled(false);
- } else {
- txtVersion.setEnabled(true);
- try {
- version = new Version(txtVersion.getText());
- } catch (IllegalArgumentException e) {
- error = "Invalid version";
- }
- }
- setErrorMessage(error);
- updateButtons();
- }
- };
- txtVersion.addListener(SWT.Modify, radioAndTextListener);
- btnInheritBundleVersion.addListener(SWT.Selection, radioAndTextListener);
- btnExplicitVersion.addListener(SWT.Selection, radioAndTextListener);
-
-
- // Layout
- composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
- composite.setLayout(new GridLayout(1, false));
- grpVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
- grpVersion.setLayout(new GridLayout(2, false));
- txtVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
- return container;
- }
-
- @Override
- protected boolean canComplete() {
- return super.canComplete() && error == null;
- }
-
- public void setProjectVersion(Version projectVersion) {
- this.projectVersion = projectVersion;
- }
-
- public void setVersion(Version version) {
- this.version = version;
- }
-
- public Version getVersion() {
- return version;
- }
+
+public class NewPackageExportDialog extends BackgroundLoadingSelectionDialog<IPackageFragment>
+{
+
+ private static final IElementDescriptor<IPackageFragment> PKG_FRAGMENT_STRINGIFIER = new IElementDescriptor<IPackageFragment>()
+ {
+ public String getLabel( IPackageFragment element )
+ {
+ return getName( element );
+ }
+
+
+ public String getName( IPackageFragment element )
+ {
+ return element.getElementName();
+ }
+ };
+
+ private static final Comparator<IPackageFragment> PKG_FRAGMENT_COMPARATOR = new Comparator<IPackageFragment>()
+ {
+ public int compare( IPackageFragment o1, IPackageFragment o2 )
+ {
+ return o1.getElementName().compareTo( o2.getElementName() );
+ }
+ };
+
+ private Version version = null;
+ private String error = null;
+ private Version projectVersion = new Version( 0, 0, 0 );
+
+ private Button btnInheritBundleVersion;
+ private Button btnExplicitVersion;
+ private Text txtVersion;
+
+
+ public NewPackageExportDialog( Shell parentShell, boolean multiSelect )
+ {
+ super( parentShell, "Package:", multiSelect );
+ setDescriptor( PKG_FRAGMENT_STRINGIFIER );
+ setComparator( PKG_FRAGMENT_COMPARATOR );
+ }
+
+
+ @Override
+ protected Control createDialogArea( Composite parent )
+ {
+ // Create controls
+ Composite container = ( Composite ) super.createDialogArea( parent );
+ Composite composite = new Composite( container, SWT.NONE );
+
+ Group grpVersion = new Group( composite, SWT.NONE );
+ grpVersion.setText( "Version" );
+
+ btnInheritBundleVersion = new Button( grpVersion, SWT.RADIO );
+ btnInheritBundleVersion.setText( "Inherit bundle version" );
+ new Label( grpVersion, SWT.NONE ); // Spacer
+ btnExplicitVersion = new Button( grpVersion, SWT.RADIO );
+ btnExplicitVersion.setText( "Fixed version:" );
+ txtVersion = new Text( grpVersion, SWT.BORDER );
+
+ // Initialize
+ if ( version == null )
+ {
+ btnInheritBundleVersion.setSelection( true );
+ txtVersion.setEnabled( false );
+ txtVersion.setText( projectVersion.toString() );
+ }
+ else
+ {
+ btnExplicitVersion.setSelection( true );
+ txtVersion.setEnabled( true );
+ txtVersion.setText( version.toString() );
+ }
+ updateButtons();
+
+ // Listeners
+ Listener radioAndTextListener = new Listener()
+ {
+ public void handleEvent( Event event )
+ {
+ error = null;
+ if ( btnInheritBundleVersion.getSelection() )
+ {
+ version = null;
+ txtVersion.setEnabled( false );
+ }
+ else
+ {
+ txtVersion.setEnabled( true );
+ try
+ {
+ version = new Version( txtVersion.getText() );
+ }
+ catch ( IllegalArgumentException e )
+ {
+ error = "Invalid version";
+ }
+ }
+ setErrorMessage( error );
+ updateButtons();
+ }
+ };
+ txtVersion.addListener( SWT.Modify, radioAndTextListener );
+ btnInheritBundleVersion.addListener( SWT.Selection, radioAndTextListener );
+ btnExplicitVersion.addListener( SWT.Selection, radioAndTextListener );
+
+ // Layout
+ composite.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
+ composite.setLayout( new GridLayout( 1, false ) );
+ grpVersion.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
+ grpVersion.setLayout( new GridLayout( 2, false ) );
+ txtVersion.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
+
+ return container;
+ }
+
+
+ @Override
+ protected boolean canComplete()
+ {
+ return super.canComplete() && error == null;
+ }
+
+
+ public void setProjectVersion( Version projectVersion )
+ {
+ this.projectVersion = projectVersion;
+ }
+
+
+ public void setVersion( Version version )
+ {
+ this.version = version;
+ }
+
+
+ public Version getVersion()
+ {
+ return version;
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewResourceSelectionDialog.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewResourceSelectionDialog.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewResourceSelectionDialog.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/NewResourceSelectionDialog.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.editors.project;
+
import org.apache.felix.sigil.eclipse.SigilCore;
import org.apache.felix.sigil.model.common.VersionRange;
import org.apache.felix.sigil.model.common.VersionRangeBoundingRule;
@@ -40,122 +41,156 @@
import org.eclipse.swt.widgets.Shell;
import org.osgi.framework.Version;
-public class NewResourceSelectionDialog<E extends IVersionedModelElement> extends BackgroundLoadingSelectionDialog<E> {
- private VersionRangeComponent pnlVersionRange;
- private boolean optionalEnabled = true;
- private Button btnOptional;
-
- private VersionRange selectedVersions = null;
- private boolean optional = false;
-
- public NewResourceSelectionDialog(Shell parentShell, String selectionLabel, boolean multi) {
- super(parentShell, selectionLabel, multi);
- }
-
- public void setOptionalEnabled(boolean enabled) {
- optionalEnabled = enabled;
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- // Create controls
- Composite container = (Composite) super.createDialogArea(parent);
- Composite composite = new Composite(container, SWT.NONE);
-
- if ( optionalEnabled ) {
- new Label(composite, SWT.NONE); //Spacer
- btnOptional = new Button(composite, SWT.CHECK);
- btnOptional.setText("Optional");
- }
-
- Label lblVersionRange = new Label(composite, SWT.NONE);
- lblVersionRange.setText("Version Range:");
- Group group = new Group(composite, SWT.BORDER);
-
- pnlVersionRange = new VersionRangeComponent(group, SWT.NONE);
-
- // Initialize
- if (selectedVersions != null) {
- pnlVersionRange.setVersions(selectedVersions);
- }
-
- if ( optionalEnabled ) {
- btnOptional.setSelection(optional);
- updateButtons();
- }
-
- // Hookup Listeners
- pnlVersionRange.addVersionChangeListener(new VersionsChangeListener() {
- public void versionsChanged(VersionRange range) {
- selectedVersions = range;
- updateButtons();
- }
- });
- pnlVersionRange.addValidationListener(new IValidationListener() {
- public void validationMessage(String message, int level) {
- setMessage(message, level);
- updateButtons();
- }
- });
-
- if ( optionalEnabled ) {
- btnOptional.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- optional = btnOptional.getSelection();
- }
- });
- }
-
- // Layout
- composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
- GridLayout layout = new GridLayout(2, false);
- layout.verticalSpacing = 10;
- layout.horizontalSpacing = 10;
- composite.setLayout(layout);
-
- lblVersionRange.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
- group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
- group.setLayout(new FillLayout());
-
- return container;
- }
-
- @Override
- protected void elementSelected(E selection) {
- if(selection != null) {
- IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
- VersionRangeBoundingRule lowerBoundRule = VersionRangeBoundingRule.valueOf(store.getString(SigilCore.DEFAULT_VERSION_LOWER_BOUND));
- VersionRangeBoundingRule upperBoundRule = VersionRangeBoundingRule.valueOf(store.getString(SigilCore.DEFAULT_VERSION_UPPER_BOUND));
-
- Version version = selection.getVersion();
- selectedVersions = VersionRange.newInstance(version, lowerBoundRule, upperBoundRule);
- pnlVersionRange.setVersions(selectedVersions);
- }
- }
-
- @Override
- protected synchronized boolean canComplete() {
- return super.canComplete() && selectedVersions != null;
- }
-
- public VersionRange getSelectedVersions() {
- return selectedVersions;
- }
-
- public void setVersions(VersionRange versions) {
- selectedVersions = versions;
- if(pnlVersionRange != null && !pnlVersionRange.isDisposed()) {
- pnlVersionRange.setVersions(versions);
- updateButtons();
- }
- }
-
- public boolean isOptional() {
- return optional;
- }
-
- public void setOptional(boolean optional) {
- this.optional = optional;
- }
+public class NewResourceSelectionDialog<E extends IVersionedModelElement> extends BackgroundLoadingSelectionDialog<E>
+{
+
+ private VersionRangeComponent pnlVersionRange;
+ private boolean optionalEnabled = true;
+ private Button btnOptional;
+
+ private VersionRange selectedVersions = null;
+ private boolean optional = false;
+
+
+ public NewResourceSelectionDialog( Shell parentShell, String selectionLabel, boolean multi )
+ {
+ super( parentShell, selectionLabel, multi );
+ }
+
+
+ public void setOptionalEnabled( boolean enabled )
+ {
+ optionalEnabled = enabled;
+ }
+
+
+ @Override
+ protected Control createDialogArea( Composite parent )
+ {
+ // Create controls
+ Composite container = ( Composite ) super.createDialogArea( parent );
+ Composite composite = new Composite( container, SWT.NONE );
+
+ if ( optionalEnabled )
+ {
+ new Label( composite, SWT.NONE ); //Spacer
+ btnOptional = new Button( composite, SWT.CHECK );
+ btnOptional.setText( "Optional" );
+ }
+
+ Label lblVersionRange = new Label( composite, SWT.NONE );
+ lblVersionRange.setText( "Version Range:" );
+ Group group = new Group( composite, SWT.BORDER );
+
+ pnlVersionRange = new VersionRangeComponent( group, SWT.NONE );
+
+ // Initialize
+ if ( selectedVersions != null )
+ {
+ pnlVersionRange.setVersions( selectedVersions );
+ }
+
+ if ( optionalEnabled )
+ {
+ btnOptional.setSelection( optional );
+ updateButtons();
+ }
+
+ // Hookup Listeners
+ pnlVersionRange.addVersionChangeListener( new VersionsChangeListener()
+ {
+ public void versionsChanged( VersionRange range )
+ {
+ selectedVersions = range;
+ updateButtons();
+ }
+ } );
+ pnlVersionRange.addValidationListener( new IValidationListener()
+ {
+ public void validationMessage( String message, int level )
+ {
+ setMessage( message, level );
+ updateButtons();
+ }
+ } );
+
+ if ( optionalEnabled )
+ {
+ btnOptional.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ optional = btnOptional.getSelection();
+ }
+ } );
+ }
+
+ // Layout
+ composite.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
+ GridLayout layout = new GridLayout( 2, false );
+ layout.verticalSpacing = 10;
+ layout.horizontalSpacing = 10;
+ composite.setLayout( layout );
+
+ lblVersionRange.setLayoutData( new GridData( SWT.LEFT, SWT.TOP, false, false ) );
+ group.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
+ group.setLayout( new FillLayout() );
+
+ return container;
+ }
+
+
+ @Override
+ protected void elementSelected( E selection )
+ {
+ if ( selection != null )
+ {
+ IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
+ VersionRangeBoundingRule lowerBoundRule = VersionRangeBoundingRule.valueOf( store
+ .getString( SigilCore.DEFAULT_VERSION_LOWER_BOUND ) );
+ VersionRangeBoundingRule upperBoundRule = VersionRangeBoundingRule.valueOf( store
+ .getString( SigilCore.DEFAULT_VERSION_UPPER_BOUND ) );
+
+ Version version = selection.getVersion();
+ selectedVersions = VersionRange.newInstance( version, lowerBoundRule, upperBoundRule );
+ pnlVersionRange.setVersions( selectedVersions );
+ }
+ }
+
+
+ @Override
+ protected synchronized boolean canComplete()
+ {
+ return super.canComplete() && selectedVersions != null;
+ }
+
+
+ public VersionRange getSelectedVersions()
+ {
+ return selectedVersions;
+ }
+
+
+ public void setVersions( VersionRange versions )
+ {
+ selectedVersions = versions;
+ if ( pnlVersionRange != null && !pnlVersionRange.isDisposed() )
+ {
+ pnlVersionRange.setVersions( versions );
+ updateButtons();
+ }
+ }
+
+
+ public boolean isOptional()
+ {
+ return optional;
+ }
+
+
+ public void setOptional( boolean optional )
+ {
+ this.optional = optional;
+ }
}