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.util.CdmVaadinAuthentication;
23

    
24
public class HorizontalToolbar extends HorizontalLayout implements Serializable{
25

    
26

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

    
32

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

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

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

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

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

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

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

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

    
55
    public void init() {
56
		if(authentication != null && authentication.isAuthenticated()){
57
			setMargin(true);
58
			setSpacing(true);
59
			setStyleName("toolbar");
60
			setWidth("100%");
61
			setHeight("75px");
62

    
63
//			addComponent(editButton);
64
//			addComponent(saveButton);
65
			addComponent(detailButton);
66
//			addComponent(exporter);
67

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

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

    
78
			//		SecurityContext context = (SecurityContext)VaadinService.getCurrentRequest().getWrappedSession().getAttribute("context");
79
			SecurityContext context = SecurityContextHolder.getContext();
80
			Label loginName = new Label(authentication.getName().toString());
81
			loginName.setIcon(new ThemeResource("icons/32/user.png"));
82

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

    
91
			addComponent(rightLayout);
92
			setComponentAlignment(rightLayout, Alignment.MIDDLE_RIGHT);
93
			setExpandRatio(rightLayout, 1);
94

    
95
			logoutButton.addClickListener(new ClickListener() {
96

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

    
102
				@Override
103
                public void buttonClick(ClickEvent event) {
104

    
105
					VaadinSession.getCurrent().close();
106
					authentication.setAuthenticated(false);
107
					UI.getCurrent().getNavigator().navigateTo("abstractAuthenticatedUI");
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)