Changeset 5810 for ComponentRegistry


Ignore:
Timestamp:
11/12/14 15:08:27 (10 years ago)
Author:
Twan Goosen
Message:

listing and creation of groups
refs #691

Location:
ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/frontend/Groups.html

    r5808 r5810  
    22    xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd">
    33    <head>
    4         <title>CMDI ComponentRegistry Statistics Page</title>
     4        <title>CMDI ComponentRegistry Group Management</title>
    55        <link rel="stylesheet" type="text/css" href="css/adminstyle.css"/>
    66    </head>
     
    1010            <a wicket:id="home">AdminHome</a>
    1111        </div>
     12
     13        <h2>New group</h2>
     14        <form wicket:id="groupForm">
     15            <div wicket:id="feedback"></div>           
     16            Group name: <input type="text" wicket:id="name" /> <br />
     17            Owner name: <input type="text" wicket:id="owner" /> <br />
     18            <input type="submit" value="Create group" />
     19        </form>
     20
     21        <h2>Groups</h2>
     22        <ul>
     23            <li wicket:id="groups">
     24                <span wicket:id="name">[name]</span>
     25                <a wicket:id="select">[Select]</a>
     26            </li>
     27        </ul>
    1228    </body>
    1329</html>
  • ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/frontend/Groups.java

    r5808 r5810  
    22
    33import clarin.cmdi.componentregistry.impl.database.GroupService;
     4import clarin.cmdi.componentregistry.impl.database.ValidationException;
     5import java.util.List;
     6import org.apache.wicket.Component;
    47import org.apache.wicket.PageParameters;
     8import org.apache.wicket.behavior.IBehavior;
     9import org.apache.wicket.markup.html.basic.Label;
     10import org.apache.wicket.markup.html.form.Form;
     11import org.apache.wicket.markup.html.form.TextField;
     12import org.apache.wicket.markup.html.link.Link;
     13import org.apache.wicket.markup.html.list.ListItem;
     14import org.apache.wicket.markup.html.list.ListView;
     15import org.apache.wicket.markup.html.panel.FeedbackPanel;
     16import org.apache.wicket.model.AbstractReadOnlyModel;
     17import org.apache.wicket.model.IModel;
     18import org.apache.wicket.model.Model;
    519import org.apache.wicket.spring.injection.annot.SpringBean;
    620
     
    923 * @author Twan Goosen <twan.goosen@mpi.nl>
    1024 */
    11 public class Groups extends SecureAdminWebPage{
     25public class Groups extends SecureAdminWebPage {
    1226
    1327    @SpringBean
    1428    private GroupService groupService;
    15    
     29    private final IModel<String> selectedGroup = new Model<String>(null);
     30
    1631    public Groups(PageParameters parameters) {
    1732        super(parameters);
    1833        addLinks();
     34
     35        add(createGroupForm("groupForm"));
     36        add(createGroupList("groups"));
    1937    }
    20    
     38
     39    private Component createGroupForm(String id) {
     40        final IModel<String> nameModel = new Model<String>("");
     41        final IModel<String> ownerModel = new Model<String>("");
     42
     43        final Form form = new Form(id) {
     44
     45            @Override
     46            protected void onSubmit() {
     47                try {
     48                    final long groupId = groupService.createNewGroup(nameModel.getObject(), ownerModel.getObject());
     49                    info("Group with id " + groupId + " has been created");
     50                } catch (ValidationException ex) {
     51                    error(ex.getMessage());
     52                }
     53            }
     54
     55        };
     56        form.add(new FeedbackPanel("feedback"));
     57        form.add(new TextField("name", nameModel).setRequired(true));
     58        form.add(new TextField("owner", ownerModel).setRequired(true));
     59        return form;
     60    }
     61
     62    private Component createGroupList(String id) {
     63        final IModel<List> groupsModel = new AbstractReadOnlyModel<List>() {
     64
     65            @Override
     66            public List getObject() {
     67                return groupService.listGroupNames();
     68            }
     69        };
     70
     71        return new ListView(id, groupsModel) {
     72
     73            @Override
     74            protected void populateItem(final ListItem li) {
     75                li.add(new Label("name", li.getModel()));
     76                li.add(new Link("select") {
     77
     78                    @Override
     79                    public void onClick() {
     80                        selectedGroup.setObject((String) li.getModelObject());
     81                    }
     82                });
     83            }
     84        };
     85
     86    }
     87
    2188}
  • ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/impl/database/GroupService.java

    r5800 r5810  
    2727     * @throws ValidationException
    2828     */
    29     long createNewGroup(String name, String ownerPrincipalName);
     29    long createNewGroup(String name, String ownerPrincipalName) throws ValidationException;
    3030   
    3131    /**
Note: See TracChangeset for help on using the changeset viewer.