1 package org
.argeo
.slc
.client
.ui
.dist
.views
;
4 import javax
.jcr
.RepositoryException
;
5 import javax
.jcr
.Session
;
7 import org
.apache
.commons
.logging
.Log
;
8 import org
.apache
.commons
.logging
.LogFactory
;
9 import org
.argeo
.ArgeoException
;
10 import org
.argeo
.slc
.client
.ui
.dist
.DistConstants
;
11 import org
.argeo
.slc
.client
.ui
.dist
.DistPlugin
;
12 import org
.argeo
.slc
.client
.ui
.dist
.providers
.ArtifactLabelProvider
;
13 import org
.argeo
.slc
.client
.ui
.dist
.providers
.ArtifactsTreeContentProvider
;
14 import org
.argeo
.slc
.client
.ui
.dist
.utils
.GenericDoubleClickListener
;
15 import org
.argeo
.slc
.repo
.RepoConstants
;
16 import org
.eclipse
.jface
.viewers
.TreeViewer
;
17 import org
.eclipse
.swt
.SWT
;
18 import org
.eclipse
.swt
.layout
.GridLayout
;
19 import org
.eclipse
.swt
.widgets
.Composite
;
20 import org
.eclipse
.swt
.widgets
.Tree
;
21 import org
.eclipse
.swt
.widgets
.TreeColumn
;
22 import org
.eclipse
.ui
.part
.ViewPart
;
25 * Basic View to browse a maven base repository
28 public class ArtifactsBrowser
extends ViewPart
implements DistConstants
,
30 private final static Log log
= LogFactory
.getLog(ArtifactsBrowser
.class);
31 public final static String ID
= DistPlugin
.ID
+ ".artifactsBrowser";
33 /* DEPENDENCY INJECTION */
34 private Session jcrSession
;
36 private Node rootNode
;
39 private TreeViewer artifactTreeViewer
;
42 public void createPartControl(Composite parent
) {
43 GridLayout gl
= new GridLayout(1, false);
45 artifactTreeViewer
= createArtifactsTreeViewer(parent
);
47 // context menu : it is completely defined in the plugin.xml file.
49 // Nothing in the context menu for the time being
50 // MenuManager menuManager = new MenuManager();
52 // menuManager.createContextMenu(artifactTreeViewer.getTree());
53 // artifactTreeViewer.getTree().setMenu(menu);
54 // getSite().registerContextMenu(menuManager, artifactTreeViewer);
56 getSite().setSelectionProvider(artifactTreeViewer
);
57 // packagesViewer.setComparer(new NodeViewerComparer());
59 // Model initialisation
60 if (jcrSession
!= null) {
62 rootNode
= jcrSession
.getNode(ARTIFACTS_BASE_PATH
);
63 artifactTreeViewer
.setInput(rootNode
);
64 } catch (RepositoryException e
) {
65 throw new ArgeoException("Cannot load base artifact nodes", e
);
70 protected TreeViewer
createArtifactsTreeViewer(Composite parent
) {
71 int style
= SWT
.BORDER
| SWT
.MULTI
| SWT
.FULL_SELECTION
;
72 Tree tree
= new Tree(parent
, style
);
73 createColumn(tree
, "Artifacts", SWT
.LEFT
, 300);
74 createColumn(tree
, "Date created", SWT
.LEFT
, 105);
75 createColumn(tree
, "Size", SWT
.RIGHT
, 55);
76 tree
.setLinesVisible(true);
77 tree
.setHeaderVisible(true);
79 TreeViewer viewer
= new TreeViewer(tree
);
81 viewer
.setContentProvider(new ArtifactsTreeContentProvider());
82 viewer
.setLabelProvider(new ArtifactLabelProvider());
83 viewer
.addDoubleClickListener(new GenericDoubleClickListener(viewer
));
84 viewer
.setInput(rootNode
);
88 private static TreeColumn
createColumn(Tree parent
, String name
, int style
,
90 TreeColumn result
= new TreeColumn(parent
, style
);
92 result
.setWidth(width
);
93 result
.setMoveable(true);
94 result
.setResizable(true);
98 protected TreeViewer
getArtifactTreeViewer() {
99 return artifactTreeViewer
;
103 public void setFocus() {
104 // TODO Auto-generated method stub
107 /* DEPENDENCY INJECTION */
108 public void setJcrSession(Session jcrSession
) {
109 this.jcrSession
= jcrSession
;