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
.OpenWorkspaceEditor
;
12 import org
.argeo
.slc
.client
.ui
.dist
.model
.RepoElem
;
13 import org
.argeo
.slc
.client
.ui
.dist
.model
.WorkspaceElem
;
14 import org
.eclipse
.jface
.viewers
.DoubleClickEvent
;
15 import org
.eclipse
.jface
.viewers
.IDoubleClickListener
;
16 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
17 import org
.eclipse
.jface
.viewers
.TreeViewer
;
19 /** Listen to double-clicks on the distributions view tree. */
20 public class DistTreeDoubleClickListener
implements IDoubleClickListener
{
22 private TreeViewer treeViewer
;
24 public DistTreeDoubleClickListener(TreeViewer treeViewer
) {
25 this.treeViewer
= treeViewer
;
28 public void doubleClick(DoubleClickEvent event
) {
29 if (event
.getSelection() == null || event
.getSelection().isEmpty())
31 Object obj
= ((IStructuredSelection
) event
.getSelection())
34 if (obj
instanceof RepoElem
) {
35 RepoElem rpNode
= (RepoElem
) obj
;
36 if (!rpNode
.isConnected()) {
38 treeViewer
.refresh(obj
);
40 } else if (obj
instanceof WorkspaceElem
) {
41 WorkspaceElem wn
= (WorkspaceElem
) obj
;
42 if (!wn
.isConnected())
45 WorkspaceElem we
= (WorkspaceElem
) obj
;
48 RepoElem repoElem
= we
.getRepoElem();
49 Map
<String
, String
> params
= new HashMap
<String
, String
>();
51 Node repoNode
= repoElem
.getRepoNode();
53 params
.put(OpenWorkspaceEditor
.PARAM_REPO_NODE_PATH
,
55 params
.put(OpenWorkspaceEditor
.PARAM_REPO_URI
,
57 params
.put(OpenWorkspaceEditor
.PARAM_WORKSPACE_NAME
,
58 we
.getWorkspaceName());
59 CommandUtils
.callCommand(OpenWorkspaceEditor
.ID
, params
);
60 } catch (RepositoryException re
) {
61 throw new SlcException(
62 "Cannot get path for node while "
63 + "setting parameters of command OpenWorkspaceEditor",
67 treeViewer
.refresh(obj
);