9 import ru.indvdum.mywork.openjpa.model.Day; |
9 import ru.indvdum.mywork.openjpa.model.Day; |
10 import ru.indvdum.mywork.openjpa.model.Task; |
10 import ru.indvdum.mywork.openjpa.model.Task; |
11 import ru.indvdum.mywork.openjpa.model.Work; |
11 import ru.indvdum.mywork.openjpa.model.Work; |
12 |
12 |
13 import com.vaadin.Application; |
13 import com.vaadin.Application; |
|
14 import com.vaadin.addon.jpacontainer.EntityContainer; |
|
15 import com.vaadin.addon.jpacontainer.EntityProvider; |
|
16 import com.vaadin.addon.jpacontainer.HierarchicalEntityContainer; |
14 import com.vaadin.addon.jpacontainer.JPAContainer; |
17 import com.vaadin.addon.jpacontainer.JPAContainer; |
|
18 import com.vaadin.addon.jpacontainer.provider.BatchableLocalEntityProvider; |
|
19 import com.vaadin.addon.jpacontainer.provider.CachingBatchableLocalEntityProvider; |
|
20 import com.vaadin.addon.jpacontainer.provider.CachingLocalEntityProvider; |
|
21 import com.vaadin.addon.jpacontainer.provider.CachingMutableLocalEntityProvider; |
15 import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider; |
22 import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider; |
16 import com.vaadin.ui.Alignment; |
23 import com.vaadin.ui.Alignment; |
17 import com.vaadin.ui.Button; |
24 import com.vaadin.ui.Button; |
18 import com.vaadin.ui.HorizontalLayout; |
25 import com.vaadin.ui.HorizontalLayout; |
|
26 import com.vaadin.ui.MenuBar; |
19 import com.vaadin.ui.TabSheet; |
27 import com.vaadin.ui.TabSheet; |
20 import com.vaadin.ui.Table; |
28 import com.vaadin.ui.Table; |
21 import com.vaadin.ui.VerticalLayout; |
29 import com.vaadin.ui.VerticalLayout; |
22 import com.vaadin.ui.Window; |
30 import com.vaadin.ui.Window; |
23 import com.vaadin.ui.Button.ClickEvent; |
31 import com.vaadin.ui.Button.ClickEvent; |
24 import com.vaadin.ui.Button.ClickListener; |
32 import com.vaadin.ui.Button.ClickListener; |
|
33 import com.vaadin.ui.MenuBar.Command; |
|
34 import com.vaadin.ui.MenuBar.MenuItem; |
25 |
35 |
26 /** |
36 /** |
27 * @author indvdum |
37 * @author indvdum |
28 * 12.08.2011 17:31:53 |
38 * 12.08.2011 17:31:53 |
29 * |
39 * |
30 */ |
40 */ |
31 public class MyWorkApplication extends Application { |
41 public class MyWorkApplication extends Application { |
|
42 |
|
43 private MyWorkApplication thisObject = this; |
|
44 private Table dayTable = null; |
|
45 private Table taskTable = null; |
|
46 private Table workTable = null; |
|
47 |
|
48 private Command newDayCommand = new Command() { |
|
49 public void menuSelected(MenuItem selectedItem) { |
|
50 EditDayDialog dialog = null; |
|
51 try { |
|
52 dialog = new EditDayDialog(thisObject, EditState.CREATE, null); |
|
53 } catch (Exception e) { |
|
54 e.printStackTrace(); |
|
55 } |
|
56 getMainWindow().addWindow(dialog); |
|
57 } |
|
58 }; |
|
59 private Command newTaskCommand = new Command() { |
|
60 public void menuSelected(MenuItem selectedItem) { |
|
61 EditTaskDialog dialog = null; |
|
62 try { |
|
63 dialog = new EditTaskDialog(thisObject, EditState.CREATE, null); |
|
64 } catch (Exception e) { |
|
65 e.printStackTrace(); |
|
66 } |
|
67 getMainWindow().addWindow(dialog); |
|
68 } |
|
69 }; |
|
70 private Command newWorkCommand = new Command() { |
|
71 public void menuSelected(MenuItem selectedItem) { |
|
72 EditWorkDialog dialog = null; |
|
73 try { |
|
74 dialog = new EditWorkDialog(thisObject, EditState.CREATE, null); |
|
75 } catch (Exception e) { |
|
76 e.printStackTrace(); |
|
77 } |
|
78 getMainWindow().addWindow(dialog); |
|
79 } |
|
80 }; |
32 |
81 |
33 @Override |
82 @Override |
34 public void init() { |
83 public void init() { |
35 Window window = new Window(); |
84 Window window = new Window(); |
36 setMainWindow(window); |
85 setMainWindow(window); |
43 vlMain.setSizeFull(); |
92 vlMain.setSizeFull(); |
44 vlMain.setMargin(true); |
93 vlMain.setMargin(true); |
45 vlMain.setSpacing(true); |
94 vlMain.setSpacing(true); |
46 tabSheet.addTab(vlMain, "Main page", null); |
95 tabSheet.addTab(vlMain, "Main page", null); |
47 |
96 |
48 LocalEntityProvider dayProvider = new LocalEntityProvider(Day.class); |
97 MenuBar menubar = new MenuBar(); |
|
98 MenuItem file = menubar.addItem("File", null); |
|
99 MenuItem newItem = file.addItem("New", null); |
|
100 newItem.addItem("Day...", newDayCommand); |
|
101 newItem.addItem("Task...", newTaskCommand); |
|
102 newItem.addItem("Work...", newWorkCommand); |
|
103 vlMain.addComponent(menubar); |
|
104 |
|
105 LocalEntityProvider dayProvider = new CachingLocalEntityProvider(Day.class); |
49 dayProvider.setEntityManager(EM); |
106 dayProvider.setEntityManager(EM); |
50 JPAContainer<Day> dayContainer = new JPAContainer(Day.class); |
107 JPAContainer<Day> dayContainer = new JPAContainer(Day.class); |
51 dayContainer.setEntityProvider(dayProvider); |
108 dayContainer.setEntityProvider(dayProvider); |
52 |
109 |
53 Table dayTable = new Table(); |
110 dayTable = new Table(); |
54 dayTable.setSelectable(true); |
111 dayTable.setSelectable(true); |
55 dayTable.setEditable(false); |
112 dayTable.setEditable(false); |
56 dayTable.setImmediate(true); |
113 dayTable.setImmediate(true); |
57 dayTable.setSizeFull(); |
114 dayTable.setSizeFull(); |
58 dayTable.setContainerDataSource(dayContainer); |
115 dayTable.setContainerDataSource(dayContainer); |
63 "hours", |
120 "hours", |
64 }); |
121 }); |
65 vlMain.addComponent(dayTable); |
122 vlMain.addComponent(dayTable); |
66 vlMain.setExpandRatio(dayTable, 1f); |
123 vlMain.setExpandRatio(dayTable, 1f); |
67 |
124 |
68 LocalEntityProvider taskProvider = new LocalEntityProvider(Task.class); |
125 LocalEntityProvider taskProvider = new CachingLocalEntityProvider(Task.class); |
69 taskProvider.setEntityManager(EM); |
126 taskProvider.setEntityManager(EM); |
70 JPAContainer<Task> taskContainer = new JPAContainer(Task.class); |
127 JPAContainer<Task> taskContainer = new JPAContainer(Task.class); |
71 taskContainer.setEntityProvider(taskProvider); |
128 taskContainer.setEntityProvider(taskProvider); |
72 |
129 |
73 Table taskTable = new Table(); |
130 taskTable = new Table(); |
74 taskTable.setSelectable(true); |
131 taskTable.setSelectable(true); |
75 taskTable.setEditable(false); |
132 taskTable.setEditable(false); |
76 taskTable.setImmediate(true); |
133 taskTable.setImmediate(true); |
77 taskTable.setSizeFull(); |
134 taskTable.setSizeFull(); |
78 taskTable.setContainerDataSource(taskContainer); |
135 taskTable.setContainerDataSource(taskContainer); |
82 }); |
139 }); |
83 taskTable.setColumnWidth("description", 300); |
140 taskTable.setColumnWidth("description", 300); |
84 vlMain.addComponent(taskTable); |
141 vlMain.addComponent(taskTable); |
85 vlMain.setExpandRatio(taskTable, 1f); |
142 vlMain.setExpandRatio(taskTable, 1f); |
86 |
143 |
87 LocalEntityProvider workProvider = new LocalEntityProvider(Work.class); |
144 LocalEntityProvider workProvider = new CachingLocalEntityProvider(Work.class); |
88 workProvider.setEntityManager(EM); |
145 workProvider.setEntityManager(EM); |
89 JPAContainer<Task> workContainer = new JPAContainer(Work.class); |
146 JPAContainer<Task> workContainer = new JPAContainer(Work.class); |
90 workContainer.setEntityProvider(workProvider); |
147 workContainer.setEntityProvider(workProvider); |
91 |
148 |
92 Table workTable = new Table(); |
149 workTable = new Table(); |
93 workTable.setSelectable(true); |
150 workTable.setSelectable(true); |
94 workTable.setEditable(false); |
151 workTable.setEditable(false); |
95 workTable.setImmediate(true); |
152 workTable.setImmediate(true); |
96 workTable.setSizeFull(); |
153 workTable.setSizeFull(); |
97 workTable.setContainerDataSource(workContainer); |
154 workTable.setContainerDataSource(workContainer); |
98 workTable.setVisibleColumns(new String[]{ |
155 workTable.setVisibleColumns(new String[]{ |
99 "dayName", |
156 "day", |
100 "taskName", |
157 "task", |
101 "hours", |
158 "hours", |
102 "result", |
159 "result", |
103 }); |
160 }); |
104 workTable.setColumnWidth("result", 200); |
161 workTable.setColumnWidth("result", 200); |
105 vlMain.addComponent(workTable); |
162 vlMain.addComponent(workTable); |
106 vlMain.setExpandRatio(workTable, 1f); |
163 vlMain.setExpandRatio(workTable, 1f); |
107 } |
164 } |
|
165 |
|
166 public Table getDayTable() { |
|
167 return dayTable; |
|
168 } |
|
169 |
|
170 public Table getTaskTable() { |
|
171 return taskTable; |
|
172 } |
|
173 |
|
174 public Table getWorkTable() { |
|
175 return workTable; |
|
176 } |
108 } |
177 } |