indvdum@1
|
1 |
package ru.indvdum.mywork.vaadin;
|
indvdum@1
|
2 |
|
indvdum@5
|
3 |
import static ru.indvdum.mywork.MyWork.EM;
|
indvdum@5
|
4 |
|
indvdum@5
|
5 |
import java.util.List;
|
indvdum@5
|
6 |
|
indvdum@5
|
7 |
import javax.persistence.Query;
|
indvdum@5
|
8 |
|
indvdum@5
|
9 |
import ru.indvdum.mywork.openjpa.model.Day;
|
indvdum@7
|
10 |
import ru.indvdum.mywork.openjpa.model.Task;
|
indvdum@7
|
11 |
import ru.indvdum.mywork.openjpa.model.Work;
|
indvdum@2
|
12 |
|
indvdum@1
|
13 |
import com.vaadin.Application;
|
indvdum@9
|
14 |
import com.vaadin.addon.jpacontainer.EntityContainer;
|
indvdum@9
|
15 |
import com.vaadin.addon.jpacontainer.EntityProvider;
|
indvdum@9
|
16 |
import com.vaadin.addon.jpacontainer.HierarchicalEntityContainer;
|
indvdum@6
|
17 |
import com.vaadin.addon.jpacontainer.JPAContainer;
|
indvdum@9
|
18 |
import com.vaadin.addon.jpacontainer.provider.BatchableLocalEntityProvider;
|
indvdum@9
|
19 |
import com.vaadin.addon.jpacontainer.provider.CachingBatchableLocalEntityProvider;
|
indvdum@9
|
20 |
import com.vaadin.addon.jpacontainer.provider.CachingLocalEntityProvider;
|
indvdum@9
|
21 |
import com.vaadin.addon.jpacontainer.provider.CachingMutableLocalEntityProvider;
|
indvdum@6
|
22 |
import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider;
|
indvdum@7
|
23 |
import com.vaadin.ui.Alignment;
|
indvdum@7
|
24 |
import com.vaadin.ui.Button;
|
indvdum@7
|
25 |
import com.vaadin.ui.HorizontalLayout;
|
indvdum@9
|
26 |
import com.vaadin.ui.MenuBar;
|
indvdum@7
|
27 |
import com.vaadin.ui.TabSheet;
|
indvdum@6
|
28 |
import com.vaadin.ui.Table;
|
indvdum@6
|
29 |
import com.vaadin.ui.VerticalLayout;
|
indvdum@1
|
30 |
import com.vaadin.ui.Window;
|
indvdum@7
|
31 |
import com.vaadin.ui.Button.ClickEvent;
|
indvdum@7
|
32 |
import com.vaadin.ui.Button.ClickListener;
|
indvdum@9
|
33 |
import com.vaadin.ui.MenuBar.Command;
|
indvdum@9
|
34 |
import com.vaadin.ui.MenuBar.MenuItem;
|
indvdum@1
|
35 |
|
indvdum@1
|
36 |
/**
|
indvdum@1
|
37 |
* @author indvdum
|
indvdum@5
|
38 |
* 12.08.2011 17:31:53
|
indvdum@1
|
39 |
*
|
indvdum@1
|
40 |
*/
|
indvdum@1
|
41 |
public class MyWorkApplication extends Application {
|
indvdum@9
|
42 |
|
indvdum@9
|
43 |
private MyWorkApplication thisObject = this;
|
indvdum@9
|
44 |
private Table dayTable = null;
|
indvdum@9
|
45 |
private Table taskTable = null;
|
indvdum@9
|
46 |
private Table workTable = null;
|
indvdum@9
|
47 |
|
indvdum@9
|
48 |
private Command newDayCommand = new Command() {
|
indvdum@9
|
49 |
public void menuSelected(MenuItem selectedItem) {
|
indvdum@9
|
50 |
EditDayDialog dialog = null;
|
indvdum@9
|
51 |
try {
|
indvdum@12
|
52 |
dialog = new EditDayDialog(thisObject, null);
|
indvdum@9
|
53 |
} catch (Exception e) {
|
indvdum@9
|
54 |
e.printStackTrace();
|
indvdum@9
|
55 |
}
|
indvdum@9
|
56 |
getMainWindow().addWindow(dialog);
|
indvdum@9
|
57 |
}
|
indvdum@9
|
58 |
};
|
indvdum@9
|
59 |
private Command newTaskCommand = new Command() {
|
indvdum@9
|
60 |
public void menuSelected(MenuItem selectedItem) {
|
indvdum@9
|
61 |
EditTaskDialog dialog = null;
|
indvdum@9
|
62 |
try {
|
indvdum@12
|
63 |
dialog = new EditTaskDialog(thisObject, null);
|
indvdum@9
|
64 |
} catch (Exception e) {
|
indvdum@9
|
65 |
e.printStackTrace();
|
indvdum@9
|
66 |
}
|
indvdum@9
|
67 |
getMainWindow().addWindow(dialog);
|
indvdum@9
|
68 |
}
|
indvdum@9
|
69 |
};
|
indvdum@9
|
70 |
private Command newWorkCommand = new Command() {
|
indvdum@9
|
71 |
public void menuSelected(MenuItem selectedItem) {
|
indvdum@9
|
72 |
EditWorkDialog dialog = null;
|
indvdum@9
|
73 |
try {
|
indvdum@12
|
74 |
dialog = new EditWorkDialog(thisObject, null);
|
indvdum@12
|
75 |
} catch (Exception e) {
|
indvdum@12
|
76 |
e.printStackTrace();
|
indvdum@12
|
77 |
}
|
indvdum@12
|
78 |
getMainWindow().addWindow(dialog);
|
indvdum@12
|
79 |
}
|
indvdum@12
|
80 |
};
|
indvdum@12
|
81 |
private Command editDayCommand = new Command() {
|
indvdum@12
|
82 |
public void menuSelected(MenuItem selectedItem) {
|
indvdum@12
|
83 |
EditDayDialog dialog = null;
|
indvdum@12
|
84 |
Day day = EM.find(Day.class, dayTable.getValue());
|
indvdum@12
|
85 |
if(day == null)
|
indvdum@12
|
86 |
return;
|
indvdum@12
|
87 |
try {
|
indvdum@12
|
88 |
dialog = new EditDayDialog(thisObject, day);
|
indvdum@12
|
89 |
} catch (Exception e) {
|
indvdum@12
|
90 |
e.printStackTrace();
|
indvdum@12
|
91 |
}
|
indvdum@12
|
92 |
getMainWindow().addWindow(dialog);
|
indvdum@12
|
93 |
}
|
indvdum@12
|
94 |
};
|
indvdum@12
|
95 |
private Command editTaskCommand = new Command() {
|
indvdum@12
|
96 |
public void menuSelected(MenuItem selectedItem) {
|
indvdum@12
|
97 |
EditTaskDialog dialog = null;
|
indvdum@12
|
98 |
Task task = EM.find(Task.class, taskTable.getValue());
|
indvdum@12
|
99 |
if(task == null)
|
indvdum@12
|
100 |
return;
|
indvdum@12
|
101 |
try {
|
indvdum@12
|
102 |
dialog = new EditTaskDialog(thisObject, task);
|
indvdum@12
|
103 |
} catch (Exception e) {
|
indvdum@12
|
104 |
e.printStackTrace();
|
indvdum@12
|
105 |
}
|
indvdum@12
|
106 |
getMainWindow().addWindow(dialog);
|
indvdum@12
|
107 |
}
|
indvdum@12
|
108 |
};
|
indvdum@12
|
109 |
private Command editWorkCommand = new Command() {
|
indvdum@12
|
110 |
public void menuSelected(MenuItem selectedItem) {
|
indvdum@12
|
111 |
EditWorkDialog dialog = null;
|
indvdum@12
|
112 |
Work work = EM.find(Work.class, workTable.getValue());
|
indvdum@12
|
113 |
if(work == null)
|
indvdum@12
|
114 |
return;
|
indvdum@12
|
115 |
try {
|
indvdum@12
|
116 |
dialog = new EditWorkDialog(thisObject, work);
|
indvdum@9
|
117 |
} catch (Exception e) {
|
indvdum@9
|
118 |
e.printStackTrace();
|
indvdum@9
|
119 |
}
|
indvdum@9
|
120 |
getMainWindow().addWindow(dialog);
|
indvdum@9
|
121 |
}
|
indvdum@9
|
122 |
};
|
indvdum@1
|
123 |
|
indvdum@1
|
124 |
@Override
|
indvdum@1
|
125 |
public void init() {
|
indvdum@1
|
126 |
Window window = new Window();
|
indvdum@1
|
127 |
setMainWindow(window);
|
indvdum@6
|
128 |
|
indvdum@7
|
129 |
TabSheet tabSheet = new TabSheet();
|
indvdum@7
|
130 |
tabSheet.setSizeFull();
|
indvdum@7
|
131 |
window.setContent(tabSheet);
|
indvdum@7
|
132 |
|
indvdum@7
|
133 |
VerticalLayout vlMain = new VerticalLayout();
|
indvdum@8
|
134 |
vlMain.setSizeFull();
|
indvdum@7
|
135 |
vlMain.setMargin(true);
|
indvdum@7
|
136 |
vlMain.setSpacing(true);
|
indvdum@7
|
137 |
tabSheet.addTab(vlMain, "Main page", null);
|
indvdum@7
|
138 |
|
indvdum@12
|
139 |
MenuBar menuBar = new MenuBar();
|
indvdum@12
|
140 |
MenuItem file = menuBar.addItem("File", null);
|
indvdum@9
|
141 |
MenuItem newItem = file.addItem("New", null);
|
indvdum@9
|
142 |
newItem.addItem("Day...", newDayCommand);
|
indvdum@9
|
143 |
newItem.addItem("Task...", newTaskCommand);
|
indvdum@9
|
144 |
newItem.addItem("Work...", newWorkCommand);
|
indvdum@12
|
145 |
MenuItem edit = menuBar.addItem("Edit", null);
|
indvdum@12
|
146 |
edit.addItem("Day...", editDayCommand);
|
indvdum@12
|
147 |
edit.addItem("Task...", editTaskCommand);
|
indvdum@12
|
148 |
edit.addItem("Work...", editWorkCommand);
|
indvdum@12
|
149 |
vlMain.addComponent(menuBar);
|
indvdum@9
|
150 |
|
indvdum@9
|
151 |
LocalEntityProvider dayProvider = new CachingLocalEntityProvider(Day.class);
|
indvdum@7
|
152 |
dayProvider.setEntityManager(EM);
|
indvdum@7
|
153 |
JPAContainer<Day> dayContainer = new JPAContainer(Day.class);
|
indvdum@7
|
154 |
dayContainer.setEntityProvider(dayProvider);
|
indvdum@7
|
155 |
|
indvdum@9
|
156 |
dayTable = new Table();
|
indvdum@7
|
157 |
dayTable.setSelectable(true);
|
indvdum@7
|
158 |
dayTable.setEditable(false);
|
indvdum@7
|
159 |
dayTable.setImmediate(true);
|
indvdum@7
|
160 |
dayTable.setSizeFull();
|
indvdum@7
|
161 |
dayTable.setContainerDataSource(dayContainer);
|
indvdum@8
|
162 |
dayTable.setVisibleColumns(new String[]{
|
indvdum@12
|
163 |
"formattedDay",
|
indvdum@12
|
164 |
"startWork",
|
indvdum@12
|
165 |
"endWork",
|
indvdum@12
|
166 |
"hours",
|
indvdum@12
|
167 |
});
|
indvdum@12
|
168 |
dayTable.setSortContainerPropertyId("day");
|
indvdum@12
|
169 |
dayTable.setColumnHeaders(new String[]{
|
indvdum@8
|
170 |
"day",
|
indvdum@8
|
171 |
"startWork",
|
indvdum@8
|
172 |
"endWork",
|
indvdum@8
|
173 |
"hours",
|
indvdum@8
|
174 |
});
|
indvdum@7
|
175 |
vlMain.addComponent(dayTable);
|
indvdum@7
|
176 |
vlMain.setExpandRatio(dayTable, 1f);
|
indvdum@7
|
177 |
|
indvdum@9
|
178 |
LocalEntityProvider taskProvider = new CachingLocalEntityProvider(Task.class);
|
indvdum@7
|
179 |
taskProvider.setEntityManager(EM);
|
indvdum@7
|
180 |
JPAContainer<Task> taskContainer = new JPAContainer(Task.class);
|
indvdum@7
|
181 |
taskContainer.setEntityProvider(taskProvider);
|
indvdum@7
|
182 |
|
indvdum@9
|
183 |
taskTable = new Table();
|
indvdum@7
|
184 |
taskTable.setSelectable(true);
|
indvdum@7
|
185 |
taskTable.setEditable(false);
|
indvdum@7
|
186 |
taskTable.setImmediate(true);
|
indvdum@7
|
187 |
taskTable.setSizeFull();
|
indvdum@7
|
188 |
taskTable.setContainerDataSource(taskContainer);
|
indvdum@8
|
189 |
taskTable.setVisibleColumns(new String[]{
|
indvdum@8
|
190 |
"name",
|
indvdum@8
|
191 |
"description",
|
indvdum@8
|
192 |
});
|
indvdum@8
|
193 |
taskTable.setColumnWidth("description", 300);
|
indvdum@7
|
194 |
vlMain.addComponent(taskTable);
|
indvdum@7
|
195 |
vlMain.setExpandRatio(taskTable, 1f);
|
indvdum@8
|
196 |
|
indvdum@9
|
197 |
LocalEntityProvider workProvider = new CachingLocalEntityProvider(Work.class);
|
indvdum@8
|
198 |
workProvider.setEntityManager(EM);
|
indvdum@8
|
199 |
JPAContainer<Task> workContainer = new JPAContainer(Work.class);
|
indvdum@8
|
200 |
workContainer.setEntityProvider(workProvider);
|
indvdum@8
|
201 |
|
indvdum@9
|
202 |
workTable = new Table();
|
indvdum@12
|
203 |
workTable.setSelectable(false);
|
indvdum@8
|
204 |
workTable.setEditable(false);
|
indvdum@8
|
205 |
workTable.setImmediate(true);
|
indvdum@8
|
206 |
workTable.setSizeFull();
|
indvdum@8
|
207 |
workTable.setContainerDataSource(workContainer);
|
indvdum@8
|
208 |
workTable.setVisibleColumns(new String[]{
|
indvdum@9
|
209 |
"day",
|
indvdum@9
|
210 |
"task",
|
indvdum@8
|
211 |
"hours",
|
indvdum@8
|
212 |
"result",
|
indvdum@8
|
213 |
});
|
indvdum@8
|
214 |
workTable.setColumnWidth("result", 200);
|
indvdum@12
|
215 |
workTable.setSortContainerPropertyId("day");
|
indvdum@8
|
216 |
vlMain.addComponent(workTable);
|
indvdum@8
|
217 |
vlMain.setExpandRatio(workTable, 1f);
|
indvdum@1
|
218 |
}
|
indvdum@9
|
219 |
|
indvdum@9
|
220 |
public Table getDayTable() {
|
indvdum@9
|
221 |
return dayTable;
|
indvdum@9
|
222 |
}
|
indvdum@9
|
223 |
|
indvdum@9
|
224 |
public Table getTaskTable() {
|
indvdum@9
|
225 |
return taskTable;
|
indvdum@9
|
226 |
}
|
indvdum@9
|
227 |
|
indvdum@9
|
228 |
public Table getWorkTable() {
|
indvdum@9
|
229 |
return workTable;
|
indvdum@9
|
230 |
}
|
indvdum@1
|
231 |
}
|