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
-~----------~----~----~----~------~----~------~--~---

Reply via email to