Project

General

Profile

Download (3.47 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.ThemeResource;
10
import com.vaadin.server.VaadinSession;
11
import com.vaadin.ui.Alignment;
12
import com.vaadin.ui.Button;
13
import com.vaadin.ui.Button.ClickEvent;
14
import com.vaadin.ui.Button.ClickListener;
15
import com.vaadin.ui.HorizontalLayout;
16
import com.vaadin.ui.Image;
17
import com.vaadin.ui.Label;
18
import com.vaadin.ui.UI;
19

    
20
public class HorizontalToolbar extends HorizontalLayout implements Serializable{
21

    
22

    
23
	/**
24
	 * automatically generated ID
25
	 */
26
	private static final long serialVersionUID = 5344340511582993289L;
27

    
28

    
29
	private final Button editButton = new Button("Edit");
30

    
31
	private final Button saveButton = new Button("Save");
32

    
33
	private final Button detailButton = new Button("Detail");
34

    
35
	private final Button settingsButton =  new Button("Settings");
36

    
37
	private final Button logoutButton= new Button("Logout");
38

    
39
	private final Authentication authentication;
40
//	private ExcelExporter exporter = new ExcelExporter();
41

    
42
	public HorizontalToolbar() {
43
		authentication = (Authentication) VaadinSession.getCurrent().getAttribute("authentication");
44
		init();
45
	}
46

    
47
    public void init() {
48
		if(authentication != null && authentication.isAuthenticated()){
49
			setMargin(true);
50
			setSpacing(true);
51
			setStyleName("toolbar");
52
			setWidth("100%");
53
			setHeight("75px");
54

    
55
//			addComponent(editButton);
56
			addComponent(saveButton);
57
			addComponent(detailButton);
58
//			addComponent(exporter);
59

    
60
//			exporter.setCaption("Export");
61
//			exporter.setIcon(new ThemeResource("icons/32/document-xsl.png"));
62

    
63
			saveButton.setIcon(new ThemeResource("icons/32/document-save.png"));
64
			editButton.setIcon(new ThemeResource("icons/32/document-edit.png"));
65
			detailButton.setIcon(new ThemeResource("icons/32/document-txt.png"));
66
			settingsButton.setIcon(new ThemeResource("icons/32/settings_1.png"));
67
			logoutButton.setIcon(new ThemeResource("icons/32/cancel.png"));
68

    
69
			//		SecurityContext context = (SecurityContext)VaadinService.getCurrentRequest().getWrappedSession().getAttribute("context");
70
			SecurityContext context = SecurityContextHolder.getContext();
71
			Label loginName = new Label(authentication.getName().toString());
72
			loginName.setIcon(new ThemeResource("icons/32/user.png"));
73

    
74
			HorizontalLayout rightLayout = new HorizontalLayout();
75
			Image image = new Image(null, new ThemeResource("icons/32/vseparator1.png"));
76
			rightLayout.addComponent(settingsButton);
77
			rightLayout.addComponent(logoutButton);
78
			rightLayout.addComponent(image);
79
			rightLayout.addComponent(loginName);
80

    
81
			addComponent(rightLayout);
82
			setComponentAlignment(rightLayout, Alignment.MIDDLE_RIGHT);
83
			setExpandRatio(rightLayout, 1);
84

    
85
			logoutButton.addClickListener(new ClickListener() {
86

    
87
				/**
88
				 *  automatically generated ID
89
				 */
90
				private static final long serialVersionUID = 8380401487511285303L;
91

    
92
				@Override
93
                public void buttonClick(ClickEvent event) {
94

    
95
					authentication.setAuthenticated(false);
96
					UI.getCurrent().getNavigator().navigateTo("abstractAuthenticatedUI");
97
				}
98
			});
99
		}
100
    }
101

    
102
    public Button getSettingsButton(){
103
        return settingsButton;
104
    }
105

    
106
	public Button getEditButton() {
107
		return editButton;
108
	}
109

    
110
	public Button getSaveButton() {
111
		return saveButton;
112
	}
113

    
114
	public Button getDetailButton() {
115
		return detailButton;
116
	}
117
}
(6-6/8)