1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/mywork-web/src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java Wed Nov 23 17:52:25 2011 +0300
1.3 @@ -0,0 +1,231 @@
1.4 +package ru.indvdum.mywork.vaadin;
1.5 +
1.6 +import static ru.indvdum.mywork.MyWork.EM;
1.7 +
1.8 +import java.util.List;
1.9 +
1.10 +import javax.persistence.Query;
1.11 +
1.12 +import ru.indvdum.mywork.openjpa.model.Day;
1.13 +import ru.indvdum.mywork.openjpa.model.Task;
1.14 +import ru.indvdum.mywork.openjpa.model.Work;
1.15 +
1.16 +import com.vaadin.Application;
1.17 +import com.vaadin.addon.jpacontainer.EntityContainer;
1.18 +import com.vaadin.addon.jpacontainer.EntityProvider;
1.19 +import com.vaadin.addon.jpacontainer.HierarchicalEntityContainer;
1.20 +import com.vaadin.addon.jpacontainer.JPAContainer;
1.21 +import com.vaadin.addon.jpacontainer.provider.BatchableLocalEntityProvider;
1.22 +import com.vaadin.addon.jpacontainer.provider.CachingBatchableLocalEntityProvider;
1.23 +import com.vaadin.addon.jpacontainer.provider.CachingLocalEntityProvider;
1.24 +import com.vaadin.addon.jpacontainer.provider.CachingMutableLocalEntityProvider;
1.25 +import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider;
1.26 +import com.vaadin.ui.Alignment;
1.27 +import com.vaadin.ui.Button;
1.28 +import com.vaadin.ui.HorizontalLayout;
1.29 +import com.vaadin.ui.MenuBar;
1.30 +import com.vaadin.ui.TabSheet;
1.31 +import com.vaadin.ui.Table;
1.32 +import com.vaadin.ui.VerticalLayout;
1.33 +import com.vaadin.ui.Window;
1.34 +import com.vaadin.ui.Button.ClickEvent;
1.35 +import com.vaadin.ui.Button.ClickListener;
1.36 +import com.vaadin.ui.MenuBar.Command;
1.37 +import com.vaadin.ui.MenuBar.MenuItem;
1.38 +
1.39 +/**
1.40 + * @author indvdum
1.41 + * 12.08.2011 17:31:53
1.42 + *
1.43 + */
1.44 +public class MyWorkApplication extends Application {
1.45 +
1.46 + private MyWorkApplication thisObject = this;
1.47 + private Table dayTable = null;
1.48 + private Table taskTable = null;
1.49 + private Table workTable = null;
1.50 +
1.51 + private Command newDayCommand = new Command() {
1.52 + public void menuSelected(MenuItem selectedItem) {
1.53 + EditDayDialog dialog = null;
1.54 + try {
1.55 + dialog = new EditDayDialog(thisObject, null);
1.56 + } catch (Exception e) {
1.57 + e.printStackTrace();
1.58 + }
1.59 + getMainWindow().addWindow(dialog);
1.60 + }
1.61 + };
1.62 + private Command newTaskCommand = new Command() {
1.63 + public void menuSelected(MenuItem selectedItem) {
1.64 + EditTaskDialog dialog = null;
1.65 + try {
1.66 + dialog = new EditTaskDialog(thisObject, null);
1.67 + } catch (Exception e) {
1.68 + e.printStackTrace();
1.69 + }
1.70 + getMainWindow().addWindow(dialog);
1.71 + }
1.72 + };
1.73 + private Command newWorkCommand = new Command() {
1.74 + public void menuSelected(MenuItem selectedItem) {
1.75 + EditWorkDialog dialog = null;
1.76 + try {
1.77 + dialog = new EditWorkDialog(thisObject, null);
1.78 + } catch (Exception e) {
1.79 + e.printStackTrace();
1.80 + }
1.81 + getMainWindow().addWindow(dialog);
1.82 + }
1.83 + };
1.84 + private Command editDayCommand = new Command() {
1.85 + public void menuSelected(MenuItem selectedItem) {
1.86 + EditDayDialog dialog = null;
1.87 + Day day = EM.find(Day.class, dayTable.getValue());
1.88 + if(day == null)
1.89 + return;
1.90 + try {
1.91 + dialog = new EditDayDialog(thisObject, day);
1.92 + } catch (Exception e) {
1.93 + e.printStackTrace();
1.94 + }
1.95 + getMainWindow().addWindow(dialog);
1.96 + }
1.97 + };
1.98 + private Command editTaskCommand = new Command() {
1.99 + public void menuSelected(MenuItem selectedItem) {
1.100 + EditTaskDialog dialog = null;
1.101 + Task task = EM.find(Task.class, taskTable.getValue());
1.102 + if(task == null)
1.103 + return;
1.104 + try {
1.105 + dialog = new EditTaskDialog(thisObject, task);
1.106 + } catch (Exception e) {
1.107 + e.printStackTrace();
1.108 + }
1.109 + getMainWindow().addWindow(dialog);
1.110 + }
1.111 + };
1.112 + private Command editWorkCommand = new Command() {
1.113 + public void menuSelected(MenuItem selectedItem) {
1.114 + EditWorkDialog dialog = null;
1.115 + Work work = EM.find(Work.class, workTable.getValue());
1.116 + if(work == null)
1.117 + return;
1.118 + try {
1.119 + dialog = new EditWorkDialog(thisObject, work);
1.120 + } catch (Exception e) {
1.121 + e.printStackTrace();
1.122 + }
1.123 + getMainWindow().addWindow(dialog);
1.124 + }
1.125 + };
1.126 +
1.127 + @Override
1.128 + public void init() {
1.129 + Window window = new Window();
1.130 + setMainWindow(window);
1.131 +
1.132 + TabSheet tabSheet = new TabSheet();
1.133 + tabSheet.setSizeFull();
1.134 + window.setContent(tabSheet);
1.135 +
1.136 + VerticalLayout vlMain = new VerticalLayout();
1.137 + vlMain.setSizeFull();
1.138 + vlMain.setMargin(true);
1.139 + vlMain.setSpacing(true);
1.140 + tabSheet.addTab(vlMain, "Main page", null);
1.141 +
1.142 + MenuBar menuBar = new MenuBar();
1.143 + MenuItem file = menuBar.addItem("File", null);
1.144 + MenuItem newItem = file.addItem("New", null);
1.145 + newItem.addItem("Day...", newDayCommand);
1.146 + newItem.addItem("Task...", newTaskCommand);
1.147 + newItem.addItem("Work...", newWorkCommand);
1.148 + MenuItem edit = menuBar.addItem("Edit", null);
1.149 + edit.addItem("Day...", editDayCommand);
1.150 + edit.addItem("Task...", editTaskCommand);
1.151 + edit.addItem("Work...", editWorkCommand);
1.152 + vlMain.addComponent(menuBar);
1.153 +
1.154 + LocalEntityProvider dayProvider = new CachingLocalEntityProvider(Day.class);
1.155 + dayProvider.setEntityManager(EM);
1.156 + JPAContainer<Day> dayContainer = new JPAContainer(Day.class);
1.157 + dayContainer.setEntityProvider(dayProvider);
1.158 +
1.159 + dayTable = new Table();
1.160 + dayTable.setSelectable(true);
1.161 + dayTable.setEditable(false);
1.162 + dayTable.setImmediate(true);
1.163 + dayTable.setSizeFull();
1.164 + dayTable.setContainerDataSource(dayContainer);
1.165 + dayTable.setVisibleColumns(new String[]{
1.166 + "formattedDay",
1.167 + "startWork",
1.168 + "endWork",
1.169 + "hours",
1.170 + });
1.171 + dayTable.setSortContainerPropertyId("day");
1.172 + dayTable.setColumnHeaders(new String[]{
1.173 + "day",
1.174 + "startWork",
1.175 + "endWork",
1.176 + "hours",
1.177 + });
1.178 + vlMain.addComponent(dayTable);
1.179 + vlMain.setExpandRatio(dayTable, 1f);
1.180 +
1.181 + LocalEntityProvider taskProvider = new CachingLocalEntityProvider(Task.class);
1.182 + taskProvider.setEntityManager(EM);
1.183 + JPAContainer<Task> taskContainer = new JPAContainer(Task.class);
1.184 + taskContainer.setEntityProvider(taskProvider);
1.185 +
1.186 + taskTable = new Table();
1.187 + taskTable.setSelectable(true);
1.188 + taskTable.setEditable(false);
1.189 + taskTable.setImmediate(true);
1.190 + taskTable.setSizeFull();
1.191 + taskTable.setContainerDataSource(taskContainer);
1.192 + taskTable.setVisibleColumns(new String[]{
1.193 + "name",
1.194 + "description",
1.195 + });
1.196 + taskTable.setColumnWidth("description", 300);
1.197 + vlMain.addComponent(taskTable);
1.198 + vlMain.setExpandRatio(taskTable, 1f);
1.199 +
1.200 + LocalEntityProvider workProvider = new CachingLocalEntityProvider(Work.class);
1.201 + workProvider.setEntityManager(EM);
1.202 + JPAContainer<Task> workContainer = new JPAContainer(Work.class);
1.203 + workContainer.setEntityProvider(workProvider);
1.204 +
1.205 + workTable = new Table();
1.206 + workTable.setSelectable(false);
1.207 + workTable.setEditable(false);
1.208 + workTable.setImmediate(true);
1.209 + workTable.setSizeFull();
1.210 + workTable.setContainerDataSource(workContainer);
1.211 + workTable.setVisibleColumns(new String[]{
1.212 + "day",
1.213 + "task",
1.214 + "hours",
1.215 + "result",
1.216 + });
1.217 + workTable.setColumnWidth("result", 200);
1.218 + workTable.setSortContainerPropertyId("day");
1.219 + vlMain.addComponent(workTable);
1.220 + vlMain.setExpandRatio(workTable, 1f);
1.221 + }
1.222 +
1.223 + public Table getDayTable() {
1.224 + return dayTable;
1.225 + }
1.226 +
1.227 + public Table getTaskTable() {
1.228 + return taskTable;
1.229 + }
1.230 +
1.231 + public Table getWorkTable() {
1.232 + return workTable;
1.233 + }
1.234 +}