package org.chartsy.main.welcome.ui;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SpringLayout;
import org.chartsy.main.welcome.Feeds;
import org.chartsy.main.welcome.content.Constants;
import org.chartsy.main.welcome.content.Feed;
import org.chartsy.main.welcome.content.FeedEvent;
import org.chartsy.main.welcome.content.FeedListener;
import org.chartsy.main.welcome.content.FeedMessage;
import org.chartsy.main.welcome.content.SpringUtilities;
import org.chartsy.main.welcome.content.WebLink;
import org.openide.util.ImageUtilities;
/**
*
* @author Viorel
*/
public class Forum extends JPanel implements Constants, FeedListener
{
private JLabel loading;
public Forum()
{
super(new SpringLayout());
setOpaque(false);
setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
initComponents();
Feeds.getDefault().addFeedListener(Feeds.forumFeed, (FeedListener) this);
}
private void initComponents()
{
JLabel label;
label = new JLabel(ImageUtilities.loadImageIcon(FORUM_ICON, true));
label.setHorizontalAlignment(JLabel.LEFT);
label.setOpaque(false);
label.setBorder(BorderFactory.createEmptyBorder());
add(label);
loading = new JLabel("Loading content ...");
loading.setHorizontalAlignment(JLabel.LEFT);
loading.setOpaque(false);
loading.setBorder(BorderFactory.createEmptyBorder());
loading.setFont(LINK_FONT);
loading.setForeground(LINK_COLOR);
add(loading);
SpringUtilities.makeCompactGrid(this,
getComponentCount(), 1,
5, 5,
5, 5);
}
@Override public void fireFeedParsed(FeedEvent event)
{
Feed feed = (Feed) event.getSource();
if (feed.getFeedName().equals(Feeds.forumFeed))
{
remove(loading);
for (int i = 0; i < feed.getMessages().size(); i++)
{
FeedMessage message = feed.getMessages().get(i);
add(WebLink.createWebLink(message.getTitle(), message.getLink(), true));
}
SpringUtilities.makeCompactGrid(this,
getComponentCount(), 1,
5, 5,
5, 5);
revalidate();
repaint();
}
}
}