1.1 --- a/src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java Wed Aug 17 17:03:37 2011 +0300
1.2 +++ b/src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java Fri Aug 19 16:23:26 2011 +0300
1.3 @@ -11,17 +11,27 @@
1.4 import ru.indvdum.mywork.openjpa.model.Work;
1.5
1.6 import com.vaadin.Application;
1.7 +import com.vaadin.addon.jpacontainer.EntityContainer;
1.8 +import com.vaadin.addon.jpacontainer.EntityProvider;
1.9 +import com.vaadin.addon.jpacontainer.HierarchicalEntityContainer;
1.10 import com.vaadin.addon.jpacontainer.JPAContainer;
1.11 +import com.vaadin.addon.jpacontainer.provider.BatchableLocalEntityProvider;
1.12 +import com.vaadin.addon.jpacontainer.provider.CachingBatchableLocalEntityProvider;
1.13 +import com.vaadin.addon.jpacontainer.provider.CachingLocalEntityProvider;
1.14 +import com.vaadin.addon.jpacontainer.provider.CachingMutableLocalEntityProvider;
1.15 import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider;
1.16 import com.vaadin.ui.Alignment;
1.17 import com.vaadin.ui.Button;
1.18 import com.vaadin.ui.HorizontalLayout;
1.19 +import com.vaadin.ui.MenuBar;
1.20 import com.vaadin.ui.TabSheet;
1.21 import com.vaadin.ui.Table;
1.22 import com.vaadin.ui.VerticalLayout;
1.23 import com.vaadin.ui.Window;
1.24 import com.vaadin.ui.Button.ClickEvent;
1.25 import com.vaadin.ui.Button.ClickListener;
1.26 +import com.vaadin.ui.MenuBar.Command;
1.27 +import com.vaadin.ui.MenuBar.MenuItem;
1.28
1.29 /**
1.30 * @author indvdum
1.31 @@ -29,6 +39,45 @@
1.32 *
1.33 */
1.34 public class MyWorkApplication extends Application {
1.35 +
1.36 + private MyWorkApplication thisObject = this;
1.37 + private Table dayTable = null;
1.38 + private Table taskTable = null;
1.39 + private Table workTable = null;
1.40 +
1.41 + private Command newDayCommand = new Command() {
1.42 + public void menuSelected(MenuItem selectedItem) {
1.43 + EditDayDialog dialog = null;
1.44 + try {
1.45 + dialog = new EditDayDialog(thisObject, EditState.CREATE, null);
1.46 + } catch (Exception e) {
1.47 + e.printStackTrace();
1.48 + }
1.49 + getMainWindow().addWindow(dialog);
1.50 + }
1.51 + };
1.52 + private Command newTaskCommand = new Command() {
1.53 + public void menuSelected(MenuItem selectedItem) {
1.54 + EditTaskDialog dialog = null;
1.55 + try {
1.56 + dialog = new EditTaskDialog(thisObject, EditState.CREATE, null);
1.57 + } catch (Exception e) {
1.58 + e.printStackTrace();
1.59 + }
1.60 + getMainWindow().addWindow(dialog);
1.61 + }
1.62 + };
1.63 + private Command newWorkCommand = new Command() {
1.64 + public void menuSelected(MenuItem selectedItem) {
1.65 + EditWorkDialog dialog = null;
1.66 + try {
1.67 + dialog = new EditWorkDialog(thisObject, EditState.CREATE, null);
1.68 + } catch (Exception e) {
1.69 + e.printStackTrace();
1.70 + }
1.71 + getMainWindow().addWindow(dialog);
1.72 + }
1.73 + };
1.74
1.75 @Override
1.76 public void init() {
1.77 @@ -45,12 +94,20 @@
1.78 vlMain.setSpacing(true);
1.79 tabSheet.addTab(vlMain, "Main page", null);
1.80
1.81 - LocalEntityProvider dayProvider = new LocalEntityProvider(Day.class);
1.82 + MenuBar menubar = new MenuBar();
1.83 + MenuItem file = menubar.addItem("File", null);
1.84 + MenuItem newItem = file.addItem("New", null);
1.85 + newItem.addItem("Day...", newDayCommand);
1.86 + newItem.addItem("Task...", newTaskCommand);
1.87 + newItem.addItem("Work...", newWorkCommand);
1.88 + vlMain.addComponent(menubar);
1.89 +
1.90 + LocalEntityProvider dayProvider = new CachingLocalEntityProvider(Day.class);
1.91 dayProvider.setEntityManager(EM);
1.92 JPAContainer<Day> dayContainer = new JPAContainer(Day.class);
1.93 dayContainer.setEntityProvider(dayProvider);
1.94
1.95 - Table dayTable = new Table();
1.96 + dayTable = new Table();
1.97 dayTable.setSelectable(true);
1.98 dayTable.setEditable(false);
1.99 dayTable.setImmediate(true);
1.100 @@ -65,12 +122,12 @@
1.101 vlMain.addComponent(dayTable);
1.102 vlMain.setExpandRatio(dayTable, 1f);
1.103
1.104 - LocalEntityProvider taskProvider = new LocalEntityProvider(Task.class);
1.105 + LocalEntityProvider taskProvider = new CachingLocalEntityProvider(Task.class);
1.106 taskProvider.setEntityManager(EM);
1.107 JPAContainer<Task> taskContainer = new JPAContainer(Task.class);
1.108 taskContainer.setEntityProvider(taskProvider);
1.109
1.110 - Table taskTable = new Table();
1.111 + taskTable = new Table();
1.112 taskTable.setSelectable(true);
1.113 taskTable.setEditable(false);
1.114 taskTable.setImmediate(true);
1.115 @@ -84,20 +141,20 @@
1.116 vlMain.addComponent(taskTable);
1.117 vlMain.setExpandRatio(taskTable, 1f);
1.118
1.119 - LocalEntityProvider workProvider = new LocalEntityProvider(Work.class);
1.120 + LocalEntityProvider workProvider = new CachingLocalEntityProvider(Work.class);
1.121 workProvider.setEntityManager(EM);
1.122 JPAContainer<Task> workContainer = new JPAContainer(Work.class);
1.123 workContainer.setEntityProvider(workProvider);
1.124
1.125 - Table workTable = new Table();
1.126 + workTable = new Table();
1.127 workTable.setSelectable(true);
1.128 workTable.setEditable(false);
1.129 workTable.setImmediate(true);
1.130 workTable.setSizeFull();
1.131 workTable.setContainerDataSource(workContainer);
1.132 workTable.setVisibleColumns(new String[]{
1.133 - "dayName",
1.134 - "taskName",
1.135 + "day",
1.136 + "task",
1.137 "hours",
1.138 "result",
1.139 });
1.140 @@ -105,4 +162,16 @@
1.141 vlMain.addComponent(workTable);
1.142 vlMain.setExpandRatio(workTable, 1f);
1.143 }
1.144 +
1.145 + public Table getDayTable() {
1.146 + return dayTable;
1.147 + }
1.148 +
1.149 + public Table getTaskTable() {
1.150 + return taskTable;
1.151 + }
1.152 +
1.153 + public Table getWorkTable() {
1.154 + return workTable;
1.155 + }
1.156 }