X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Fplugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Feditors%2FDistributionOverviewPage.java;h=bdd243d8301a2575e10202d3252c219616d321aa;hb=99f26f4dd4136b33d0e68687599b9673363319ae;hp=d7d578a03eb5ce3d811caface211539a46a54d90;hpb=7c476baea6f552d783107abf9c6b96ebddde8625;p=gpl%2Fargeo-slc.git diff --git a/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/DistributionOverviewPage.java b/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/DistributionOverviewPage.java index d7d578a03..bdd243d83 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/DistributionOverviewPage.java +++ b/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/DistributionOverviewPage.java @@ -17,9 +17,15 @@ import javax.jcr.query.qom.Selector; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.jcr.JcrUtils; +import org.argeo.slc.client.ui.dist.DistPlugin; +import org.argeo.slc.client.ui.dist.commands.DeleteArtifacts; +import org.argeo.slc.client.ui.dist.utils.CommandHelpers; import org.argeo.slc.client.ui.dist.utils.NodeViewerComparator; import org.argeo.slc.jcr.SlcNames; import org.argeo.slc.jcr.SlcTypes; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.TableViewer; @@ -30,7 +36,9 @@ import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Table; +import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.editor.FormPage; @@ -38,7 +46,7 @@ import org.eclipse.ui.forms.widgets.ScrolledForm; import org.osgi.framework.Constants; /** Table giving an overview of an OSGi distribution */ -class DistributionOverviewPage extends FormPage implements SlcNames { +public class DistributionOverviewPage extends FormPage implements SlcNames { private TableViewer viewer; private Session session; @@ -123,11 +131,24 @@ class DistributionOverviewPage extends FormPage implements SlcNames { table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); viewer.setContentProvider(new DistributionsContentProvider()); + getSite().setSelectionProvider(viewer); + viewer.setInput(session); comparator = new NodeViewerComparator(1, NodeViewerComparator.DESCENDING, propertiesList, propertyTypesList); viewer.setComparator(comparator); + + MenuManager menuManager = new MenuManager(); + Menu menu = menuManager.createContextMenu(viewer.getTable()); + menuManager.addMenuListener(new IMenuListener() { + public void menuAboutToShow(IMenuManager manager) { + contextMenuAboutToShow(manager); + } + }); + viewer.getTable().setMenu(menu); + getSite().registerContextMenu(menuManager, viewer); + } @Override @@ -135,6 +156,25 @@ class DistributionOverviewPage extends FormPage implements SlcNames { viewer.getTable().setFocus(); } + /** force refresh of the artifact list */ + public void refresh() { + viewer.refresh(); + } + + /** Programatically configure the context menu */ + protected void contextMenuAboutToShow(IMenuManager menuManager) { + IWorkbenchWindow window = DistPlugin.getDefault().getWorkbench() + .getActiveWorkbenchWindow(); + + // Build conditions depending on element type (repo or workspace) + + // Delete selected artifacts + CommandHelpers.refreshCommand(menuManager, window, DeleteArtifacts.ID, + DeleteArtifacts.DEFAULT_LABEL, + DeleteArtifacts.DEFAULT_ICON_PATH, true); + + } + static NodeIterator listBundleArtifacts(Session session) throws RepositoryException { QueryManager queryManager = session.getWorkspace().getQueryManager(); @@ -198,5 +238,4 @@ class DistributionOverviewPage extends FormPage implements SlcNames { } } - } \ No newline at end of file