1 package net.sourceforge.blogentis.modules.fragments;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import java.util.Stack;
26
27 import net.sourceforge.blogentis.storage.VelocityFragment;
28
29 import org.apache.turbine.services.velocity.TurbineVelocity;
30 import org.apache.turbine.util.RunData;
31 import org.apache.velocity.context.Context;
32
33 public class BlogFileList
34 extends VelocityFragment {
35 protected Stack getStack(Context context) {
36 Stack s = (Stack)context.get("BlogFileList.stack");
37 if (s == null) {
38 s = new Stack();
39 context.put("BlogFileList.stack", s);
40 }
41 return s;
42 }
43
44 public String build(RunData data)
45 throws Exception {
46 try {
47 return super.build(data);
48 } finally {
49 Context context = TurbineVelocity.getContext(data);
50 Stack s = getStack(context);
51 context.put("folder", s.pop());
52 }
53 }
54
55 public VelocityFragment invoke(Context context, Object param) {
56 Stack s = getStack(context);
57 s.push(context.get("folder"));
58 context.put("folder", param);
59 return this;
60 }
61 }