package flow.netbeans.markdown.preview;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
/**
*
* @author Holger Stenger
*/
public class SwingHtmlView extends AbstractHtmlView {
private final JTextPane textPane;
private final JScrollPane scrollPane;
public SwingHtmlView() {
textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setEditable(false);
textPane.addHyperlinkListener(new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent e) {
if (HyperlinkEvent.EventType.ENTERED.equals(e.getEventType())) {
final String statusMessage = e.getDescription();
setStatusMessage(statusMessage);
} else if (HyperlinkEvent.EventType.EXITED.equals(e.getEventType())) {
setStatusMessage(null);
} else if (HyperlinkEvent.EventType.ACTIVATED.equals(e.getEventType())) {
if (e.getURL() != null) {
showURLExternal(e.getURL());
}
}
}
});
scrollPane = new JScrollPane(textPane);
scrollPane.setBorder(BorderFactory.createEmptyBorder());
}
@Override
public JComponent getComponent() {
return scrollPane;
}
@Override
public void setContent(String content) {
textPane.setText(content);
}
@Override
public boolean isHtmlFullySupported() {
return false;
}
}