Skelett till sidstruktur och sortering i filvy och filväljare implementerad

git-svn-id: svn://svn.dsv.su.se/scipro/scipro/trunk@232 73ecded7-942e-4092-bab0-0e58ef0ee984
This commit is contained in:
mpeters 2011-02-23 11:33:15 +00:00
parent cf7fd26cfe
commit 8817d6dde3
19 changed files with 295 additions and 29 deletions

@ -3,14 +3,16 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<head>
<title>LegUp: Wicket Spring JPA 2.0</title>
<title>This will be the projects home page</title>
</head>
<body>
<div>
<strong><a href="http://jweekend.com/dev/LegUp">LegUp</a>: <a href="http://wicket.apache.org/">Wicket</a> <a href="http://www.springsource.org/">Spring</a> JPA 2.0</strong>
<br/><br/>
<a wicket:id="event">Event Page</a>
</div>
<wicket:extend>
<div style="width:800px;border:1px solid red;">
<p>
This is the homepage
</p>
</div>
</wicket:extend>
</body>
</html>

@ -1,32 +1,24 @@
package se.su.dsv.scipro;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import se.su.dsv.scipro.basepages.BasePage;
import se.su.dsv.scipro.basepages.MenuPage;
import se.su.dsv.scipro.basepages.PublicPage;
import se.su.dsv.scipro.pages.EventPage;
import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.loginlogout.pages.LoginPage;
/**
* @author Martin Peters - mpeters@dsv.su.se
*
*/
public class HomePage extends PublicPage {
public class HomePage extends MenuPage {
private static final long serialVersionUID = 1L;
/**
* Constructor that is invoked when page is invoked without a em.
*
* @param parameters
* Page parameters
*/
public HomePage(final PageParameters parameters) {
// Add the simplest type of label
add(new BookmarkablePageLink<Void>("event", EventPage.class));
//add(new BookmarkablePageLink<Void>("loginLink", LoginPage.class));
}

@ -1,5 +1,8 @@
package se.su.dsv.scipro;
import java.util.HashSet;
import java.util.Set;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.wicket.Page;
@ -11,10 +14,10 @@ import org.apache.wicket.authorization.strategies.CompoundAuthorizationStrategy;
import org.apache.wicket.request.target.coding.HybridUrlCodingStrategy;
import org.odlabs.wiquery.ui.themes.IThemableApplication;
import se.su.dsv.scipro.basepages.SystemSettingsPage;
import se.su.dsv.scipro.loginlogout.pages.LoginPage;
import se.su.dsv.scipro.loginlogout.pages.LogoutPage;
import se.su.dsv.scipro.pages.EventPage;
import se.su.dsv.scipro.pages.ProjectPage;
import se.su.dsv.scipro.project.pages.ProjectPage;
import se.su.dsv.scipro.repository.RepositoryApplication;
import se.su.dsv.scipro.repository.pages.ProjectFilePage;
import se.su.dsv.scipro.repository.pages.SysAdminFilePage;
@ -23,6 +26,7 @@ import se.su.dsv.scipro.security.auth.ComponentSecurityLogger;
import se.su.dsv.scipro.security.auth.MetaDataActionStrategy;
import se.su.dsv.scipro.security.auth.RoleBasedAuthorizationStrategy;
import se.su.dsv.scipro.wiquery.themes.ThemeResourceReference;
//import se.su.dsv.scipro.workerthreads.TestWorker;
/**
* Application object for your web application. If you want to run this application without deploying, run the Start class.
@ -41,6 +45,8 @@ public class SciProApplication extends RepositoryApplication implements IThemabl
private final String jaasPath = "/WEB-INF/classes/jaas.conf";
private final String krb5Path = "/WEB-INF/classes/kerb5.conf";
//private Set<TestWorker> workers = new HashSet<TestWorker>();
/**
* Constructor
@ -61,12 +67,12 @@ public class SciProApplication extends RepositoryApplication implements IThemabl
getMarkupSettings().setDefaultMarkupEncoding("UTF-8");
getRequestCycleSettings().setResponseRequestEncoding("UTF-8");
mountBookmarkablePage("event", EventPage.class);
mountBookmarkablePage("adminfiles", SysAdminFilePage.class);
mountBookmarkablePage("projectfiles", ProjectFilePage.class);
mountBookmarkablePage("admin/files", SysAdminFilePage.class);
mountBookmarkablePage("project/files", ProjectFilePage.class);
mountBookmarkablePage("login", LoginPage.class);
mountBookmarkablePage("logout", LogoutPage.class);
mountBookmarkablePage("pp", ProjectPage.class);
mountBookmarkablePage("project", ProjectPage.class);
mountBookmarkablePage("admin/settings/", SystemSettingsPage.class);
mount(new HybridUrlCodingStrategy("schedule", SchedulePage.class));
@ -80,6 +86,16 @@ public class SciProApplication extends RepositoryApplication implements IThemabl
//getResourceSettings().setThrowExceptionOnMissingResource(false);
getResourceSettings().addStringResourceLoader(new JpaStringResourceLoader());
getSecuritySettings().setUnauthorizedComponentInstantiationListener(new ComponentSecurityLogger());
/*
for(int i=0;i<5;i++){
TestWorker t = new TestWorker();
t.setName("T"+i);
workers.add(t);
}
for(TestWorker t : workers)
t.start();
*/
}
@SuppressWarnings("unchecked")
@ -99,6 +115,15 @@ public class SciProApplication extends RepositoryApplication implements IThemabl
System.setProperty("java.security.krb5.conf", krb5RealPath);
}
}
@Override
protected void onDestroy() {
/*
for(TestWorker t : workers)
t.stopWorking();
*/
super.onDestroy();
}
/* (non-Javadoc)
* @see org.apache.wicket.Application#getHomePage()

@ -27,6 +27,7 @@ public abstract class BasePage extends WebPage {
public final static String CSS_SUFFIX = ".css";
protected void setCss(String css){
/* Solution below is quite inflexible to say the least
String languageCode = "";
if(getLocale().getLanguage().equalsIgnoreCase("sv"))
languageCode = "sv";
@ -34,6 +35,7 @@ public abstract class BasePage extends WebPage {
languageCode = "en";
add(CSSPackageResource.getHeaderContribution("styles/" + languageCode + CSS_SUFFIX));
*/
//add(CSSPackageResource.getHeaderContribution("styles/" + GLOBAL_CSS + CSS_SUFFIX));
add(CSSPackageResource.getHeaderContribution("styles/" + css + CSS_SUFFIX));
}

@ -1,5 +1,3 @@
submit: Submit
palette.available: Available
palette.selected: Selected

@ -1,5 +1,3 @@
submit: Skicka
palette.available: Valbara
palette.selected: Valda

@ -0,0 +1,13 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:extend>
<div wicket:id="headerPanel"></div>
<div wicket:id="topRight"></div>
<div wicket:id="mainMenu"></div>
<wicket:child />
</wicket:extend>
</body>
</html>

@ -0,0 +1,37 @@
package se.su.dsv.scipro.basepages;
import org.apache.wicket.PageParameters;
import se.su.dsv.scipro.basepanels.HeaderPanel;
import se.su.dsv.scipro.basepanels.MainMenu;
import se.su.dsv.scipro.basepanels.TopRightPanel;
/**
*
* @author Martin Peters - mpeters@dsv.su.se
*
*/
public abstract class MenuPage extends BasePage {
private MainMenu mainMenu;
public MenuPage(){
super();
setUp();
}
public MenuPage(PageParameters pp){
super(pp);
setUp();
}
private void setUp(){
mainMenu = new MainMenu("mainMenu", this.getClass());
add(mainMenu);
add(new HeaderPanel("headerPanel"));
add(new TopRightPanel("topRight"));
}
}

@ -0,0 +1,7 @@
<html>
<body>
<wicket:extend>
<wicket:child />
</wicket:extend>
</body>
</html>

@ -0,0 +1,9 @@
package se.su.dsv.scipro.basepages;
public abstract class PopupPage extends BasePage {
public PopupPage(){
setCss(POPUP_CSS);
}
}

@ -0,0 +1,8 @@
<html>
<body>
<wicket:extend>
<div id="publicPageHeader"></div>
<wicket:child />
</wicket:extend>
</body>
</html>

@ -0,0 +1,13 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:extend>
<p>System settings here</p>
<p>
<a href=# wicket:id="adminlink">Administrate file repository</a>
</p>
</wicket:extend>
</body>
</html>

@ -0,0 +1,26 @@
package se.su.dsv.scipro.basepages;
import org.apache.wicket.PageParameters;
import se.su.dsv.scipro.repository.pages.SysAdminFilePage;
import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.security.auth.roles.Roles;
@Authorization(authorizedRoles={Roles.SYSADMIN})
public class SystemSettingsPage extends MenuPage {
public SystemSettingsPage() {
super();
init();
}
public SystemSettingsPage(PageParameters pp){
super(pp);
init();
}
private void init(){
add(SysAdminFilePage.getBookmarkablePageLink("adminlink"));
}
}

@ -0,0 +1,14 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
>
<body>
<wicket:panel>
<div style="width:600px;height:40px;border:1px solid purple;">
<a href=# wicket:id="homeLink"><span style="font-size:3em;color:solid purple;">SciPro</span></a>
</div>
</wicket:panel>
</body>
</html>

@ -0,0 +1,22 @@
package se.su.dsv.scipro.basepanels;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.panel.Panel;
import se.su.dsv.scipro.SciProApplication;
/**
*
* @author Martin Peters - mpeters@dsv.su.se
*
*/
public class HeaderPanel extends Panel {
private static final long serialVersionUID = 1L;
public HeaderPanel(String id) {
super(id);
add(new BookmarkablePageLink<Void>("homeLink", SciProApplication.get().getHomePage()));
}
}

@ -0,0 +1,16 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
>
<body>
<wicket:panel>
<div style="width:600px;border:1px solid green;">
<p>Main menu:</p><a href=# wicket:id="homePage">[Home]</a><a href=# wicket:id="projectTestPage">[ProjectTestPage]</a>
</div>
</wicket:panel>
</body>
</html>

@ -0,0 +1,37 @@
package se.su.dsv.scipro.basepanels;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.panel.Panel;
import se.su.dsv.scipro.SciProApplication;
import se.su.dsv.scipro.project.pages.ProjectPage;
/**
*
* @author Martin Peters - mpeters@dsv.su.se
*
*/
public class MainMenu extends Panel {
private static final long serialVersionUID = 1L;
public MainMenu(String id, Class<? extends Page> containerClass) {
super(id);
add(getMenuLink("homePage", SciProApplication.get().getHomePage(), containerClass));
add(getMenuLink("projectTestPage", ProjectPage.class, containerClass));
}
private BookmarkablePageLink<Void> getMenuLink(String id, Class<? extends Page> targetPageClass, Class<? extends Page> containerClass){
BookmarkablePageLink<Void> result = new BookmarkablePageLink<Void>(id, targetPageClass);
if(containerClass == targetPageClass){
result.setEnabled(false);
/* TODO:
* Here links are disabled if they're pointing to the current page class, might be
* a better option to give them som highlighting with css or similar
*/
}
return result;
}
}

@ -0,0 +1,16 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
>
<body>
<wicket:panel>
<div style="width:200px;border:1px solid blue;">
<p>Logged in as: <span wicket:id="loggedInAs"></span> <a href=# wicket:id="logoutLink">Logout</a></p>
<p><a href=# wicket:id="systemSettingsLink">System settings</a></p>
</div>
</wicket:panel>
</body>
</html>

@ -0,0 +1,31 @@
package se.su.dsv.scipro.basepanels;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import se.su.dsv.scipro.SciProSession;
import se.su.dsv.scipro.basepages.SystemSettingsPage;
import se.su.dsv.scipro.loginlogout.pages.LogoutPage;
/**
*
* @author Martin Peters - mpeters@dsv.su.se
*
*/
public class TopRightPanel extends org.apache.wicket.markup.html.panel.Panel {
private static final long serialVersionUID = 1L;
public TopRightPanel(String id) {
super(id);
add(new Label("loggedInAs", SciProSession.get().getUser() != null ? SciProSession.get().getUser().toString() : "ERROR: NO USER!"));
add(new BookmarkablePageLink<Void>("logoutLink", LogoutPage.class));
/*
* Because of the annotation to the SystemSettingsPage class this link won't be visible for users without sysadmin role
*/
add(new BookmarkablePageLink<Void>("systemSettingsLink", SystemSettingsPage.class));
}
}