src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java
changeset 9 6a02cfcc7460
parent 8 56338d6d58c2
child 12 93ea5ae33f02
equal deleted inserted replaced
8:56338d6d58c2 9:6a02cfcc7460
     9 import ru.indvdum.mywork.openjpa.model.Day;
     9 import ru.indvdum.mywork.openjpa.model.Day;
    10 import ru.indvdum.mywork.openjpa.model.Task;
    10 import ru.indvdum.mywork.openjpa.model.Task;
    11 import ru.indvdum.mywork.openjpa.model.Work;
    11 import ru.indvdum.mywork.openjpa.model.Work;
    12 
    12 
    13 import com.vaadin.Application;
    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;
    14 import com.vaadin.addon.jpacontainer.JPAContainer;
    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;
    15 import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider;
    22 import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider;
    16 import com.vaadin.ui.Alignment;
    23 import com.vaadin.ui.Alignment;
    17 import com.vaadin.ui.Button;
    24 import com.vaadin.ui.Button;
    18 import com.vaadin.ui.HorizontalLayout;
    25 import com.vaadin.ui.HorizontalLayout;
       
    26 import com.vaadin.ui.MenuBar;
    19 import com.vaadin.ui.TabSheet;
    27 import com.vaadin.ui.TabSheet;
    20 import com.vaadin.ui.Table;
    28 import com.vaadin.ui.Table;
    21 import com.vaadin.ui.VerticalLayout;
    29 import com.vaadin.ui.VerticalLayout;
    22 import com.vaadin.ui.Window;
    30 import com.vaadin.ui.Window;
    23 import com.vaadin.ui.Button.ClickEvent;
    31 import com.vaadin.ui.Button.ClickEvent;
    24 import com.vaadin.ui.Button.ClickListener;
    32 import com.vaadin.ui.Button.ClickListener;
       
    33 import com.vaadin.ui.MenuBar.Command;
       
    34 import com.vaadin.ui.MenuBar.MenuItem;
    25 
    35 
    26 /**
    36 /**
    27  * @author indvdum
    37  * @author indvdum
    28  * 12.08.2011 17:31:53
    38  * 12.08.2011 17:31:53
    29  *
    39  *
    30  */
    40  */
    31 public class MyWorkApplication extends Application {
    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     };
    32 
    81 
    33 	@Override
    82 	@Override
    34 	public void init() {
    83 	public void init() {
    35 		Window window = new Window();
    84 		Window window = new Window();
    36 		setMainWindow(window);
    85 		setMainWindow(window);
    43 		vlMain.setSizeFull();
    92 		vlMain.setSizeFull();
    44 		vlMain.setMargin(true);
    93 		vlMain.setMargin(true);
    45 		vlMain.setSpacing(true);
    94 		vlMain.setSpacing(true);
    46 		tabSheet.addTab(vlMain, "Main page", null);
    95 		tabSheet.addTab(vlMain, "Main page", null);
    47 		
    96 		
    48 		LocalEntityProvider dayProvider = new LocalEntityProvider(Day.class);
    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);
    49 		dayProvider.setEntityManager(EM);
   106 		dayProvider.setEntityManager(EM);
    50 		JPAContainer<Day> dayContainer = new JPAContainer(Day.class);
   107 		JPAContainer<Day> dayContainer = new JPAContainer(Day.class);
    51 		dayContainer.setEntityProvider(dayProvider);
   108 		dayContainer.setEntityProvider(dayProvider);
    52 		
   109 		
    53 		Table dayTable = new Table();
   110 		dayTable = new Table();
    54 		dayTable.setSelectable(true);
   111 		dayTable.setSelectable(true);
    55 		dayTable.setEditable(false);
   112 		dayTable.setEditable(false);
    56 		dayTable.setImmediate(true);
   113 		dayTable.setImmediate(true);
    57 		dayTable.setSizeFull();
   114 		dayTable.setSizeFull();
    58 		dayTable.setContainerDataSource(dayContainer);
   115 		dayTable.setContainerDataSource(dayContainer);
    63 				"hours",
   120 				"hours",
    64 		});
   121 		});
    65 		vlMain.addComponent(dayTable);
   122 		vlMain.addComponent(dayTable);
    66 		vlMain.setExpandRatio(dayTable, 1f);
   123 		vlMain.setExpandRatio(dayTable, 1f);
    67 		
   124 		
    68 		LocalEntityProvider taskProvider = new LocalEntityProvider(Task.class);
   125 		LocalEntityProvider taskProvider = new CachingLocalEntityProvider(Task.class);
    69 		taskProvider.setEntityManager(EM);
   126 		taskProvider.setEntityManager(EM);
    70 		JPAContainer<Task> taskContainer = new JPAContainer(Task.class);
   127 		JPAContainer<Task> taskContainer = new JPAContainer(Task.class);
    71 		taskContainer.setEntityProvider(taskProvider);
   128 		taskContainer.setEntityProvider(taskProvider);
    72 		
   129 		
    73 		Table taskTable = new Table();
   130 		taskTable = new Table();
    74 		taskTable.setSelectable(true);
   131 		taskTable.setSelectable(true);
    75 		taskTable.setEditable(false);
   132 		taskTable.setEditable(false);
    76 		taskTable.setImmediate(true);
   133 		taskTable.setImmediate(true);
    77 		taskTable.setSizeFull();
   134 		taskTable.setSizeFull();
    78 		taskTable.setContainerDataSource(taskContainer);
   135 		taskTable.setContainerDataSource(taskContainer);
    82 		});
   139 		});
    83 		taskTable.setColumnWidth("description", 300);
   140 		taskTable.setColumnWidth("description", 300);
    84 		vlMain.addComponent(taskTable);
   141 		vlMain.addComponent(taskTable);
    85 		vlMain.setExpandRatio(taskTable, 1f);
   142 		vlMain.setExpandRatio(taskTable, 1f);
    86 		
   143 		
    87 		LocalEntityProvider workProvider = new LocalEntityProvider(Work.class);
   144 		LocalEntityProvider workProvider = new CachingLocalEntityProvider(Work.class);
    88 		workProvider.setEntityManager(EM);
   145 		workProvider.setEntityManager(EM);
    89 		JPAContainer<Task> workContainer = new JPAContainer(Work.class);
   146 		JPAContainer<Task> workContainer = new JPAContainer(Work.class);
    90 		workContainer.setEntityProvider(workProvider);
   147 		workContainer.setEntityProvider(workProvider);
    91 		
   148 		
    92 		Table workTable = new Table();
   149 		workTable = new Table();
    93 		workTable.setSelectable(true);
   150 		workTable.setSelectable(true);
    94 		workTable.setEditable(false);
   151 		workTable.setEditable(false);
    95 		workTable.setImmediate(true);
   152 		workTable.setImmediate(true);
    96 		workTable.setSizeFull();
   153 		workTable.setSizeFull();
    97 		workTable.setContainerDataSource(workContainer);
   154 		workTable.setContainerDataSource(workContainer);
    98 		workTable.setVisibleColumns(new String[]{
   155 		workTable.setVisibleColumns(new String[]{
    99 				"dayName",
   156 				"day",
   100 				"taskName",
   157 				"task",
   101 				"hours",
   158 				"hours",
   102 				"result",
   159 				"result",
   103 		});
   160 		});
   104 		workTable.setColumnWidth("result", 200);
   161 		workTable.setColumnWidth("result", 200);
   105 		vlMain.addComponent(workTable);
   162 		vlMain.addComponent(workTable);
   106 		vlMain.setExpandRatio(workTable, 1f);
   163 		vlMain.setExpandRatio(workTable, 1f);
   107 	}
   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 	}
   108 }
   177 }