# HG changeset patch
# User indvdum
# Date 1314105704 -10800
# Node ID 93ea5ae33f02d095a8f30fa0f20e9de4535bb022
# Parent e576975e68f7130cdae5671bb1a9fefed1c5e030
Добавлено редактирование объектов.
diff -r e576975e68f7 -r 93ea5ae33f02 src/main/java/ru/indvdum/mywork/openjpa/model/Day.java
--- a/src/main/java/ru/indvdum/mywork/openjpa/model/Day.java Tue Aug 23 14:48:38 2011 +0300
+++ b/src/main/java/ru/indvdum/mywork/openjpa/model/Day.java Tue Aug 23 16:21:44 2011 +0300
@@ -80,6 +80,10 @@
public Date getDay() {
return day;
}
+
+ public String getFormattedDay() {
+ return toString();
+ }
public void setDay(Date day) {
this.day = day;
diff -r e576975e68f7 -r 93ea5ae33f02 src/main/java/ru/indvdum/mywork/openjpa/model/Task.java
--- a/src/main/java/ru/indvdum/mywork/openjpa/model/Task.java Tue Aug 23 14:48:38 2011 +0300
+++ b/src/main/java/ru/indvdum/mywork/openjpa/model/Task.java Tue Aug 23 16:21:44 2011 +0300
@@ -67,7 +67,7 @@
}
public String getName() {
- return name;
+ return name != null ? name : "";
}
public void setName(String name) {
@@ -75,7 +75,7 @@
}
public String getDescription() {
- return description;
+ return description != null ? description : "";
}
public void setDescription(String description) {
diff -r e576975e68f7 -r 93ea5ae33f02 src/main/java/ru/indvdum/mywork/vaadin/EditDayDialog.java
--- a/src/main/java/ru/indvdum/mywork/vaadin/EditDayDialog.java Tue Aug 23 14:48:38 2011 +0300
+++ b/src/main/java/ru/indvdum/mywork/vaadin/EditDayDialog.java Tue Aug 23 16:21:44 2011 +0300
@@ -32,15 +32,16 @@
private PopupDateField dayDate = null;
private TextField dayHours = null;
- public EditDayDialog(MyWorkApplication myApp, EditState state, Day day) throws Exception {
+ public EditDayDialog(MyWorkApplication myApp, Day day) throws Exception {
super();
this.myApp = myApp;
- this.state = state;
+ if(day == null)
+ state = EditState.CREATE;
+ else
+ state = EditState.EDIT;
switch(state){
case CREATE:
setCaption("Creating new day");
- if(day != null)
- throw new Exception("Illegal argument: day must be null in creating state.");
day = new Day();
Calendar calDay = Calendar.getInstance();
calDay.set(Calendar.HOUR_OF_DAY, 0);
@@ -65,8 +66,6 @@
break;
case EDIT:
setCaption("Editing day");
- if(day == null)
- throw new Exception("Illegal argument: day must be not null in editing state.");
this.day = day;
break;
}
diff -r e576975e68f7 -r 93ea5ae33f02 src/main/java/ru/indvdum/mywork/vaadin/EditTaskDialog.java
--- a/src/main/java/ru/indvdum/mywork/vaadin/EditTaskDialog.java Tue Aug 23 14:48:38 2011 +0300
+++ b/src/main/java/ru/indvdum/mywork/vaadin/EditTaskDialog.java Tue Aug 23 16:21:44 2011 +0300
@@ -22,15 +22,16 @@
private TextField taskName = null;
private RichTextArea taskDescription = null;
- public EditTaskDialog(MyWorkApplication myApp, EditState state, Task task) throws Exception {
+ public EditTaskDialog(MyWorkApplication myApp, Task task) throws Exception {
super();
this.myApp = myApp;
- this.state = state;
+ if(task == null)
+ state = EditState.CREATE;
+ else
+ state = EditState.EDIT;
switch(state){
case CREATE:
setCaption("Creating new task");
- if(task != null)
- throw new Exception("Illegal argument: task must be null in creating state.");
task = new Task();
task.setName("");
task.setDescription("");
@@ -38,8 +39,6 @@
break;
case EDIT:
setCaption("Editing task");
- if(task == null)
- throw new Exception("Illegal argument: task must be not null in editing state.");
this.task = task;
break;
}
diff -r e576975e68f7 -r 93ea5ae33f02 src/main/java/ru/indvdum/mywork/vaadin/EditWorkDialog.java
--- a/src/main/java/ru/indvdum/mywork/vaadin/EditWorkDialog.java Tue Aug 23 14:48:38 2011 +0300
+++ b/src/main/java/ru/indvdum/mywork/vaadin/EditWorkDialog.java Tue Aug 23 16:21:44 2011 +0300
@@ -36,15 +36,16 @@
private TextField workHours = null;
private RichTextArea workResult = null;
- public EditWorkDialog(MyWorkApplication myApp, EditState state, Work work) throws Exception {
+ public EditWorkDialog(MyWorkApplication myApp, Work work) throws Exception {
super();
this.myApp = myApp;
- this.state = state;
+ if(work == null)
+ state = EditState.CREATE;
+ else
+ state = EditState.EDIT;
switch(state){
case CREATE:
setCaption("Creating new work");
- if(work != null)
- throw new Exception("Illegal argument: work must be null in creating state.");
work = new Work();
work.setHours(0f);
work.setResult("");
@@ -52,8 +53,6 @@
break;
case EDIT:
setCaption("Editing work");
- if(work == null)
- throw new Exception("Illegal argument: work must be not null in editing state.");
this.work = work;
break;
}
diff -r e576975e68f7 -r 93ea5ae33f02 src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java
--- a/src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java Tue Aug 23 14:48:38 2011 +0300
+++ b/src/main/java/ru/indvdum/mywork/vaadin/MyWorkApplication.java Tue Aug 23 16:21:44 2011 +0300
@@ -49,7 +49,7 @@
public void menuSelected(MenuItem selectedItem) {
EditDayDialog dialog = null;
try {
- dialog = new EditDayDialog(thisObject, EditState.CREATE, null);
+ dialog = new EditDayDialog(thisObject, null);
} catch (Exception e) {
e.printStackTrace();
}
@@ -60,7 +60,7 @@
public void menuSelected(MenuItem selectedItem) {
EditTaskDialog dialog = null;
try {
- dialog = new EditTaskDialog(thisObject, EditState.CREATE, null);
+ dialog = new EditTaskDialog(thisObject, null);
} catch (Exception e) {
e.printStackTrace();
}
@@ -71,7 +71,49 @@
public void menuSelected(MenuItem selectedItem) {
EditWorkDialog dialog = null;
try {
- dialog = new EditWorkDialog(thisObject, EditState.CREATE, null);
+ dialog = new EditWorkDialog(thisObject, null);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ getMainWindow().addWindow(dialog);
+ }
+ };
+ private Command editDayCommand = new Command() {
+ public void menuSelected(MenuItem selectedItem) {
+ EditDayDialog dialog = null;
+ Day day = EM.find(Day.class, dayTable.getValue());
+ if(day == null)
+ return;
+ try {
+ dialog = new EditDayDialog(thisObject, day);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ getMainWindow().addWindow(dialog);
+ }
+ };
+ private Command editTaskCommand = new Command() {
+ public void menuSelected(MenuItem selectedItem) {
+ EditTaskDialog dialog = null;
+ Task task = EM.find(Task.class, taskTable.getValue());
+ if(task == null)
+ return;
+ try {
+ dialog = new EditTaskDialog(thisObject, task);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ getMainWindow().addWindow(dialog);
+ }
+ };
+ private Command editWorkCommand = new Command() {
+ public void menuSelected(MenuItem selectedItem) {
+ EditWorkDialog dialog = null;
+ Work work = EM.find(Work.class, workTable.getValue());
+ if(work == null)
+ return;
+ try {
+ dialog = new EditWorkDialog(thisObject, work);
} catch (Exception e) {
e.printStackTrace();
}
@@ -94,13 +136,17 @@
vlMain.setSpacing(true);
tabSheet.addTab(vlMain, "Main page", null);
- MenuBar menubar = new MenuBar();
- MenuItem file = menubar.addItem("File", null);
+ MenuBar menuBar = new MenuBar();
+ MenuItem file = menuBar.addItem("File", null);
MenuItem newItem = file.addItem("New", null);
newItem.addItem("Day...", newDayCommand);
newItem.addItem("Task...", newTaskCommand);
newItem.addItem("Work...", newWorkCommand);
- vlMain.addComponent(menubar);
+ MenuItem edit = menuBar.addItem("Edit", null);
+ edit.addItem("Day...", editDayCommand);
+ edit.addItem("Task...", editTaskCommand);
+ edit.addItem("Work...", editWorkCommand);
+ vlMain.addComponent(menuBar);
LocalEntityProvider dayProvider = new CachingLocalEntityProvider(Day.class);
dayProvider.setEntityManager(EM);
@@ -114,6 +160,13 @@
dayTable.setSizeFull();
dayTable.setContainerDataSource(dayContainer);
dayTable.setVisibleColumns(new String[]{
+ "formattedDay",
+ "startWork",
+ "endWork",
+ "hours",
+ });
+ dayTable.setSortContainerPropertyId("day");
+ dayTable.setColumnHeaders(new String[]{
"day",
"startWork",
"endWork",
@@ -147,7 +200,7 @@
workContainer.setEntityProvider(workProvider);
workTable = new Table();
- workTable.setSelectable(true);
+ workTable.setSelectable(false);
workTable.setEditable(false);
workTable.setImmediate(true);
workTable.setSizeFull();
@@ -159,6 +212,7 @@
"result",
});
workTable.setColumnWidth("result", 200);
+ workTable.setSortContainerPropertyId("day");
vlMain.addComponent(workTable);
vlMain.setExpandRatio(workTable, 1f);
}
diff -r e576975e68f7 -r 93ea5ae33f02 src/main/resources/META-INF/persistence.xml
--- a/src/main/resources/META-INF/persistence.xml Tue Aug 23 14:48:38 2011 +0300
+++ b/src/main/resources/META-INF/persistence.xml Tue Aug 23 16:21:44 2011 +0300
@@ -16,7 +16,6 @@
-