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;
22 public class EditTaskDialog extends Window implements ClickListener {
24 private MyWorkApplication myApp = null;
25 private EditState state = null;
26 private Task task = null;
27 private TextField taskName = null;
28 private RichTextArea taskDescription = null;
30 public EditTaskDialog(MyWorkApplication myApp, Task task) throws Exception {
34 state = EditState.CREATE;
36 state = EditState.EDIT;
39 setCaption("Creating new task");
42 task.setDescription("");
46 setCaption("Editing task");
57 VerticalLayout vl = new VerticalLayout();
63 HorizontalLayout hlName = new HorizontalLayout();
64 hlName.setWidth("100%");
65 Label lblName = new Label("Name:");
66 lblName.setWidth("100%");
67 hlName.addComponent(lblName);
68 hlName.setExpandRatio(lblName, 1f);
69 taskName = new TextField();
70 taskName.setWidth("100%");
71 taskName.setValue(task.getName());
72 hlName.addComponent(taskName);
73 hlName.setExpandRatio(taskName, 5f);
74 vl.addComponent(hlName);
76 taskDescription = new RichTextArea("Description");
77 taskDescription.setValue(task.getDescription());
78 taskDescription.setSizeFull();
79 vl.addComponent(taskDescription);
80 vl.setExpandRatio(taskDescription, 1f);
82 HorizontalLayout hlOk = new HorizontalLayout();
83 hlOk.setWidth("100%");
84 Button okButton = new Button();
87 okButton.setCaption("Create");
90 okButton.setCaption("Save");
93 okButton.addListener((ClickListener)this);
94 hlOk.addComponent(okButton);
95 hlOk.setComponentAlignment(okButton, Alignment.MIDDLE_RIGHT);
96 vl.addComponent(hlOk);
100 public void buttonClick(ClickEvent event) {
101 task.setName(taskName.getValue().toString());
102 task.setDescription(taskDescription.getValue().toString());
104 EM.getTransaction().begin();
106 EM.getTransaction().commit();
109 if(EM.getTransaction().isActive())
110 EM.getTransaction().rollback();
112 getParent().removeWindow(this);
113 myApp.getTaskTable().requestRepaint();