Добавлено редактирование объектов.
authorindvdum
Tue, 23 Aug 2011 16:21:44 +0300
changeset 1293ea5ae33f02
parent 11 e576975e68f7
child 13 ad6ffc054537
Добавлено редактирование объектов.
src/main/java/ru/indvdum/mywork/openjpa/model/Day.java
src/main/java/ru/indvdum/mywork/openjpa/model/Task.java
src/main/java/ru/indvdum/mywork/vaadin/EditDayDialog.java
src/main/java/ru/indvdum/mywork/vaadin/EditTaskDialog.java
src/main/java/ru/indvdum/mywork/vaadin/EditWorkDialog.java
src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java
src/main/resources/META-INF/persistence.xml
     1.1 --- a/src/main/java/ru/indvdum/mywork/openjpa/model/Day.java	Tue Aug 23 14:48:38 2011 +0300
     1.2 +++ b/src/main/java/ru/indvdum/mywork/openjpa/model/Day.java	Tue Aug 23 16:21:44 2011 +0300
     1.3 @@ -80,6 +80,10 @@
     1.4  	public Date getDay() {
     1.5  		return day;
     1.6  	}
     1.7 +	
     1.8 +	public String getFormattedDay() {
     1.9 +		return toString();
    1.10 +	}
    1.11  
    1.12  	public void setDay(Date day) {
    1.13  		this.day = day;
     2.1 --- a/src/main/java/ru/indvdum/mywork/openjpa/model/Task.java	Tue Aug 23 14:48:38 2011 +0300
     2.2 +++ b/src/main/java/ru/indvdum/mywork/openjpa/model/Task.java	Tue Aug 23 16:21:44 2011 +0300
     2.3 @@ -67,7 +67,7 @@
     2.4  	}
     2.5  
     2.6  	public String getName() {
     2.7 -		return name;
     2.8 +		return name != null ? name : "";
     2.9  	}
    2.10  
    2.11  	public void setName(String name) {
    2.12 @@ -75,7 +75,7 @@
    2.13  	}
    2.14  
    2.15  	public String getDescription() {
    2.16 -		return description;
    2.17 +		return description != null ? description : "";
    2.18  	}
    2.19  
    2.20  	public void setDescription(String description) {
     3.1 --- a/src/main/java/ru/indvdum/mywork/vaadin/EditDayDialog.java	Tue Aug 23 14:48:38 2011 +0300
     3.2 +++ b/src/main/java/ru/indvdum/mywork/vaadin/EditDayDialog.java	Tue Aug 23 16:21:44 2011 +0300
     3.3 @@ -32,15 +32,16 @@
     3.4  	private PopupDateField dayDate = null;
     3.5  	private TextField dayHours = null;
     3.6  
     3.7 -	public EditDayDialog(MyWorkApplication myApp, EditState state, Day day) throws Exception {
     3.8 +	public EditDayDialog(MyWorkApplication myApp, Day day) throws Exception {
     3.9  		super();
    3.10  		this.myApp = myApp;
    3.11 -		this.state = state;
    3.12 +		if(day == null)
    3.13 +			state = EditState.CREATE;
    3.14 +		else
    3.15 +			state = EditState.EDIT;
    3.16  		switch(state){
    3.17  		case CREATE:
    3.18  			setCaption("Creating new day");
    3.19 -			if(day != null)
    3.20 -				throw new Exception("Illegal argument: day must be null in creating state.");
    3.21  			day = new Day();
    3.22  			Calendar calDay = Calendar.getInstance();
    3.23  			calDay.set(Calendar.HOUR_OF_DAY, 0);
    3.24 @@ -65,8 +66,6 @@
    3.25  			break;
    3.26  		case EDIT:
    3.27  			setCaption("Editing day");
    3.28 -			if(day == null)
    3.29 -				throw new Exception("Illegal argument: day must be not null in editing state.");
    3.30  			this.day = day;
    3.31  			break;
    3.32  		}
     4.1 --- a/src/main/java/ru/indvdum/mywork/vaadin/EditTaskDialog.java	Tue Aug 23 14:48:38 2011 +0300
     4.2 +++ b/src/main/java/ru/indvdum/mywork/vaadin/EditTaskDialog.java	Tue Aug 23 16:21:44 2011 +0300
     4.3 @@ -22,15 +22,16 @@
     4.4  	private TextField taskName = null;
     4.5  	private RichTextArea taskDescription = null;
     4.6  
     4.7 -	public EditTaskDialog(MyWorkApplication myApp, EditState state, Task task) throws Exception {
     4.8 +	public EditTaskDialog(MyWorkApplication myApp, Task task) throws Exception {
     4.9  		super();
    4.10  		this.myApp = myApp;
    4.11 -		this.state = state;
    4.12 +		if(task == null)
    4.13 +			state = EditState.CREATE;
    4.14 +		else 
    4.15 +			state = EditState.EDIT;
    4.16  		switch(state){
    4.17  		case CREATE:
    4.18  			setCaption("Creating new task");
    4.19 -			if(task != null)
    4.20 -				throw new Exception("Illegal argument: task must be null in creating state.");
    4.21  			task = new Task();
    4.22  			task.setName("");
    4.23  			task.setDescription("");
    4.24 @@ -38,8 +39,6 @@
    4.25  			break;
    4.26  		case EDIT:
    4.27  			setCaption("Editing task");
    4.28 -			if(task == null)
    4.29 -				throw new Exception("Illegal argument: task must be not null in editing state.");
    4.30  			this.task = task;
    4.31  			break;
    4.32  		}
     5.1 --- a/src/main/java/ru/indvdum/mywork/vaadin/EditWorkDialog.java	Tue Aug 23 14:48:38 2011 +0300
     5.2 +++ b/src/main/java/ru/indvdum/mywork/vaadin/EditWorkDialog.java	Tue Aug 23 16:21:44 2011 +0300
     5.3 @@ -36,15 +36,16 @@
     5.4  	private TextField workHours = null;
     5.5  	private RichTextArea workResult = null;
     5.6  
     5.7 -	public EditWorkDialog(MyWorkApplication myApp, EditState state, Work work) throws Exception {
     5.8 +	public EditWorkDialog(MyWorkApplication myApp, Work work) throws Exception {
     5.9  		super();
    5.10  		this.myApp = myApp;
    5.11 -		this.state = state;
    5.12 +		if(work == null)
    5.13 +			state = EditState.CREATE;
    5.14 +		else
    5.15 +			state = EditState.EDIT;
    5.16  		switch(state){
    5.17  		case CREATE:
    5.18  			setCaption("Creating new work");
    5.19 -			if(work != null)
    5.20 -				throw new Exception("Illegal argument: work must be null in creating state.");
    5.21  			work = new Work();
    5.22  			work.setHours(0f);
    5.23  			work.setResult("");
    5.24 @@ -52,8 +53,6 @@
    5.25  			break;
    5.26  		case EDIT:
    5.27  			setCaption("Editing work");
    5.28 -			if(work == null)
    5.29 -				throw new Exception("Illegal argument: work must be not null in editing state.");
    5.30  			this.work = work;
    5.31  			break;
    5.32  		}
     6.1 --- a/src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java	Tue Aug 23 14:48:38 2011 +0300
     6.2 +++ b/src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java	Tue Aug 23 16:21:44 2011 +0300
     6.3 @@ -49,7 +49,7 @@
     6.4          public void menuSelected(MenuItem selectedItem) {
     6.5          	EditDayDialog dialog = null;
     6.6  			try {
     6.7 -				dialog = new EditDayDialog(thisObject, EditState.CREATE, null);
     6.8 +				dialog = new EditDayDialog(thisObject, null);
     6.9  			} catch (Exception e) {
    6.10  				e.printStackTrace();
    6.11  			}
    6.12 @@ -60,7 +60,7 @@
    6.13      	public void menuSelected(MenuItem selectedItem) {
    6.14      		EditTaskDialog dialog = null;
    6.15      		try {
    6.16 -    			dialog = new EditTaskDialog(thisObject, EditState.CREATE, null);
    6.17 +    			dialog = new EditTaskDialog(thisObject, null);
    6.18      		} catch (Exception e) {
    6.19      			e.printStackTrace();
    6.20      		}
    6.21 @@ -71,7 +71,49 @@
    6.22      	public void menuSelected(MenuItem selectedItem) {
    6.23      		EditWorkDialog dialog = null;
    6.24      		try {
    6.25 -    			dialog = new EditWorkDialog(thisObject, EditState.CREATE, null);
    6.26 +    			dialog = new EditWorkDialog(thisObject, null);
    6.27 +    		} catch (Exception e) {
    6.28 +    			e.printStackTrace();
    6.29 +    		}
    6.30 +    		getMainWindow().addWindow(dialog);
    6.31 +    	}
    6.32 +    };
    6.33 +    private Command editDayCommand = new Command() {
    6.34 +    	public void menuSelected(MenuItem selectedItem) {
    6.35 +    		EditDayDialog dialog = null;
    6.36 +    		Day day = EM.find(Day.class, dayTable.getValue());
    6.37 +    		if(day == null)
    6.38 +    			return;
    6.39 +    		try {
    6.40 +    			dialog = new EditDayDialog(thisObject, day);
    6.41 +    		} catch (Exception e) {
    6.42 +    			e.printStackTrace();
    6.43 +    		}
    6.44 +    		getMainWindow().addWindow(dialog);
    6.45 +    	}
    6.46 +    };
    6.47 +    private Command editTaskCommand = new Command() {
    6.48 +    	public void menuSelected(MenuItem selectedItem) {
    6.49 +    		EditTaskDialog dialog = null;
    6.50 +    		Task task = EM.find(Task.class, taskTable.getValue());
    6.51 +    		if(task == null)
    6.52 +    			return;
    6.53 +    		try {
    6.54 +    			dialog = new EditTaskDialog(thisObject, task);
    6.55 +    		} catch (Exception e) {
    6.56 +    			e.printStackTrace();
    6.57 +    		}
    6.58 +    		getMainWindow().addWindow(dialog);
    6.59 +    	}
    6.60 +    };
    6.61 +    private Command editWorkCommand = new Command() {
    6.62 +    	public void menuSelected(MenuItem selectedItem) {
    6.63 +    		EditWorkDialog dialog = null;
    6.64 +    		Work work = EM.find(Work.class, workTable.getValue());
    6.65 +    		if(work == null)
    6.66 +    			return;
    6.67 +    		try {
    6.68 +    			dialog = new EditWorkDialog(thisObject, work);
    6.69      		} catch (Exception e) {
    6.70      			e.printStackTrace();
    6.71      		}
    6.72 @@ -94,13 +136,17 @@
    6.73  		vlMain.setSpacing(true);
    6.74  		tabSheet.addTab(vlMain, "Main page", null);
    6.75  		
    6.76 -		MenuBar menubar = new MenuBar();
    6.77 -		MenuItem file = menubar.addItem("File", null);
    6.78 +		MenuBar menuBar = new MenuBar();
    6.79 +		MenuItem file = menuBar.addItem("File", null);
    6.80  		MenuItem newItem = file.addItem("New", null);
    6.81  		newItem.addItem("Day...", newDayCommand);
    6.82          newItem.addItem("Task...", newTaskCommand);
    6.83          newItem.addItem("Work...", newWorkCommand);
    6.84 -        vlMain.addComponent(menubar);
    6.85 +        MenuItem edit = menuBar.addItem("Edit", null);
    6.86 +        edit.addItem("Day...", editDayCommand);
    6.87 +        edit.addItem("Task...", editTaskCommand);
    6.88 +        edit.addItem("Work...", editWorkCommand);
    6.89 +        vlMain.addComponent(menuBar);
    6.90  		
    6.91  		LocalEntityProvider dayProvider = new CachingLocalEntityProvider(Day.class);
    6.92  		dayProvider.setEntityManager(EM);
    6.93 @@ -114,6 +160,13 @@
    6.94  		dayTable.setSizeFull();
    6.95  		dayTable.setContainerDataSource(dayContainer);
    6.96  		dayTable.setVisibleColumns(new String[]{
    6.97 +				"formattedDay",
    6.98 +				"startWork",
    6.99 +				"endWork",
   6.100 +				"hours",
   6.101 +		});
   6.102 +		dayTable.setSortContainerPropertyId("day");
   6.103 +		dayTable.setColumnHeaders(new String[]{
   6.104  				"day",
   6.105  				"startWork",
   6.106  				"endWork",
   6.107 @@ -147,7 +200,7 @@
   6.108  		workContainer.setEntityProvider(workProvider);
   6.109  		
   6.110  		workTable = new Table();
   6.111 -		workTable.setSelectable(true);
   6.112 +		workTable.setSelectable(false);
   6.113  		workTable.setEditable(false);
   6.114  		workTable.setImmediate(true);
   6.115  		workTable.setSizeFull();
   6.116 @@ -159,6 +212,7 @@
   6.117  				"result",
   6.118  		});
   6.119  		workTable.setColumnWidth("result", 200);
   6.120 +		workTable.setSortContainerPropertyId("day");
   6.121  		vlMain.addComponent(workTable);
   6.122  		vlMain.setExpandRatio(workTable, 1f);
   6.123  	}
     7.1 --- a/src/main/resources/META-INF/persistence.xml	Tue Aug 23 14:48:38 2011 +0300
     7.2 +++ b/src/main/resources/META-INF/persistence.xml	Tue Aug 23 16:21:44 2011 +0300
     7.3 @@ -16,7 +16,6 @@
     7.4  			<property name="openjpa.ConnectionDriverName" value="oracle.jdbc.OracleDriver"/>
     7.5  			<property name="openjpa.ConnectionUserName" value="d_mywork"/>
     7.6  			<property name="openjpa.ConnectionURL" value="jdbc:oracle:thin:@minidev:1521:ora"/>
     7.7 -			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
     7.8  		</properties>
     7.9  	</persistence-unit>
    7.10  </persistence>