Добавлено редактирование объектов.
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>