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.
indvdum@1
     1
package ru.indvdum.mywork.vaadin;
indvdum@1
     2
indvdum@5
     3
import static ru.indvdum.mywork.MyWork.EM;
indvdum@5
     4
indvdum@5
     5
import java.util.List;
indvdum@5
     6
indvdum@5
     7
import javax.persistence.Query;
indvdum@5
     8
indvdum@5
     9
import ru.indvdum.mywork.openjpa.model.Day;
indvdum@7
    10
import ru.indvdum.mywork.openjpa.model.Task;
indvdum@7
    11
import ru.indvdum.mywork.openjpa.model.Work;
indvdum@2
    12
indvdum@1
    13
import com.vaadin.Application;
indvdum@9
    14
import com.vaadin.addon.jpacontainer.EntityContainer;
indvdum@9
    15
import com.vaadin.addon.jpacontainer.EntityProvider;
indvdum@9
    16
import com.vaadin.addon.jpacontainer.HierarchicalEntityContainer;
indvdum@6
    17
import com.vaadin.addon.jpacontainer.JPAContainer;
indvdum@9
    18
import com.vaadin.addon.jpacontainer.provider.BatchableLocalEntityProvider;
indvdum@9
    19
import com.vaadin.addon.jpacontainer.provider.CachingBatchableLocalEntityProvider;
indvdum@9
    20
import com.vaadin.addon.jpacontainer.provider.CachingLocalEntityProvider;
indvdum@9
    21
import com.vaadin.addon.jpacontainer.provider.CachingMutableLocalEntityProvider;
indvdum@6
    22
import com.vaadin.addon.jpacontainer.provider.LocalEntityProvider;
indvdum@7
    23
import com.vaadin.ui.Alignment;
indvdum@7
    24
import com.vaadin.ui.Button;
indvdum@7
    25
import com.vaadin.ui.HorizontalLayout;
indvdum@9
    26
import com.vaadin.ui.MenuBar;
indvdum@7
    27
import com.vaadin.ui.TabSheet;
indvdum@6
    28
import com.vaadin.ui.Table;
indvdum@6
    29
import com.vaadin.ui.VerticalLayout;
indvdum@1
    30
import com.vaadin.ui.Window;
indvdum@7
    31
import com.vaadin.ui.Button.ClickEvent;
indvdum@7
    32
import com.vaadin.ui.Button.ClickListener;
indvdum@9
    33
import com.vaadin.ui.MenuBar.Command;
indvdum@9
    34
import com.vaadin.ui.MenuBar.MenuItem;
indvdum@1
    35
indvdum@1
    36
/**
indvdum@1
    37
 * @author indvdum
indvdum@5
    38
 * 12.08.2011 17:31:53
indvdum@1
    39
 *
indvdum@1
    40
 */
indvdum@1
    41
public class MyWorkApplication extends Application {
indvdum@9
    42
	
indvdum@9
    43
	private MyWorkApplication thisObject = this;
indvdum@9
    44
	private Table dayTable = null;
indvdum@9
    45
	private Table taskTable = null;
indvdum@9
    46
	private Table workTable = null;
indvdum@9
    47
	
indvdum@9
    48
	private Command newDayCommand = new Command() {
indvdum@9
    49
        public void menuSelected(MenuItem selectedItem) {
indvdum@9
    50
        	EditDayDialog dialog = null;
indvdum@9
    51
			try {
indvdum@9
    52
				dialog = new EditDayDialog(thisObject, EditState.CREATE, null);
indvdum@9
    53
			} catch (Exception e) {
indvdum@9
    54
				e.printStackTrace();
indvdum@9
    55
			}
indvdum@9
    56
            getMainWindow().addWindow(dialog);
indvdum@9
    57
        }
indvdum@9
    58
    };
indvdum@9
    59
    private Command newTaskCommand = new Command() {
indvdum@9
    60
    	public void menuSelected(MenuItem selectedItem) {
indvdum@9
    61
    		EditTaskDialog dialog = null;
indvdum@9
    62
    		try {
indvdum@9
    63
    			dialog = new EditTaskDialog(thisObject, EditState.CREATE, null);
indvdum@9
    64
    		} catch (Exception e) {
indvdum@9
    65
    			e.printStackTrace();
indvdum@9
    66
    		}
indvdum@9
    67
    		getMainWindow().addWindow(dialog);
indvdum@9
    68
    	}
indvdum@9
    69
    };
indvdum@9
    70
    private Command newWorkCommand = new Command() {
indvdum@9
    71
    	public void menuSelected(MenuItem selectedItem) {
indvdum@9
    72
    		EditWorkDialog dialog = null;
indvdum@9
    73
    		try {
indvdum@9
    74
    			dialog = new EditWorkDialog(thisObject, EditState.CREATE, null);
indvdum@9
    75
    		} catch (Exception e) {
indvdum@9
    76
    			e.printStackTrace();
indvdum@9
    77
    		}
indvdum@9
    78
    		getMainWindow().addWindow(dialog);
indvdum@9
    79
    	}
indvdum@9
    80
    };
indvdum@1
    81
indvdum@1
    82
	@Override
indvdum@1
    83
	public void init() {
indvdum@1
    84
		Window window = new Window();
indvdum@1
    85
		setMainWindow(window);
indvdum@6
    86
		
indvdum@7
    87
		TabSheet tabSheet = new TabSheet();
indvdum@7
    88
		tabSheet.setSizeFull();
indvdum@7
    89
		window.setContent(tabSheet);
indvdum@7
    90
		
indvdum@7
    91
		VerticalLayout vlMain = new VerticalLayout();
indvdum@8
    92
		vlMain.setSizeFull();
indvdum@7
    93
		vlMain.setMargin(true);
indvdum@7
    94
		vlMain.setSpacing(true);
indvdum@7
    95
		tabSheet.addTab(vlMain, "Main page", null);
indvdum@7
    96
		
indvdum@9
    97
		MenuBar menubar = new MenuBar();
indvdum@9
    98
		MenuItem file = menubar.addItem("File", null);
indvdum@9
    99
		MenuItem newItem = file.addItem("New", null);
indvdum@9
   100
		newItem.addItem("Day...", newDayCommand);
indvdum@9
   101
        newItem.addItem("Task...", newTaskCommand);
indvdum@9
   102
        newItem.addItem("Work...", newWorkCommand);
indvdum@9
   103
        vlMain.addComponent(menubar);
indvdum@9
   104
		
indvdum@9
   105
		LocalEntityProvider dayProvider = new CachingLocalEntityProvider(Day.class);
indvdum@7
   106
		dayProvider.setEntityManager(EM);
indvdum@7
   107
		JPAContainer<Day> dayContainer = new JPAContainer(Day.class);
indvdum@7
   108
		dayContainer.setEntityProvider(dayProvider);
indvdum@7
   109
		
indvdum@9
   110
		dayTable = new Table();
indvdum@7
   111
		dayTable.setSelectable(true);
indvdum@7
   112
		dayTable.setEditable(false);
indvdum@7
   113
		dayTable.setImmediate(true);
indvdum@7
   114
		dayTable.setSizeFull();
indvdum@7
   115
		dayTable.setContainerDataSource(dayContainer);
indvdum@8
   116
		dayTable.setVisibleColumns(new String[]{
indvdum@8
   117
				"day",
indvdum@8
   118
				"startWork",
indvdum@8
   119
				"endWork",
indvdum@8
   120
				"hours",
indvdum@8
   121
		});
indvdum@7
   122
		vlMain.addComponent(dayTable);
indvdum@7
   123
		vlMain.setExpandRatio(dayTable, 1f);
indvdum@7
   124
		
indvdum@9
   125
		LocalEntityProvider taskProvider = new CachingLocalEntityProvider(Task.class);
indvdum@7
   126
		taskProvider.setEntityManager(EM);
indvdum@7
   127
		JPAContainer<Task> taskContainer = new JPAContainer(Task.class);
indvdum@7
   128
		taskContainer.setEntityProvider(taskProvider);
indvdum@7
   129
		
indvdum@9
   130
		taskTable = new Table();
indvdum@7
   131
		taskTable.setSelectable(true);
indvdum@7
   132
		taskTable.setEditable(false);
indvdum@7
   133
		taskTable.setImmediate(true);
indvdum@7
   134
		taskTable.setSizeFull();
indvdum@7
   135
		taskTable.setContainerDataSource(taskContainer);
indvdum@8
   136
		taskTable.setVisibleColumns(new String[]{
indvdum@8
   137
				"name",
indvdum@8
   138
				"description",
indvdum@8
   139
		});
indvdum@8
   140
		taskTable.setColumnWidth("description", 300);
indvdum@7
   141
		vlMain.addComponent(taskTable);
indvdum@7
   142
		vlMain.setExpandRatio(taskTable, 1f);
indvdum@8
   143
		
indvdum@9
   144
		LocalEntityProvider workProvider = new CachingLocalEntityProvider(Work.class);
indvdum@8
   145
		workProvider.setEntityManager(EM);
indvdum@8
   146
		JPAContainer<Task> workContainer = new JPAContainer(Work.class);
indvdum@8
   147
		workContainer.setEntityProvider(workProvider);
indvdum@8
   148
		
indvdum@9
   149
		workTable = new Table();
indvdum@8
   150
		workTable.setSelectable(true);
indvdum@8
   151
		workTable.setEditable(false);
indvdum@8
   152
		workTable.setImmediate(true);
indvdum@8
   153
		workTable.setSizeFull();
indvdum@8
   154
		workTable.setContainerDataSource(workContainer);
indvdum@8
   155
		workTable.setVisibleColumns(new String[]{
indvdum@9
   156
				"day",
indvdum@9
   157
				"task",
indvdum@8
   158
				"hours",
indvdum@8
   159
				"result",
indvdum@8
   160
		});
indvdum@8
   161
		workTable.setColumnWidth("result", 200);
indvdum@8
   162
		vlMain.addComponent(workTable);
indvdum@8
   163
		vlMain.setExpandRatio(workTable, 1f);
indvdum@1
   164
	}
indvdum@9
   165
indvdum@9
   166
	public Table getDayTable() {
indvdum@9
   167
		return dayTable;
indvdum@9
   168
	}
indvdum@9
   169
indvdum@9
   170
	public Table getTaskTable() {
indvdum@9
   171
		return taskTable;
indvdum@9
   172
	}
indvdum@9
   173
indvdum@9
   174
	public Table getWorkTable() {
indvdum@9
   175
		return workTable;
indvdum@9
   176
	}
indvdum@1
   177
}