Subversion Repositories eFlore/Applications.coel

Rev

Rev 1468 | Rev 1615 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1468 Rev 1613
Line 11... Line 11...
11
import org.tela_botanica.client.images.Images;
11
import org.tela_botanica.client.images.Images;
12
import org.tela_botanica.client.interfaces.Rafraichissable;
12
import org.tela_botanica.client.interfaces.Rafraichissable;
13
import org.tela_botanica.client.modeles.Information;
13
import org.tela_botanica.client.modeles.Information;
14
import org.tela_botanica.client.util.Debug;
14
import org.tela_botanica.client.util.Debug;
Line 15... Line -...
15
 
-
 
16
import com.extjs.gxt.ui.client.GXT;
15
 
17
import com.extjs.gxt.ui.client.event.ButtonEvent;
16
import com.extjs.gxt.ui.client.event.ButtonEvent;
18
import com.extjs.gxt.ui.client.event.SelectionListener;
17
import com.extjs.gxt.ui.client.event.SelectionListener;
19
import com.extjs.gxt.ui.client.widget.ContentPanel;
-
 
20
import com.extjs.gxt.ui.client.widget.Info;
18
import com.extjs.gxt.ui.client.widget.ContentPanel;
21
import com.extjs.gxt.ui.client.widget.LayoutContainer;
19
import com.extjs.gxt.ui.client.widget.LayoutContainer;
22
import com.extjs.gxt.ui.client.widget.button.Button;
20
import com.extjs.gxt.ui.client.widget.button.Button;
23
import com.extjs.gxt.ui.client.widget.custom.Portal;
21
import com.extjs.gxt.ui.client.widget.custom.Portal;
24
import com.extjs.gxt.ui.client.widget.custom.Portlet;
22
import com.extjs.gxt.ui.client.widget.custom.Portlet;
Line 73... Line 71...
73
		panneauPrincipal.setTopComponent(barreOutils);
71
		panneauPrincipal.setTopComponent(barreOutils);
Line 74... Line 72...
74
		
72
		
75
		portail = creerPortail();
73
		portail = creerPortail();
Line 76... Line -...
76
		panneauPrincipal.add(portail);
-
 
77
		
-
 
78
		chargerParametres();
74
		panneauPrincipal.add(portail);
79
 
75
				
80
		add(panneauPrincipal);
76
		add(panneauPrincipal);
Line 81... Line 77...
81
		mediateur.desactiverChargement(this);
77
		mediateur.desactiverChargement(this);
Line 99... Line 95...
99
		portail.getItem(2).removeAll();
95
		portail.getItem(2).removeAll();
100
	}
96
	}
Line 101... Line 97...
101
	
97
	
102
	private void chargerParametres() {	
98
	private void chargerParametres() {	
103
		viderPortail();
-
 
104
		
99
		viderPortail();
105
		Document paramXml = XMLParser.parse(mediateur.getUtilisateur().getParametre());
100
		Document paramXml = XMLParser.parse(mediateur.getUtilisateur().getParametre());
106
		NodeList listeAccueilNoeud = paramXml.getElementsByTagName("accueil");
101
		NodeList listeAccueilNoeud = paramXml.getElementsByTagName("accueil");
Line 107... Line 102...
107
		int nbreAccueilNoeud = listeAccueilNoeud.getLength();
102
		int nbreAccueilNoeud = listeAccueilNoeud.getLength();
108
 
103
 
109
		// Récupération du noeud accueil
104
		// Récupération du noeud accueil
110
		Node accueilNoeud = null;
105
		Node accueilNoeud = null;
111
		if (nbreAccueilNoeud == 0) {		
106
		if (nbreAccueilNoeud == 0) {		
112
			ajouterPortlet();
107
			ajouterPortletsDefaut();
113
		} else if (nbreAccueilNoeud == 1) {
-
 
114
			accueilNoeud = listeAccueilNoeud.item(0);
-
 
115
			
108
		} else if (nbreAccueilNoeud == 1) {
-
 
109
			accueilNoeud = listeAccueilNoeud.item(0);
-
 
110
			NodeList listeAppletteNoeud = accueilNoeud.getChildNodes();
-
 
111
			// un noeud de type vide indique que l'utilisateur a explicité effacé les applettes de la page d'accueil
116
			// Lecture des noeuds "applette"
112
			if(listeAppletteNoeud.getLength() > 0 && !listeAppletteNoeud.item(0).getNodeName().equals("vide")) {		
117
			NodeList listeAppletteNoeud = accueilNoeud.getChildNodes();
113
				// Lecture des noeuds "applette"
118
			int nbreAppletteNoeud = listeAppletteNoeud.getLength();
114
				int nbreAppletteNoeud = listeAppletteNoeud.getLength();
119
			TreeMap<String, HashMap<String, String>> tableApplettes = new TreeMap<String, HashMap<String, String>>(); 				
115
				TreeMap<String, HashMap<String, String>> tableApplettes = new TreeMap<String, HashMap<String, String>>(); 				
120
			for (int i = 0; i < nbreAppletteNoeud ; i++) {
116
				for (int i = 0; i < nbreAppletteNoeud ; i++) {
Line 138... Line 134...
138
				boolean epingle = (infoApplette.get("epingle") != null && infoApplette.get("epingle").equals("true")) ? true : false;
134
					boolean epingle = (infoApplette.get("epingle") != null && infoApplette.get("epingle").equals("true")) ? true : false;
139
				int index = Integer.parseInt(infoApplette.get("index"));
135
					int index = Integer.parseInt(infoApplette.get("index"));
140
				int colonne = Integer.parseInt(infoApplette.get("colonne"));			
136
					int colonne = Integer.parseInt(infoApplette.get("colonne"));			
141
				ajouterPortlet(reduite, epingle, infoApplette.get("type"), colonne, index, infoApplette.get("contenu"));				
137
					ajouterPortlet(reduite, epingle, infoApplette.get("type"), colonne, index, infoApplette.get("contenu"));				
142
			}
138
				}
-
 
139
			} else if(listeAppletteNoeud.getLength() == 0) {
-
 
140
				ajouterPortletsDefaut();
-
 
141
			}
143
		}
142
		}
144
		layout();		
143
		layout();		
145
	}
144
	}
Line 146... Line 145...
146
	
145
	
Line 170... Line 169...
170
			accueilNoeud = listeAccueilNoeud.item(0);
169
			accueilNoeud = listeAccueilNoeud.item(0);
171
			paramXml.getDocumentElement().replaceChild(accueilElement, accueilNoeud);
170
			paramXml.getDocumentElement().replaceChild(accueilElement, accueilNoeud);
172
			accueilNoeud = paramXml.getElementsByTagName("accueil").item(0);
171
			accueilNoeud = paramXml.getElementsByTagName("accueil").item(0);
173
		}
172
		}
Line -... Line 173...
-
 
173
		
-
 
174
		// si il existe des applettes ouvertes
174
		
175
		if(it.hasNext()) {
175
		// Ajout des noeuds "applette" au noeud "accueil"
176
			// Ajout des noeuds "applette" au noeud "accueil"
176
		while (it.hasNext()) {
177
			while (it.hasNext()) {
177
			Portlet applette = it.next();
178
				Portlet applette = it.next();
178
			String reduite = (applette.isCollapsed() ? "true" : "false");
179
				String reduite = (applette.isCollapsed() ? "true" : "false");
Line 189... Line 190...
189
			appletteElement.setAttribute("index", index);
190
				appletteElement.setAttribute("index", index);
190
			appletteElement.setAttribute("contenu", contenu);
191
				appletteElement.setAttribute("contenu", contenu);
Line 191... Line 192...
191
			
192
				
192
			accueilNoeud.appendChild(appletteElement);
193
				accueilNoeud.appendChild(appletteElement);
-
 
194
			}
-
 
195
		} else {
-
 
196
			// sinon ajout d'un noeud vide
-
 
197
			Element videElement = paramXml.createElement("vide");
-
 
198
			accueilNoeud.appendChild(videElement);
Line 193... Line 199...
193
		}
199
		}
194
		
200
		
195
		enregistrementEnCours = true;
201
		enregistrementEnCours = true;
196
		mediateur.getUtilisateur().setParametre(paramXml.toString());
202
		mediateur.getUtilisateur().setParametre(paramXml.toString());
Line 225... Line 231...
225
		portail.insert(applette, index, colonne);		
231
		portail.insert(applette, index, colonne);		
226
		applette.setEpingler(epingle);	
232
		applette.setEpingler(epingle);	
227
		layout();
233
		layout();
228
	}
234
	}
Line -... Line 235...
-
 
235
	
-
 
236
	private void ajouterPortletsDefaut() {
-
 
237
		//TODO créer une énum des différents types de portlet puis faire une boucle
-
 
238
		// dessus
-
 
239
		Applette applette = new AppletteStatistique(mediateur, "NombreDonnees");
-
 
240
		portail.insert(applette, 0, 0);		
-
 
241
		applette.setEpingler(true);	
-
 
242
		
-
 
243
		applette = new AppletteStatistique(mediateur, "MesDonnees");
-
 
244
		portail.insert(applette, 0, 1);	
-
 
245
		
-
 
246
		applette = new AppletteStatistique(mediateur, "TypeDepot");
-
 
247
		portail.insert(applette, 0, 2);	
-
 
248
		
-
 
249
		applette = new AppletteStatistique(mediateur, "NombreCollectionParStructure");
-
 
250
		portail.insert(applette, 1, 0);	
-
 
251
		layout();
-
 
252
	}
229
	
253
	
230
	public void rafraichir(Object nouvellesDonnees) {	
254
	public void rafraichir(Object nouvellesDonnees) {	
231
		if (nouvellesDonnees instanceof Information) {
255
		if (nouvellesDonnees instanceof Information) {
232
			Information info = (Information) nouvellesDonnees;
256
			Information info = (Information) nouvellesDonnees;
233
			String type = info.getType(); 
257
			String type = info.getType();