1 package org
.argeo
.slc
.client
.ui
.dist
.controllers
;
3 import java
.util
.HashMap
;
7 import javax
.jcr
.RepositoryException
;
9 import org
.argeo
.eclipse
.ui
.utils
.CommandUtils
;
10 import org
.argeo
.slc
.SlcException
;
11 import org
.argeo
.slc
.client
.ui
.dist
.commands
.OpenModuleEditor
;
12 import org
.argeo
.slc
.client
.ui
.dist
.commands
.OpenWorkspaceEditor
;
13 import org
.argeo
.slc
.client
.ui
.dist
.model
.ModularDistVersionElem
;
14 import org
.argeo
.slc
.client
.ui
.dist
.model
.RepoElem
;
15 import org
.argeo
.slc
.client
.ui
.dist
.model
.WorkspaceElem
;
16 import org
.eclipse
.jface
.viewers
.DoubleClickEvent
;
17 import org
.eclipse
.jface
.viewers
.IDoubleClickListener
;
18 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
19 import org
.eclipse
.jface
.viewers
.TreeViewer
;
21 /** Listen to double-clicks on the distributions view tree. */
22 public class DistTreeDoubleClickListener
implements IDoubleClickListener
{
24 private TreeViewer treeViewer
;
26 public DistTreeDoubleClickListener(TreeViewer treeViewer
) {
27 this.treeViewer
= treeViewer
;
30 public void doubleClick(DoubleClickEvent event
) {
31 if (event
.getSelection() == null || event
.getSelection().isEmpty())
33 Object obj
= ((IStructuredSelection
) event
.getSelection())
36 if (obj
instanceof RepoElem
) {
37 RepoElem rpNode
= (RepoElem
) obj
;
38 if (!rpNode
.isConnected()) {
40 treeViewer
.refresh(obj
);
42 } else if (obj
instanceof WorkspaceElem
) {
43 WorkspaceElem we
= (WorkspaceElem
) obj
;
44 RepoElem repoElem
= we
.getRepoElem();
45 Map
<String
, String
> params
= new HashMap
<String
, String
>();
46 params
.put(OpenWorkspaceEditor
.PARAM_REPO_NODE_PATH
,
47 repoElem
.getRepoNodePath());
48 params
.put(OpenWorkspaceEditor
.PARAM_REPO_URI
, repoElem
.getUri());
49 params
.put(OpenWorkspaceEditor
.PARAM_WORKSPACE_NAME
,
50 we
.getWorkspaceName());
51 CommandUtils
.callCommand(OpenWorkspaceEditor
.ID
, params
);
53 } else if (obj
instanceof ModularDistVersionElem
) {
54 ModularDistVersionElem modDistElem
= (ModularDistVersionElem
) obj
;
55 WorkspaceElem wkspElem
= modDistElem
.getWorkspaceElem();
56 Node moduleNode
= modDistElem
.getModularDistVersionNode();
57 RepoElem repoElem
= wkspElem
.getRepoElem();
58 Map
<String
, String
> params
= new HashMap
<String
, String
>();
59 params
.put(OpenModuleEditor
.PARAM_REPO_NODE_PATH
,
60 repoElem
.getRepoNodePath());
61 params
.put(OpenModuleEditor
.PARAM_REPO_URI
, repoElem
.getUri());
62 params
.put(OpenModuleEditor
.PARAM_WORKSPACE_NAME
,
63 wkspElem
.getWorkspaceName());
65 params
.put(OpenModuleEditor
.PARAM_MODULE_PATH
,
66 moduleNode
.getPath());
67 } catch (RepositoryException re
) {
68 throw new SlcException("Cannot get path for node " + moduleNode
69 + " while setting parameters for "
70 + "command OpenModuleEditor", re
);
72 CommandUtils
.callCommand(OpenModuleEditor
.ID
, params
);