1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.panels;
20
21 import org.apache.syncope.client.console.SyncopeConsoleSession;
22 import org.apache.syncope.client.console.pages.BasePage;
23 import org.apache.syncope.client.console.rest.ApplicationRestClient;
24 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
25 import org.apache.syncope.client.ui.commons.Constants;
26 import org.apache.syncope.client.ui.commons.markup.html.form.AjaxTextFieldPanel;
27 import org.apache.syncope.common.lib.to.ApplicationTO;
28 import org.apache.wicket.PageReference;
29 import org.apache.wicket.ajax.AjaxRequestTarget;
30 import org.apache.wicket.model.PropertyModel;
31 import org.apache.wicket.spring.injection.annot.SpringBean;
32
33 public class ApplicationModalPanel extends AbstractModalPanel<ApplicationTO> {
34
35 private static final long serialVersionUID = 4575264480736377795L;
36
37 @SpringBean
38 protected ApplicationRestClient applicationRestClient;
39
40 protected final ApplicationTO application;
41
42 protected final boolean create;
43
44 public ApplicationModalPanel(
45 final ApplicationTO application,
46 final boolean create,
47 final BaseModal<ApplicationTO> modal,
48 final PageReference pageRef) {
49
50 super(modal, pageRef);
51 this.application = application;
52 this.create = create;
53
54 modal.setFormModel(application);
55
56 AjaxTextFieldPanel key = new AjaxTextFieldPanel(
57 Constants.KEY_FIELD_NAME,
58 Constants.KEY_FIELD_NAME,
59 new PropertyModel<>(application, Constants.KEY_FIELD_NAME), false);
60 key.setReadOnly(!create);
61 key.setRequired(true);
62 add(key);
63
64 AjaxTextFieldPanel description = new AjaxTextFieldPanel(
65 Constants.DESCRIPTION_FIELD_NAME, Constants.DESCRIPTION_FIELD_NAME,
66 new PropertyModel<>(application, Constants.DESCRIPTION_FIELD_NAME), false);
67 description.setRequired(false);
68 add(description);
69 }
70
71 @Override
72 public ApplicationTO getItem() {
73 return application;
74 }
75
76 @Override
77 public void onSubmit(final AjaxRequestTarget target) {
78 try {
79 if (create) {
80 applicationRestClient.create(application);
81 } else {
82 applicationRestClient.update(application);
83 }
84 SyncopeConsoleSession.get().success(getString(Constants.OPERATION_SUCCEEDED));
85 this.modal.close(target);
86 } catch (Exception e) {
87 LOG.error("While creating/updating application", e);
88 SyncopeConsoleSession.get().onException(e);
89 }
90 ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target);
91 }
92 }