1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.uruma.binding.enables;
17
18 import java.util.Set;
19
20 import org.seasar.uruma.context.WidgetHandle;
21 import org.seasar.uruma.context.WindowContext;
22 import org.seasar.uruma.core.UrumaMessageCodes;
23 import org.seasar.uruma.exception.NotFoundException;
24
25
26
27
28
29
30 public class EnablesDependingListenerSupport {
31 private EnablesDependingListenerSupport() {
32 }
33
34
35
36
37
38
39
40
41 public static void setupEnableDependingListeners(final WindowContext context) {
42 for (EnablesDependingDef def : context.getEnablesDependingDefList()) {
43 String targetId = def.getTargetId();
44 Set<WidgetHandle> handles = context.findWidgetHandles(targetId);
45 if (handles.size() > 0) {
46 for (WidgetHandle handle : handles) {
47 EnablesDependingListener listener = EnablesDependingListenerFactory
48 .getListener(handle, def.getWidgetHandle(), def
49 .getType());
50 listener.setupListener();
51 listener.updateEnableState();
52 }
53 } else {
54 throw new NotFoundException(
55 UrumaMessageCodes.ENABLES_DEPENDING_TARGET_NOT_FOUND,
56 targetId);
57 }
58 }
59 }
60 }