Changeset 5844
- Timestamp:
- 11/24/14 08:35:50 (10 years ago)
- 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
r5812 r5844 24 24 25 25 <h2>Groups</h2> 26 <ul> 27 <li wicket:id="groups"> 28 <span wicket:id="name">[name]</span> 29 <a wicket:id="select">[Select]</a> 30 </li> 31 </ul> 26 <form wicket:id="groups"> 27 <select wicket:id="group"> 28 <option>Group 1</option> 29 </select> 30 <input type="submit" value="Select" /> 31 </form> 32 32 33 33 34 <div wicket:id="group" style="border: 1px dashed; padding-left: 2em;"> … … 37 38 <form wicket:id="newMember"> 38 39 <div wicket:id="feedback"></div> 39 Principal name: <input type="text" wicket:id="principal" /> <br /> 40 Principal name: 41 <select wicket:id="principal"> 42 <option>user</option> 43 </select> 40 44 <input type="submit" value="Add member" /> 41 45 </form> -
ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/frontend/Groups.java
r5812 r5844 6 6 import clarin.cmdi.componentregistry.impl.database.ValidationException; 7 7 import clarin.cmdi.componentregistry.model.RegistryUser; 8 import clarin.cmdi.componentregistry.persistence.jpa.UserDao; 8 9 import com.google.common.collect.Iterables; 9 10 import com.google.common.collect.Lists; 11 import com.google.common.collect.Ordering; 10 12 import java.util.Collections; 11 13 import java.util.List; … … 14 16 import org.apache.wicket.markup.html.WebMarkupContainer; 15 17 import org.apache.wicket.markup.html.basic.Label; 18 import org.apache.wicket.markup.html.form.DropDownChoice; 16 19 import org.apache.wicket.markup.html.form.Form; 17 20 import org.apache.wicket.markup.html.form.TextField; 18 21 import org.apache.wicket.markup.html.link.ExternalLink; 19 import org.apache.wicket.markup.html.link.Link;20 22 import org.apache.wicket.markup.html.list.ListItem; 21 23 import org.apache.wicket.markup.html.list.ListView; … … 25 27 import org.apache.wicket.model.Model; 26 28 import org.apache.wicket.spring.injection.annot.SpringBean; 29 import org.slf4j.Logger; 30 import org.slf4j.LoggerFactory; 27 31 28 32 /** … … 32 36 public class Groups extends SecureAdminWebPage { 33 37 38 private final static Logger logger = LoggerFactory.getLogger(Groups.class); 39 34 40 @SpringBean 35 41 private GroupService groupService; 42 @SpringBean 43 private UserDao userDao; 36 44 private final IModel<Long> selectedGroup = new Model<Long>(null); 37 45 … … 69 77 70 78 private Component createGroupList(String id) { 71 final IModel<List> groupsModel = new AbstractReadOnlyModel<List>() { 72 73 @Override 74 public List getObject() { 79 final IModel<String> groupModel = new Model<String>(null); 80 final Form form = new Form(id) { 81 82 @Override 83 protected void onSubmit() { 84 final String groupName = groupModel.getObject(); 85 if (groupName != null) { 86 try { 87 final Long groupId = (Long) groupService.getGroupIdByName(groupName); 88 selectedGroup.setObject(groupId); 89 } catch (ItemNotFoundException ex) { 90 logger.warn("Could", ex); 91 selectedGroup.setObject(null); 92 } 93 } 94 } 95 96 }; 97 98 // model for group options 99 final IModel<List<String>> groupsModel = new AbstractReadOnlyModel<List<String>>() { 100 101 @Override 102 public List<String> getObject() { 75 103 return groupService.listGroupNames(); 76 104 } 77 105 }; 78 106 79 return new ListView(id, groupsModel) { 80 81 @Override 82 protected void populateItem(final ListItem li) { 83 li.add(new Label("name", li.getModel())); 84 li.add(new Link("select") { 85 86 @Override 87 public void onClick() { 88 final String groupName = (String) li.getModelObject(); 89 try { 90 final Long groupId = (Long) groupService.getGroupIdByName(groupName); 91 selectedGroup.setObject(groupId); 92 } catch (ItemNotFoundException ex) { 93 selectedGroup.setObject(null); 94 } 95 } 96 }); 97 } 98 }; 99 107 // group selector 108 final DropDownChoice<String> groupChoice = new DropDownChoice<String>("group", groupModel, groupsModel); 109 groupChoice.setRequired(true); 110 form.add(groupChoice); 111 112 return form; 100 113 } 101 114 … … 129 142 130 143 private Form createNewMemberForm(String id) { 131 final IModel< String> principalModel = new Model<String>("");144 final IModel<RegistryUser> principalModel = new Model<RegistryUser>(null); 132 145 final Form memberForm = new Form(id) { 133 146 … … 136 149 try { 137 150 final String groupName = groupService.getGroupNameById(selectedGroup.getObject()); 138 groupService.makeMember(principalModel.getObject() , groupName);151 groupService.makeMember(principalModel.getObject().getPrincipalName(), groupName); 139 152 info("User " + principalModel.getObject() + " added to group"); 140 153 } catch (ItemNotFoundException ex) { … … 145 158 }; 146 159 memberForm.add(new FeedbackPanel("feedback")); 147 memberForm.add(new TextField("principal", principalModel).setRequired(true)); 160 161 final IModel<List<RegistryUser>> usersModel = new AbstractReadOnlyModel<List<RegistryUser>>() { 162 163 @Override 164 public List<RegistryUser> getObject() { 165 // return all users sorted by their tostring value (ignoring case) 166 return new Ordering<Object>() { 167 168 @Override 169 public int compare(Object t, Object t1) { 170 return t.toString().compareToIgnoreCase(t1.toString()); 171 } 172 173 }.sortedCopy(userDao.getAllUsers()); 174 } 175 }; 176 177 final DropDownChoice<RegistryUser> usersChoice = new DropDownChoice<RegistryUser>("principal", principalModel, usersModel); 178 usersChoice.setRequired(true); 179 memberForm.add(usersChoice); 148 180 return memberForm; 149 181 } -
ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/model/RegistryUser.java
r4098 r5844 24 24 @Column(name = "name") 25 25 private String name; 26 27 @Column(name = "principal_name", unique =true)26 27 @Column(name = "principal_name", unique = true) 28 28 private String principalName; 29 29 30 30 @Id 31 @SequenceGenerator( name = "registry_user_id_seq", sequenceName = "registry_user_id_seq", allocationSize = 1, initialValue = 1)32 @GeneratedValue( strategy = GenerationType.SEQUENCE, generator = "registry_user_id_seq")31 @SequenceGenerator(name = "registry_user_id_seq", sequenceName = "registry_user_id_seq", allocationSize = 1, initialValue = 1) 32 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "registry_user_id_seq") 33 33 @Column(name = "id") 34 34 private Long id; 35 35 36 36 public void setName(String name) { 37 37 this.name = name; 38 38 } 39 39 40 40 public String getName() { 41 41 return name; 42 42 } 43 43 44 44 public void setPrincipalName(String principalName) { 45 45 this.principalName = principalName; 46 46 } 47 47 48 48 public String getPrincipalName() { 49 49 return principalName; 50 50 } 51 51 52 52 public Long getId() { 53 53 return id; 54 54 } 55 55 56 56 public void setId(Long id) { 57 57 this.id = id; 58 58 } 59 60 @Override 61 public String toString() { 62 if (getName() == null) { 63 return getPrincipalName(); 64 } else { 65 return String.format("%s [%s]", getName(), getPrincipalName()); 66 } 67 } 68 59 69 }
Note: See TracChangeset
for help on using the changeset viewer.