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")); - } }