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 [20/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/preferences/project/ProjectPropertyPage.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/project/ProjectPropertyPage.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/project/ProjectPropertyPage.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/project/ProjectPropertyPage.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.project;
+
import java.util.concurrent.Callable;
import org.apache.felix.sigil.eclipse.SigilCore;
@@ -48,143 +49,179 @@
import org.eclipse.ui.dialogs.PropertyPage;
import org.osgi.service.prefs.BackingStoreException;
-public class ProjectPropertyPage extends PropertyPage implements
- IWorkbenchPropertyPage {
- private boolean projectSpecific;
- private ComboViewer setView;
- private Composite settings;
- private Button projectSpecificBtn;
-
- @Override
- protected Control createContents(Composite parent) {
- final Composite control = new Composite(parent, SWT.NONE);
-
- projectSpecificBtn = new Button(control, SWT.CHECK);
- projectSpecificBtn.setText( "Enable project specific settings");
- projectSpecificBtn.addSelectionListener( new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- setProjectSpecific(!projectSpecific);
- }
- });
-
- Label link = new Label( control, SWT.UNDERLINE_SINGLE );
- link.addMouseListener( new MouseAdapter() {
- @Override
- public void mouseDown(MouseEvent e) {
- PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(null, SigilCore.REPOSITORIES_PREFERENCES_ID, null, null);
- dialog.open();
- }
- });
-
- link.setText("Configure workspace settings" );
-
- settings = new Composite( control, SWT.BORDER );
- settings.setLayout( new GridLayout(1,false));
- createSettings( settings );
-
- setFonts(control);
-
- // layout
- control.setLayout( new GridLayout(2, false));
- projectSpecificBtn.setLayoutData( new GridData(SWT.FILL, SWT.FILL, true, false ) );
- settings.setLayoutData( new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1 ) );
-
- // load settings
- String currentSet = getCurrentSet();
-
- if ( currentSet == null ) {
- setProjectSpecific(false);
- }
- else {
- setView.setSelection( new StructuredSelection(currentSet) );
- setProjectSpecific(true);
- }
-
- return control;
- }
-
- private void setFonts(Composite control) {
- Composite p = control.getParent();
- for ( Control c : control.getChildren() ) {
- c.setFont( p.getFont() );
- if ( c instanceof Composite ) {
- setFonts( (Composite) c );
- }
- }
- }
-
- private void setProjectSpecific(boolean projectSpecific) {
- if ( this.projectSpecific != projectSpecific ) {
- this.projectSpecific = projectSpecific;
- settings.setEnabled(projectSpecific);
- for ( Control c : settings.getChildren() ) {
- c.setEnabled( projectSpecific );
- }
- projectSpecificBtn.setSelection(projectSpecific);
- }
- }
-
- private void createSettings(Composite parent) {
- Composite control = new Composite(parent, SWT.NONE);
-
- new Label( control, SWT.NONE).setText( "Repository Set:" );
- Combo combo = new Combo(control, SWT.SINGLE);
-
- setView = new ComboViewer(combo);
- setView.setContentProvider( new DefaultTableProvider() {
- public Object[] getElements(Object inputElement) {
- return toArray(inputElement);
- }
- });
-
- setView.setInput( SigilCore.getRepositoryConfiguration().loadRepositorySets().keySet() );
-
- // layout
- control.setLayout( new GridLayout(2, false ) );
- }
-
- private String getCurrentSet() {
- try {
- IProject p = (IProject) getElement().getAdapter(IProject.class);
- ISigilProjectModel model = SigilCore.create(p);
- return model.getPreferences().get( SigilCore.REPOSITORY_SET, null );
- } catch (CoreException e) {
- SigilCore.error("Failed to read repository set", e );
- return null;
- }
- }
-
- @Override
- public boolean okToLeave() {
- if ( projectSpecific ) {
- if ( setView.getSelection().isEmpty() ) {
- setErrorMessage("Must select a repository set");
- return false;
- }
- }
- setErrorMessage(null);
- return true;
- }
-
- @Override
- public boolean performOk() {
- return ProjectUtils.runTaskWithRebuildCheck( new Callable<Boolean>() {
- public Boolean call() throws CoreException, BackingStoreException {
- String set = null;
- if ( projectSpecific ) {
- set = (String) ((IStructuredSelection) setView.getSelection()).getFirstElement();
- }
-
- IProject p = (IProject) getElement().getAdapter(IProject.class);
- ISigilProjectModel model = SigilCore.create(p);
- model.getPreferences().put( SigilCore.REPOSITORY_SET, set );
- model.getPreferences().flush();
- return true;
- }
+public class ProjectPropertyPage extends PropertyPage implements IWorkbenchPropertyPage
+{
+
+ private boolean projectSpecific;
+ private ComboViewer setView;
+ private Composite settings;
+ private Button projectSpecificBtn;
+
+
+ @Override
+ protected Control createContents( Composite parent )
+ {
+ final Composite control = new Composite( parent, SWT.NONE );
+
+ projectSpecificBtn = new Button( control, SWT.CHECK );
+ projectSpecificBtn.setText( "Enable project specific settings" );
+ projectSpecificBtn.addSelectionListener( new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected( SelectionEvent e )
+ {
+ setProjectSpecific( !projectSpecific );
+ }
+ } );
+
+ Label link = new Label( control, SWT.UNDERLINE_SINGLE );
+ link.addMouseListener( new MouseAdapter()
+ {
+ @Override
+ public void mouseDown( MouseEvent e )
+ {
+ PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn( null,
+ SigilCore.REPOSITORIES_PREFERENCES_ID, null, null );
+ dialog.open();
+ }
+ } );
+
+ link.setText( "Configure workspace settings" );
+
+ settings = new Composite( control, SWT.BORDER );
+ settings.setLayout( new GridLayout( 1, false ) );
+ createSettings( settings );
+
+ setFonts( control );
+
+ // layout
+ control.setLayout( new GridLayout( 2, false ) );
+ projectSpecificBtn.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
+ settings.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true, 2, 1 ) );
+
+ // load settings
+ String currentSet = getCurrentSet();
+
+ if ( currentSet == null )
+ {
+ setProjectSpecific( false );
+ }
+ else
+ {
+ setView.setSelection( new StructuredSelection( currentSet ) );
+ setProjectSpecific( true );
+ }
+
+ return control;
+ }
+
+
+ private void setFonts( Composite control )
+ {
+ Composite p = control.getParent();
+ for ( Control c : control.getChildren() )
+ {
+ c.setFont( p.getFont() );
+ if ( c instanceof Composite )
+ {
+ setFonts( ( Composite ) c );
+ }
+ }
+ }
+
+
+ private void setProjectSpecific( boolean projectSpecific )
+ {
+ if ( this.projectSpecific != projectSpecific )
+ {
+ this.projectSpecific = projectSpecific;
+ settings.setEnabled( projectSpecific );
+ for ( Control c : settings.getChildren() )
+ {
+ c.setEnabled( projectSpecific );
+ }
+ projectSpecificBtn.setSelection( projectSpecific );
+ }
+ }
+
+
+ private void createSettings( Composite parent )
+ {
+ Composite control = new Composite( parent, SWT.NONE );
+
+ new Label( control, SWT.NONE ).setText( "Repository Set:" );
+ Combo combo = new Combo( control, SWT.SINGLE );
+
+ setView = new ComboViewer( combo );
+ setView.setContentProvider( new DefaultTableProvider()
+ {
+ public Object[] getElements( Object inputElement )
+ {
+ return toArray( inputElement );
+ }
+ } );
+
+ setView.setInput( SigilCore.getRepositoryConfiguration().loadRepositorySets().keySet() );
+
+ // layout
+ control.setLayout( new GridLayout( 2, false ) );
+ }
+
+
+ private String getCurrentSet()
+ {
+ try
+ {
+ IProject p = ( IProject ) getElement().getAdapter( IProject.class );
+ ISigilProjectModel model = SigilCore.create( p );
+ return model.getPreferences().get( SigilCore.REPOSITORY_SET, null );
+ }
+ catch ( CoreException e )
+ {
+ SigilCore.error( "Failed to read repository set", e );
+ return null;
+ }
+ }
+
+
+ @Override
+ public boolean okToLeave()
+ {
+ if ( projectSpecific )
+ {
+ if ( setView.getSelection().isEmpty() )
+ {
+ setErrorMessage( "Must select a repository set" );
+ return false;
+ }
+ }
+ setErrorMessage( null );
+ return true;
+ }
+
+
+ @Override
+ public boolean performOk()
+ {
+ return ProjectUtils.runTaskWithRebuildCheck( new Callable<Boolean>()
+ {
+ public Boolean call() throws CoreException, BackingStoreException
+ {
+ String set = null;
+ if ( projectSpecific )
+ {
+ set = ( String ) ( ( IStructuredSelection ) setView.getSelection() ).getFirstElement();
+ }
+
+ IProject p = ( IProject ) getElement().getAdapter( IProject.class );
+ ISigilProjectModel model = SigilCore.create( p );
+ model.getPreferences().put( SigilCore.REPOSITORY_SET, set );
+ model.getPreferences().flush();
+ return true;
+ }
- }, getShell());
- }
+ }, getShell() );
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/NewRepositoryWizard.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/NewRepositoryWizard.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/NewRepositoryWizard.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/NewRepositoryWizard.java Tue Jul 21 18:51:33 2009
@@ -19,32 +19,43 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
import org.eclipse.jface.wizard.Wizard;
-public class NewRepositoryWizard extends Wizard {
- private IRepositoryModel repository;
-
- private RepositoryTypeSelectionPage page = new RepositoryTypeSelectionPage();
-
- public void addPages() {
- addPage( page );
- }
-
- @Override
- public boolean performFinish() {
- repository = page.getRepository();
- return true;
- }
- @Override
- public boolean needsPreviousAndNextButtons() {
- return true;
- }
-
- public IRepositoryModel getRepository() {
- return repository;
- }
+public class NewRepositoryWizard extends Wizard
+{
+
+ private IRepositoryModel repository;
+
+ private RepositoryTypeSelectionPage page = new RepositoryTypeSelectionPage();
+
+
+ public void addPages()
+ {
+ addPage( page );
+ }
+
+
+ @Override
+ public boolean performFinish()
+ {
+ repository = page.getRepository();
+ return true;
+ }
+
+
+ @Override
+ public boolean needsPreviousAndNextButtons()
+ {
+ return true;
+ }
+
+ public IRepositoryModel getRepository()
+ {
+ return repository;
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoriesPreferencePage.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoriesPreferencePage.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoriesPreferencePage.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoriesPreferencePage.java Tue Jul 21 18:51:33 2009
@@ -17,8 +17,9 @@
* under the License.
*/
-package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
-
+package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
+
import org.apache.felix.sigil.eclipse.SigilCore;
import org.apache.felix.sigil.eclipse.model.repository.IRepositoryConfiguration;
import org.apache.felix.sigil.eclipse.model.repository.IRepositorySet;
@@ -35,80 +36,101 @@
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class RepositoriesPreferencePage extends ProjectDependentPreferencesPage implements
- IWorkbenchPreferencePage {
-
- private boolean changed;
- private RepositoriesView viewPage;
- private RepositorySetsView setPage;
-
- public RepositoriesPreferencePage() {
- super( "Repository Preferences" );
- }
- @Override
- protected Control createContents(Composite parent) {
- Control control = initContents( parent );
- return control;
- }
-
- @Override
- protected IPreferenceStore doGetPreferenceStore() {
- return SigilCore.getDefault().getPreferenceStore();
- }
-
- protected void changed() {
- changed = true;
- updateApplyButton();
- }
-
- private Control initContents(Composite parent) {
- viewPage = new RepositoriesView(this);
- setPage = new RepositorySetsView(this);
-
- Composite control = new Composite(parent, SWT.NONE);
-
- TabFolder folder = new TabFolder(control, SWT.TOP);
-
- TabItem view = new TabItem(folder, SWT.NONE);
- view.setText("Repositories");
- view.setControl(viewPage.createContents(folder) );
-
- TabItem sets = new TabItem(folder, SWT.NONE);
- sets.setText("Sets");
- sets.setControl(setPage.createContents(folder) );
-
- control.setLayout(new GridLayout(1, true));
- folder.setLayoutData( new GridData(SWT.FILL, SWT.FILL, true, true));
-
- return control;
- }
-
- public void init(IWorkbench workbench) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- protected void doSave() {
- try {
- IRepositoryConfiguration config = SigilCore.getRepositoryConfiguration();
- config.saveRepositories(viewPage.getRepositories());
- config.saveRepositorySets(setPage.getSets());
- IRepositorySet defaultSet = new RepositorySet(setPage.getDefaultRepositories());
- config.setDefaultRepositorySet(defaultSet);
-
- setErrorMessage(null);
- getApplyButton().setEnabled(false);
- changed = false;
- } catch (CoreException e) {
- setErrorMessage("Failed to save repositories:" + e.getStatus().getMessage());
- SigilCore.error("Failed to save repositories", e);
- }
- }
-
- @Override
- protected boolean isDirty() {
- return changed;
- }
-}
+
+
+public class RepositoriesPreferencePage extends ProjectDependentPreferencesPage implements IWorkbenchPreferencePage
+{
+
+ private boolean changed;
+ private RepositoriesView viewPage;
+ private RepositorySetsView setPage;
+
+
+ public RepositoriesPreferencePage()
+ {
+ super( "Repository Preferences" );
+ }
+
+
+ @Override
+ protected Control createContents( Composite parent )
+ {
+ Control control = initContents( parent );
+ return control;
+ }
+
+
+ @Override
+ protected IPreferenceStore doGetPreferenceStore()
+ {
+ return SigilCore.getDefault().getPreferenceStore();
+ }
+
+
+ protected void changed()
+ {
+ changed = true;
+ updateApplyButton();
+ }
+
+
+ private Control initContents( Composite parent )
+ {
+ viewPage = new RepositoriesView( this );
+ setPage = new RepositorySetsView( this );
+
+ Composite control = new Composite( parent, SWT.NONE );
+
+ TabFolder folder = new TabFolder( control, SWT.TOP );
+
+ TabItem view = new TabItem( folder, SWT.NONE );
+ view.setText( "Repositories" );
+ view.setControl( viewPage.createContents( folder ) );
+
+ TabItem sets = new TabItem( folder, SWT.NONE );
+ sets.setText( "Sets" );
+ sets.setControl( setPage.createContents( folder ) );
+
+ control.setLayout( new GridLayout( 1, true ) );
+ folder.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+
+ return control;
+ }
+
+
+ public void init( IWorkbench workbench )
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ @Override
+ protected void doSave()
+ {
+ try
+ {
+ IRepositoryConfiguration config = SigilCore.getRepositoryConfiguration();
+ config.saveRepositories( viewPage.getRepositories() );
+ config.saveRepositorySets( setPage.getSets() );
+ IRepositorySet defaultSet = new RepositorySet( setPage.getDefaultRepositories() );
+ config.setDefaultRepositorySet( defaultSet );
+
+ setErrorMessage( null );
+ getApplyButton().setEnabled( false );
+ changed = false;
+ }
+ catch ( CoreException e )
+ {
+ setErrorMessage( "Failed to save repositories:" + e.getStatus().getMessage() );
+ SigilCore.error( "Failed to save repositories", e );
+ }
+ }
+
+
+ @Override
+ protected boolean isDirty()
+ {
+ return changed;
+ }
+}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoriesView.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoriesView.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoriesView.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoriesView.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -49,213 +50,271 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
-public class RepositoriesView {
- private final RepositoriesPreferencePage page;
- private List<IRepositoryModel> repositories;
-
- private TableViewer repositoryView;
-
- public RepositoriesView(RepositoriesPreferencePage page) {
- this.page = page;
- }
-
- public Control createContents(Composite parent) {
- // Create Controls
- Composite composite = new Composite(parent, SWT.NONE);
-
- Table table = new Table(composite, SWT.MULTI | SWT.BORDER);
-
- // Table Viewer Setup
- repositoryView = new TableViewer(table);
- repositoryView.setLabelProvider(new LabelProvider() {
- @Override
- public String getText(Object element) {
- IRepositoryModel rep = (IRepositoryModel) element;
- return rep.getName();
- }
-
- @Override
- public Image getImage(Object element) {
- IRepositoryModel rep = (IRepositoryModel) element;
- return rep.getType().getIcon();
- }
- });
-
- repositoryView.setContentProvider( new DefaultTableProvider() {
- public Object[] getElements(Object inputElement) {
- return toArray(inputElement);
- }
- } );
-
- // Layout
- composite.setLayout(new GridLayout(2, false));
- table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 6));
-
- createButtons(composite, repositoryView);
-
- repositories = SigilCore.getRepositoryConfiguration().loadRepositories();
- repositoryView.setInput(repositories);
-
- return composite;
- }
-
- private void createButtons(final Composite composite, final TableViewer repositoryView) {
- final Button add = new Button(composite, SWT.PUSH);
- add.setText("Add...");
- add.setEnabled(true);
-
- final Button edit = new Button(composite, SWT.PUSH);
- edit.setText("Edit...");
- edit.setEnabled(false);
-
- final Button remove = new Button(composite, SWT.PUSH);
- remove.setText("Remove");
- remove.setEnabled(false);
-
- final Button refresh = new Button(composite, SWT.PUSH);
- refresh.setText("Refresh");
- refresh.setEnabled( false );
-
- // Listeners
- add.addSelectionListener( new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- add(composite);
- }
- });
-
- edit.addSelectionListener( new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- IStructuredSelection sel = (IStructuredSelection) repositoryView.getSelection();
- edit(composite, sel);
- }
- });
-
- remove.addSelectionListener( new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- IStructuredSelection sel = (IStructuredSelection) repositoryView.getSelection();
- remove(sel);
- }
- });
-
- refresh.addSelectionListener( new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- IStructuredSelection sel = (IStructuredSelection) repositoryView.getSelection();
- refresh(composite, sel);
- }
- });
-
- repositoryView.addSelectionChangedListener( new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- boolean selected = !event.getSelection().isEmpty();
- if ( selected ) {
- refresh.setEnabled(true);
-
- IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-
- checkEditEnabled(edit, sel);
- checkRemoveEnabled(remove, sel);
- }
- else {
- refresh.setEnabled(false);
- edit.setEnabled(false);
- remove.setEnabled(false);
- }
- }
- });
-
- add.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- edit.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- remove.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- }
-
- @SuppressWarnings("unchecked")
- private void checkRemoveEnabled(Button button, IStructuredSelection sel) {
- boolean alldynamic = true;
- for ( Iterator i = sel.iterator(); i.hasNext(); ) {
- IRepositoryModel model = (IRepositoryModel) i.next();
- if ( !model.getType().isDynamic() ) {
- alldynamic = false;
- break;
- }
- }
- button.setEnabled(alldynamic);
- }
-
- private void checkEditEnabled(Button edit, IStructuredSelection sel) {
- if ( sel.size() == 1 ) {
- IRepositoryModel element = (IRepositoryModel) sel.getFirstElement();
- if ( WizardHelper.hasWizard( element.getType()) ) {
- edit.setEnabled(true);
- }
- else {
- edit.setEnabled(false);
- }
- }
- else {
- edit.setEnabled(false);
- }
- }
-
- @SuppressWarnings("unchecked")
- protected void refresh(Control parent, IStructuredSelection sel) {
- ArrayList<IRepositoryModel> models = new ArrayList<IRepositoryModel>(sel.size());
-
- for ( Iterator i = sel.iterator(); i.hasNext(); ) {
- IRepositoryModel model = (IRepositoryModel) i.next();
- models.add( model );
- }
-
- new RefreshRepositoryAction(models.toArray(new IRepositoryModel[models.size()])).run();
- }
-
- private void add(Control parent) {
- NewRepositoryWizard wizard = new NewRepositoryWizard();
- WizardDialog dialog = new WizardDialog(getShell(parent), wizard);
- if ( dialog.open() == Window.OK ) {
- repositories.add(wizard.getRepository());
- updated();
- }
- }
-
- private void edit(Control parent, IStructuredSelection sel) {
- IRepositoryModel model = (IRepositoryModel) sel.getFirstElement();
- try {
- RepositoryWizard wizard = WizardHelper.loadWizard(model.getType());
- wizard.init(model);
- WizardDialog dialog = new WizardDialog(getShell(parent), wizard);
- if ( dialog.open() == Window.OK ) {
- updated();
- }
- }
- catch (CoreException e) {
- SigilCore.error( "Failed to load wizard", e);
- MessageDialog.openError(getShell(parent), "Error", "Failed to load wizard:" + e.getStatus().getMessage() );
- }
- }
-
- private Shell getShell(Control parent) {
- return parent.getShell();
- }
-
- @SuppressWarnings("unchecked")
- private void remove(IStructuredSelection sel) {
- boolean change = false;
- for ( Iterator i = sel.iterator(); i.hasNext(); ) {
- change = repositories.remove(i.next());
- }
-
- if ( change ) {
- updated();
- }
- }
-
- private void updated() {
- repositoryView.refresh();
- page.changed();
- }
-
- public List<IRepositoryModel> getRepositories() {
- return repositories;
- }
+public class RepositoriesView
+{
+ private final RepositoriesPreferencePage page;
+
+ private List<IRepositoryModel> repositories;
+
+ private TableViewer repositoryView;
+
+
+ public RepositoriesView( RepositoriesPreferencePage page )
+ {
+ this.page = page;
+ }
+
+
+ public Control createContents( Composite parent )
+ {
+ // Create Controls
+ Composite composite = new Composite( parent, SWT.NONE );
+
+ Table table = new Table( composite, SWT.MULTI | SWT.BORDER );
+
+ // Table Viewer Setup
+ repositoryView = new TableViewer( table );
+ repositoryView.setLabelProvider( new LabelProvider()
+ {
+ @Override
+ public String getText( Object element )
+ {
+ IRepositoryModel rep = ( IRepositoryModel ) element;
+ return rep.getName();
+ }
+
+
+ @Override
+ public Image getImage( Object element )
+ {
+ IRepositoryModel rep = ( IRepositoryModel ) element;
+ return rep.getType().getIcon();
+ }
+ } );
+
+ repositoryView.setContentProvider( new DefaultTableProvider()
+ {
+ public Object[] getElements( Object inputElement )
+ {
+ return toArray( inputElement );
+ }
+ } );
+
+ // Layout
+ composite.setLayout( new GridLayout( 2, false ) );
+ table.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true, 1, 6 ) );
+
+ createButtons( composite, repositoryView );
+
+ repositories = SigilCore.getRepositoryConfiguration().loadRepositories();
+ repositoryView.setInput( repositories );
+
+ return composite;
+ }
+
+
+ private void createButtons( final Composite composite, final TableViewer repositoryView )
+ {
+ final Button add = new Button( composite, SWT.PUSH );
+ add.setText( "Add..." );
+ add.setEnabled( true );
+
+ final Button edit = new Button( composite, SWT.PUSH );
+ edit.setText( "Edit..." );
+ edit.setEnabled( false );
+
+ final Button remove = new Button( composite, SWT.PUSH );
+ remove.setText( "Remove" );
+ remove.setEnabled( false );
+
+ final Button refresh = new Button( composite, SWT.PUSH );
+ refresh.setText( "Refresh" );
+ refresh.setEnabled( false );
+
+ // Listeners
+ add.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ add( composite );
+ }
+ } );
+
+ edit.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ IStructuredSelection sel = ( IStructuredSelection ) repositoryView.getSelection();
+ edit( composite, sel );
+ }
+ } );
+
+ remove.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ IStructuredSelection sel = ( IStructuredSelection ) repositoryView.getSelection();
+ remove( sel );
+ }
+ } );
+
+ refresh.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ IStructuredSelection sel = ( IStructuredSelection ) repositoryView.getSelection();
+ refresh( composite, sel );
+ }
+ } );
+
+ repositoryView.addSelectionChangedListener( new ISelectionChangedListener()
+ {
+ public void selectionChanged( SelectionChangedEvent event )
+ {
+ boolean selected = !event.getSelection().isEmpty();
+ if ( selected )
+ {
+ refresh.setEnabled( true );
+
+ IStructuredSelection sel = ( IStructuredSelection ) event.getSelection();
+
+ checkEditEnabled( edit, sel );
+ checkRemoveEnabled( remove, sel );
+ }
+ else
+ {
+ refresh.setEnabled( false );
+ edit.setEnabled( false );
+ remove.setEnabled( false );
+ }
+ }
+ } );
+
+ add.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
+ edit.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
+ remove.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
+ }
+
+
+ @SuppressWarnings("unchecked")
+ private void checkRemoveEnabled( Button button, IStructuredSelection sel )
+ {
+ boolean alldynamic = true;
+ for ( Iterator i = sel.iterator(); i.hasNext(); )
+ {
+ IRepositoryModel model = ( IRepositoryModel ) i.next();
+ if ( !model.getType().isDynamic() )
+ {
+ alldynamic = false;
+ break;
+ }
+ }
+ button.setEnabled( alldynamic );
+ }
+
+
+ private void checkEditEnabled( Button edit, IStructuredSelection sel )
+ {
+ if ( sel.size() == 1 )
+ {
+ IRepositoryModel element = ( IRepositoryModel ) sel.getFirstElement();
+ if ( WizardHelper.hasWizard( element.getType() ) )
+ {
+ edit.setEnabled( true );
+ }
+ else
+ {
+ edit.setEnabled( false );
+ }
+ }
+ else
+ {
+ edit.setEnabled( false );
+ }
+ }
+
+
+ @SuppressWarnings("unchecked")
+ protected void refresh( Control parent, IStructuredSelection sel )
+ {
+ ArrayList<IRepositoryModel> models = new ArrayList<IRepositoryModel>( sel.size() );
+
+ for ( Iterator i = sel.iterator(); i.hasNext(); )
+ {
+ IRepositoryModel model = ( IRepositoryModel ) i.next();
+ models.add( model );
+ }
+
+ new RefreshRepositoryAction( models.toArray( new IRepositoryModel[models.size()] ) ).run();
+ }
+
+
+ private void add( Control parent )
+ {
+ NewRepositoryWizard wizard = new NewRepositoryWizard();
+ WizardDialog dialog = new WizardDialog( getShell( parent ), wizard );
+ if ( dialog.open() == Window.OK )
+ {
+ repositories.add( wizard.getRepository() );
+ updated();
+ }
+ }
+
+
+ private void edit( Control parent, IStructuredSelection sel )
+ {
+ IRepositoryModel model = ( IRepositoryModel ) sel.getFirstElement();
+ try
+ {
+ RepositoryWizard wizard = WizardHelper.loadWizard( model.getType() );
+ wizard.init( model );
+ WizardDialog dialog = new WizardDialog( getShell( parent ), wizard );
+ if ( dialog.open() == Window.OK )
+ {
+ updated();
+ }
+ }
+ catch ( CoreException e )
+ {
+ SigilCore.error( "Failed to load wizard", e );
+ MessageDialog
+ .openError( getShell( parent ), "Error", "Failed to load wizard:" + e.getStatus().getMessage() );
+ }
+ }
+
+
+ private Shell getShell( Control parent )
+ {
+ return parent.getShell();
+ }
+
+
+ @SuppressWarnings("unchecked")
+ private void remove( IStructuredSelection sel )
+ {
+ boolean change = false;
+ for ( Iterator i = sel.iterator(); i.hasNext(); )
+ {
+ change = repositories.remove( i.next() );
+ }
+
+ if ( change )
+ {
+ updated();
+ }
+ }
+
+
+ private void updated()
+ {
+ repositoryView.refresh();
+ page.changed();
+ }
+
+
+ public List<IRepositoryModel> getRepositories()
+ {
+ return repositories;
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositorySetDialog.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositorySetDialog.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositorySetDialog.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositorySetDialog.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -49,212 +50,270 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
-public class RepositorySetDialog extends TitleAreaDialog {
-
- private CheckboxTableViewer viewer;
- private Text nameTxt;
- private Button upBtn;
- private Button downBtn;
- private final String setName;
- private List<IRepositoryModel> repositories;
- private final boolean nameEditable;
- private final Set<String> set;
-
- private String newName;
-
- public RepositorySetDialog(Shell shell, Set<String> set) {
- this(shell, null, true, set);
- }
-
- public RepositorySetDialog(Shell parent, RepositoryViewData data, boolean nameEditable, Set<String> set) {
- super(parent);
- this.set = set;
- this.setName = data == null ? "" : data.getName();
- this.repositories = data == null ? new ArrayList<IRepositoryModel>() : new ArrayList<IRepositoryModel>(Arrays.asList(data.getRepositories()));
- this.nameEditable = nameEditable;
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite area = (Composite) super.createDialogArea(parent);
- createControl(area);
- return area;
- }
-
- public void createControl(Composite parent) {
- // controls
- Composite body = new Composite(parent, SWT.NONE);
- body.setLayoutData( new GridData(GridData.FILL_BOTH) );
-
- if ( nameEditable ) {
- new Label( body, SWT.NONE ).setText( "Name" );
-
- nameTxt = new Text( body, SWT.BORDER );
-
- nameTxt.setText(setName);
-
- nameTxt.addKeyListener( new KeyAdapter() {
- @Override
- public void keyReleased(KeyEvent e) {
- checkComplete();
- }
- });
- }
-
- Composite table = new Composite(body, SWT.NONE);
- table.setLayout( new GridLayout(2, false ) );
- createTable( table );
-
- // layout
- body.setLayout( new GridLayout( 2, false ) );
- if ( nameEditable ) {
- nameTxt.setLayoutData( new GridData(SWT.FILL, SWT.FILL, true, false) );
- }
- table.setLayoutData( new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1) );
- }
-
- public RepositoryViewData getData() {
- String name = nameEditable ? newName : setName;
- IRepositoryModel[] reps = repositories.toArray( new IRepositoryModel[repositories.size()]);
- return new RepositoryViewData( name, reps );
- }
-
- private void checkComplete() {
- if ( nameEditable ) {
- String name = nameTxt.getText();
- if ( !name.equals( setName ) && set.contains( name ) ) {
- setErrorMessage("Set " + name + " already exists" );
- Button b = getButton(IDialogConstants.OK_ID);
- b.setEnabled(false);
- }
- }
- setErrorMessage(null);
- Button b = getButton(IDialogConstants.OK_ID);
- b.setEnabled(true);
- }
-
-
- @Override
- protected void okPressed() {
- if ( nameEditable ) {
- newName = nameTxt.getText();
- }
- repositories = getRepositories();
- super.okPressed();
- }
-
- private void createTable(Composite body) {
- createViewer(body);
-
- Composite btns = new Composite(body, SWT.NONE);
- btns.setLayout( new GridLayout( 1, true ) );
-
- createButtons(btns);
-
- // layout
- viewer.getTable().setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
- btns.setLayoutData( new GridData( SWT.RIGHT, SWT.TOP, false, false ) );
- }
-
- private void createButtons(Composite parent) {
- upBtn = new Button(parent, SWT.PUSH);
- upBtn.setText( "Up" );
- upBtn.addSelectionListener( new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- up();
- }
- });
-
- downBtn = new Button(parent, SWT.PUSH);
- downBtn.setText( "Down" );
- downBtn.addSelectionListener( new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- down();
- }
- });
-
- setUpDownEnabled(false);
- }
-
- private void up() {
- IRepositoryModel model = (IRepositoryModel) ((StructuredSelection) viewer.getSelection()).getFirstElement();
- int i = repositories.indexOf(model);
- if ( i > 0 ) {
- repositories.remove( i );
- repositories.add( i - 1, model );
- viewer.refresh();
- }
- }
-
- private void down() {
- IRepositoryModel model = (IRepositoryModel) ((StructuredSelection) viewer.getSelection()).getFirstElement();
- int i = repositories.indexOf(model);
- if ( i < repositories.size() - 1 ) {
- repositories.remove( i );
- repositories.add( i + 1, model );
- viewer.refresh();
- }
- }
-
- private void createViewer(Composite parent) {
- viewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
-
- viewer.addSelectionChangedListener( new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- setUpDownEnabled( !viewer.getSelection().isEmpty() );
- }
- });
-
- viewer.setContentProvider( new DefaultTableProvider() {
- public Object[] getElements(Object inputElement) {
- return toArray(inputElement);
- }
- });
-
- viewer.setLabelProvider( new DefaultLabelProvider() {
- public Image getImage(Object element) {
- return null;
- }
-
- public String getText(Object element) {
- IRepositoryModel m = (IRepositoryModel) element;
- return m.getName();
- }
- });
-
- viewer.setInput( repositories );
-
- for ( IRepositoryModel m : repositories ) {
- viewer.setChecked(m, true);
- }
-
- List<IRepositoryModel> allRepositories = SigilCore.getRepositoryConfiguration().loadRepositories();
-
- for ( IRepositoryModel m : allRepositories ) {
- if ( !repositories.contains(m) ) {
- repositories.add(m);
- }
- }
-
- viewer.refresh();
- }
-
- private void setUpDownEnabled(boolean enabled) {
- upBtn.setEnabled(enabled);
- downBtn.setEnabled(enabled);
- }
-
- private List<IRepositoryModel> getRepositories() {
- ArrayList<IRepositoryModel> reps = new ArrayList<IRepositoryModel>();
-
- for ( IRepositoryModel m : repositories ) {
- if ( viewer.getChecked(m) ) {
- reps.add( m );
- }
- }
-
- return reps;
- }
+
+public class RepositorySetDialog extends TitleAreaDialog
+{
+
+ private CheckboxTableViewer viewer;
+ private Text nameTxt;
+ private Button upBtn;
+ private Button downBtn;
+ private final String setName;
+ private List<IRepositoryModel> repositories;
+ private final boolean nameEditable;
+ private final Set<String> set;
+
+ private String newName;
+
+
+ public RepositorySetDialog( Shell shell, Set<String> set )
+ {
+ this( shell, null, true, set );
+ }
+
+
+ public RepositorySetDialog( Shell parent, RepositoryViewData data, boolean nameEditable, Set<String> set )
+ {
+ super( parent );
+ this.set = set;
+ this.setName = data == null ? "" : data.getName();
+ this.repositories = data == null ? new ArrayList<IRepositoryModel>() : new ArrayList<IRepositoryModel>( Arrays
+ .asList( data.getRepositories() ) );
+ this.nameEditable = nameEditable;
+ }
+
+
+ @Override
+ protected Control createDialogArea( Composite parent )
+ {
+ Composite area = ( Composite ) super.createDialogArea( parent );
+ createControl( area );
+ return area;
+ }
+
+
+ public void createControl( Composite parent )
+ {
+ // controls
+ Composite body = new Composite( parent, SWT.NONE );
+ body.setLayoutData( new GridData( GridData.FILL_BOTH ) );
+
+ if ( nameEditable )
+ {
+ new Label( body, SWT.NONE ).setText( "Name" );
+
+ nameTxt = new Text( body, SWT.BORDER );
+
+ nameTxt.setText( setName );
+
+ nameTxt.addKeyListener( new KeyAdapter()
+ {
+ @Override
+ public void keyReleased( KeyEvent e )
+ {
+ checkComplete();
+ }
+ } );
+ }
+
+ Composite table = new Composite( body, SWT.NONE );
+ table.setLayout( new GridLayout( 2, false ) );
+ createTable( table );
+
+ // layout
+ body.setLayout( new GridLayout( 2, false ) );
+ if ( nameEditable )
+ {
+ nameTxt.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
+ }
+ table.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true, 2, 1 ) );
+ }
+
+
+ public RepositoryViewData getData()
+ {
+ String name = nameEditable ? newName : setName;
+ IRepositoryModel[] reps = repositories.toArray( new IRepositoryModel[repositories.size()] );
+ return new RepositoryViewData( name, reps );
+ }
+
+
+ private void checkComplete()
+ {
+ if ( nameEditable )
+ {
+ String name = nameTxt.getText();
+ if ( !name.equals( setName ) && set.contains( name ) )
+ {
+ setErrorMessage( "Set " + name + " already exists" );
+ Button b = getButton( IDialogConstants.OK_ID );
+ b.setEnabled( false );
+ }
+ }
+ setErrorMessage( null );
+ Button b = getButton( IDialogConstants.OK_ID );
+ b.setEnabled( true );
+ }
+
+
+ @Override
+ protected void okPressed()
+ {
+ if ( nameEditable )
+ {
+ newName = nameTxt.getText();
+ }
+ repositories = getRepositories();
+ super.okPressed();
+ }
+
+
+ private void createTable( Composite body )
+ {
+ createViewer( body );
+
+ Composite btns = new Composite( body, SWT.NONE );
+ btns.setLayout( new GridLayout( 1, true ) );
+
+ createButtons( btns );
+
+ // layout
+ viewer.getTable().setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+ btns.setLayoutData( new GridData( SWT.RIGHT, SWT.TOP, false, false ) );
+ }
+
+
+ private void createButtons( Composite parent )
+ {
+ upBtn = new Button( parent, SWT.PUSH );
+ upBtn.setText( "Up" );
+ upBtn.addSelectionListener( new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected( SelectionEvent e )
+ {
+ up();
+ }
+ } );
+
+ downBtn = new Button( parent, SWT.PUSH );
+ downBtn.setText( "Down" );
+ downBtn.addSelectionListener( new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected( SelectionEvent e )
+ {
+ down();
+ }
+ } );
+
+ setUpDownEnabled( false );
+ }
+
+
+ private void up()
+ {
+ IRepositoryModel model = ( IRepositoryModel ) ( ( StructuredSelection ) viewer.getSelection() )
+ .getFirstElement();
+ int i = repositories.indexOf( model );
+ if ( i > 0 )
+ {
+ repositories.remove( i );
+ repositories.add( i - 1, model );
+ viewer.refresh();
+ }
+ }
+
+
+ private void down()
+ {
+ IRepositoryModel model = ( IRepositoryModel ) ( ( StructuredSelection ) viewer.getSelection() )
+ .getFirstElement();
+ int i = repositories.indexOf( model );
+ if ( i < repositories.size() - 1 )
+ {
+ repositories.remove( i );
+ repositories.add( i + 1, model );
+ viewer.refresh();
+ }
+ }
+
+
+ private void createViewer( Composite parent )
+ {
+ viewer = CheckboxTableViewer.newCheckList( parent, SWT.BORDER );
+
+ viewer.addSelectionChangedListener( new ISelectionChangedListener()
+ {
+ public void selectionChanged( SelectionChangedEvent event )
+ {
+ setUpDownEnabled( !viewer.getSelection().isEmpty() );
+ }
+ } );
+
+ viewer.setContentProvider( new DefaultTableProvider()
+ {
+ public Object[] getElements( Object inputElement )
+ {
+ return toArray( inputElement );
+ }
+ } );
+
+ viewer.setLabelProvider( new DefaultLabelProvider()
+ {
+ public Image getImage( Object element )
+ {
+ return null;
+ }
+
+
+ public String getText( Object element )
+ {
+ IRepositoryModel m = ( IRepositoryModel ) element;
+ return m.getName();
+ }
+ } );
+
+ viewer.setInput( repositories );
+
+ for ( IRepositoryModel m : repositories )
+ {
+ viewer.setChecked( m, true );
+ }
+
+ List<IRepositoryModel> allRepositories = SigilCore.getRepositoryConfiguration().loadRepositories();
+
+ for ( IRepositoryModel m : allRepositories )
+ {
+ if ( !repositories.contains( m ) )
+ {
+ repositories.add( m );
+ }
+ }
+
+ viewer.refresh();
+ }
+
+
+ private void setUpDownEnabled( boolean enabled )
+ {
+ upBtn.setEnabled( enabled );
+ downBtn.setEnabled( enabled );
+ }
+
+
+ private List<IRepositoryModel> getRepositories()
+ {
+ ArrayList<IRepositoryModel> reps = new ArrayList<IRepositoryModel>();
+
+ for ( IRepositoryModel m : repositories )
+ {
+ if ( viewer.getChecked( m ) )
+ {
+ reps.add( m );
+ }
+ }
+
+ return reps;
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositorySetsView.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositorySetsView.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositorySetsView.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositorySetsView.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -48,181 +49,233 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
-public class RepositorySetsView {
- private static final String DEFAULT = "default";
-
- private final RepositoriesPreferencePage page;
- private ArrayList<RepositoryViewData> sets = new ArrayList<RepositoryViewData>();
-
- private TableViewer setView;
-
- private RepositoryViewData defaultSet;
-
- public RepositorySetsView(RepositoriesPreferencePage page) {
- this.page = page;
- }
-
- public Control createContents(Composite parent) {
- // Create Controls
- Composite composite = new Composite(parent, SWT.NONE);
-
- Table table = new Table(composite, SWT.SINGLE | SWT.BORDER);
-
- // Table Viewer Setup
- setView = new TableViewer(table);
-
- setView.setContentProvider( new DefaultTableProvider() {
- public Object[] getElements(Object inputElement) {
- return toArray(inputElement);
- }
- } );
-
- defaultSet = new RepositoryViewData(DEFAULT, SigilCore.getRepositoryConfiguration().getDefaultRepositorySet().getRepositories());
-
- sets.add( defaultSet );
-
- for( Map.Entry<String, IRepositorySet> e : SigilCore.getRepositoryConfiguration().loadRepositorySets().entrySet() ) {
- IRepositorySet s = e.getValue();
- sets.add( new RepositoryViewData( e.getKey(), s.getRepositories() ) );
- }
-
- setView.setLabelProvider( new DefaultLabelProvider() {
- public Image getImage(Object element) {
- return null;
- }
-
- public String getText(Object element) {
- RepositoryViewData data = (RepositoryViewData) element;
- return data.getName();
- }
- });
-
- setView.setInput(sets);
-
- // Layout
- composite.setLayout(new GridLayout(2, false));
- table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 6));
-
- createButtons(composite);
-
- return composite;
- }
-
- private void createButtons(final Composite composite) {
- final Button add = new Button(composite, SWT.PUSH);
- add.setText("Add...");
- add.setEnabled(true);
-
- final Button edit = new Button(composite, SWT.PUSH);
- edit.setText("Edit...");
- edit.setEnabled(false);
-
- final Button remove = new Button(composite, SWT.PUSH);
- remove.setText("Remove");
- remove.setEnabled(false);
- // Listeners
- add.addSelectionListener( new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- add(composite);
- }
- });
-
- edit.addSelectionListener( new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- IStructuredSelection sel = (IStructuredSelection) setView.getSelection();
- edit(composite, sel);
- }
- });
-
- remove.addSelectionListener( new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- IStructuredSelection sel = (IStructuredSelection) setView.getSelection();
- remove(sel);
- }
- });
-
- setView.addSelectionChangedListener( new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- boolean enabled = !event.getSelection().isEmpty();
- if ( enabled ) {
- RepositoryViewData element = (RepositoryViewData) ((IStructuredSelection) event.getSelection()).getFirstElement();
- edit.setEnabled(true);
- remove.setEnabled( element != defaultSet );
- }
- else {
- edit.setEnabled(false);
- remove.setEnabled(false);
- }
- }
- });
-
- add.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- edit.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- remove.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- }
-
- private void add(Control parent) {
- RepositorySetDialog wizard = new RepositorySetDialog(getShell(parent), getNames());
- if ( wizard.open() == Window.OK ) {
- sets.add( wizard.getData() );
- updated();
- }
- }
-
- private void edit(Control parent, IStructuredSelection sel) {
- RepositoryViewData data = (RepositoryViewData) sel.getFirstElement();
- RepositorySetDialog wizard = new RepositorySetDialog(getShell(parent), data, data != defaultSet, getNames());
- if ( wizard.open() == Window.OK ) {
- if ( data != defaultSet ) {
- data.setName( wizard.getData().getName() );
- }
- data.setRepositories( wizard.getData().getRepositories() );
- updated();
- }
- }
-
- private Set<String> getNames() {
- HashSet<String> names = new HashSet<String>();
-
- for ( RepositoryViewData view : sets ) {
- if ( view != defaultSet ) {
- names.add( view.getName() );
- }
- }
-
- return names;
- }
-
- private Shell getShell(Control parent) {
- return parent.getShell();
- }
-
- private void remove(IStructuredSelection sel) {
- if ( sets.remove(sel.getFirstElement())) {
- updated();
- }
- }
-
- private void updated() {
- setView.refresh();
- page.changed();
- }
-
- public Map<String, IRepositorySet> getSets() {
- HashMap<String, IRepositorySet> ret = new HashMap<String, IRepositorySet>();
-
- for ( RepositoryViewData data : sets ) {
- if ( data != defaultSet ) {
- IRepositorySet set = new RepositorySet(data.getRepositories());
- ret.put( data.getName(), set );
- }
- }
-
- return ret;
- }
-
- public IRepositoryModel[] getDefaultRepositories() {
- return defaultSet.getRepositories();
- }
+public class RepositorySetsView
+{
+ private static final String DEFAULT = "default";
+
+ private final RepositoriesPreferencePage page;
+
+ private ArrayList<RepositoryViewData> sets = new ArrayList<RepositoryViewData>();
+
+ private TableViewer setView;
+
+ private RepositoryViewData defaultSet;
+
+
+ public RepositorySetsView( RepositoriesPreferencePage page )
+ {
+ this.page = page;
+ }
+
+
+ public Control createContents( Composite parent )
+ {
+ // Create Controls
+ Composite composite = new Composite( parent, SWT.NONE );
+
+ Table table = new Table( composite, SWT.SINGLE | SWT.BORDER );
+
+ // Table Viewer Setup
+ setView = new TableViewer( table );
+
+ setView.setContentProvider( new DefaultTableProvider()
+ {
+ public Object[] getElements( Object inputElement )
+ {
+ return toArray( inputElement );
+ }
+ } );
+
+ defaultSet = new RepositoryViewData( DEFAULT, SigilCore.getRepositoryConfiguration().getDefaultRepositorySet()
+ .getRepositories() );
+
+ sets.add( defaultSet );
+
+ for ( Map.Entry<String, IRepositorySet> e : SigilCore.getRepositoryConfiguration().loadRepositorySets()
+ .entrySet() )
+ {
+ IRepositorySet s = e.getValue();
+ sets.add( new RepositoryViewData( e.getKey(), s.getRepositories() ) );
+ }
+
+ setView.setLabelProvider( new DefaultLabelProvider()
+ {
+ public Image getImage( Object element )
+ {
+ return null;
+ }
+
+
+ public String getText( Object element )
+ {
+ RepositoryViewData data = ( RepositoryViewData ) element;
+ return data.getName();
+ }
+ } );
+
+ setView.setInput( sets );
+
+ // Layout
+ composite.setLayout( new GridLayout( 2, false ) );
+ table.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true, 1, 6 ) );
+
+ createButtons( composite );
+
+ return composite;
+ }
+
+
+ private void createButtons( final Composite composite )
+ {
+ final Button add = new Button( composite, SWT.PUSH );
+ add.setText( "Add..." );
+ add.setEnabled( true );
+
+ final Button edit = new Button( composite, SWT.PUSH );
+ edit.setText( "Edit..." );
+ edit.setEnabled( false );
+
+ final Button remove = new Button( composite, SWT.PUSH );
+ remove.setText( "Remove" );
+ remove.setEnabled( false );
+ // Listeners
+ add.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ add( composite );
+ }
+ } );
+
+ edit.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ IStructuredSelection sel = ( IStructuredSelection ) setView.getSelection();
+ edit( composite, sel );
+ }
+ } );
+
+ remove.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ IStructuredSelection sel = ( IStructuredSelection ) setView.getSelection();
+ remove( sel );
+ }
+ } );
+
+ setView.addSelectionChangedListener( new ISelectionChangedListener()
+ {
+ public void selectionChanged( SelectionChangedEvent event )
+ {
+ boolean enabled = !event.getSelection().isEmpty();
+ if ( enabled )
+ {
+ RepositoryViewData element = ( RepositoryViewData ) ( ( IStructuredSelection ) event.getSelection() )
+ .getFirstElement();
+ edit.setEnabled( true );
+ remove.setEnabled( element != defaultSet );
+ }
+ else
+ {
+ edit.setEnabled( false );
+ remove.setEnabled( false );
+ }
+ }
+ } );
+
+ add.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
+ edit.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
+ remove.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
+ }
+
+
+ private void add( Control parent )
+ {
+ RepositorySetDialog wizard = new RepositorySetDialog( getShell( parent ), getNames() );
+ if ( wizard.open() == Window.OK )
+ {
+ sets.add( wizard.getData() );
+ updated();
+ }
+ }
+
+
+ private void edit( Control parent, IStructuredSelection sel )
+ {
+ RepositoryViewData data = ( RepositoryViewData ) sel.getFirstElement();
+ RepositorySetDialog wizard = new RepositorySetDialog( getShell( parent ), data, data != defaultSet, getNames() );
+ if ( wizard.open() == Window.OK )
+ {
+ if ( data != defaultSet )
+ {
+ data.setName( wizard.getData().getName() );
+ }
+ data.setRepositories( wizard.getData().getRepositories() );
+ updated();
+ }
+ }
+
+
+ private Set<String> getNames()
+ {
+ HashSet<String> names = new HashSet<String>();
+
+ for ( RepositoryViewData view : sets )
+ {
+ if ( view != defaultSet )
+ {
+ names.add( view.getName() );
+ }
+ }
+
+ return names;
+ }
+
+
+ private Shell getShell( Control parent )
+ {
+ return parent.getShell();
+ }
+
+
+ private void remove( IStructuredSelection sel )
+ {
+ if ( sets.remove( sel.getFirstElement() ) )
+ {
+ updated();
+ }
+ }
+
+
+ private void updated()
+ {
+ setView.refresh();
+ page.changed();
+ }
+
+
+ public Map<String, IRepositorySet> getSets()
+ {
+ HashMap<String, IRepositorySet> ret = new HashMap<String, IRepositorySet>();
+
+ for ( RepositoryViewData data : sets )
+ {
+ if ( data != defaultSet )
+ {
+ IRepositorySet set = new RepositorySet( data.getRepositories() );
+ ret.put( data.getName(), set );
+ }
+ }
+
+ return ret;
+ }
+
+
+ public IRepositoryModel[] getDefaultRepositories()
+ {
+ return defaultSet.getRepositories();
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryTypeSelectionPage.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryTypeSelectionPage.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryTypeSelectionPage.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryTypeSelectionPage.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
import java.util.ArrayList;
import java.util.Iterator;
@@ -41,85 +42,109 @@
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
-public class RepositoryTypeSelectionPage extends WizardSelectionPage implements IWizardPage {
- private static final String TITLE = "Select Repository";
-
- private TableViewer repositoryView;
- private IRepositoryModel repositoryElement;
-
- public RepositoryTypeSelectionPage() {
- super(TITLE);
- setTitle(TITLE);
- }
-
- public void createControl(Composite parent) {
- Composite control = new Composite(parent, SWT.NONE);
-
- // components
- new Label(control, SWT.NONE).setText("Repositories" );
- Table table = new Table(control, SWT.SINGLE | SWT.BORDER);
-
- // layout
- control.setLayout( new GridLayout(1, true) );
- table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
- // view
- repositoryView = new TableViewer(table);
- repositoryView.setLabelProvider( new LabelProvider() {
- @Override
- public String getText(Object element) {
- IRepositoryType rep = (IRepositoryType) element;
- return rep.getType();
- }
-
- @Override
- public Image getImage(Object element) {
- IRepositoryType rep = (IRepositoryType) element;
- return rep.getIcon();
- }
- });
-
- repositoryView.setContentProvider( new DefaultTableProvider() {
- public Object[] getElements(Object inputElement) {
- return toArray(inputElement);
- }
- } );
-
- repositoryView.addSelectionChangedListener( new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- if ( !event.getSelection().isEmpty() ) {
- IStructuredSelection sel = (IStructuredSelection) event.getSelection();
- IRepositoryType type = (IRepositoryType) sel.getFirstElement();
- repositoryElement = SigilCore.getRepositoryConfiguration().newRepositoryElement(type);
- selectWizardNode(new RepositoryWizardNode(repositoryElement));
- }
- }
- });
-
- ArrayList<IRepositoryType> descriptors = new ArrayList<IRepositoryType>(SigilCore.getRepositoryConfiguration().loadRepositoryTypes());
-
- for ( Iterator<IRepositoryType> i = descriptors.iterator(); i.hasNext(); ) {
- if ( !i.next().isDynamic() ) {
- i.remove();
- }
- }
-
- repositoryView.setInput( descriptors );
-
- setControl(control);
- }
-
- public void selectWizardNode(RepositoryWizardNode node) {
- setSelectedNode(node);
- }
-
- public RepositoryWizardNode getSelectedWizardNode() {
- return (RepositoryWizardNode) getSelectedNode();
- }
-
- public IRepositoryModel getRepository() {
- return repositoryElement;
- }
+public class RepositoryTypeSelectionPage extends WizardSelectionPage implements IWizardPage
+{
+
+ private static final String TITLE = "Select Repository";
+
+ private TableViewer repositoryView;
+ private IRepositoryModel repositoryElement;
+
+
+ public RepositoryTypeSelectionPage()
+ {
+ super( TITLE );
+ setTitle( TITLE );
+ }
+
+
+ public void createControl( Composite parent )
+ {
+ Composite control = new Composite( parent, SWT.NONE );
+
+ // components
+ new Label( control, SWT.NONE ).setText( "Repositories" );
+ Table table = new Table( control, SWT.SINGLE | SWT.BORDER );
+
+ // layout
+ control.setLayout( new GridLayout( 1, true ) );
+ table.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+
+ // view
+ repositoryView = new TableViewer( table );
+ repositoryView.setLabelProvider( new LabelProvider()
+ {
+ @Override
+ public String getText( Object element )
+ {
+ IRepositoryType rep = ( IRepositoryType ) element;
+ return rep.getType();
+ }
+
+
+ @Override
+ public Image getImage( Object element )
+ {
+ IRepositoryType rep = ( IRepositoryType ) element;
+ return rep.getIcon();
+ }
+ } );
+
+ repositoryView.setContentProvider( new DefaultTableProvider()
+ {
+ public Object[] getElements( Object inputElement )
+ {
+ return toArray( inputElement );
+ }
+ } );
+
+ repositoryView.addSelectionChangedListener( new ISelectionChangedListener()
+ {
+ public void selectionChanged( SelectionChangedEvent event )
+ {
+ if ( !event.getSelection().isEmpty() )
+ {
+ IStructuredSelection sel = ( IStructuredSelection ) event.getSelection();
+ IRepositoryType type = ( IRepositoryType ) sel.getFirstElement();
+ repositoryElement = SigilCore.getRepositoryConfiguration().newRepositoryElement( type );
+ selectWizardNode( new RepositoryWizardNode( repositoryElement ) );
+ }
+ }
+ } );
+
+ ArrayList<IRepositoryType> descriptors = new ArrayList<IRepositoryType>( SigilCore.getRepositoryConfiguration()
+ .loadRepositoryTypes() );
+
+ for ( Iterator<IRepositoryType> i = descriptors.iterator(); i.hasNext(); )
+ {
+ if ( !i.next().isDynamic() )
+ {
+ i.remove();
+ }
+ }
+
+ repositoryView.setInput( descriptors );
+
+ setControl( control );
+ }
+
+
+ public void selectWizardNode( RepositoryWizardNode node )
+ {
+ setSelectedNode( node );
+ }
+
+
+ public RepositoryWizardNode getSelectedWizardNode()
+ {
+ return ( RepositoryWizardNode ) getSelectedNode();
+ }
+
+
+ public IRepositoryModel getRepository()
+ {
+ return repositoryElement;
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryViewData.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryViewData.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryViewData.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryViewData.java Tue Jul 21 18:51:33 2009
@@ -19,31 +19,44 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
-class RepositoryViewData {
- private String name;
- private IRepositoryModel[] reps;
-
- RepositoryViewData(String name, IRepositoryModel[] reps) {
- this.name = name;
- this.reps = reps;
- }
-
- String getName() {
- return name;
- }
-
- IRepositoryModel[] getRepositories() {
- return reps;
- }
-
- void setName(String name) {
- this.name = name;
- }
-
- void setRepositories(IRepositoryModel[] reps) {
- this.reps = reps;
- }
+
+class RepositoryViewData
+{
+ private String name;
+ private IRepositoryModel[] reps;
+
+
+ RepositoryViewData( String name, IRepositoryModel[] reps )
+ {
+ this.name = name;
+ this.reps = reps;
+ }
+
+
+ String getName()
+ {
+ return name;
+ }
+
+
+ IRepositoryModel[] getRepositories()
+ {
+ return reps;
+ }
+
+
+ void setName( String name )
+ {
+ this.name = name;
+ }
+
+
+ void setRepositories( IRepositoryModel[] reps )
+ {
+ this.reps = reps;
+ }
}
\ No newline at end of file
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryWizardNode.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryWizardNode.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryWizardNode.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/RepositoryWizardNode.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
import org.apache.felix.sigil.eclipse.SigilCore;
import org.apache.felix.sigil.eclipse.model.repository.IRepositoryModel;
import org.apache.felix.sigil.ui.eclipse.ui.wizard.repository.RepositoryWizard;
@@ -27,45 +28,64 @@
import org.eclipse.jface.wizard.IWizardNode;
import org.eclipse.swt.graphics.Point;
-public class RepositoryWizardNode implements IWizardNode {
- private IRepositoryModel repository;
-
- private RepositoryWizard wizard;
-
- public RepositoryWizardNode(IRepositoryModel repository) {
- this.repository = repository;
- }
-
- public void dispose() {
- if ( wizard != null ) {
- wizard.dispose();
- wizard = null;
- }
- }
-
- public Point getExtent() {
- return new Point(-1, -1);
- }
-
- public IWizard getWizard() {
- if ( wizard == null ) {
- try {
- wizard = WizardHelper.loadWizard(repository.getType());
- wizard.init( repository );
- } catch (CoreException e) {
- SigilCore.error( "Failed to create wizard for " + repository.getType(), e);
- }
- }
- return wizard;
- }
-
- public IRepositoryModel getRepository() {
- return repository;
- }
-
- public boolean isContentCreated() {
- return wizard != null;
- }
+public class RepositoryWizardNode implements IWizardNode
+{
+
+ private IRepositoryModel repository;
+
+ private RepositoryWizard wizard;
+
+
+ public RepositoryWizardNode( IRepositoryModel repository )
+ {
+ this.repository = repository;
+ }
+
+
+ public void dispose()
+ {
+ if ( wizard != null )
+ {
+ wizard.dispose();
+ wizard = null;
+ }
+ }
+
+
+ public Point getExtent()
+ {
+ return new Point( -1, -1 );
+ }
+
+
+ public IWizard getWizard()
+ {
+ if ( wizard == null )
+ {
+ try
+ {
+ wizard = WizardHelper.loadWizard( repository.getType() );
+ wizard.init( repository );
+ }
+ catch ( CoreException e )
+ {
+ SigilCore.error( "Failed to create wizard for " + repository.getType(), e );
+ }
+ }
+ return wizard;
+ }
+
+
+ public IRepositoryModel getRepository()
+ {
+ return repository;
+ }
+
+
+ public boolean isContentCreated()
+ {
+ return wizard != null;
+ }
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/WizardHelper.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/WizardHelper.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/WizardHelper.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/repository/WizardHelper.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.preferences.repository;
+
import org.apache.felix.sigil.eclipse.SigilCore;
import org.apache.felix.sigil.eclipse.model.repository.IRepositoryType;
import org.apache.felix.sigil.ui.eclipse.ui.SigilUI;
@@ -30,35 +31,45 @@
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
-public class WizardHelper {
- public static RepositoryWizard loadWizard(IRepositoryType type) throws CoreException {
- IConfigurationElement e = findWizardConfig(type.getId());
-
- if ( e == null ) {
- throw SigilCore.newCoreException("No wizard registered for repository " + type, null);
- }
-
- return (RepositoryWizard) e.createExecutableExtension("class");
- }
-
- public static boolean hasWizard(IRepositoryType type) {
- return findWizardConfig(type.getId()) != null;
- }
-
- private static IConfigurationElement findWizardConfig(String id) {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IExtensionPoint p = registry.getExtensionPoint(SigilUI.REPOSITORY_WIZARD_EXTENSION_POINT_ID);
-
- for ( IExtension e : p.getExtensions() ) {
- for ( IConfigurationElement c : e.getConfigurationElements() ) {
- if ( id.equals( c.getAttribute("repository") ) ) {
- return c;
- }
- }
- }
-
- return null;
- }
-
-
+
+public class WizardHelper
+{
+ public static RepositoryWizard loadWizard( IRepositoryType type ) throws CoreException
+ {
+ IConfigurationElement e = findWizardConfig( type.getId() );
+
+ if ( e == null )
+ {
+ throw SigilCore.newCoreException( "No wizard registered for repository " + type, null );
+ }
+
+ return ( RepositoryWizard ) e.createExecutableExtension( "class" );
+ }
+
+
+ public static boolean hasWizard( IRepositoryType type )
+ {
+ return findWizardConfig( type.getId() ) != null;
+ }
+
+
+ private static IConfigurationElement findWizardConfig( String id )
+ {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint p = registry.getExtensionPoint( SigilUI.REPOSITORY_WIZARD_EXTENSION_POINT_ID );
+
+ for ( IExtension e : p.getExtensions() )
+ {
+ for ( IConfigurationElement c : e.getConfigurationElements() )
+ {
+ if ( id.equals( c.getAttribute( "repository" ) ) )
+ {
+ return c;
+ }
+ }
+ }
+
+ return null;
+ }
+
}
Modified: felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportPackageProposal.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportPackageProposal.java?rev=796467&r1=796466&r2=796467&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportPackageProposal.java (original)
+++ felix/trunk/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/quickfix/ImportPackageProposal.java Tue Jul 21 18:51:33 2009
@@ -19,6 +19,7 @@
package org.apache.felix.sigil.ui.eclipse.ui.quickfix;
+
import org.apache.felix.sigil.eclipse.SigilCore;
import org.apache.felix.sigil.eclipse.model.project.ISigilProjectModel;
import org.apache.felix.sigil.model.ModelElementFactory;
@@ -39,69 +40,93 @@
import org.eclipse.ui.actions.WorkspaceModifyOperation;
import org.osgi.framework.Version;
-public class ImportPackageProposal implements IJavaCompletionProposal {
- private IPackageExport e;
- private ISigilProjectModel n;
-
- public ImportPackageProposal(IPackageExport e, ISigilProjectModel n) {
- this.e = e;
- this.n = n;
- }
-
- public int getRelevance() {
- return 100;
- }
-
- public void apply(IDocument document) {
- try {
-
- final IPackageImport i = ModelElementFactory.getInstance().newModelElement(IPackageImport.class);
- i.setPackageName(e.getPackageName());
- 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 = e.getVersion();
- VersionRange selectedVersions = VersionRange.newInstance(version, lowerBoundRule, upperBoundRule);
- i.setVersions( selectedVersions );
-
- WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
- @Override
- protected void execute(IProgressMonitor monitor)
- throws CoreException {
- n.getBundle().getBundleInfo().addImport( i );
- n.save(null);
- }
- };
-
- SigilUI.runWorkspaceOperation(op, null);
- } catch (ModelElementFactoryException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- public String getAdditionalProposalInfo() {
- return null;
- }
-
- public IContextInformation getContextInformation() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String getDisplayString() {
- return "Import package " + e.getPackageName() + " version " + e.getVersion() + " to bundle";
- }
-
- public Image getImage() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Point getSelection(IDocument document) {
- return null;
- }
+public class ImportPackageProposal implements IJavaCompletionProposal
+{
+
+ private IPackageExport e;
+ private ISigilProjectModel n;
+
+
+ public ImportPackageProposal( IPackageExport e, ISigilProjectModel n )
+ {
+ this.e = e;
+ this.n = n;
+ }
+
+
+ public int getRelevance()
+ {
+ return 100;
+ }
+
+
+ public void apply( IDocument document )
+ {
+ try
+ {
+
+ final IPackageImport i = ModelElementFactory.getInstance().newModelElement( IPackageImport.class );
+ i.setPackageName( e.getPackageName() );
+ 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 = e.getVersion();
+ VersionRange selectedVersions = VersionRange.newInstance( version, lowerBoundRule, upperBoundRule );
+ i.setVersions( selectedVersions );
+
+ WorkspaceModifyOperation op = new WorkspaceModifyOperation()
+ {
+ @Override
+ protected void execute( IProgressMonitor monitor ) throws CoreException
+ {
+ n.getBundle().getBundleInfo().addImport( i );
+ n.save( null );
+ }
+ };
+
+ SigilUI.runWorkspaceOperation( op, null );
+ }
+ catch ( ModelElementFactoryException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+
+ public String getAdditionalProposalInfo()
+ {
+ return null;
+ }
+
+
+ public IContextInformation getContextInformation()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ public String getDisplayString()
+ {
+ return "Import package " + e.getPackageName() + " version " + e.getVersion() + " to bundle";
+ }
+
+
+ public Image getImage()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ public Point getSelection( IDocument document )
+ {
+ return null;
+ }
}