From 6ced38a99cdb1e03c3829a917d8936be5db5b1c0 Mon Sep 17 00:00:00 2001
From: Alexander Kozynchenko <alekoz@dsv.su.se>
Date: Thu, 1 Mar 2012 14:31:59 +0100
Subject: [PATCH] Maintaining a consistent layout using a single page: swapping
 tables with different content using panels.

---
 .../match/AdminManageProjectIdeaPage.html     |  9 ++--
 .../match/AdminManageProjectIdeaPage.java     | 53 ++++++++++++++++---
 2 files changed, 53 insertions(+), 9 deletions(-)

diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/match/AdminManageProjectIdeaPage.html b/src/main/java/se/su/dsv/scipro/admin/pages/match/AdminManageProjectIdeaPage.html
index 85412e999f..f785a595d4 100644
--- a/src/main/java/se/su/dsv/scipro/admin/pages/match/AdminManageProjectIdeaPage.html
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/match/AdminManageProjectIdeaPage.html
@@ -3,9 +3,12 @@
 	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
 <body>
 <wicket:extend>
-	<div wicket:id="manageProjectIdeaPanel"></div>
-	<div wicket:id="rejectedProjectIdeaPanel"></div>
-	<div wicket:id="waitingProjectIdeaPanel"></div>
+   <div id="contents" >
+      <a href="#" wicket:id="manageProjectIdeaPanel">Search among all projects ideas </a>
+      <a href="#" wicket:id="rejectedProjectIdeaPanel"> Rejected project ideas </a>
+      <a href="#" wicket:id="waitingProjectIdeaPanel"> Top waiting projects ideas</a>
+      <div wicket:id="main" id="main"></div>
+   </div>
 </wicket:extend>
 </body>
 </html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/match/AdminManageProjectIdeaPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/match/AdminManageProjectIdeaPage.java
index b462d5eca5..a8a5e8cf12 100644
--- a/src/main/java/se/su/dsv/scipro/admin/pages/match/AdminManageProjectIdeaPage.java
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/match/AdminManageProjectIdeaPage.java
@@ -2,21 +2,62 @@ package se.su.dsv.scipro.admin.pages.match;
 
 import org.apache.wicket.PageParameters;
 
+import org.apache.wicket.markup.html.link.Link;
 import se.su.dsv.scipro.admin.pages.AbstractAdminMatchPage;
 import se.su.dsv.scipro.match.panel.AdminManageProjectIdeaPanel;
 import se.su.dsv.scipro.match.panel.AdminRejectedProjectIdeaPanel;
 import se.su.dsv.scipro.match.panel.AdminWaitingProjectIdeaPanel;
 import se.su.dsv.scipro.security.auth.Authorization;
 import se.su.dsv.scipro.security.auth.roles.Roles;
+import org.apache.wicket.markup.html.panel.Panel;
 
 @Authorization(authorizedRoles={Roles.ADMIN})
 public class AdminManageProjectIdeaPage extends AbstractAdminMatchPage {
+  private AdminManageProjectIdeaPanel adminManageProjectIdeaPanel =
+                                           new AdminManageProjectIdeaPanel("main");
+  private AdminRejectedProjectIdeaPanel adminRejectedProjectIdeaPanel =
+                                           new AdminRejectedProjectIdeaPanel("main");
+  private AdminWaitingProjectIdeaPanel adminWaitingProjectIdeaPanel =
+                                           new AdminWaitingProjectIdeaPanel("main");
+  private Panel current = adminManageProjectIdeaPanel;
+
+  public AdminManageProjectIdeaPage(PageParameters pp) {
+    super(pp);
+    add(new Link("manageProjectIdeaPanel") {
+      @Override
+      public void onClick() {
+        current.replaceWith(adminManageProjectIdeaPanel);
+        current = adminManageProjectIdeaPanel;
+      }
+      @Override
+      public boolean isEnabled(){
+        return current != adminManageProjectIdeaPanel;
+      }
+    });
+    add(new Link("rejectedProjectIdeaPanel") {
+      @Override
+      public void onClick() {
+        current.replaceWith(adminRejectedProjectIdeaPanel);
+        current = adminRejectedProjectIdeaPanel;
+      }
+      @Override
+      public boolean isEnabled(){
+        return current != adminRejectedProjectIdeaPanel;
+      }
+    });
+    add(new Link("waitingProjectIdeaPanel") {
+      @Override
+      public void onClick() {
+        current.replaceWith(adminWaitingProjectIdeaPanel);
+        current = adminWaitingProjectIdeaPanel;
+      }
+      @Override
+      public boolean isEnabled(){
+        return current != adminWaitingProjectIdeaPanel;
+      }
+    });
+    add(current);
+  }
 
-	public AdminManageProjectIdeaPage(PageParameters pp) {
-		super(pp);
-		add(new AdminManageProjectIdeaPanel("manageProjectIdeaPanel"));
-		add(new AdminRejectedProjectIdeaPanel("rejectedProjectIdeaPanel"));
-		add(new AdminWaitingProjectIdeaPanel("waitingProjectIdeaPanel"));
-	}
 
 }