1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.forum.app.action;
35
36 import info.magnolia.module.forum.DefaultForumManager;
37 import info.magnolia.module.forum.ForumManager;
38 import info.magnolia.ui.admincentral.dialog.action.SaveDialogAction;
39 import info.magnolia.ui.api.action.ActionExecutionException;
40 import info.magnolia.ui.form.EditorCallback;
41 import info.magnolia.ui.form.EditorValidator;
42
43 import javax.inject.Inject;
44 import javax.jcr.RepositoryException;
45
46 import org.slf4j.Logger;
47 import org.slf4j.LoggerFactory;
48
49 import com.vaadin.v7.data.Item;
50
51
52
53
54
55
56 public class SaveDialogNewForumAction extends SaveDialogAction {
57
58 private static final Logger log = LoggerFactory.getLogger(SaveDialogNewForumAction.class);
59
60 @Inject
61 public SaveDialogNewForumAction(SaveDialogNewForumActionDefinition definition, Item item, EditorValidator validator, EditorCallback callback) {
62 super(definition, item, validator, callback);
63 }
64
65 @Override
66 public void execute() throws ActionExecutionException {
67
68 validator.showValidation(true);
69 if (validator.isValid()) {
70 try {
71 ForumManager forumManager = ForumManager.Factory.getInstance();
72
73 String forumName = String.valueOf(item.getItemProperty("shortname").getValue());
74 String forumTitle = String.valueOf(item.getItemProperty("title").getValue());
75 boolean allowsNesting = "true".equals(String.valueOf(item.getItemProperty(DefaultForumManager.ALLOWS_NESTING_MESSAGES).getValue()));
76
77 forumManager.createForum(forumName, forumTitle, allowsNesting);
78 } catch (final RepositoryException e) {
79 throw new ActionExecutionException(e);
80 }
81 callback.onSuccess(getDefinition().getName());
82 } else {
83 log.info("Validation error(s) occurred. No save performed.");
84 }
85 }
86
87 }