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.blossom.dialog;
35
36 import info.magnolia.cms.core.Content;
37 import info.magnolia.cms.gui.dialog.Dialog;
38 import info.magnolia.module.admininterface.dialogs.ConfiguredDialog;
39 import info.magnolia.module.blossom.BlossomModule;
40
41 import javax.jcr.RepositoryException;
42 import javax.servlet.http.HttpServletRequest;
43 import javax.servlet.http.HttpServletResponse;
44
45
46
47
48 public class BlossomConfiguredDialog extends ConfiguredDialog {
49
50 public BlossomConfiguredDialog(String name, HttpServletRequest request, HttpServletResponse response, Content configNode) {
51 super(name, request, response, configNode);
52 }
53
54 @Override
55 protected Dialog createDialog(Content configNode, Content storageNode) throws RepositoryException {
56
57 try {
58
59 DialogCreationContext context = new DialogCreationContext();
60 context.setRequest(request);
61 context.setResponse(response);
62 context.setConfigNode(configNode);
63 context.setWebsiteNode(storageNode);
64 context.setWebsitePath(path);
65
66 BlossomDialogRegistry dialogRegistry = BlossomModule.getDialogRegistry();
67 BlossomDialogDescription dialogDescription = dialogRegistry.getDialogDescription(super.getName());
68
69 DialogCreator dialogCreator = BlossomModule.getDialogCreator();
70 dialogCreator.createDialog(dialogDescription.getFactoryMetaData(), context);
71
72 return context.getDialog();
73
74 } catch (RepositoryException e) {
75 throw e;
76 } catch (RuntimeRepositoryException e) {
77 throw e.getNestedException();
78 } catch (RuntimeException e) {
79 throw e;
80 } catch (Exception e) {
81 throw new RepositoryException(e);
82 }
83 }
84 }