src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java
author indvdum
Fri, 19 Aug 2011 16:23:26 +0300
changeset 9 6a02cfcc7460
parent 8 56338d6d58c2
child 12 93ea5ae33f02
permissions -rw-r--r--
Rework.
     1 package ru.indvdum.mywork.vaadin;
     2 
     3 import static ru.indvdum.mywork.MyWork.EM;
     4 
     5 import java.util.List;
     6 
     7 import javax.persistence.Query;
     8 
     9 import ru.indvdum.mywork.openjpa.model.Day;
    10 import ru.indvdum.mywork.openjpa.model.Task;
    11 import ru.indvdum.mywork.openjpa.model.Work;
    12 
    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;
    35 
    36 /**
    37  * @author indvdum
    38  * 12.08.2011 17:31:53
    39  *
    40  */
    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     };
    81 
    82 	@Override
    83 	public void init() {
    84 		Window window = new Window();
    85 		setMainWindow(window);
    86 		
    87 		TabSheet tabSheet = new TabSheet();
    88 		tabSheet.setSizeFull();
    89 		window.setContent(tabSheet);
    90 		
    91 		VerticalLayout vlMain = new VerticalLayout();
    92 		vlMain.setSizeFull();
    93 		vlMain.setMargin(true);
    94 		vlMain.setSpacing(true);
    95 		tabSheet.addTab(vlMain, "Main page", null);
    96 		
    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);
   106 		dayProvider.setEntityManager(EM);
   107 		JPAContainer<Day> dayContainer = new JPAContainer(Day.class);
   108 		dayContainer.setEntityProvider(dayProvider);
   109 		
   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[]{
   117 				"day",
   118 				"startWork",
   119 				"endWork",
   120 				"hours",
   121 		});
   122 		vlMain.addComponent(dayTable);
   123 		vlMain.setExpandRatio(dayTable, 1f);
   124 		
   125 		LocalEntityProvider taskProvider = new CachingLocalEntityProvider(Task.class);
   126 		taskProvider.setEntityManager(EM);
   127 		JPAContainer<Task> taskContainer = new JPAContainer(Task.class);
   128 		taskContainer.setEntityProvider(taskProvider);
   129 		
   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[]{
   137 				"name",
   138 				"description",
   139 		});
   140 		taskTable.setColumnWidth("description", 300);
   141 		vlMain.addComponent(taskTable);
   142 		vlMain.setExpandRatio(taskTable, 1f);
   143 		
   144 		LocalEntityProvider workProvider = new CachingLocalEntityProvider(Work.class);
   145 		workProvider.setEntityManager(EM);
   146 		JPAContainer<Task> workContainer = new JPAContainer(Work.class);
   147 		workContainer.setEntityProvider(workProvider);
   148 		
   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[]{
   156 				"day",
   157 				"task",
   158 				"hours",
   159 				"result",
   160 		});
   161 		workTable.setColumnWidth("result", 200);
   162 		vlMain.addComponent(workTable);
   163 		vlMain.setExpandRatio(workTable, 1f);
   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 	}
   177 }