Package net.sf.jportlet.portlets.bookmark

Source Code of net.sf.jportlet.portlets.bookmark.BookmarkPortlet

/*
* Created on May 7, 2003
*/
package net.sf.jportlet.portlets.bookmark;

import java.io.IOException;

import java.util.Collection;

import net.sf.jportlet.portlet.Portlet;
import net.sf.jportlet.portlet.PortletAdapter;
import net.sf.jportlet.portlet.PortletConfig;
import net.sf.jportlet.portlet.PortletException;
import net.sf.jportlet.portlet.PortletRequest;
import net.sf.jportlet.portlet.PortletResponse;
import net.sf.jportlet.portlet.PortletWindow;
import net.sf.jportlet.portlets.bookmark.impl.BookmarkImpl;
import net.sf.jportlet.portlets.bookmark.impl.BookmarkManagerImpl;
import net.sf.jportlet.service.hibernate.HibernateService;


/**
* This portlet allow user to manage their bookmarks.
* This portlet uses the {@link HibernateService}.
*
* @author <a href="mailto:tchbansi@sourceforge.net">Herve Tchepannou</a>
*/
public class BookmarkPortlet
    extends PortletAdapter
{
    //~ Static fields/initializers ---------------------------------------------

    public static final String CONFIG_MAX_ITEMS = "max.items";
    public static final int    DEFAULT_MAX_ITEMS = 10;

    //~ Instance fields --------------------------------------------------------

    private long _lastChanged;
    private int  _maxItems;

    //~ Methods ----------------------------------------------------------------

    public BookmarkManager createBookmarkManager(  )
        throws PortletException
    {
        return new BookmarkManagerImpl( getPortletContext(  ) );
    }

    /**
     * This function is called when the user's bookmarks are changed
     */
    public void dataChanged(  )
    {
        _lastChanged = System.currentTimeMillis(  );
    }

    /**
     * @see net.sf.jportlet.portlet.PortletAdapter#doEdit(net.sf.jportlet.portlet.PortletRequest, net.sf.jportlet.portlet.PortletResponse)
     */
    protected void doEdit( PortletRequest  request,
                           PortletResponse response )
        throws PortletException,
                   IOException
    {
        if ( request.getAttribute( "bookmark" ) == null )
        {
            /* load the bookmarks */
            Collection bookmarks = createBookmarkManager(  ).findBookmarks( request.getUser(  ) );
            request.setAttribute( "bookmarks", bookmarks );

            /* render */
            include( "edit.vm", request, response );
        }
        else
        {
            include( "edit_bookmark.vm", request, response );
        }
    }

    /**
     * @see net.sf.jportlet.portlet.PortletAdapter#doView(net.sf.jportlet.portlet.PortletRequest, net.sf.jportlet.portlet.PortletResponse)
     */
    protected void doView( PortletRequest  request,
                           PortletResponse response )
        throws PortletException,
                   IOException
    {
        int maxitems = ( request.getWindow(  ).getState(  ) == PortletWindow.State.NORMAL )
                       ? _maxItems
                       : ( -1 );

        /* load the data and put them into the request */
        Collection bookmarks = createBookmarkManager(  ).findBookmarks( request.getUser(  ), maxitems );
        request.setAttribute( "bookmarks", bookmarks );

        /* render */
        include( "view.vm", request, response );
    }

    /**
     * @see net.sf.jportlet.portlet.Portlet#getLastModified(net.sf.jportlet.portlet.PortletRequest)
     */
    public long getLastModified( PortletRequest request )
    {
        return ( request.getMode(  ) == Portlet.Mode.VIEW )
               ? _lastChanged
               : 0;
    }

    /**
     * @see net.sf.jportlet.portlet.Portlet#init(net.sf.jportlet.portlet.PortletConfig)
     */
    public void init( PortletConfig portletConfig )
        throws PortletException
    {
        super.init( portletConfig );

        /* Init-params */
        String maxitems = portletConfig.getInitParameter( CONFIG_MAX_ITEMS );
        try
        {
            _maxItems = ( maxitems != null )
                        ? Integer.parseInt( maxitems )
                        : DEFAULT_MAX_ITEMS;
        }
        catch ( Exception e )
        {
            getLog(  ).warn( CONFIG_MAX_ITEMS + "=" + maxitems, e );
        }

        /* Initialize persistence */
        HibernateService hib = ( HibernateService ) getPortletContext(  ).getService( HibernateService.NAME );
        hib.storeClass( BookmarkImpl.class );
    }
}
TOP

Related Classes of net.sf.jportlet.portlets.bookmark.BookmarkPortlet

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.