Package com.adito.networkplaces.forms

Source Code of com.adito.networkplaces.forms.ShowNetworkPlacesForm

        /*
*  Adito
*
*  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.adito.networkplaces.forms;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.adito.networkplaces.NetworkPlace;
import com.adito.networkplaces.NetworkPlaceDatabaseFactory;
import com.adito.networkplaces.NetworkPlaceItem;
import com.adito.networkplaces.NetworkPlaceUtil;
import com.adito.policyframework.PolicyDatabaseFactory;
import com.adito.policyframework.forms.AbstractResourcesForm;
import com.adito.security.Constants;
import com.adito.security.SessionInfo;
import com.adito.util.TicketGenerator;
import com.adito.vfs.VFSProvider;
import com.adito.vfs.VFSProviderManager;
import com.adito.vfs.VFSStore;
import com.adito.vfs.utils.URI;
import com.adito.vfs.webdav.DAVProcessor;

public class ShowNetworkPlacesForm extends AbstractResourcesForm {

    List networkPlaceItems;

    static Log log = LogFactory.getLog(ShowNetworkPlacesForm.class);

    public ShowNetworkPlacesForm() {
        super("networkPlace");
    }

    /**
     * @param processor
     * @param session
     * @throws Exception
     */
    public void initialize(DAVProcessor processor, SessionInfo session) throws Exception {
        super.initialize(session.getHttpSession(), "name");
        if (session.getNavigationContext() == SessionInfo.USER_CONSOLE_CONTEXT) {
            List networkPlaceItems = NetworkPlaceUtil.refreshNetworkMounts(processor.getRepository(), session);
            for (Iterator i = networkPlaceItems.iterator(); i.hasNext();) {
                NetworkPlaceItem npi = (NetworkPlaceItem) i.next();
                npi.setFavoriteType(getFavoriteType(npi.getResource().getResourceId()));
                getModel().addItem(npi);
            }
        } else if (session.getNavigationContext() == SessionInfo.MANAGEMENT_CONSOLE_CONTEXT) {
            networkPlaceItems = new ArrayList();
            // Now create the items
            List resources = NetworkPlaceDatabaseFactory.getInstance().getNetworkPlaces(session.getUser().getRealm().getRealmID());
            for (Iterator i = resources.iterator(); i.hasNext();) {
                NetworkPlace np = (NetworkPlace) i.next();
                VFSProvider provider = VFSProviderManager.getInstance().getProvider(np.getScheme());
                if (provider == null) {
                  try {
                    if(np.getScheme().equals("")) {
                    URI uri = NetworkPlaceUtil.createURIForPath(np.getPath());
                    provider = VFSProviderManager.getInstance().getProvider(uri.getScheme());
                    }
                    if(provider == null) {
                      log.warn("Provider that handles '" + np.getScheme() + "' cannot be found.");
                    }
                  } catch(Exception ex) {
                    log.error("Could not get provider for network place " + np.getPath(), ex);
                    continue;
                  }
                }

                if(provider != null) {
                // Create a store so we can get the mount path
                VFSStore store = processor.getRepository().getStore(provider.getScheme());
                if(store == null) {
                  log.warn("No store for " + provider.getScheme());
                }
                else {
                    NetworkPlaceItem npi = new NetworkPlaceItem(np, store.getMountPath(np.getResourceName()), PolicyDatabaseFactory.getInstance()
                                    .getPoliciesAttachedToResource(np, session.getUser().getRealm()), np
                                    .sessionPasswordRequired(session));
                    npi.setFavoriteType(getFavoriteType(np.getResourceId()));
                    getModel().addItem(npi);
                }
                }
            }
        }
        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 (session.getHttpSession().getAttribute(Constants.WEB_FOLDER_LAUNCH_TICKET) == null) {
            session.getHttpSession().setAttribute(Constants.WEB_FOLDER_LAUNCH_TICKET,
                TicketGenerator.getInstance().generateUniqueTicket("W", 6));
        }
    }
}
TOP

Related Classes of com.adito.networkplaces.forms.ShowNetworkPlacesForm

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.