Maintaining a consistent layout using a single page: swapping tables with different content using panels.

This commit is contained in:
Alexander Kozynchenko 2012-03-01 14:31:59 +01:00
parent 7f134b25a1
commit 6ced38a99c
2 changed files with 53 additions and 9 deletions
src/main/java/se/su/dsv/scipro/admin/pages/match

@ -3,9 +3,12 @@
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body> <body>
<wicket:extend> <wicket:extend>
<div wicket:id="manageProjectIdeaPanel"></div> <div id="contents" >
<div wicket:id="rejectedProjectIdeaPanel"></div> <a href="#" wicket:id="manageProjectIdeaPanel">Search among all projects ideas </a>
<div wicket:id="waitingProjectIdeaPanel"></div> <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> </wicket:extend>
</body> </body>
</html> </html>

@ -2,21 +2,62 @@ package se.su.dsv.scipro.admin.pages.match;
import org.apache.wicket.PageParameters; 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.admin.pages.AbstractAdminMatchPage;
import se.su.dsv.scipro.match.panel.AdminManageProjectIdeaPanel; import se.su.dsv.scipro.match.panel.AdminManageProjectIdeaPanel;
import se.su.dsv.scipro.match.panel.AdminRejectedProjectIdeaPanel; import se.su.dsv.scipro.match.panel.AdminRejectedProjectIdeaPanel;
import se.su.dsv.scipro.match.panel.AdminWaitingProjectIdeaPanel; import se.su.dsv.scipro.match.panel.AdminWaitingProjectIdeaPanel;
import se.su.dsv.scipro.security.auth.Authorization; import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.security.auth.roles.Roles; import se.su.dsv.scipro.security.auth.roles.Roles;
import org.apache.wicket.markup.html.panel.Panel;
@Authorization(authorizedRoles={Roles.ADMIN}) @Authorization(authorizedRoles={Roles.ADMIN})
public class AdminManageProjectIdeaPage extends AbstractAdminMatchPage { 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"));
}
} }