Changeset 5456


Ignore:
Timestamp:
07/08/14 07:48:30 (10 years ago)
Author:
Twan Goosen
Message:

Fixed adding and removing keywords to collections

Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/VolatileEntityModel.java

    r5446 r5456  
    22
    33import eu.clarin.cmdi.virtualcollectionregistry.model.IdentifiedEntity;
     4import java.io.Serializable;
    45import javax.persistence.EntityManager;
    56import org.apache.wicket.model.IModel;
     
    1718 * @see EntityManager#merge(java.lang.Object)
    1819 */
    19 public class VolatileEntityModel<T extends IdentifiedEntity> implements IModel<T> {
     20public class VolatileEntityModel<T extends IdentifiedEntity & Serializable> implements IModel<T> {
    2021
    2122    private final static Logger logger = LoggerFactory.getLogger(VolatileEntityModel.class);
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/wizard/AddKeywordDialog.java

    r5447 r5456  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui.wizard;
    22
     3import eu.clarin.cmdi.virtualcollectionregistry.gui.DynamicProxyModel;
    34import org.apache.wicket.markup.html.form.Form;
    45import org.apache.wicket.markup.html.form.RequiredTextField;
     
    1314@SuppressWarnings("serial")
    1415public abstract class AddKeywordDialog extends ModalEditDialogBase<String> {
     16
     17
    1518    private final class Content extends
    1619            ModalEditDialogBase<String>.ContentPanel {
     20
    1721        private final Form<String> form;
    1822        private final FeedbackPanel feedbackPanel;
     
    2125            super(id);
    2226            form = new Form<String>("addKeywordForm", model);
    23             final TextField<String> keywordField =
    24                 new RequiredTextField<String>("keyword", form.getModel());
     27            final TextField<String> keywordField
     28                    = new RequiredTextField<String>("keyword", new DynamicProxyModel<String>() {
     29
     30                @Override
     31                protected IModel<String> getWrappedModel() {
     32                    return form.getModel();
     33                }
     34            });
    2535            keywordField.add(new StringValidator.MaximumLengthValidator(255));
    2636            form.add(keywordField);
     
    4858    @Override
    4959    protected ModalEditDialogBase<String>.ContentPanel
    50         createContentPanel(String id, IModel<String> model) {
     60            createContentPanel(String id, IModel<String> model) {
    5161        return new Content(id, model);
    5262    }
     
    5464    @Override
    5565    protected final IModel<String> newInstanceModel() {
    56         return new Model<String>();
     66        return Model.of("");
    5767    }
    5868
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/wizard/CreateVirtualCollectionWizard.java

    r5448 r5456  
    22
    33import eu.clarin.cmdi.virtualcollectionregistry.gui.VolatileEntityModel;
     4import eu.clarin.cmdi.virtualcollectionregistry.gui.dialog.ConfirmationDialog;
     5import eu.clarin.cmdi.virtualcollectionregistry.model.Creator;
     6import eu.clarin.cmdi.virtualcollectionregistry.model.Resource;
     7import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
    48import java.util.Arrays;
    59import java.util.Iterator;
    610import java.util.List;
    7 
    811import org.apache.wicket.Component;
    912import org.apache.wicket.ajax.AjaxRequestTarget;
     
    3942import org.apache.wicket.model.IModel;
    4043import org.apache.wicket.model.Model;
     44import org.apache.wicket.model.PropertyModel;
    4145import org.apache.wicket.model.StringResourceModel;
    4246import org.apache.wicket.validation.validator.StringValidator;
    4347import org.apache.wicket.validation.validator.UrlValidator;
    4448
    45 import eu.clarin.cmdi.virtualcollectionregistry.gui.dialog.ConfirmationDialog;
    46 import eu.clarin.cmdi.virtualcollectionregistry.model.Creator;
    47 import eu.clarin.cmdi.virtualcollectionregistry.model.Resource;
    48 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
    49 
    5049@SuppressWarnings("serial")
    5150public abstract class CreateVirtualCollectionWizard extends WizardBase {
     
    7776            private final ListView<String> itemsView;
    7877
    79             public KeywordsList(String id, final List<String> items) {
     78            public KeywordsList(String id, final IModel<List<String>> itemsModel) {
    8079                super(id);
    8180                setOutputMarkupId(true);
    8281
    83                 itemsView = new ListView<String>("keywords", items) {
     82                itemsView = new ListView<String>("keywords", itemsModel) {
    8483                    @Override
    8584                    protected void populateItem(final ListItem<String> item) {
     
    141140                            new EnumChoiceRenderer<VirtualCollection.Reproducibility>(this));
    142141            add(reproducibilityChoice);
    143             final TextArea<String> reproducibilityNoticeArea
     142                final TextArea<String> reproducibilityNoticeArea
    144143                    = new TextArea<String>("reproducibilityNotice");
    145144            add(reproducibilityNoticeArea);
    146145
    147146            final KeywordsList keywordList
    148                     = new KeywordsList("keywordsList", vc.getObject().getKeywords());
     147                    = new KeywordsList("keywordsList",
     148                            new PropertyModel<List<String>>(vc, "keywords"));
    149149            add(keywordList);
    150150            add(new AjaxLink<String>("keywordsAdd") {
     
    158158                @Override
    159159                public void onSubmit(AjaxRequestTarget target, String keyword) {
    160                     if (!vc.getObject().getKeywords().contains(keyword)) {
    161                         vc.getObject().getKeywords().add(keyword);
     160                    final List<String> keywords = vc.getObject().getKeywords();
     161                    if (!keywords.contains(keyword)) {
     162                        keywords.add(keyword);
    162163                    }
    163164                    target.addComponent(keywordList);
Note: See TracChangeset for help on using the changeset viewer.