Author: ross.gardler
Date: Wed Sep 17 15:39:54 2008
New Revision: 1326
Added:
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/markup/html/list/
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/markup/html/list/InternetAddressListView.java
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/markup/html/list/WebPageListView.java
Modified:
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/PersonSummaryPanel.html
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/PersonSummaryPanel.java
trunk/uk.ac.osswatch.simal.web/src/test/java/uk/ac/osswatch/simal/wicket/panel/TestPersonSummaryPanel.java
Log:
Display emails and homepages in the person summary panel as live links
rather than sets of strings
Added:
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/markup/html/list/InternetAddressListView.java
==============================================================================
--- (empty file)
+++
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/markup/html/list/InternetAddressListView.java
Wed Sep 17 15:39:54 2008
@@ -0,0 +1,68 @@
+package uk.ac.osswatch.simal.wicket.markup.html.list;
+/*
+ *
+ * Copyright 2007 University of Oxford
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.List;
+
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.ExternalLink;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.IModel;
+
+import uk.ac.osswatch.simal.model.IInternetAddress;
+
+/**
+ * ListView for internet addresses. Each address will be rendered as a
clickable
+ * link. The parent component must provide HTML of the form:
+ *
+ * <[![CDATA
+ * <span wicket:id="emailList">
+ * <a href="#" wicket:id="linkURL"><span wicket:id="linkText">Link
Text</span>
+ * </a>
+ * </span>
+ * ]]>
+ *
+ */
+public class InternetAddressListView extends ListView<IInternetAddress> {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Construct.
+ *
+ * @param name
+ * Component name
+ * @param urls
+ * The url list model
+ */
+ public InternetAddressListView(String name, final
IModel<List<IInternetAddress>> urls) {
+ super(name, urls);
+ }
+
+ /**
+ * @see ListView#populateItem(ListItem)
+ */
+ protected void populateItem(ListItem<IInternetAddress> listItem) {
+ final IInternetAddress addr = (IInternetAddress)
listItem.getModelObject();
+ ExternalLink externalLink = new ExternalLink("linkURL",
addr.getAddress());
+ externalLink.add(new Label("linkText", addr.getLabel()));
+ listItem.add(externalLink);
+ }
+}
Added:
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/markup/html/list/WebPageListView.java
==============================================================================
--- (empty file)
+++
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/markup/html/list/WebPageListView.java
Wed Sep 17 15:39:54 2008
@@ -0,0 +1,68 @@
+package uk.ac.osswatch.simal.wicket.markup.html.list;
+/*
+ *
+ * Copyright 2007 University of Oxford
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.List;
+
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.ExternalLink;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.IModel;
+
+import uk.ac.osswatch.simal.model.IDoapHomepage;
+
+/**
+ * ListView for web pages. Each address will be rendered as a clickable
+ * link. The parent component must provide HTML of the form:
+ *
+ * <[![CDATA
+ * <span wicket:id="webPageList">
+ * <a href="#" wicket:id="linkURL"><span wicket:id="linkText">Link
Text</span>
+ * </a>
+ * </span>
+ * ]]>
+ *
+ */
+public class WebPageListView extends ListView<IDoapHomepage> {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Construct.
+ *
+ * @param name
+ * Component name
+ * @param urls
+ * The url list model
+ */
+ public WebPageListView(String name, final IModel<List<IDoapHomepage>>
urls) {
+ super(name, urls);
+ }
+
+ /**
+ * @see ListView#populateItem(ListItem)
+ */
+ protected void populateItem(ListItem<IDoapHomepage> listItem) {
+ final IDoapHomepage page = (IDoapHomepage) listItem.getModelObject();
+ ExternalLink externalLink = new ExternalLink("linkURL", page.getURI());
+ externalLink.add(new Label("linkText", page.getLabel()));
+ listItem.add(externalLink);
+ }
+}
Modified:
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/PersonSummaryPanel.html
==============================================================================
---
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/PersonSummaryPanel.html
(original)
+++
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/PersonSummaryPanel.html
Wed Sep 17 15:39:54 2008
@@ -17,8 +17,8 @@
<wicket:panel>
<div class="content">
<p class="title"><a wicket:id="detailLink" href="#"><span
wicket:id="personName">Person Name</span></a></p>
- <p>Email: <span wicket:id="emails">Email Addresses</span></p>
- <p>Web: <span wicket:id="homepages">Homepages</span></p>
+ <p><span wicket:id="emailList"><a href="#" wicket:id="linkURL"><span
wicket:id="linkText">Link Text</span></a><br/></span></p>
+ <p><span wicket:id="webpageList"><a href="#" wicket:id="linkURL"><span
wicket:id="linkText">Link Text</span></a><br/></span></p>
<a wicket:id="friendsLink" href="#">Friends (open Social API)</a>
<input type="button" wicket:id = "removePersonActionLink"
value="Remove"/>
</div>
Modified:
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/PersonSummaryPanel.java
==============================================================================
---
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/PersonSummaryPanel.java
(original)
+++
trunk/uk.ac.osswatch.simal.web/src/main/java/uk/ac/osswatch/simal/wicket/panel/PersonSummaryPanel.java
Wed Sep 17 15:39:54 2008
@@ -17,16 +17,22 @@
*/
+import java.util.List;
+import java.util.Vector;
+
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.link.PageLink;
import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.LoadableDetachableModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uk.ac.osswatch.simal.SimalProperties;
+import uk.ac.osswatch.simal.model.IDoapHomepage;
+import uk.ac.osswatch.simal.model.IInternetAddress;
import uk.ac.osswatch.simal.model.IPerson;
import uk.ac.osswatch.simal.model.IProject;
import uk.ac.osswatch.simal.rdf.SimalRepositoryException;
@@ -35,6 +41,8 @@
import uk.ac.osswatch.simal.wicket.UserReportableException;
import uk.ac.osswatch.simal.wicket.doap.ProjectDetailPage;
import uk.ac.osswatch.simal.wicket.foaf.PersonDetailPage;
+import
uk.ac.osswatch.simal.wicket.markup.html.list.InternetAddressListView;
+import uk.ac.osswatch.simal.wicket.markup.html.list.WebPageListView;
/**
@@ -63,8 +71,25 @@
PageLink detailLink = new PageLink("detailLink",
PersonDetailPage.getLink(person));
detailLink.add(new Label("personName", person.getLabel()));
add(detailLink);
- add(new Label("emails", person.getEmail().toString()));
- add(new Label("homepages", person.getHomepages().toString()));
+
+ InternetAddressListView emailListView = new
InternetAddressListView("emailList", new
LoadableDetachableModel<List<IInternetAddress>>() {
+ private static final long serialVersionUID = 1L;
+
+ protected List<IInternetAddress> load() {
+ return new Vector<IInternetAddress>(person.getEmail());
+ }
+ });
+ add(emailListView);
+
+ WebPageListView homepageListView = new WebPageListView("webpageList",
new LoadableDetachableModel<List<IDoapHomepage>>() {
+ private static final long serialVersionUID = 1L;
+
+ protected List<IDoapHomepage> load() {
+ return new Vector<IDoapHomepage>(person.getHomepages());
+ }
+ });
+ add(homepageListView);
+
String friendsURL =
SimalProperties.getProperty(SimalProperties.PROPERTY_REST_BASEURL)
+ "/allColleagues/person-" + person.getSimalID() + "/xml";
add(new ExternalLink("friendsLink", friendsURL));
Modified:
trunk/uk.ac.osswatch.simal.web/src/test/java/uk/ac/osswatch/simal/wicket/panel/TestPersonSummaryPanel.java
==============================================================================
---
trunk/uk.ac.osswatch.simal.web/src/test/java/uk/ac/osswatch/simal/wicket/panel/TestPersonSummaryPanel.java
(original)
+++
trunk/uk.ac.osswatch.simal.web/src/test/java/uk/ac/osswatch/simal/wicket/panel/TestPersonSummaryPanel.java
Wed Sep 17 15:39:54 2008
@@ -48,6 +48,6 @@
}
});
tester.assertVisible("panel:detailLink");
- tester.assertVisible("panel:homepages");
+ tester.assertVisible("panel:webpageList");
}
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Simal Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/simal-commits?hl=en
-~----------~----~----~----~------~----~------~--~---