Добавлено редактирование объектов.
1 package ru.indvdum.mywork.vaadin;
3 import static ru.indvdum.mywork.MyWork.EM;
4 import ru.indvdum.mywork.openjpa.model.Task;
6 import com.vaadin.ui.Alignment;
7 import com.vaadin.ui.Button;
8 import com.vaadin.ui.HorizontalLayout;
9 import com.vaadin.ui.Label;
10 import com.vaadin.ui.RichTextArea;
11 import com.vaadin.ui.TextField;
12 import com.vaadin.ui.VerticalLayout;
13 import com.vaadin.ui.Window;
14 import com.vaadin.ui.Button.ClickEvent;
15 import com.vaadin.ui.Button.ClickListener;
17 public class EditTaskDialog extends Window implements ClickListener {
19 private MyWorkApplication myApp = null;
20 private EditState state = null;
21 private Task task = null;
22 private TextField taskName = null;
23 private RichTextArea taskDescription = null;
25 public EditTaskDialog(MyWorkApplication myApp, Task task) throws Exception {
29 state = EditState.CREATE;
31 state = EditState.EDIT;
34 setCaption("Creating new task");
37 task.setDescription("");
41 setCaption("Editing task");
52 VerticalLayout vl = new VerticalLayout();
58 HorizontalLayout hlName = new HorizontalLayout();
59 hlName.setWidth("100%");
60 Label lblName = new Label("Name:");
61 lblName.setWidth("100%");
62 hlName.addComponent(lblName);
63 hlName.setExpandRatio(lblName, 1f);
64 taskName = new TextField();
65 taskName.setWidth("100%");
66 taskName.setValue(task.getName());
67 hlName.addComponent(taskName);
68 hlName.setExpandRatio(taskName, 5f);
69 vl.addComponent(hlName);
71 taskDescription = new RichTextArea("Description");
72 taskDescription.setValue(task.getDescription());
73 taskDescription.setSizeFull();
74 vl.addComponent(taskDescription);
75 vl.setExpandRatio(taskDescription, 1f);
77 HorizontalLayout hlOk = new HorizontalLayout();
78 hlOk.setWidth("100%");
79 Button okButton = new Button();
82 okButton.setCaption("Create");
85 okButton.setCaption("Save");
88 okButton.addListener((ClickListener)this);
89 hlOk.addComponent(okButton);
90 hlOk.setComponentAlignment(okButton, Alignment.MIDDLE_RIGHT);
91 vl.addComponent(hlOk);
95 public void buttonClick(ClickEvent event) {
96 task.setName(taskName.getValue().toString());
97 task.setDescription(taskDescription.getValue().toString());
99 EM.getTransaction().begin();
101 EM.getTransaction().commit();
104 if(EM.getTransaction().isActive())
105 EM.getTransaction().rollback();
107 getParent().removeWindow(this);
108 myApp.getTaskTable().requestRepaint();