⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 freenav.jsp

📁 HomePlayer is an extention of the FreePlayer software provided by the french internet provider Free
💻 JSP
字号:
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="org.homeplayer.util.*"%>
<%@page import="org.homeplayer.web.*"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%@page import="java.net.URL"%>
<%@page import="javax.swing.filechooser.FileSystemView"%>
<jsp:useBean id="hppc" class="org.homeplayer.web.HPPageContext"
	scope="request">
	<jsp:setProperty name="hppc" property="request" value="<%=request%>" />
	<jsp:setProperty name="hppc" property="serviceName" value="FreeNav" />
</jsp:useBean>
<%!
	/**
		@param o must be a File or a Shotcut
	*/
	public String getShortName(Object o, int nbChars) {
		String name;
		if (o instanceof File) {
			name = ((File) o).getName();
		} else if (o instanceof URL) {
			String fullName= ((URL) o).getFile() ;
			int index = fullName.lastIndexOf("/") ;
			name = fullName.substring(index+1,fullName.length());
		} else if( o instanceof Favorite ) {
	    	name = ((Favorite)o).getName() ;
		} else {
			name = ((Shortcut) o).getName();
		}
		int idx = name.lastIndexOf('.');
		if (idx >= 1) {
			name = name.substring(0, idx);
		}
		return StringUtil.cut(name, nbChars, ".");
	}

%>
<%
FreeNavService service = new FreeNavService() ;

//-------------------------------------------------------------------------------------------
// List subdirectories
// -------------------------------------------------------------------------------------------
int maxFoldersInPage = hppc.isPocketIE() || hppc.isPSP()?10:15 ;
int start = WebUtil.getParam(request, "start", 0) ;
String folder = WebUtil.getParam(request, "folder", null);
Object folderFile = (folder != null) ? (folder.startsWith("ftp") ? (Object)new URL(folder) : (Object)new File(folder)) : null;
boolean isRoot = (folder == null);

hppc.setNavLevel(service.getDeep(folder) + 1);

List folders = service.getDirectory(folder) ;
if( isRoot && HPConf.getBool(HPConf.FTP_ACTIVATED)) {
	try {
		Vector ftproots = FTPBrowser.getFBFTPBrowser().listDirectories( "" ) ;
		for( int i=0 ; i<ftproots.size() ; i++ ) {
			folders.add( new URL( FTPBrowser.getFBFTPBrowser().getServerPath()+"/"+ftproots.get(i) )) ;
		}
   	} catch ( Exception e ) {
		System.out.println( "Unable to connect to FBHD." ) ;
		System.out.println( "Error: "+e.getMessage() ) ;
   	}
}

if( isRoot ) {
	FavoriteManager favman = FavoriteManager.getInstance();
	for (Iterator it2 = favman.getFavorites("FreeNav").iterator(); it2.hasNext();) {
		Favorite fav = (Favorite) it2.next();
		folders.add( fav ) ;
	}
}

if (start > 0) {
	String url = "/freenav/freenav.jsp?start="+(start-maxFoldersInPage);
	if (! isRoot) {
		url+= "&folder=" + WebUtil.urlEncode(folder);
	}
	hppc.addMenuItem(new HPMenuPrevious(url));
}
if (! isRoot) {
	// add the parent directory link
    String dirPath = service.getParentPath(folder) ;
    FavoriteManager favman = FavoriteManager.getInstance();
	for (Iterator it2 = favman.getFavorites("FreeNav").iterator(); it2.hasNext();) {
		Favorite fav = (Favorite) it2.next();
		String favDir = WebUtil.getParam(fav.getUrl(), "folder","") ;
		if( WebUtil.urlDecode(favDir).equals(folder) ) {
			dirPath = null ;
			break ;
		}
	}
	String url = "/freenav/freenav.jsp";
	if (dirPath != null) {
		url += "?folder=" + WebUtil.urlEncode(dirPath);
	}
	hppc.addMenuItem(new HPMenuLink("Dossier Parent", url, "<img src=\"/images/novaweb/parent.gif\" alt=\"..\" class=\"img-parentdir\" />&nbsp;"));
}

int folderWidth = hppc.getSkin().getMenuWidth();

for (int i=start; i<folders.size() && (i-start)<maxFoldersInPage; i++) {
    Object dirObj = folders.get(i) ;
    String name;
    String url;
    String icon = "" ;
    if (dirObj instanceof File) {
    	File dir = (File) dirObj;
    	if( isRoot ) {
    		if (FileSystemView.getFileSystemView().isFloppyDrive(dir) == true) {
				name = dir.getAbsolutePath() ;
    		} else {
            	name = service.getDisplayString(dir) ;
            	name = name.equals("")||name.startsWith("Disque local") ? dir.getAbsolutePath() : name ;
    		}
	    } else {
            name = dir.getName().equals( "" ) ? dir.getAbsolutePath() : dir.getName() ;
			if (name.equals("VIDEO_TS")) {
				request.setAttribute("isDvdDirectory", Boolean.TRUE);
			}
	    }
        url = "/freenav/freenav.jsp?folder="+WebUtil.urlEncode(dir.getAbsolutePath());
        icon = isRoot ? service.getIcon( dir ) : "" ;
        name = StringUtil.cutpx(name, folderWidth - (icon.equals("") ? 0 : 30));
    } else if( dirObj instanceof URL ) {
    	URL dir = (URL) dirObj;
    	if( isRoot ) {
    		name = dir.getFile().substring(1) + " (FB HD)";
    	} else {
	    	name = new File(dir.getFile()).getName() ;
    	}
    	url = "/freenav/freenav.jsp?folder="+WebUtil.urlEncode(dir.toExternalForm());
    	icon = isRoot && IOUtil.isWin() ? service.getIcon( new File("c:\\") ) : "" ;
        name = StringUtil.cutpx(name, folderWidth - (icon.equals("") ? 0 : 30));
    } else if( dirObj instanceof Favorite ) {
    	Favorite fav = (Favorite) dirObj;
    	url = fav.getUrl();
    	icon = MMPConfig.shareInstance().get( "FreeNav", "FavImage", "" ) ;
    	name = fav.getName() ;
    	name = StringUtil.cutpx(name, folderWidth - (icon.equals("") ? 0 : 30));
    } else {
    	Shortcut shortcut = (Shortcut) dirObj;
        url = "/freenav/freenav.jsp?folder="+WebUtil.urlEncode(shortcut.getFile().getAbsolutePath());
        icon = isRoot ? service.getIcon( shortcut ) : "" ;
        name = shortcut.getName();
        name = StringUtil.cutpx(name, folderWidth - (icon.equals("") ? 0 : 30));
    	name = "-<em>" + name + "</em>-";
    } 
    if( icon.equals("") == false ) {
    	icon = "<img src=\""+icon+"\" alt=\"icon\" class=\"img-dir\" />&nbsp;" ;
    }	
    hppc.addMenuItem( icon.equals("") ? new HPMenuLink(name, url) : new HPMenuLink(name, url, icon) );
    
}

if (start  + maxFoldersInPage < folders.size()) {
	String url = "/freenav/freenav.jsp?start="+(start+maxFoldersInPage);
	if (! isRoot) {
		url+= "&amp;folder=" + WebUtil.urlEncode(folder);
	}
	hppc.addMenuItem(new HPMenuNext(url));
}


//-------------------------------------------------------------------------------------------
//List files 
// -------------------------------------------------------------------------------------------


List files = (isRoot) ? Collections.EMPTY_LIST : service.getMediaFile(folder ) ;
hppc.setHeaderTitle((isRoot) ? "Ordinateur" : ( IOUtil.getSmartPath(folder) + " (" +files.size()+")" ));

hppc.setChannelPage("/freenav/freenav.jsp?folder=" + WebUtil.urlEncode(folder)+"&amp;start="+start+"&amp;page=%d" ) ;

int maxFilesInPage = 15 ;
int pos = WebUtil.getParam(request, "pos", -1) ;
int pageNo = WebUtil.getParam(request, "page", -1) ;
if( pos == -1 ) {
	if( pageNo == -1 ) {
		pos = 0 ;
	} else {
		pos = maxFilesInPage*(pageNo-1) ;
		if( pos >= files.size() ) {
			pos = (files.size()/maxFilesInPage)*maxFilesInPage ;
		}
	}
}
pos = Math.max(0,pos) ;
for (int i=0; i < Math.ceil((double) files.size() / maxFilesInPage); i++) {
	String shortName = getShortName(files.get(i*maxFilesInPage), 100);
	hppc.addPage(i+1, shortName, WebUtil.setParam(hppc.getLocalURL(), "pos=" + (i*maxFilesInPage)));
	Object obj = files.get(i);
	if (obj instanceof File) {
		String name = ((File) obj).getName();
		if (name.equals("VIDEO_TS.VOB")) {
			request.setAttribute("isDvdDirectory", Boolean.TRUE);
		}
	}
} 
hppc.setCurrentPage((pos / maxFilesInPage) + 1);

if (! isRoot) {	
	String favoriteTitle = folderFile instanceof File ? (((File)folderFile).getName().equals("")? ((File)folderFile).getAbsolutePath() : ((File)folderFile).getName()) : ((URL)folderFile).getFile();
	hppc.setFavorite(hppc.getServiceName(), favoriteTitle, StringUtil.gsub(hppc.getLocalURL(),"pos=","dummy="));
}

//-------------------------------------------------------------------------------------------
// create the top command
//-------------------------------------------------------------------------------------------

if (folder != null) {
	request.setAttribute("freenav.folder", folder);
	request.setAttribute("freenav.folders", folders);
	request.setAttribute("freenav.files", files);
	request.setAttribute("freenav.service", service);
	if( folderFile instanceof File ) {
		hppc.setTopCommandPage(hppc.getSkin().getPath()+"/freenav/topCommand.jsp");
	}
}else{
	
	hppc.topCommandAppend("<li><img src=\"/images/novaweb/folder.png\" alt=\"stop\" class=\"img-fav\" /></li>");
}
%>
<jsp:include page="<%= hppc.getSkin().getHeader() %>"/>
<jsp:include page="../body.jsp"/>
<ul class="fav-list">
			<%
				int fileWidth = hppc.getSkin().getContentWidth() - 30;
			    int j=0;
					for (int i = pos; i < files.size() && ((i - pos) < maxFilesInPage); i++) {
					Object obj = files.get(i);
					String desc;
					String icon;
					String url;
					if (obj instanceof Shortcut) {
						Shortcut shortcut = (Shortcut) obj;
						desc = IOUtil.getSmartFileNamePx(shortcut.getName(), fileWidth);
						icon = service.getIcon(shortcut);
						url = shortcut.getFile().getAbsolutePath();
					} else if (obj instanceof URL) {
						URL item = (URL) obj;
						String fullName = item.getFile();
						int index = fullName.lastIndexOf("/");
						desc = IOUtil.getSmartFileNamePx(fullName.substring(index + 1, fullName.length()), fileWidth);
						icon = service.getIcon(item.getFile());
						url = item.toString();
					} else {
						File item = (File) obj;
						desc = IOUtil.getSmartFileNamePx(item.getName(), fileWidth);
						icon = service.getIcon(item);
						url = item.getAbsolutePath();
					}
					String playurl = "play"
					+ (service.isImageFile(url) ? "Images" : "")
					+ ".jsp?level=" + (hppc.getNavLevel() + 1) + "&amp;File="
					+ WebUtil.urlEncode(url);
			%>
			  <%= hppc.displayMediaItemList(icon, desc, playurl,j++)%>
			<% } %>
</ul>
<jsp:include page="<%= hppc.getSkin().getFooter() %>"/>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -