1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.uruma.renderer.impl;
17
18 import org.eclipse.jface.action.MenuManager;
19 import org.eclipse.swt.widgets.Menu;
20 import org.seasar.framework.util.StringUtil;
21 import org.seasar.uruma.component.UIComponent;
22 import org.seasar.uruma.component.jface.MenuComponent;
23 import org.seasar.uruma.context.PartContext;
24 import org.seasar.uruma.context.WidgetHandle;
25 import org.seasar.uruma.context.WindowContext;
26 import org.seasar.uruma.renderer.RendererSupportUtil;
27
28
29
30
31
32
33 public class MenuManagerRenderer extends AbstractRenderer {
34
35
36
37
38
39
40 @Override
41 public WidgetHandle preRender(final UIComponent uiComponent,
42 final WidgetHandle parent, final WindowContext context) {
43
44 if (parent == null) {
45 return createWidgetHandle(uiComponent, createMenuManager());
46 } else if (parent.getUiComponent() instanceof MenuComponent) {
47 MenuComponent menuComponent = (MenuComponent) uiComponent;
48
49 MenuManager menuManager = new MenuManager(menuComponent.text);
50 setVisivle(menuComponent, menuManager);
51
52 MenuManager parentManager = parent.<MenuManager> getCastWidget();
53 parentManager.add(menuManager);
54
55 WidgetHandle handle = createWidgetHandle(uiComponent, menuManager);
56
57 return handle;
58 }
59 return null;
60 }
61
62
63
64
65
66
67
68
69
70 public void renderMenu(final MenuComponent menuComponent, final Menu menu) {
71 String x = menuComponent.x;
72 String y = menuComponent.y;
73 if (!StringUtil.isEmpty(x) && !StringUtil.isEmpty(y)) {
74 menu.setLocation(Integer.valueOf(x), Integer.valueOf(y));
75 }
76 }
77
78
79
80
81
82
83 public WidgetHandle render(final UIComponent uiComponent,
84 final WidgetHandle parent, final PartContext context) {
85
86 return null;
87 }
88
89
90
91
92
93
94
95 public void renderAfter(final WidgetHandle widget,
96 final UIComponent uiComponent, final WidgetHandle parent,
97 final PartContext context) {
98
99 }
100
101 protected void setVisivle(final MenuComponent menuComponent,
102 final MenuManager menuManager) {
103 String visible = menuComponent.visible;
104 if (visible != null) {
105 menuManager.setVisible(RendererSupportUtil.convertBoolean(visible));
106 }
107 }
108
109 protected MenuManager createMenuManager() {
110 return new MenuManager();
111 }
112 }