📄 favoritesform.java
字号:
/*
* SSL-Explorer
*
* Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package com.sslexplorer.navigation.forms;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.sslexplorer.core.CoreServlet;
import com.sslexplorer.navigation.AbstractFavoriteItem;
import com.sslexplorer.navigation.FavoriteResourceType;
import com.sslexplorer.navigation.Favorite;
import com.sslexplorer.navigation.WrappedFavoriteItem;
import com.sslexplorer.policyframework.ResourceType;
import com.sslexplorer.policyframework.ResourceUtil;
import com.sslexplorer.security.Constants;
import com.sslexplorer.security.User;
import com.sslexplorer.table.AbstractTableItemTableModel;
import com.sslexplorer.table.forms.AbstractPagerForm;
import com.sslexplorer.util.TicketGenerator;
/**
* Implementation of a {@link com.sslexplorer.table.actions.AbstractPagerAction}
* that provides a paged list of all the users configured favorites including
* both <i>User Favorites</i> and <i>Policy Favorites</i>.
*
* @author Brett Smith <a href="mailto: brett@3sp.com"><brett@3sp.com></a>
* @version $Revision: 1.41 $
*/
public class FavoritesForm extends AbstractPagerForm {
final static Log log = LogFactory.getLog(FavoritesForm.class);
/**
* Constructor
*/
public FavoritesForm() {
super(new FavoritesModel());
}
/**
* Initialise the form by loading all the favorites.
*
* @param request request
* @param defaultSortColumnId default sort column
*/
public void initialize(HttpServletRequest request, String defaultSortColumnId) {
super.initialize(request.getSession(), defaultSortColumnId);
getModel().clear();
try {
User user = CoreServlet.getServlet().getLogonController().getUser(request);
for (Iterator i = CoreServlet.getServlet().getPolicyDatabase().getResourceTypes(null).iterator(); i.hasNext();) {
ResourceType rt = (ResourceType) i.next();
if (rt instanceof FavoriteResourceType) {
FavoriteResourceType frt = (FavoriteResourceType) rt;
try {
List fl = CoreServlet.getServlet().getSystemDatabase().getFavorites(frt.getResourceTypeId(), user);
for (Iterator j = fl.iterator(); j.hasNext();) {
Favorite f = (Favorite) j.next();
try {
WrappedFavoriteItem wfi = frt.createWrappedFavoriteItem(f.getFavoriteKey(), request, AbstractFavoriteItem.USER_FAVORITE);
if(wfi == null) {
CoreServlet.getServlet().getSystemDatabase().removeFavorite(f.getType(), f.getFavoriteKey(), f.getUsername());
}
getModel().addItem(wfi);
} catch (Exception e) {
log.error("Failed to add user favorite " + f.getFavoriteKey() + ".", e);
}
}
} catch (Exception e) {
log.error("Failed to create user favorites for resource type " + frt.getResourceTypeId());
}
try {
for (Iterator iter = ResourceUtil.filterResourceIdsForGlobalFavorites(CoreServlet.getServlet().getPolicyDatabase().getGrantedResourcesOfType(user,
frt), rt).iterator(); iter.hasNext();) {
Integer element = (Integer) iter.next();
try {
WrappedFavoriteItem wfi = frt.createWrappedFavoriteItem(element.intValue(), request, AbstractFavoriteItem.GLOBAL_FAVORITE);
if(wfi == null) {
// TODO ?
}
else {
if(!getModel().contains(wfi)) {
getModel().addItem(wfi);
}
}
} catch (Exception e) {
log.error("Failed to add policy favorite for resource " + element.intValue() + ".", e);
}
}
} catch (Exception e) {
log.error("Failed to create policy favorites for resource type " + frt.getResourceTypeId());
}
}
}
}
catch(Exception e) {
log.error("Failed to create favorite items.", e);
}
checkSort();
getPager().rebuild(getFilterText());
/*
* Store a ticket for use with launching a web folder without
* authenticating. This ticket will only be available until it is used
*/
if (request.getSession().getAttribute(Constants.WEB_FOLDER_LAUNCH_TICKET) == null) {
request.getSession().setAttribute(Constants.WEB_FOLDER_LAUNCH_TICKET,
TicketGenerator.getInstance().generateUniqueTicket("W", 6));
}
}
// Supporting classes
static class FavoritesModel extends AbstractTableItemTableModel {
public int getColumnWidth(int col) {
return 0;
}
public String getId() {
return "favorites";
}
public int getColumnCount() {
return 3;
}
public String getColumnName(int col) {
switch (col) {
case 0:
return "name";
case 1:
return "resourceType";
default:
return "subType";
}
}
public Class getColumnClass(int col) {
switch (col) {
case 0:
return String.class;
case 1:
return ResourceType.class;
default:
return String.class;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -