src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java
changeset 9 6a02cfcc7460
parent 8 56338d6d58c2
child 12 93ea5ae33f02
     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  }