5ca9a1f9828f6940b408c09e5b8278a27dd358a1
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / user / view / UserManagerView.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.taxeditor.user.view;
12
13 import java.util.List;
14
15 import org.apache.log4j.Logger;
16 import org.eclipse.jface.action.GroupMarker;
17 import org.eclipse.jface.action.MenuManager;
18 import org.eclipse.jface.viewers.ListViewer;
19 import org.eclipse.swt.SWT;
20 import org.eclipse.swt.layout.FillLayout;
21 import org.eclipse.swt.layout.GridData;
22 import org.eclipse.swt.layout.GridLayout;
23 import org.eclipse.swt.widgets.Composite;
24 import org.eclipse.swt.widgets.Control;
25 import org.eclipse.swt.widgets.Menu;
26 import org.eclipse.ui.IWorkbenchActionConstants;
27 import org.eclipse.ui.part.ViewPart;
28
29 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
30 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
31 import eu.etaxonomy.cdm.model.common.CdmBase;
32 import eu.etaxonomy.cdm.model.common.User;
33 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
34 import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
35 import eu.etaxonomy.taxeditor.store.CdmStore;
36
37 /**
38 * @author n.hoffmann
39 * @created 01.07.2009
40 * @version 1.0
41 */
42 public class UserManagerView extends ViewPart implements IConversationEnabled, IPostOperationEnabled{
43 private static final Logger logger = Logger
44 .getLogger(UserManagerView.class);
45
46 public static String ID = "eu.etaxonomy.taxeditor.store.userManagerView";
47
48 private ListViewer listViewer;
49
50 private ConversationHolder conversation;
51
52 /* (non-Javadoc)
53 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
54 */
55 @Override
56 public void createPartControl(Composite parent) {
57
58 conversation = CdmStore.NewTransactionalConversation();
59
60 FillLayout fillLayout = new FillLayout();
61 fillLayout.marginWidth = 0;
62 fillLayout.marginHeight = 0;
63 fillLayout.type = SWT.VERTICAL;
64 parent.setLayout(fillLayout);
65
66 Composite composite = new Composite(parent, SWT.NULL);
67 GridLayout layout = new GridLayout();
68 composite.setLayout(layout);
69
70
71 listViewer = new ListViewer(composite);
72 Control control = listViewer.getControl();
73 control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
74 // register context menu
75 MenuManager menuMgr = new MenuManager();
76 menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
77 getSite().registerContextMenu(menuMgr, listViewer);
78
79 Menu menu = menuMgr.createContextMenu(control);
80 control.setMenu(menu);
81
82 listViewer.setContentProvider(new UserManagerContentProvider());
83 listViewer.setLabelProvider(new UserManagerLabelProvider());
84
85 listViewer.setInput(getAllUser());
86 }
87
88 /* (non-Javadoc)
89 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
90 */
91 @Override
92 public void setFocus() {
93 conversation.bind();
94 listViewer.getControl().setFocus();
95 }
96
97 /* (non-Javadoc)
98 * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
99 */
100 public boolean postOperation(CdmBase objectAffectedByOperation) {
101 listViewer.setInput(getAllUser());
102 listViewer.refresh();
103
104 return true;
105 }
106
107 /**
108 *
109 * @return
110 */
111 private List<User> getAllUser(){
112 return CdmStore.getUserService().list(100000, 0);
113 }
114
115 /* (non-Javadoc)
116 * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
117 */
118 public ConversationHolder getConversationHolder() {
119 return conversation;
120 }
121
122 /* (non-Javadoc)
123 * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
124 */
125 public void update(CdmDataChangeMap changeEvents) {
126 // data changes can only be generate here at the moment
127 }
128
129 }