From 1b38a5e172862436712abc4536da199f54158282 Mon Sep 17 00:00:00 2001
From: Emil Siverhall <emil-siv@dsv.su.se>
Date: Mon, 27 Feb 2012 16:00:41 +0100
Subject: [PATCH] added new panel for keyword detail dialog with supervisor
 info

---
 .../panels/match/KeywordDetailsPanel.html     | 31 +++++++++
 .../panels/match/KeywordDetailsPanel.java     | 66 +++++++++++++++++++
 2 files changed, 97 insertions(+)
 create mode 100644 src/main/java/se/su/dsv/scipro/admin/panels/match/KeywordDetailsPanel.html
 create mode 100644 src/main/java/se/su/dsv/scipro/admin/panels/match/KeywordDetailsPanel.java

diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/match/KeywordDetailsPanel.html b/src/main/java/se/su/dsv/scipro/admin/panels/match/KeywordDetailsPanel.html
new file mode 100644
index 0000000000..de2184fc2b
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/admin/panels/match/KeywordDetailsPanel.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html
+	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<body>
+	<wicket:panel>
+		<form wicket:id="keywordDetails">
+		<table wicket:id="table" class="rounded-corner">
+		<thead>
+			<tr>
+			<th class="rounded-left-top">Supervisors with selected keyword </th>
+			<th class="rounded-right-top">&nbsp;</th>
+			</tr>
+		</thead>
+		<tbody>
+			<tr wicket:id="listView">
+				<td colspan="2" wicket:id="name"></td>
+			</tr>
+			<tr><td colspan="2" wicket:id="emptyLabel"></td></tr>
+		</tbody>
+		<tfoot>
+			<tr>
+				<td colspan="2" class="rounded-foot">&nbsp;</td>
+			</tr>
+		</tfoot>
+		</table>
+		<div wicket:id="navigator"></div>		
+			<div class="prepend-top"><input wicket:id="closeButton" type="submit" value="Close" /></div>
+		</form>
+	</wicket:panel>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/match/KeywordDetailsPanel.java b/src/main/java/se/su/dsv/scipro/admin/panels/match/KeywordDetailsPanel.java
new file mode 100644
index 0000000000..c351d9a14d
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/admin/panels/match/KeywordDetailsPanel.java
@@ -0,0 +1,66 @@
+package se.su.dsv.scipro.admin.panels.match;
+
+import java.util.List;
+
+import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.PageableListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import se.su.dsv.scipro.data.dataobjects.Employee;
+import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
+import se.su.dsv.scipro.match.dataobject.Keyword;
+
+public class KeywordDetailsPanel extends Panel {
+	private static final long serialVersionUID = 1L;
+	
+	@SpringBean
+	private SupervisorDao supervisorDao;
+
+	public KeywordDetailsPanel(String str, Keyword keyword) {
+		super(str);
+		add(new KeywordDetailsForm("keywordDetails", keyword));
+	}
+	
+	private class KeywordDetailsForm extends Form<Keyword>{
+		
+		private static final long serialVersionUID = 1L;
+
+		public KeywordDetailsForm(String id, final Keyword keyword) {
+			super(id);
+			this.setOutputMarkupId(true);
+			List<Employee> listOfSupervisors = supervisorDao.getSupervisorsByKeyword(keyword);
+
+			Label emptyLabel = new Label("emptyLabel","No supervisors attached to the selected keyword");
+			emptyLabel.setVisible(listOfSupervisors.isEmpty());
+			WebMarkupContainer container = new WebMarkupContainer("table");
+			container.setOutputMarkupId(true);
+			
+			PageableListView<Employee> listView = new PageableListView<Employee>("listView", listOfSupervisors, 12) {
+
+				private static final long serialVersionUID = 2191181676642843499L;
+
+				@Override
+				protected void populateItem(ListItem<Employee> item) {
+					Employee e = item.getModelObject();
+					item.add(new Label("name", e.getNameAsString()));
+				}
+			};
+			container.add(listView);
+			container.add(emptyLabel);
+			AjaxPagingNavigator navigator = new AjaxPagingNavigator("navigator", listView);
+			navigator.setVisible(!listOfSupervisors.isEmpty());
+			add(navigator);
+			add(container);
+			Button closeButton = new Button("closeButton");
+            
+			add(closeButton);
+		}
+				
+	}
+}
\ No newline at end of file