/*
Jreepad - personal information manager.
Copyright (C) 2004 Dan Stowell
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.
The full license can be read online here:
http://www.gnu.org/copyleft/gpl.html
*/
package jreepad.editor;
import java.awt.Font;
import javax.swing.JComponent;
import javax.swing.JEditorPane;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import javax.swing.text.StyledEditorKit;
import jreepad.JreepadArticle;
import jreepad.ui.FontHelper;
/**
* Abstract article view in the form of a JEditorPane.
*
* @author <a href="mailto:pewu@losthive.org">Przemek Więch</a>
* @version $Id: EditorPaneView.java,v 1.2 2008-09-21 11:06:50 danstowell Exp $
*/
public abstract class EditorPaneView
extends AbstractArticleView {
protected JEditorPane editorPane;
public EditorPaneView(String type, JreepadArticle article) {
super(article);
editorPane = new JEditorPane(type, "");
reloadArticle();
}
public void reloadArticle()
{
editorPane.setText(article.getContent());
}
public void updateFont(int direction) {
StyledEditorKit kit = (StyledEditorKit) editorPane.getEditorKit();
MutableAttributeSet set = kit.getInputAttributes();
StyledDocument doc = (StyledDocument) editorPane.getDocument();
Font currentFont = doc.getFont(set);
int currentFontSize = currentFont.getSize();
switch (direction) {
case FontHelper.FONT_DIR_UP:
currentFontSize++;
break;
case FontHelper.FONT_DIR_DOWN:
currentFontSize--;
break;
}
StyleConstants.setFontSize(set, currentFontSize);
doc.setCharacterAttributes(0, doc.getLength(), set, false);
}
public JComponent getComponent() {
return editorPane;
}
public String getText()
{
return editorPane.getText();
}
public String getSelectedText()
{
return editorPane.getSelectedText();
}
}