]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeDoubleClickListener.java
Work on modular distributions - change lazy init policies, add observer on the catego...
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / controllers / DistTreeDoubleClickListener.java
index 6e8d53734ce0b3ec64a58b47b3df83e805bad441..5136a9128afa4d6ba745e8575f31a03a841bf7e8 100644 (file)
@@ -8,7 +8,9 @@ import javax.jcr.RepositoryException;
 
 import org.argeo.eclipse.ui.utils.CommandUtils;
 import org.argeo.slc.SlcException;
+import org.argeo.slc.client.ui.dist.commands.OpenModuleEditor;
 import org.argeo.slc.client.ui.dist.commands.OpenWorkspaceEditor;
+import org.argeo.slc.client.ui.dist.model.ModularDistVersionElem;
 import org.argeo.slc.client.ui.dist.model.RepoElem;
 import org.argeo.slc.client.ui.dist.model.WorkspaceElem;
 import org.eclipse.jface.viewers.DoubleClickEvent;
@@ -38,33 +40,56 @@ public class DistTreeDoubleClickListener implements IDoubleClickListener {
                                treeViewer.refresh(obj);
                        }
                } else if (obj instanceof WorkspaceElem) {
-                       WorkspaceElem wn = (WorkspaceElem) obj;
-                       if (!wn.isConnected())
-                               wn.login();
-                       else {
-                               WorkspaceElem we = (WorkspaceElem) obj;
+                       //WorkspaceElem wn = (WorkspaceElem) obj;
+                       // if (!wn.isConnected()) {
+                       // wn.login();
+                       // treeViewer.refresh(obj);
+                       // } else {
+                       WorkspaceElem we = (WorkspaceElem) obj;
+                       Node repoNode = null;
+                       try {
+                               RepoElem repoElem = we.getRepoElem();
+                               Map<String, String> params = new HashMap<String, String>();
 
-                               try {
-                                       RepoElem repoElem = we.getRepoElem();
-                                       Map<String, String> params = new HashMap<String, String>();
-
-                                       Node repoNode = repoElem.getRepoNode();
-                                       if (repoNode != null)
-                                               params.put(OpenWorkspaceEditor.PARAM_REPO_NODE_PATH,
-                                                               repoNode.getPath());
-                                       params.put(OpenWorkspaceEditor.PARAM_REPO_URI,
-                                                       repoElem.getUri());
-                                       params.put(OpenWorkspaceEditor.PARAM_WORKSPACE_NAME,
-                                                       we.getWorkspaceName());
-                                       CommandUtils.callCommand(OpenWorkspaceEditor.ID, params);
-                               } catch (RepositoryException re) {
-                                       throw new SlcException(
-                                                       "Cannot get path for node while "
-                                                                       + "setting parameters of command OpenWorkspaceEditor",
-                                                       re);
-                               }
+                               repoNode = repoElem.getRepoNode();
+                               if (repoNode != null)
+                                       params.put(OpenWorkspaceEditor.PARAM_REPO_NODE_PATH,
+                                                       repoNode.getPath());
+                               params.put(OpenWorkspaceEditor.PARAM_REPO_URI,
+                                               repoElem.getUri());
+                               params.put(OpenWorkspaceEditor.PARAM_WORKSPACE_NAME,
+                                               we.getWorkspaceName());
+                               CommandUtils.callCommand(OpenWorkspaceEditor.ID, params);
+                       } catch (RepositoryException re) {
+                               throw new SlcException("Cannot get path for node " + repoNode
+                                               + " while " + "setting parameters of command "
+                                               + "OpenWorkspaceEditor", re);
+                       }
+                       // }
+               } else if (obj instanceof ModularDistVersionElem) {
+                       ModularDistVersionElem modDistElem = (ModularDistVersionElem) obj;
+                       WorkspaceElem wkspElem = modDistElem.getWorkspaceElem();
+                       Node repoNode = null;
+                       Node moduleNode = modDistElem.getModularDistVersionNode();
+                       try {
+                               RepoElem repoElem = wkspElem.getRepoElem();
+                               Map<String, String> params = new HashMap<String, String>();
+                               repoNode = repoElem.getRepoNode();
+                               if (repoNode != null)
+                                       params.put(OpenModuleEditor.PARAM_REPO_NODE_PATH,
+                                                       repoNode.getPath());
+                               params.put(OpenModuleEditor.PARAM_REPO_URI, repoElem.getUri());
+                               params.put(OpenModuleEditor.PARAM_WORKSPACE_NAME,
+                                               wkspElem.getWorkspaceName());
+                               params.put(OpenModuleEditor.PARAM_MODULE_PATH,
+                                               moduleNode.getPath());
+                               CommandUtils.callCommand(OpenModuleEditor.ID, params);
+                       } catch (RepositoryException re) {
+                               throw new SlcException("Cannot get path for node " + repoNode
+                                               + " or " + moduleNode
+                                               + " while setting parameters for "
+                                               + "command OpenModuleEditor", re);
                        }
-                       treeViewer.refresh(obj);
                }
        }
 }
\ No newline at end of file