]> git.argeo.org Git - gpl/argeo-slc.git/blob - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeDoubleClickListener.java
Prevent initalization of the UI to fail if a remote repo is not accessible.
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / controllers / DistTreeDoubleClickListener.java
1 package org.argeo.slc.client.ui.dist.controllers;
2
3 import org.argeo.eclipse.ui.ErrorFeedback;
4 import org.argeo.slc.client.ui.dist.DistPlugin;
5 import org.argeo.slc.client.ui.dist.editors.DistributionEditor;
6 import org.argeo.slc.client.ui.dist.editors.DistributionEditorInput;
7 import org.argeo.slc.client.ui.dist.model.WorkspaceElem;
8 import org.eclipse.jface.viewers.DoubleClickEvent;
9 import org.eclipse.jface.viewers.IDoubleClickListener;
10 import org.eclipse.jface.viewers.IStructuredSelection;
11 import org.eclipse.ui.PartInitException;
12
13 /** Listen to double-clicks */
14 public class DistTreeDoubleClickListener implements IDoubleClickListener {
15
16 public void doubleClick(DoubleClickEvent event) {
17 if (event.getSelection() == null || event.getSelection().isEmpty())
18 return;
19 Object obj = ((IStructuredSelection) event.getSelection())
20 .getFirstElement();
21 if (obj instanceof WorkspaceElem) {
22 WorkspaceElem we = (WorkspaceElem) obj;
23 DistributionEditorInput dei = new DistributionEditorInput(we
24 .getRepoElem().getRepository(), we.getRepoElem()
25 .getCredentials(), we.getRepoElem().getLabel(), we
26 .getRepoElem().getDescription(), we.getWorkspaceName());
27 try {
28 DistPlugin.getDefault().getWorkbench()
29 .getActiveWorkbenchWindow().getActivePage()
30 .openEditor(dei, DistributionEditor.ID);
31 } catch (PartInitException e) {
32 ErrorFeedback.show(
33 "Cannot open editor for " + we.getWorkspaceName(), e);
34 }
35 }
36 }
37 }