package com.rectang.xsm.pages.admin.xsm; import com.rectang.xsm.AccessControl; import com.rectang.xsm.XSM; import com.rectang.xsm.pages.Secure; import com.rectang.xsm.pages.XSMPage; import com.rectang.xsm.site.Site; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import java.io.*; import java.util.Arrays; import java.util.List; /** * Start of a admin page for managing the XSM instance, nothing much here yet. * * @author Andrew Williams * @version $Id: Admin.java 832 2011-09-26 21:45:04Z andy $ * @since 2.0 */ public class Admin extends XSMPage implements Secure { public Admin( PageParameters parameters ) { super( parameters ); } public int getLevel() { return AccessControl.ADMIN; } public void layout() { super.layout(); File[] siteArray = new File( XSM.getConfig().getDataDir() ).listFiles(); List sites = Arrays.asList( siteArray ); add( new ListView<File>( "site", sites ) { protected void populateItem( ListItem listItem ) { File siteFile = ((File) listItem.getModelObject()); Site site = new Site( siteFile.getName() ); if ( !site.exists() ) { listItem.setVisible( false ); return; } long used = site.calculateSpaceUsage(); int perc = 0; if ( used > 0 ) { perc = (int) (((double) used / site.getQuota()) * 100); } listItem.add( new Label( "id", site.getId() ) ); listItem.add( new Label( "name", site.getTitle() ) ); listItem.add( new Label( "used", String.valueOf( used ) ) ); listItem.add( new Label( "quota", String.valueOf( site.getQuota() ) ).setVisible( site.getQuota() > 0 ) ); listItem.add( new Label( "perc", String.valueOf( perc ) ) ); } } ); } }