package org.openedit.entermedia.modules;
import java.util.Collection;
import java.util.List;
import org.openedit.Data;
import org.openedit.data.Searcher;
import org.openedit.entermedia.MediaArchive;
import org.openedit.entermedia.scanner.HotFolderManager;
import com.openedit.WebPageRequest;
import com.openedit.util.PathUtilities;
public class HotFolderModule extends BaseMediaModule
{
public void loadHotFolders(WebPageRequest inReq) throws Exception
{
MediaArchive archive = getMediaArchive(inReq);
Collection folders = getHotFolderManager().loadFolders(archive.getCatalogId());
inReq.putPageValue("folders", folders);
}
//TODO:Move to a super class
public Data loadHotFolder(WebPageRequest inReq) throws Exception
{
MediaArchive archive = getMediaArchive(inReq);
String id = inReq.getRequestParameter("id");
if( "new".equals(id ) )
{
return null;
}
Searcher searcher = getHotFolderManager().getFolderSearcher(archive.getCatalogId());
Data data = (Data)searcher.searchById(id);
inReq.putPageValue("data", data);
return data;
}
public void saveHotFolders(WebPageRequest inReq) throws Exception
{
MediaArchive archive = getMediaArchive(inReq);
getHotFolderManager().saveMounts(archive.getCatalogId());
}
public void removeHotFolder(WebPageRequest inReq) throws Exception
{
MediaArchive archive = getMediaArchive(inReq);
String id = inReq.getRequestParameter("id");
Searcher searcher = getHotFolderManager().getFolderSearcher(archive.getCatalogId());
Data data = (Data)searcher.searchById(id);
searcher.delete(data, inReq.getUser());
getHotFolderManager().saveMounts(archive.getCatalogId());
}
public void saveFolder(WebPageRequest inReq) throws Exception
{
MediaArchive archive = getMediaArchive(inReq);
String[] fields = inReq.getRequestParameters("field");
Searcher searcher = getHotFolderManager().getFolderSearcher(archive.getCatalogId());
String id = inReq.getRequestParameter("id");
Data data = null;
if( id.equals("new") )
{
data = searcher.createNewData();
}
else
{
data = (Data)searcher.searchById(id);
}
searcher.updateData(inReq, fields, data);
//save subfolder with the value of the end of externalpath
String epath = data.get("externalpath");
if( epath != null )
{
epath = epath.trim();
epath = epath.replace('\\', '/');
if( epath.endsWith("/"))
{
epath = epath.substring(0,epath.length() - 1);
}
String subfolder = PathUtilities.extractDirectoryName(epath + "/junk.html");
data.setProperty("subfolder", subfolder);
}
else
{
data.setProperty("subfolder", data.getName());
}
getHotFolderManager().saveFolder(archive.getCatalogId(),data);
}
protected HotFolderManager getHotFolderManager()
{
return (HotFolderManager)getModuleManager().getBean("hotFolderManager");
}
public void importFolder(WebPageRequest inReq) throws Exception
{
MediaArchive archive = getMediaArchive(inReq);
Data folder = loadHotFolder(inReq);
List found = getHotFolderManager().importHotFolder(archive,folder);
inReq.putPageValue("found", found);
}
}