Subversion Repositories eFlore/Applications.cel

Rev

Rev 2042 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2042 Rev 2062
Line 10... Line 10...
10
import com.gwtext.client.widgets.tree.TreeNode;
10
import com.gwtext.client.widgets.tree.TreeNode;
Line 11... Line 11...
11
 
11
 
Line 12... Line 12...
12
public class MotsClesUtilitaire {
12
public class MotsClesUtilitaire {
-
 
13
	
Line 13... Line 14...
13
	
14
	//TODO rassembler tout ce qui construit les arbres de mots clés ici
14
	//TODO rassembler tout ce qui construit les arbres de mots clés ici
15
	private static String[] caracteresInterdits = {"\\", "/", ","};
15
	
16
	
Line 16... Line 17...
16
	public static String obtenirCheminParent(String cheminMotCle, String motCle) {
17
	public static String obtenirCheminParent(String cheminMotCle, String motCle) {
17
		return cheminMotCle.substring(0, cheminMotCle.length() - motCle.length() -1);
18
		return cheminMotCle.substring(0, cheminMotCle.length() - motCle.length() -1);
Line 18... Line 19...
18
	}
19
	}
19
 
20
 
20
	public static Object[] construireArbre(String NomRacine, String idRacine,
21
	public static Object[] construireArbre(String NomRacine, String idRacine,
Line 59... Line 60...
59
				// dans l'ordre hierarchique de leur niveau
60
				// dans l'ordre hierarchique de leur niveau
60
				// ce qui permet de les traiter séquentiellement)
61
				// ce qui permet de les traiter séquentiellement)
61
				TreeNode node = new TreeNode();
62
				TreeNode node = new TreeNode();
62
				node.setId(idMotCle);
63
				node.setId(idMotCle);
63
				node.setText(motCle);
64
				node.setText(motCle);
-
 
65
				if(afficherCheckbox) {
64
				node.setChecked(false);
66
					node.setChecked(false);
-
 
67
				}
65
				Node parentNode = arbreMotsCles.getNodeById(parent);
68
				Node parentNode = arbreMotsCles.getNodeById(parent);
66
				node.setUserObject(usObj);
69
				node.setUserObject(usObj);
67
				parentNode.appendChild(node);
70
				parentNode.appendChild(node);
Line 68... Line 71...
68
				
71
				
Line 72... Line 75...
72
		}
75
		}
73
		Object[] retour = {arbreMotsCles, motsCles};
76
		Object[] retour = {arbreMotsCles, motsCles};
74
		return retour;
77
		return retour;
75
	}
78
	}
Line 76... Line -...
76
 
-
 
77
	public static String construireChemin(TreeNode nd) {
-
 
78
		String chemin = "/";
-
 
79
		Node node = nd;
-
 
80
		while(node != null) {
-
 
81
			String[] usObj = (String[])node.getUserObject();
-
 
82
			chemin = usObj[0]+"/"+chemin;
-
 
83
			node = node.getParentNode();
-
 
84
		}
-
 
85
		return chemin;
-
 
86
	}
-
 
87
 
79
 
88
	/**
80
	/**
89
	 * Fonction récursive qui prend deux noeuds d'arbre en paramètre et crée un
81
	 * Fonction récursive qui prend deux noeuds d'arbre en paramètre et crée un
90
	 * copie du sous arbre du premier noeud, qu'elle concatène au deuxième
82
	 * copie du sous arbre du premier noeud, qu'elle concatène au deuxième
91
	 * 
83
	 * 
92
	 * @param ndPereOriginal
84
	 * @param ndPereOriginal
93
	 *            le père des noeuds de l'arbre original
85
	 *            le père des noeuds de l'arbre original
94
	 * @param ndPereCopie
86
	 * @param ndPereCopie
95
	 *            le père qui va recevoir les copies
87
	 *            le père qui va recevoir les copies
96
	 */
88
	 */
97
	public static void copierFilsNoeud(Node ndPereOriginal, TreeNode ndPereCopie) {
89
	public static void copierFilsNoeud(Node ndPereOriginal, TreeNode ndPereCopie, boolean afficherCheckbox) {
98
		if (ndPereCopie != null && ndPereOriginal != null) {
90
		if (ndPereCopie != null && ndPereOriginal != null) {
Line 99... Line 91...
99
			Node[] ndNodeFils = ndPereOriginal.getChildNodes();
91
			Node[] ndNodeFils = ndPereOriginal.getChildNodes();
Line 100... Line 92...
100
			
92
			
101
			for (int i = 0; i < ndNodeFils.length; i++) {
93
			for (int i = 0; i < ndNodeFils.length; i++) {
102
 
94
 
-
 
95
				String[] usObj = (String[]) ndNodeFils[i].getUserObject();
103
				String[] usObj = (String[]) ndNodeFils[i].getUserObject();
96
				TreeNode child = new TreeNode(usObj[0]);
-
 
97
				child.setId(usObj[1]);
104
				TreeNode child = new TreeNode(usObj[0]);
98
				if(afficherCheckbox) {
105
				child.setId(usObj[1]);
99
					child.setChecked(false);
Line 106... Line 100...
106
				child.setChecked(false);
100
				}
107
				child.setUserObject(usObj);
101
				child.setUserObject(usObj);
108
				ndPereCopie.appendChild(child);
102
				ndPereCopie.appendChild(child);
109
 
103
 
110
				if (!ndNodeFils[i].isLeaf()) {
104
				if (!ndNodeFils[i].isLeaf()) {
111
					copierFilsNoeud(ndNodeFils[i], child);
105
					copierFilsNoeud(ndNodeFils[i], child, afficherCheckbox);
-
 
106
				}
-
 
107
			}
-
 
108
		}
-
 
109
	}
-
 
110
	
-
 
111
	public static TreeNode ajouterNoeud(TreeNode parent, boolean afficherCheckbox) {
-
 
112
		// on crée un nouveau noeud vide
-
 
113
		TreeNode nd = new TreeNode("");
-
 
114
		nd.setCls("x-view-treenode-keyword");
-
 
115
		
-
 
116
		if(afficherCheckbox) {
-
 
117
			nd.setChecked(true);
-
 
118
		}
-
 
119
		
-
 
120
		// on associe un objet au noeud qui contient des infos
-
 
121
		String[] usObject = new String[2];
-
 
122
		// l'objet contient le nom du noeud
-
 
123
		usObject[0] = "";
-
 
124
		usObject[1] = "";
-
 
125
		nd.setUserObject(usObject);
-
 
126
		
-
 
127
		String cheminTemporaireAjout = parent.getPath()+"/"+nd.getId();
-
 
128
		nd.setId(cheminTemporaireAjout);
-
 
129
				
-
 
130
		return nd;
-
 
131
	}
-
 
132
	
-
 
133
	public static String getChaineCaracteresInterdits() {
-
 
134
		String interdits = "";
-
 
135
		for (int i = 0; i < MotsClesUtilitaire.caracteresInterdits.length; i++) {
-
 
136
			interdits += MotsClesUtilitaire.caracteresInterdits[i]+" ";
-
 
137
		}
-
 
138
		return interdits;
-
 
139
	}
-
 
140
	
-
 
141
	public static boolean estUnMotCleAutorise(String motCle) {
-
 
142
		boolean valide = !motCle.trim().isEmpty();
-
 
143
		for (int i = 0; i < MotsClesUtilitaire.caracteresInterdits.length; i++) {
-
 
144
			if(motCle.indexOf(MotsClesUtilitaire.caracteresInterdits[i]) != -1) {
-
 
145
				valide = false;
-
 
146
				break;
112
				}
147
			}