1 | package eu.clarin.cmdi.virtualcollectionregistry.gui.wizard; |
---|
2 | |
---|
3 | import eu.clarin.cmdi.virtualcollectionregistry.service.impl.ReferenceValidator; |
---|
4 | import eu.clarin.cmdi.virtualcollectionregistry.gui.VolatileEntityModel; |
---|
5 | import java.util.Arrays; |
---|
6 | |
---|
7 | import org.apache.wicket.markup.html.form.DropDownChoice; |
---|
8 | import org.apache.wicket.markup.html.form.EnumChoiceRenderer; |
---|
9 | import org.apache.wicket.markup.html.form.Form; |
---|
10 | import org.apache.wicket.markup.html.form.RequiredTextField; |
---|
11 | import org.apache.wicket.markup.html.form.TextField; |
---|
12 | import org.apache.wicket.markup.html.panel.FeedbackPanel; |
---|
13 | import org.apache.wicket.model.IModel; |
---|
14 | import org.apache.wicket.model.Model; |
---|
15 | import org.apache.wicket.validation.validator.StringValidator; |
---|
16 | |
---|
17 | import eu.clarin.cmdi.virtualcollectionregistry.gui.dialog.ModalEditDialogBase; |
---|
18 | import eu.clarin.cmdi.virtualcollectionregistry.model.Resource; |
---|
19 | import org.apache.wicket.markup.html.form.TextArea; |
---|
20 | |
---|
21 | @SuppressWarnings("serial") |
---|
22 | public abstract class EditResourceDialog extends ModalEditDialogBase<Resource> { |
---|
23 | |
---|
24 | private final class Content extends |
---|
25 | ModalEditDialogBase<Resource>.ContentPanel { |
---|
26 | |
---|
27 | private final Form<Resource> form; |
---|
28 | private final FeedbackPanel feedbackPanel; |
---|
29 | |
---|
30 | public Content(String id, IModel<Resource> model) { |
---|
31 | super(id); |
---|
32 | form = new Form<>("editResourceForm", model); |
---|
33 | |
---|
34 | form.add(new DropDownChoice<>("type", |
---|
35 | Arrays.asList(Resource.Type.values()), |
---|
36 | new EnumChoiceRenderer<Resource.Type>(this)) |
---|
37 | .setRequired(true) |
---|
38 | ); |
---|
39 | |
---|
40 | form.add(new RequiredTextField<String>("ref") |
---|
41 | .add(new StringValidator.MaximumLengthValidator(255)) |
---|
42 | .add(new ReferenceValidator())); |
---|
43 | |
---|
44 | form.add(new TextField<String>("label") |
---|
45 | .add(new StringValidator.MaximumLengthValidator(255))); |
---|
46 | |
---|
47 | form.add(new TextArea<String>("description")); |
---|
48 | |
---|
49 | feedbackPanel = new FeedbackPanel("feedback"); |
---|
50 | form.add(feedbackPanel); |
---|
51 | add(form); |
---|
52 | } |
---|
53 | |
---|
54 | @Override |
---|
55 | public Form<Resource> getForm() { |
---|
56 | return form; |
---|
57 | } |
---|
58 | |
---|
59 | @Override |
---|
60 | public FeedbackPanel getFeedbackPanel() { |
---|
61 | return feedbackPanel; |
---|
62 | } |
---|
63 | } // class EditResourceDialog.Content |
---|
64 | |
---|
65 | public EditResourceDialog(final String id) { |
---|
66 | super(id, Model.of("Add/Edit Resource")); |
---|
67 | setInitialWidth(600); |
---|
68 | } |
---|
69 | |
---|
70 | @Override |
---|
71 | protected ModalEditDialogBase<Resource>.ContentPanel |
---|
72 | createContentPanel(String id, IModel<Resource> model) { |
---|
73 | return new Content(id, model); |
---|
74 | } |
---|
75 | |
---|
76 | @Override |
---|
77 | protected final IModel<Resource> newInstanceModel() { |
---|
78 | return new VolatileEntityModel<>(new Resource()); |
---|
79 | } |
---|
80 | |
---|
81 | @Override |
---|
82 | protected final IModel<Resource> createEmptyModel() { |
---|
83 | return new VolatileEntityModel<>(null); |
---|
84 | } |
---|
85 | |
---|
86 | @Override |
---|
87 | protected String getCssClass() { |
---|
88 | return "editResourceDialog"; |
---|
89 | } |
---|
90 | |
---|
91 | } // EditResourceDialog |
---|