14
14
import com .silverpeas .tags .kmelia .KmeliaTagUtil ;
15
15
import com .silverpeas .tags .navigation .config .Configurateur ;
16
16
import com .silverpeas .tags .navigation .links .LinkGeneratorFactory ;
17
+ import com .silverpeas .tags .pdc .PdcTagUtil ;
18
+ import com .stratelia .silverpeas .pdc .model .Value ;
17
19
import com .stratelia .webactiv .util .node .model .NodeDetail ;
18
20
import com .stratelia .webactiv .util .publication .model .PublicationDetail ;
19
21
@@ -26,10 +28,14 @@ public class PageListeTag extends TagSupport {
26
28
private static final long serialVersionUID = 7316128024807549206L ;
27
29
private static final String TOPIC_ID_PREFIX = "topicId-" ;
28
30
29
- private KmeliaTagUtil themetracker = null ;
31
+ private KmeliaTagUtil themetracker = null ;
32
+ private PdcTagUtil pdc = new PdcTagUtil (null , null , 0 , null );
30
33
private String idTopicRoot ;
31
34
private String currentNumber ;
35
+ private String idAxisFiltering = null ;
36
+ private String axisValueFilter = null ;
32
37
private String id ;
38
+ private String classNamesFiltered ;
33
39
34
40
35
41
/**
@@ -40,6 +46,30 @@ public void setIdTopicRoot(String idTopicRoot) {
40
46
this .idTopicRoot = idTopicRoot ;
41
47
}
42
48
49
+ /**
50
+ * Classes appliquées si la publication est positionnée sur idAxisFiltering avec la valeurs "axisValueFilter".
51
+ * @param classNamesFiltered
52
+ */
53
+ public void setClassNamesFiltered (String classNamesFiltered ) {
54
+ this .classNamesFiltered = classNamesFiltered ;
55
+ }
56
+
57
+ /**
58
+ * Id de l'axe qui va servir pour filtrer l'arborescence.
59
+ * @param idAxisFiltering
60
+ */
61
+ public void setIdAxisFiltering (String idAxisFiltering ) {
62
+ this .idAxisFiltering = idAxisFiltering ;
63
+ }
64
+
65
+ /**
66
+ * Valeur du filtre de l'arborescence.
67
+ * @param axisValueFilter
68
+ */
69
+ public void setAxisValueFilter (String axisValueFilter ) {
70
+ this .axisValueFilter = axisValueFilter ;
71
+ }
72
+
43
73
/**
44
74
* Id de l'élément HTML contenant le menu (UL).
45
75
*/
@@ -110,10 +140,12 @@ private void browse(JspWriter out, NodeDetail rootTopic) {
110
140
PublicationDetail pub = (PublicationDetail ) iPubs .next ();
111
141
html .setLength (0 );
112
142
html .append ("<li id='" );
113
- html .append (buildId (TOPIC_ID_PREFIX , rootTopic , number ) + "'" );
114
- if (Integer .parseInt (currentNumber )==number ) {
115
- html .append ("' class='item-selected'" );
116
- }
143
+ html .append (buildId (TOPIC_ID_PREFIX , rootTopic , number ));
144
+
145
+ html .append ("' class='" );
146
+ html .append (getClassNameByPublication (pub , number ));
147
+ html .append ("'" );
148
+
117
149
html .append (">" );
118
150
html .append ("<a href='" );
119
151
html .append (generateFullSemanticPath (rootTopic , pub , number ));
@@ -131,6 +163,34 @@ private void browse(JspWriter out, NodeDetail rootTopic) {
131
163
}
132
164
}
133
165
166
+ /**
167
+ * Retourne le nom de la classe css à appliquer pour lien donné.
168
+ * @param pub
169
+ * @return
170
+ * @throws Exception
171
+ */
172
+ private String getClassNameByPublication (PublicationDetail pub , int number ) throws Exception {
173
+ StringBuffer className = new StringBuffer ("" );
174
+ if (Integer .parseInt (currentNumber )==number ) {
175
+ className .append ("item-selected" );
176
+ }
177
+
178
+ if (idAxisFiltering != null && axisValueFilter != null && !idAxisFiltering .isEmpty () && !axisValueFilter .isEmpty ()) {
179
+ @ SuppressWarnings ("unchecked" )
180
+ Collection <Value > values = pdc .getValuesOnAxis (pub .getId ()+"," +themetracker .getComponentInst ().getId ()+"," +idAxisFiltering );
181
+ Iterator <Value > iValues = values .iterator ();
182
+ while (iValues .hasNext ()) {
183
+ Value v = (Value ) iValues .next ();
184
+ if (v .getName ().equals (axisValueFilter ) && classNamesFiltered != null ) {
185
+ className .append (" " );
186
+ className .append (classNamesFiltered );
187
+ break ;
188
+ }
189
+ }
190
+ }
191
+ return className .toString ().trim ();
192
+ }
193
+
134
194
/**
135
195
* Print html.
136
196
* @param out
0 commit comments