// BlogBridge -- RSS feed reader, manager, and web based service
// Copyright (C) 2002-2006 by R. Pito Salas
//
// 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., 59 Temple Place,
// Suite 330, Boston, MA 02111-1307 USA
//
// Contact: R. Pito Salas
// mailto:pitosalas@users.sourceforge.net
// More information: about BlogBridge
// http://www.blogbridge.com
// http://sourceforge.net/projects/blogbridge
//
// $Id: IArticleDisplay.java,v 1.4 2008/02/28 12:36:16 spyromus Exp $
//
package com.salas.bb.views.feeds;
import com.salas.bb.domain.IArticle;
import com.salas.bb.domain.IArticleListener;
import javax.swing.event.HyperlinkListener;
import java.awt.*;
/**
* Article display interface.
*/
public interface IArticleDisplay
{
/**
* Returns visual component.
*
* @return visual component.
*/
Component getComponent();
/**
* Returns assigned article.
*
* @return article.
*/
IArticle getArticle();
/**
* Returns listener.
*
* @return listener.
*/
IArticleListener getArticleListener();
/**
* Registers hyperlink listener.
*
* @param aListener listener.
*/
void addHyperlinkListener(HyperlinkListener aListener);
/**
* Sets <code>TRUE</code> if the display is currently selected.
*
* @param sel <code>TRUE</code> if the display is currently selected.
*/
void setSelected(boolean sel);
/**
* Sets <code>TRUE</code> if the display should become collapsed.
*
* @param col <code>TRUE</code> if the display is currently selected.
*/
void setCollapsed(boolean col);
/**
* Requests focus and returns the state.
*
* @return <code>FALSE</code> if focus isn't likely to be changed.
*/
boolean focus();
/**
* Invoked when article should update highlights.
*/
void updateHighlights();
/**
* Updates a color code.
*/
void updateColorCode();
/**
* Invoked on theme change.
*/
void onThemeChange();
/**
* Invoked when view mode changes.
*/
void onViewModeChange();
/**
* Invoked when font bias changes.
*/
void onFontBiasChange();
/**
* Returns current article display view mode.
*
* @return mode.
*/
int getViewMode();
/**
* Sets a view model of this view.
*
* @param aMode new mode.
*/
void setViewMode(int aMode);
}