Project

General

Profile

Download (4.25 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin.component;
2

    
3
import java.io.Serializable;
4

    
5
import org.springframework.security.core.Authentication;
6
import org.springframework.security.core.context.SecurityContext;
7
import org.springframework.security.core.context.SecurityContextHolder;
8

    
9
import com.vaadin.server.Page;
10
import com.vaadin.server.ThemeResource;
11
import com.vaadin.server.VaadinServlet;
12
import com.vaadin.server.VaadinSession;
13
import com.vaadin.ui.Alignment;
14
import com.vaadin.ui.Button;
15
import com.vaadin.ui.Button.ClickEvent;
16
import com.vaadin.ui.Button.ClickListener;
17
import com.vaadin.ui.HorizontalLayout;
18
import com.vaadin.ui.Image;
19
import com.vaadin.ui.Label;
20
import com.vaadin.ui.UI;
21

    
22
import eu.etaxonomy.cdm.vaadin.security.UserHelper;
23
import eu.etaxonomy.cdm.vaadin.util.CdmVaadinAuthentication;
24

    
25
public class HorizontalToolbar extends HorizontalLayout implements Serializable{
26

    
27

    
28
	/**
29
	 * automatically generated ID
30
	 */
31
	private static final long serialVersionUID = 5344340511582993289L;
32

    
33

    
34
	private final Button editButton = new Button("Edit");
35

    
36
	private final Button saveButton = new Button("Save");
37

    
38
	private final Button detailButton = new Button("Detail");
39

    
40
	private final Button distributionSettingsButton =  new Button("Distribution Settings");
41

    
42
	private final Button settingsButton =  new Button("Settings");
43

    
44
	private final Button logoutButton= new Button("Logout");
45

    
46
//	private final Authentication authentication;
47
//	private ExcelExporter exporter = new ExcelExporter();
48

    
49
	public HorizontalToolbar() {
50
//		authentication = (Authentication) VaadinSession.getCurrent().getAttribute("authentication");
51
//		CdmVaadinAuthentication authentication = (CdmVaadinAuthentication) VaadinSession.getCurrent().getAttribute(CdmVaadinAuthentication.KEY);
52
//		this.authentication = authentication.getAuthentication(Page.getCurrent().getLocation(), VaadinServlet.getCurrent().getServletContext().getContextPath());
53
		init();
54
	}
55

    
56
    public void init() {
57
    	String userName = UserHelper.fromSession().userName();
58
		if(userName != null){
59
			setMargin(true);
60
			setSpacing(true);
61
			setStyleName("toolbar");
62
			setWidth("100%");
63
			setHeight("75px");
64

    
65
//			addComponent(editButton);
66
//			addComponent(saveButton);
67
			addComponent(detailButton);
68
//			addComponent(exporter);
69

    
70
//			exporter.setCaption("Export");
71
//			exporter.setIcon(new ThemeResource("icons/32/document-xsl.png"));
72

    
73
			saveButton.setIcon(new ThemeResource("icons/32/document-save.png"));
74
			editButton.setIcon(new ThemeResource("icons/32/document-edit.png"));
75
			detailButton.setIcon(new ThemeResource("icons/32/document-txt.png"));
76
			settingsButton.setIcon(new ThemeResource("icons/32/settings_1.png"));
77
			distributionSettingsButton.setIcon(new ThemeResource("icons/32/settings_1.png"));
78
			logoutButton.setIcon(new ThemeResource("icons/32/cancel.png"));
79

    
80
			//		SecurityContext context = (SecurityContext)VaadinService.getCurrentRequest().getWrappedSession().getAttribute("context");
81
			SecurityContext context = SecurityContextHolder.getContext();
82
			Label loginName = new Label(userName);
83
			loginName.setIcon(new ThemeResource("icons/32/user.png"));
84

    
85
			HorizontalLayout rightLayout = new HorizontalLayout();
86
			Image image = new Image(null, new ThemeResource("icons/32/vseparator1.png"));
87
			rightLayout.addComponent(settingsButton);
88
			rightLayout.addComponent(distributionSettingsButton);
89
			rightLayout.addComponent(logoutButton);
90
			rightLayout.addComponent(image);
91
			rightLayout.addComponent(loginName);
92

    
93
			addComponent(rightLayout);
94
			setComponentAlignment(rightLayout, Alignment.MIDDLE_RIGHT);
95
			setExpandRatio(rightLayout, 1);
96

    
97
			logoutButton.addClickListener(new ClickListener() {
98

    
99
				/**
100
				 *  automatically generated ID
101
				 */
102
				private static final long serialVersionUID = 8380401487511285303L;
103

    
104
				@Override
105
                public void buttonClick(ClickEvent event) {
106
					SecurityContextHolder.getContext().setAuthentication(null);
107
					VaadinSession.getCurrent().close();
108
				}
109
			});
110
		}
111
    }
112

    
113
    public Button getSettingsButton(){
114
        return settingsButton;
115
    }
116
    
117
    public Button getDistributionSettingsButton() {
118
		return distributionSettingsButton;
119
	}
120

    
121
	public Button getEditButton() {
122
		return editButton;
123
	}
124

    
125
	public Button getSaveButton() {
126
		return saveButton;
127
	}
128

    
129
	public Button getDetailButton() {
130
		return detailButton;
131
	}
132
}
(4-4/6)