001 package org.hackystat.projectbrowser.page.sensordata; 002 003 import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator; 004 import org.apache.wicket.markup.html.basic.Label; 005 import org.apache.wicket.markup.html.panel.Panel; 006 import org.apache.wicket.markup.repeater.Item; 007 import org.apache.wicket.markup.repeater.data.DataView; 008 import org.apache.wicket.model.PropertyModel; 009 import org.hackystat.projectbrowser.ProjectBrowserApplication; 010 import org.hackystat.projectbrowser.ProjectBrowserSession; 011 012 /** 013 * Creates a panel for displaying sensor data. 014 * @author Philip Johnson 015 */ 016 public class SensorDataDetailsPanel extends Panel { 017 018 /** For serialization. */ 019 private static final long serialVersionUID = 1L; 020 021 /** 022 * Creates a page to display a table of sensor data instances for a given SDT. 023 * This is a page rather than a panel because it is added to a modal window, and modal 024 * windows apparently want pages, not panels. 025 * @param id The wicket ID. 026 */ 027 public SensorDataDetailsPanel(String id) { 028 super(id); 029 SensorDataSession session = ProjectBrowserSession.get().getSensorDataSession(); 030 SensorDataDetailsProvider provider = session.getSensorDataDetailsProvider(); 031 add(new Label("sdtName", new PropertyModel(session, "sdtName"))); 032 add(new Label("tool", new PropertyModel(session, "tool"))); 033 DataView dataView = new DataView("sensorDataDetailsList", provider) { 034 /** For serialization */ 035 private static final long serialVersionUID = 1L; 036 037 /** 038 * How to populate the table. 039 * @param item The SensorDataDetails item. 040 */ 041 @Override 042 protected void populateItem(Item item) { 043 SensorDataDetails details = (SensorDataDetails) item.getModelObject(); 044 item.add(new Label("timestamp", details.getTimeStamp())); 045 item.add(new Label("runtime", details.getRuntime())); 046 item.add(new Label("sdtName", details.getSdtName())); 047 item.add(new Label("resource", details.getResource())); 048 item.add(new Label("owner", details.getOwner())); 049 item.add(new Label("tool", details.getTool())); 050 item.add(new Label("properties", details.getProperties())); 051 } 052 }; 053 int itemsPerPage = ((ProjectBrowserApplication)ProjectBrowserApplication.get()). 054 getProjectBrowserProperties().getSensorDataItemsPerPage(); 055 dataView.setItemsPerPage(itemsPerPage); 056 add(dataView); 057 add(new AjaxPagingNavigator("navigator", dataView)); 058 } 059 060 }