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%2Fviews%2FDistributionsView.java;h=6ac3d79ad783f5c90c4dea819217122746eb87a9;hb=cf981ab49d06fd095b6523424cd3af89f96f6dbc;hp=e714a780bd62660d1c1d97e71ecaa701bc160c9e;hpb=e255526eb77c85ce773cf64fbf06430e4f936ec2;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/views/DistributionsView.java b/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java index e714a780b..6ac3d79ad 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java +++ b/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/views/DistributionsView.java @@ -32,6 +32,7 @@ import org.argeo.slc.client.ui.dist.commands.CopyWorkspace; import org.argeo.slc.client.ui.dist.commands.CreateWorkspace; import org.argeo.slc.client.ui.dist.commands.DeleteWorkspace; import org.argeo.slc.client.ui.dist.commands.ManageWorkspaceAuth; +import org.argeo.slc.client.ui.dist.commands.NormalizeDistribution; import org.argeo.slc.client.ui.dist.editors.DistributionEditor; import org.argeo.slc.client.ui.dist.editors.DistributionEditorInput; import org.argeo.slc.client.ui.dist.utils.CommandHelpers; @@ -126,38 +127,59 @@ public class DistributionsView extends ViewPart implements SlcNames { // Get Current selected item : Object firstElement = ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); - String wsName = null; + if (firstElement instanceof TreeParent) { - wsName = ((TreeParent) firstElement).getName(); - } + TreeParent tp = (TreeParent) firstElement; + String wsName = tp.getName(); + + // Build conditions depending on element type (repo or distribution + // for the time being) + boolean isDistribElem = false; // , isRepoElem = false; + + // if (tp instanceof RepositoryElem){ + // isRepoElem = true; + // } else + if (tp instanceof DistributionElem) { + isDistribElem = true; + } - // Build conditions depending on element type (repo or workspace) - - // create workspace - CommandHelpers.refreshCommand(menuManager, window, CreateWorkspace.ID, - CreateWorkspace.DEFAULT_LABEL, - CreateWorkspace.DEFAULT_ICON_PATH, true); - - // Copy workspace - Map params = new HashMap(); - params.put(CopyWorkspace.PARAM_WORKSPACE_NAME, wsName); - CommandHelpers.refreshParameterizedCommand(menuManager, window, - CopyWorkspace.ID, CopyWorkspace.DEFAULT_LABEL, - CopyWorkspace.DEFAULT_ICON_PATH, true, params); - - // Delete Workspace - params = new HashMap(); - params.put(DeleteWorkspace.PARAM_WORKSPACE_NAME, wsName); - CommandHelpers.refreshParameterizedCommand(menuManager, window, - DeleteWorkspace.ID, DeleteWorkspace.DEFAULT_LABEL, - DeleteWorkspace.DEFAULT_ICON_PATH, true, params); - - // Manage workspace authorizations - params = new HashMap(); - params.put(ManageWorkspaceAuth.PARAM_WORKSPACE_NAME, wsName); - CommandHelpers.refreshParameterizedCommand(menuManager, window, - ManageWorkspaceAuth.ID, ManageWorkspaceAuth.DEFAULT_LABEL, - ManageWorkspaceAuth.DEFAULT_ICON_PATH, true, params); + // create workspace + CommandHelpers.refreshCommand(menuManager, window, + CreateWorkspace.ID, CreateWorkspace.DEFAULT_LABEL, + CreateWorkspace.DEFAULT_ICON_PATH, + tp instanceof RepositoryElem); + + // Normalize workspace + Map params = new HashMap(); + params.put(NormalizeDistribution.PARAM_WORKSPACE, wsName); + CommandHelpers.refreshParameterizedCommand(menuManager, window, + NormalizeDistribution.ID, + NormalizeDistribution.DEFAULT_LABEL, + NormalizeDistribution.DEFAULT_ICON_PATH, isDistribElem, + params); + + // Copy workspace + params = new HashMap(); + params.put(CopyWorkspace.PARAM_WORKSPACE_NAME, wsName); + CommandHelpers.refreshParameterizedCommand(menuManager, window, + CopyWorkspace.ID, CopyWorkspace.DEFAULT_LABEL, + CopyWorkspace.DEFAULT_ICON_PATH, isDistribElem, params); + + // Delete Workspace + params = new HashMap(); + params.put(DeleteWorkspace.PARAM_WORKSPACE_NAME, wsName); + CommandHelpers.refreshParameterizedCommand(menuManager, window, + DeleteWorkspace.ID, DeleteWorkspace.DEFAULT_LABEL, + DeleteWorkspace.DEFAULT_ICON_PATH, isDistribElem, params); + + // Manage workspace authorizations + params = new HashMap(); + params.put(ManageWorkspaceAuth.PARAM_WORKSPACE_NAME, wsName); + CommandHelpers.refreshParameterizedCommand(menuManager, window, + ManageWorkspaceAuth.ID, ManageWorkspaceAuth.DEFAULT_LABEL, + ManageWorkspaceAuth.DEFAULT_ICON_PATH, isDistribElem, + params); + } } private class DistributionsContentProvider extends @@ -170,12 +192,12 @@ public class DistributionsView extends ViewPart implements SlcNames { } private static class RepositoryElem extends TreeParent { - private final Repository repository; + // private final Repository repository; private Session defaultSession; public RepositoryElem(String name, Repository repository) { super(name); - this.repository = repository; + // this.repository = repository; try { defaultSession = repository.login(); String[] workspaceNames = defaultSession.getWorkspace() @@ -187,6 +209,14 @@ public class DistributionsView extends ViewPart implements SlcNames { } } + @Override + public synchronized void dispose() { + if (log.isTraceEnabled()) + log.trace("Disposing RepositoryElement"); + if (defaultSession != null) + defaultSession.logout(); + super.dispose(); + } } private static class DistributionElem extends TreeParent { @@ -206,7 +236,11 @@ public class DistributionsView extends ViewPart implements SlcNames { public Repository getRepository() { return repository; } + } + @Override + public void dispose() { + super.dispose(); } private class DistributionsDCL implements IDoubleClickListener { @@ -231,7 +265,5 @@ public class DistributionsView extends ViewPart implements SlcNames { } } } - } - -} +} \ No newline at end of file