Subversion Repositories eFlore/Applications.coel

Rev

Rev 1784 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1780 aurelien 1
package org.tela_botanica.client.vues;
2
 
3
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.i18n.Constantes;
5
import org.tela_botanica.client.modeles.Menu;
6
import org.tela_botanica.client.modeles.MenuApplicationId;
7
 
8
import com.extjs.gxt.ui.client.Style.HideMode;
9
import com.extjs.gxt.ui.client.event.Events;
10
import com.extjs.gxt.ui.client.event.Listener;
11
import com.extjs.gxt.ui.client.event.TabPanelEvent;
12
import com.extjs.gxt.ui.client.event.TreePanelEvent;
13
import com.extjs.gxt.ui.client.widget.ContentPanel;
14
import com.extjs.gxt.ui.client.widget.Document;
15
import com.extjs.gxt.ui.client.widget.TabItem;
16
import com.extjs.gxt.ui.client.widget.TabPanel;
17
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
18
import com.google.gwt.dom.client.NativeEvent;
19
import com.google.gwt.user.client.DOM;
20
import com.google.gwt.user.client.Event;
21
import com.google.gwt.user.client.Window;
22
 
23
 
24
public class MenuHorizontalVue extends ContentPanel  {
25
 
26
	private Mediateur mediateur = null;
27
	private Constantes i18nC = null;
28
 
29
	private TabPanel tbp = null;
30
	private boolean repandreSelection = true;
31
 
32
	public MenuHorizontalVue(Mediateur mediateurCourant) {
33
 
34
		mediateur = mediateurCourant;
35
		i18nC = Mediateur.i18nC;
36
 
37
		setHeaderVisible(false);
38
 
39
		// Ce tab Panel est un peu spécial car chaque onglet ne contient rien du tout
40
		// ils ne servent qu'a être cliqués afin de déclencher une action de la part du médiateur
41
		// ceci afin de pouvoir facilement changer d'avis si jamais on prend une autre forme de navigation
42
		tbp = new TabPanel();
43
 
44
		TabItem tbAcc = new TabItem(i18nC.menuAccueil());
45
		tbAcc.setBorders(false);
46
		tbAcc.setId(MenuApplicationId.ACCUEIL);
47
		tbAcc.setHeight(0);
48
 
49
		TabItem tbIns = new TabItem(i18nC.menuStructure());
50
		tbIns.setBorders(false);
51
		tbIns.setId(MenuApplicationId.STRUCTURE);
52
		tbIns.setHeight(0);
53
 
54
		TabItem tbCol = new TabItem(i18nC.menuCollection());
55
		tbCol.setBorders(false);
56
		tbCol.setId(MenuApplicationId.COLLECTION);
57
		tbCol.setHeight(0);
58
 
59
		TabItem tbPer = new TabItem(i18nC.menuPersonne());
60
		tbPer.setBorders(false);
61
		tbPer.setId(MenuApplicationId.PERSONNE);
62
		tbPer.setHeight(0);
63
 
64
		TabItem tbPub = new TabItem(i18nC.menuPublication());
65
		tbPub.setBorders(false);
66
		tbPub.setId(MenuApplicationId.PUBLICATION);
67
		tbPub.setHeight(0);
68
 
69
		TabItem tbCom = new TabItem(i18nC.menuCommentaire());
70
		tbCom.setBorders(false);
71
		tbCom.setId(MenuApplicationId.COMMENTAIRE);
72
		tbCom.setHeight(0);
73
 
74
		tbp.add(tbAcc);
75
		tbp.add(tbIns);
76
		tbp.add(tbCol);
77
		tbp.add(tbPer);
78
		tbp.add(tbPub);
79
		tbp.add(tbCom);
80
 
81
		// Supression du conteneur vide de l'onglet (pour éviter un décalage de l'interface)
82
		tbp.addListener(Events.BeforeSelect, new Listener<TabPanelEvent>() {
83
			public void handleEvent(TabPanelEvent be) {
84
				be.getItem().getElement().removeFromParent();
85
			}
86
	    });
87
 
88
		// interception de la selection afin de prévenir le médiateur pour qu'il charge
89
		// le panneau central correspondant
90
		tbp.addListener(Events.Select, new Listener<TabPanelEvent>() {
91
			public void handleEvent(TabPanelEvent be) {
92
				mediateur.clicMenu(be.getItem().getId());
93
			}
94
	    });
95
 
96
		this.add(tbp);
97
	}
98
 
99
	public void selectionMenu(String codeMenuClique) {
100
		int nbTab = tbp.getItemCount();
101
		for(int i = 0; i < nbTab; i++) {
102
			if(tbp.getItem(i).getId().equals(codeMenuClique)) {
103
				repandreSelection = false;
104
				tbp.setSelection(tbp.getItem(i));
105
			}
106
		}
107
	}
108
}