Rework.
1 package ru.indvdum.mywork.vaadin;
3 import static ru.indvdum.mywork.MyWork.EM;
7 import javax.persistence.Query;
9 import ru.indvdum.mywork.openjpa.model.Day;
10 import ru.indvdum.mywork.openjpa.model.Task;
11 import ru.indvdum.mywork.openjpa.model.Work;
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;
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;
22 import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider;
23 import com.vaadin.ui.Alignment;
24 import com.vaadin.ui.Button;
25 import com.vaadin.ui.HorizontalLayout;
26 import com.vaadin.ui.MenuBar;
27 import com.vaadin.ui.TabSheet;
28 import com.vaadin.ui.Table;
29 import com.vaadin.ui.VerticalLayout;
30 import com.vaadin.ui.Window;
31 import com.vaadin.ui.Button.ClickEvent;
32 import com.vaadin.ui.Button.ClickListener;
33 import com.vaadin.ui.MenuBar.Command;
34 import com.vaadin.ui.MenuBar.MenuItem;
41 public class MyWorkApplication extends Application {
43 private MyWorkApplication thisObject = this;
44 private Table dayTable = null;
45 private Table taskTable = null;
46 private Table workTable = null;
48 private Command newDayCommand = new Command() {
49 public void menuSelected(MenuItem selectedItem) {
50 EditDayDialog dialog = null;
52 dialog = new EditDayDialog(thisObject, EditState.CREATE, null);
53 } catch (Exception e) {
56 getMainWindow().addWindow(dialog);
59 private Command newTaskCommand = new Command() {
60 public void menuSelected(MenuItem selectedItem) {
61 EditTaskDialog dialog = null;
63 dialog = new EditTaskDialog(thisObject, EditState.CREATE, null);
64 } catch (Exception e) {
67 getMainWindow().addWindow(dialog);
70 private Command newWorkCommand = new Command() {
71 public void menuSelected(MenuItem selectedItem) {
72 EditWorkDialog dialog = null;
74 dialog = new EditWorkDialog(thisObject, EditState.CREATE, null);
75 } catch (Exception e) {
78 getMainWindow().addWindow(dialog);
84 Window window = new Window();
85 setMainWindow(window);
87 TabSheet tabSheet = new TabSheet();
88 tabSheet.setSizeFull();
89 window.setContent(tabSheet);
91 VerticalLayout vlMain = new VerticalLayout();
93 vlMain.setMargin(true);
94 vlMain.setSpacing(true);
95 tabSheet.addTab(vlMain, "Main page", null);
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);
105 LocalEntityProvider dayProvider = new CachingLocalEntityProvider(Day.class);
106 dayProvider.setEntityManager(EM);
107 JPAContainer<Day> dayContainer = new JPAContainer(Day.class);
108 dayContainer.setEntityProvider(dayProvider);
110 dayTable = new Table();
111 dayTable.setSelectable(true);
112 dayTable.setEditable(false);
113 dayTable.setImmediate(true);
114 dayTable.setSizeFull();
115 dayTable.setContainerDataSource(dayContainer);
116 dayTable.setVisibleColumns(new String[]{
122 vlMain.addComponent(dayTable);
123 vlMain.setExpandRatio(dayTable, 1f);
125 LocalEntityProvider taskProvider = new CachingLocalEntityProvider(Task.class);
126 taskProvider.setEntityManager(EM);
127 JPAContainer<Task> taskContainer = new JPAContainer(Task.class);
128 taskContainer.setEntityProvider(taskProvider);
130 taskTable = new Table();
131 taskTable.setSelectable(true);
132 taskTable.setEditable(false);
133 taskTable.setImmediate(true);
134 taskTable.setSizeFull();
135 taskTable.setContainerDataSource(taskContainer);
136 taskTable.setVisibleColumns(new String[]{
140 taskTable.setColumnWidth("description", 300);
141 vlMain.addComponent(taskTable);
142 vlMain.setExpandRatio(taskTable, 1f);
144 LocalEntityProvider workProvider = new CachingLocalEntityProvider(Work.class);
145 workProvider.setEntityManager(EM);
146 JPAContainer<Task> workContainer = new JPAContainer(Work.class);
147 workContainer.setEntityProvider(workProvider);
149 workTable = new Table();
150 workTable.setSelectable(true);
151 workTable.setEditable(false);
152 workTable.setImmediate(true);
153 workTable.setSizeFull();
154 workTable.setContainerDataSource(workContainer);
155 workTable.setVisibleColumns(new String[]{
161 workTable.setColumnWidth("result", 200);
162 vlMain.addComponent(workTable);
163 vlMain.setExpandRatio(workTable, 1f);
166 public Table getDayTable() {
170 public Table getTaskTable() {
174 public Table getWorkTable() {