View Javadoc
1   /*
2    * Copyright (C) 2007-2012 Argeo GmbH
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *         http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.argeo.slc.client.ui.dist.views;
17  
18  import org.argeo.cms.ArgeoNames;
19  import org.argeo.slc.SlcNames;
20  import org.argeo.slc.client.ui.dist.DistConstants;
21  import org.argeo.slc.client.ui.dist.DistPlugin;
22  import org.argeo.slc.client.ui.dist.controllers.DistTreeComparator;
23  import org.argeo.slc.client.ui.dist.controllers.DistTreeDoubleClickListener;
24  import org.argeo.slc.client.ui.dist.controllers.DistTreeLabelProvider;
25  import org.eclipse.jface.viewers.ITreeContentProvider;
26  import org.eclipse.jface.viewers.TreeViewer;
27  import org.eclipse.jface.viewers.TreeViewerColumn;
28  import org.eclipse.swt.SWT;
29  import org.eclipse.swt.widgets.Composite;
30  import org.eclipse.swt.widgets.Tree;
31  import org.eclipse.ui.part.ViewPart;
32  
33  /**
34   * Browse, manipulate and manage distributions accross multiple repositories
35   * (like fetch, merge, publish, etc.).
36   */
37  public class AnonymousDistributionsView extends ViewPart implements SlcNames,
38  		ArgeoNames {
39  	// private final static Log log = LogFactory
40  	// .getLog(AnonymousDistributionsView.class);
41  	public final static String ID = DistPlugin.PLUGIN_ID
42  			+ ".anonymousDistributionsView";
43  
44  	/* DEPENDENCY INJECTION */
45  	private ITreeContentProvider treeContentProvider;
46  
47  	// This view widgets
48  	private TreeViewer viewer;
49  
50  	@Override
51  	public void createPartControl(Composite parent) {
52  		// Define the TableViewer
53  		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL
54  				| SWT.FULL_SELECTION | SWT.BORDER);
55  
56  		TreeViewerColumn col = new TreeViewerColumn(viewer, SWT.NONE);
57  		col.getColumn().setWidth(400);
58  		col.setLabelProvider(new DistTreeLabelProvider());
59  
60  		final Tree tree = viewer.getTree();
61  		tree.setHeaderVisible(false);
62  		tree.setLinesVisible(false);
63  
64  		// viewer.setContentProvider(new DistTreeContentProvider());
65  		viewer.setContentProvider(treeContentProvider);
66  		viewer.addDoubleClickListener(new DistTreeDoubleClickListener(viewer));
67  		viewer.setComparator(new DistTreeComparator());
68  
69  		// Initialize
70  		refresh();
71  	}
72  
73  	/**
74  	 * Force refresh of the whole view
75  	 */
76  	public void refresh() {
77  		Object[] ee = viewer.getExpandedElements();
78  		viewer.setInput(DistConstants.DEFAULT_PUBLIC_REPOSITORY_URI);
79  		// viewer.expandToLevel(2);
80  		viewer.setExpandedElements(ee);
81  	}
82  
83  	@Override
84  	public void setFocus() {
85  		viewer.getTree().setFocus();
86  	}
87  
88  	/*
89  	 * DEPENDENCY INJECTION
90  	 */
91  	public void setTreeContentProvider(ITreeContentProvider treeContentProvider) {
92  		this.treeContentProvider = treeContentProvider;
93  	}
94  }