Imported Classpath 0.18.
* sources.am, Makefile.in: Updated. * Makefile.am (nat_source_files): Removed natProxy.cc. * java/lang/reflect/natProxy.cc: Removed. * gnu/classpath/jdwp/VMFrame.java, gnu/classpath/jdwp/VMIdManager.java, gnu/classpath/jdwp/VMVirtualMachine.java, java/lang/reflect/VMProxy.java: New files. 2005-09-23 Thomas Fitzsimmons <fitzsim@redhat.com> * scripts/makemake.tcl (verbose): Add gnu/java/awt/peer/qt to BC list. 2005-09-23 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/net/DefaultContentHandlerFactory.java (getContent): Remove ClasspathToolkit references. 2005-09-23 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/awt/xlib/XCanvasPeer.java: Add new peer methods. * gnu/awt/xlib/XFramePeer.java: Likewise. * gnu/awt/xlib/XGraphicsConfiguration.java: Likewise. 2005-09-23 Thomas Fitzsimmons <fitzsim@redhat.com> * Makefile.am (libgcjawt_la_SOURCES): Remove jawt.c. Add classpath/native/jawt/jawt.c. * Makefile.in: Regenerate. * jawt.c: Remove file. * include/Makefile.am (tool_include__HEADERS): Remove jawt.h and jawt_md.h. Add ../classpath/include/jawt.h and ../classpath/include/jawt_md.h. * include/Makefile.in: Regenerate. * include/jawt.h: Regenerate. * include/jawt_md.h: Regenerate. From-SVN: r104586
This commit is contained in:
parent
9b044d1951
commit
1ea63ef8be
544 changed files with 34724 additions and 14512 deletions
|
@ -46,458 +46,663 @@ import java.io.Serializable;
|
|||
|
||||
import javax.swing.Action;
|
||||
import javax.swing.JEditorPane;
|
||||
import javax.swing.JTextPane;
|
||||
import javax.swing.event.CaretEvent;
|
||||
import javax.swing.event.CaretListener;
|
||||
|
||||
/**
|
||||
* StyledEditorKit
|
||||
* An {@link EditorKit} that supports editing styled text.
|
||||
*
|
||||
* @author Andrew Selkirk
|
||||
* @author Roman Kennke (roman@kennke.org)
|
||||
*/
|
||||
public class StyledEditorKit extends DefaultEditorKit
|
||||
{
|
||||
/** The serialVersionUID. */
|
||||
private static final long serialVersionUID = 7002391892985555948L;
|
||||
|
||||
/**
|
||||
* UnderlineAction
|
||||
* Toggles the underline attribute for the selected text.
|
||||
*/
|
||||
public static class UnderlineAction extends StyledEditorKit.StyledTextAction
|
||||
{
|
||||
/**
|
||||
* Constructor UnderlineAction
|
||||
* Creates an instance of <code>UnderlineAction</code>.
|
||||
*/
|
||||
public UnderlineAction()
|
||||
{
|
||||
super("TODO");
|
||||
// TODO
|
||||
super("TODO"); // TODO: Figure out name for this action.
|
||||
}
|
||||
|
||||
/**
|
||||
* actionPerformed
|
||||
* @param event TODO
|
||||
* Performs the action.
|
||||
*
|
||||
* @param event the <code>ActionEvent</code> that describes the action
|
||||
*/
|
||||
public void actionPerformed(ActionEvent event)
|
||||
{
|
||||
// TODO
|
||||
JEditorPane editor = getEditor(event);
|
||||
StyledDocument doc = getStyledDocument(editor);
|
||||
Element el = doc.getCharacterElement(editor.getSelectionStart());
|
||||
boolean isUnderline = StyleConstants.isUnderline(el.getAttributes());
|
||||
SimpleAttributeSet atts = new SimpleAttributeSet();
|
||||
StyleConstants.setUnderline(atts, ! isUnderline);
|
||||
setCharacterAttributes(editor, atts, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ItalicAction
|
||||
* Toggles the italic attribute for the selected text.
|
||||
*/
|
||||
public static class ItalicAction extends StyledEditorKit.StyledTextAction
|
||||
{
|
||||
/**
|
||||
* Constructor ItalicAction
|
||||
* Creates an instance of <code>ItalicAction</code>.
|
||||
*/
|
||||
public ItalicAction()
|
||||
{
|
||||
super("TODO");
|
||||
// TODO
|
||||
super("TODO"); // TODO: Figure out correct name of this Action.
|
||||
}
|
||||
|
||||
/**
|
||||
* actionPerformed
|
||||
* @param event TODO
|
||||
* Performs the action.
|
||||
*
|
||||
* @param event the <code>ActionEvent</code> that describes the action
|
||||
*/
|
||||
public void actionPerformed(ActionEvent event)
|
||||
{
|
||||
// TODO
|
||||
JEditorPane editor = getEditor(event);
|
||||
StyledDocument doc = getStyledDocument(editor);
|
||||
Element el = doc.getCharacterElement(editor.getSelectionStart());
|
||||
boolean isItalic = StyleConstants.isItalic(el.getAttributes());
|
||||
SimpleAttributeSet atts = new SimpleAttributeSet();
|
||||
StyleConstants.setItalic(atts, ! isItalic);
|
||||
setCharacterAttributes(editor, atts, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* BoldAction
|
||||
* Toggles the bold attribute for the selected text.
|
||||
*/
|
||||
public static class BoldAction extends StyledEditorKit.StyledTextAction
|
||||
{
|
||||
/**
|
||||
* Constructor BoldAction
|
||||
* Creates an instance of <code>BoldAction</code>.
|
||||
*/
|
||||
public BoldAction()
|
||||
{
|
||||
super("TODO");
|
||||
// TODO
|
||||
super("TODO"); // TODO: Figure out correct name of this Action.
|
||||
}
|
||||
|
||||
/**
|
||||
* actionPerformed
|
||||
* @param event TODO
|
||||
* Performs the action.
|
||||
*
|
||||
* @param event the <code>ActionEvent</code> that describes the action
|
||||
*/
|
||||
public void actionPerformed(ActionEvent event)
|
||||
{
|
||||
// TODO
|
||||
JEditorPane editor = getEditor(event);
|
||||
StyledDocument doc = getStyledDocument(editor);
|
||||
Element el = doc.getCharacterElement(editor.getSelectionStart());
|
||||
boolean isBold = StyleConstants.isBold(el.getAttributes());
|
||||
SimpleAttributeSet atts = new SimpleAttributeSet();
|
||||
StyleConstants.setItalic(atts, ! isBold);
|
||||
setCharacterAttributes(editor, atts, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* AlignmentAction
|
||||
* Sets the alignment attribute on the selected text.
|
||||
*/
|
||||
public static class AlignmentAction extends StyledEditorKit.StyledTextAction
|
||||
{
|
||||
/**
|
||||
* a
|
||||
* The aligment to set.
|
||||
*/
|
||||
private int a;
|
||||
|
||||
/**
|
||||
* Constructor AlignmentAction
|
||||
* @param nm TODO
|
||||
* @param a TODO
|
||||
* Creates a new instance of <code>AlignmentAction</code> to set the
|
||||
* alignment to <code>a</code>.
|
||||
*
|
||||
* @param nm the name of the Action
|
||||
* @param a the alignment to set
|
||||
*/
|
||||
public AlignmentAction(String nm, int a)
|
||||
{
|
||||
super("TODO");
|
||||
// TODO
|
||||
super(nm);
|
||||
this.a = a;
|
||||
}
|
||||
|
||||
/**
|
||||
* actionPerformed
|
||||
* @param event TODO
|
||||
* Performs the action.
|
||||
*
|
||||
* @param event the <code>ActionEvent</code> that describes the action
|
||||
*/
|
||||
public void actionPerformed(ActionEvent event)
|
||||
{
|
||||
// TODO
|
||||
SimpleAttributeSet atts = new SimpleAttributeSet();
|
||||
StyleConstants.setAlignment(atts, a);
|
||||
setParagraphAttributes(getEditor(event), atts, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ForegroundAction
|
||||
* Sets the foreground color attribute on the selected text.
|
||||
*/
|
||||
public static class ForegroundAction extends StyledEditorKit.StyledTextAction
|
||||
{
|
||||
/**
|
||||
* fg
|
||||
* The foreground color to set.
|
||||
*/
|
||||
private Color fg;
|
||||
|
||||
/**
|
||||
* Constructor ForegroundAction
|
||||
* @param nm TODO
|
||||
* @param fg TODO
|
||||
* Creates a new instance of <code>ForegroundAction</code> to set the
|
||||
* foreground color to <code>fg</code>.
|
||||
*
|
||||
* @param nm the name of the Action
|
||||
* @param fg the foreground color to set
|
||||
*/
|
||||
public ForegroundAction(String nm, Color fg)
|
||||
{
|
||||
super("TODO");
|
||||
// TODO
|
||||
super(nm);
|
||||
this.fg = fg;
|
||||
}
|
||||
|
||||
/**
|
||||
* actionPerformed
|
||||
* @param event TODO
|
||||
* Performs the action.
|
||||
*
|
||||
* @param event the <code>ActionEvent</code> that describes the action
|
||||
*/
|
||||
public void actionPerformed(ActionEvent event)
|
||||
{
|
||||
// TODO
|
||||
SimpleAttributeSet atts = new SimpleAttributeSet();
|
||||
StyleConstants.setForeground(atts, fg);
|
||||
setCharacterAttributes(getEditor(event), atts, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* FontSizeAction
|
||||
* Sets the font size attribute on the selected text.
|
||||
*/
|
||||
public static class FontSizeAction extends StyledEditorKit.StyledTextAction
|
||||
{
|
||||
/**
|
||||
* size
|
||||
* The font size to set.
|
||||
*/
|
||||
private int size;
|
||||
|
||||
/**
|
||||
* Constructor FontSizeAction
|
||||
* @param nm TODO
|
||||
* @param size TODO
|
||||
* Creates a new instance of <code>FontSizeAction</code> to set the
|
||||
* font size to <code>size</code>.
|
||||
*
|
||||
* @param nm the name of the Action
|
||||
* @param size the font size to set
|
||||
*/
|
||||
public FontSizeAction(String nm, int size)
|
||||
{
|
||||
super("TODO");
|
||||
// TODO
|
||||
super(nm);
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
/**
|
||||
* actionPerformed
|
||||
* @param event TODO
|
||||
* Performs the action.
|
||||
*
|
||||
* @param event the <code>ActionEvent</code> that describes the action
|
||||
*/
|
||||
public void actionPerformed(ActionEvent event)
|
||||
{
|
||||
// TODO
|
||||
SimpleAttributeSet atts = new SimpleAttributeSet();
|
||||
StyleConstants.setFontSize(atts, size);
|
||||
setCharacterAttributes(getEditor(event), atts, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* FontFamilyAction
|
||||
* Sets the font family attribute on the selected text.
|
||||
*/
|
||||
public static class FontFamilyAction extends StyledEditorKit.StyledTextAction
|
||||
{
|
||||
/**
|
||||
* family
|
||||
* The font family to set.
|
||||
*/
|
||||
private String family;
|
||||
|
||||
/**
|
||||
* Constructor FontFamilyAction
|
||||
* @param nm TODO
|
||||
* @param family TODO
|
||||
* Creates a new instance of <code>FontFamilyAction</code> to set the
|
||||
* font family to <code>family</code>.
|
||||
*
|
||||
* @param nm the name of the Action
|
||||
* @param family the font family to set
|
||||
*/
|
||||
public FontFamilyAction(String nm, String family)
|
||||
{
|
||||
super("TODO");
|
||||
// TODO
|
||||
super(nm);
|
||||
this.family = family;
|
||||
}
|
||||
|
||||
/**
|
||||
* actionPerformed
|
||||
* @param event TODO
|
||||
* Performs the action.
|
||||
*
|
||||
* @param event the <code>ActionEvent</code> that describes the action
|
||||
*/
|
||||
public void actionPerformed(ActionEvent event)
|
||||
{
|
||||
// TODO
|
||||
SimpleAttributeSet atts = new SimpleAttributeSet();
|
||||
StyleConstants.setFontFamily(atts, family);
|
||||
setCharacterAttributes(getEditor(event), atts, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* StyledTextAction
|
||||
* The abstract superclass of all styled TextActions. This class
|
||||
* provides some useful methods to manipulate the text attributes.
|
||||
*/
|
||||
public abstract static class StyledTextAction extends TextAction
|
||||
{
|
||||
/**
|
||||
* Constructor StyledTextAction
|
||||
* @param nm TODO
|
||||
* Creates a new instance of <code>StyledTextAction</code>.
|
||||
*
|
||||
* @param nm the name of the <code>StyledTextAction</code>
|
||||
*/
|
||||
public StyledTextAction(String nm)
|
||||
{
|
||||
super(nm);
|
||||
// TODO
|
||||
}
|
||||
|
||||
/**
|
||||
* getEditor
|
||||
* @param event TODO
|
||||
* @returns JEditorPane
|
||||
* Returns the <code>JEditorPane</code> component from which the
|
||||
* <code>ActionEvent</code> originated.
|
||||
*
|
||||
* @param event the <code>ActionEvent</code>
|
||||
* @return the <code>JEditorPane</code> component from which the
|
||||
* <code>ActionEvent</code> originated
|
||||
*/
|
||||
protected final JEditorPane getEditor(ActionEvent event)
|
||||
{
|
||||
return null; // TODO
|
||||
return (JEditorPane) getTextComponent(event);
|
||||
}
|
||||
|
||||
/**
|
||||
* setCharacterAttributes
|
||||
* @param value0 TODO
|
||||
* @param value1 TODO
|
||||
* @param value2 TODO
|
||||
* Sets the specified character attributes on the currently selected
|
||||
* text of <code>editor</code>. If <code>editor</code> does not have
|
||||
* a selection, then the attributes are used as input attributes
|
||||
* for newly inserted content.
|
||||
*
|
||||
* @param editor the <code>JEditorPane</code> component
|
||||
* @param atts the text attributes to set
|
||||
* @param replace if <code>true</code> the current attributes of the
|
||||
* selection are replaces, otherwise they are merged
|
||||
*/
|
||||
protected final void setCharacterAttributes(JEditorPane value0,
|
||||
AttributeSet value1,
|
||||
boolean value2)
|
||||
protected final void setCharacterAttributes(JEditorPane editor,
|
||||
AttributeSet atts,
|
||||
boolean replace)
|
||||
{
|
||||
// TODO
|
||||
Document doc = editor.getDocument();
|
||||
if (doc instanceof StyledDocument)
|
||||
{
|
||||
StyledDocument styleDoc = (StyledDocument) editor.getDocument();
|
||||
EditorKit kit = editor.getEditorKit();
|
||||
if (!(kit instanceof StyledEditorKit))
|
||||
{
|
||||
StyledEditorKit styleKit = (StyledEditorKit) kit;
|
||||
int start = editor.getSelectionStart();
|
||||
int end = editor.getSelectionEnd();
|
||||
int dot = editor.getCaret().getDot();
|
||||
if (start == dot && end == dot)
|
||||
{
|
||||
// If there is no selection, then we only update the
|
||||
// input attributes.
|
||||
MutableAttributeSet inputAttributes =
|
||||
styleKit.getInputAttributes();
|
||||
inputAttributes.addAttributes(atts);
|
||||
}
|
||||
else
|
||||
styleDoc.setCharacterAttributes(start, end, atts, replace);
|
||||
}
|
||||
else
|
||||
throw new AssertionError("The EditorKit for StyledTextActions "
|
||||
+ "is expected to be a StyledEditorKit");
|
||||
}
|
||||
else
|
||||
throw new AssertionError("The Document for StyledTextActions is "
|
||||
+ "expected to be a StyledDocument.");
|
||||
}
|
||||
|
||||
/**
|
||||
* getStyledDocument
|
||||
* @param value0 TODO
|
||||
* @returns StyledDocument
|
||||
* Returns the {@link StyledDocument} that is used by <code>editor</code>.
|
||||
*
|
||||
* @param editor the <code>JEditorPane</code> from which to get the
|
||||
* <code>StyledDocument</code>
|
||||
*
|
||||
* @return the {@link StyledDocument} that is used by <code>editor</code>
|
||||
*/
|
||||
protected final StyledDocument getStyledDocument(JEditorPane value0)
|
||||
protected final StyledDocument getStyledDocument(JEditorPane editor)
|
||||
{
|
||||
return null; // TODO
|
||||
Document doc = editor.getDocument();
|
||||
if (!(doc instanceof StyledDocument))
|
||||
throw new AssertionError("The Document for StyledEditorKits is "
|
||||
+ "expected to be a StyledDocument.");
|
||||
|
||||
return (StyledDocument) doc;
|
||||
}
|
||||
|
||||
/**
|
||||
* getStyledEditorKit
|
||||
* @param value0 TODO
|
||||
* @returns StyledEditorKit
|
||||
* Returns the {@link StyledEditorKit} that is used by <code>editor</code>.
|
||||
*
|
||||
* @param editor the <code>JEditorPane</code> from which to get the
|
||||
* <code>StyledEditorKit</code>
|
||||
*
|
||||
* @return the {@link StyledEditorKit} that is used by <code>editor</code>
|
||||
*/
|
||||
protected final StyledEditorKit getStyledEditorKit(JEditorPane value0)
|
||||
protected final StyledEditorKit getStyledEditorKit(JEditorPane editor)
|
||||
{
|
||||
return null; // TODO
|
||||
EditorKit kit = editor.getEditorKit();
|
||||
if (!(kit instanceof StyledEditorKit))
|
||||
throw new AssertionError("The EditorKit for StyledDocuments is "
|
||||
+ "expected to be a StyledEditorKit.");
|
||||
|
||||
return (StyledEditorKit) kit;
|
||||
}
|
||||
|
||||
/**
|
||||
* setParagraphAttributes
|
||||
* @param value0 TODO
|
||||
* @param value1 TODO
|
||||
* @param value2 TODO
|
||||
* Sets the specified character attributes on the paragraph that
|
||||
* contains the currently selected
|
||||
* text of <code>editor</code>. If <code>editor</code> does not have
|
||||
* a selection, then the attributes are set on the paragraph that
|
||||
* contains the current caret position.
|
||||
*
|
||||
* @param editor the <code>JEditorPane</code> component
|
||||
* @param atts the text attributes to set
|
||||
* @param replace if <code>true</code> the current attributes of the
|
||||
* selection are replaces, otherwise they are merged
|
||||
*/
|
||||
protected final void setParagraphAttributes(JEditorPane value0,
|
||||
AttributeSet value1,
|
||||
boolean value2)
|
||||
protected final void setParagraphAttributes(JEditorPane editor,
|
||||
AttributeSet atts,
|
||||
boolean replace)
|
||||
{
|
||||
// TODO
|
||||
Document doc = editor.getDocument();
|
||||
if (doc instanceof StyledDocument)
|
||||
{
|
||||
StyledDocument styleDoc = (StyledDocument) editor.getDocument();
|
||||
EditorKit kit = editor.getEditorKit();
|
||||
if (!(kit instanceof StyledEditorKit))
|
||||
{
|
||||
StyledEditorKit styleKit = (StyledEditorKit) kit;
|
||||
int start = editor.getSelectionStart();
|
||||
int end = editor.getSelectionEnd();
|
||||
int dot = editor.getCaret().getDot();
|
||||
if (start == dot && end == dot)
|
||||
{
|
||||
// If there is no selection, then we only update the
|
||||
// input attributes.
|
||||
MutableAttributeSet inputAttributes =
|
||||
styleKit.getInputAttributes();
|
||||
inputAttributes.addAttributes(atts);
|
||||
}
|
||||
else
|
||||
styleDoc.setParagraphAttributes(start, end, atts, replace);
|
||||
}
|
||||
else
|
||||
throw new AssertionError("The EditorKit for StyledTextActions "
|
||||
+ "is expected to be a StyledEditorKit");
|
||||
}
|
||||
else
|
||||
throw new AssertionError("The Document for StyledTextActions is "
|
||||
+ "expected to be a StyledDocument.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* StyledViewFactory
|
||||
* A {@link ViewFactory} that is able to create {@link View}s for
|
||||
* the <code>Element</code>s that are supported by
|
||||
* <code>StyledEditorKit</code>, namely the following types of Elements:
|
||||
*
|
||||
* <ul>
|
||||
* <li>{@link AbstractDocument.ContentElementName}</li>
|
||||
* <li>{@link AbstractDocument.ParagraphElementName}</li>
|
||||
* <li>{@link AbstractDocument.SectionElementName}</li>
|
||||
* <li>{@link StyleContext.ComponentElementName}</li>
|
||||
* <li>{@link StyleContext.IconElementName}</li>
|
||||
* </ul>
|
||||
*/
|
||||
static class StyledViewFactory
|
||||
implements ViewFactory
|
||||
{
|
||||
/**
|
||||
* Constructor StyledViewFactory
|
||||
* Creates a {@link View} for the specified <code>Element</code>.
|
||||
*
|
||||
* @param element the <code>Element</code> to create a <code>View</code>
|
||||
* for
|
||||
* @return the <code>View</code> for the specified <code>Element</code>
|
||||
* or <code>null</code> if the type of <code>element</code> is
|
||||
* not supported
|
||||
*/
|
||||
StyledViewFactory()
|
||||
public View create(Element element)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
/**
|
||||
* create
|
||||
* @param value0 TODO
|
||||
* @returns View
|
||||
*/
|
||||
public View create(Element value0)
|
||||
{
|
||||
return null; // TODO
|
||||
String name = element.getName();
|
||||
View view = null;
|
||||
if (name.equals(AbstractDocument.ContentElementName))
|
||||
view = new LabelView(element);
|
||||
else if (name.equals(AbstractDocument.ParagraphElementName))
|
||||
view = new ParagraphView(element);
|
||||
else if (name.equals(AbstractDocument.SectionElementName))
|
||||
view = new BoxView(element, View.Y_AXIS);
|
||||
else if (name.equals(StyleConstants.ComponentElementName))
|
||||
view = new ComponentView(element);
|
||||
else if (name.equals(StyleConstants.IconElementName))
|
||||
view = new IconView(element);
|
||||
else
|
||||
throw new AssertionError("Unknown Element type: "
|
||||
+ element.getClass().getName() + " : "
|
||||
+ name);
|
||||
return view;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* AttributeTracker
|
||||
* Keeps track of the caret position and updates the currentRun
|
||||
* <code>Element</code> and the <code>inputAttributes</code>.
|
||||
*/
|
||||
class AttributeTracker
|
||||
implements CaretListener, PropertyChangeListener, Serializable
|
||||
class CaretTracker
|
||||
implements CaretListener
|
||||
{
|
||||
/**
|
||||
* Constructor AttributeTracker
|
||||
* @param value0 TODO
|
||||
* Notifies an update of the caret position.
|
||||
*
|
||||
* @param ev the event for the caret update
|
||||
*/
|
||||
AttributeTracker(StyledEditorKit value0)
|
||||
public void caretUpdate(CaretEvent ev)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
Object source = ev.getSource();
|
||||
if (!(source instanceof JTextComponent))
|
||||
throw new AssertionError("CaretEvents are expected to come from a"
|
||||
+ "JTextComponent.");
|
||||
|
||||
/**
|
||||
* updateInputAttributes
|
||||
* @param value0 TODO
|
||||
* @param value1 TODO
|
||||
* @param value2 TODO
|
||||
*/
|
||||
void updateInputAttributes(int value0, int value1, JTextComponent value2)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
JTextComponent text = (JTextComponent) source;
|
||||
Document doc = text.getDocument();
|
||||
if (!(doc instanceof StyledDocument))
|
||||
throw new AssertionError("The Document used by StyledEditorKits is"
|
||||
+ "expected to be a StyledDocument");
|
||||
|
||||
/**
|
||||
* propertyChange
|
||||
* @param value0 TODO
|
||||
*/
|
||||
public void propertyChange(PropertyChangeEvent value0)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
/**
|
||||
* caretUpdate
|
||||
* @param value0 TODO
|
||||
*/
|
||||
public void caretUpdate(CaretEvent value0)
|
||||
{
|
||||
// TODO
|
||||
StyledDocument styleDoc = (StyledDocument) doc;
|
||||
currentRun = styleDoc.getCharacterElement(ev.getDot());
|
||||
createInputAttributes(currentRun, inputAttributes);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* currentRun
|
||||
* Stores the <code>Element</code> at the current caret position. This
|
||||
* is updated by {@link CaretTracker}.
|
||||
*/
|
||||
Element currentRun;
|
||||
|
||||
/**
|
||||
* currentParagraph
|
||||
*/
|
||||
Element currentParagraph;
|
||||
|
||||
/**
|
||||
* inputAttributes
|
||||
* The current input attributes. This is updated by {@link CaretTracker}.
|
||||
*/
|
||||
MutableAttributeSet inputAttributes;
|
||||
|
||||
/**
|
||||
* Constructor StyledEditorKit
|
||||
* The CaretTracker that keeps track of the current input attributes, and
|
||||
* the current character run Element.
|
||||
*/
|
||||
CaretTracker caretTracker;
|
||||
|
||||
/**
|
||||
* The ViewFactory for StyledEditorKits.
|
||||
*/
|
||||
StyledViewFactory viewFactory;
|
||||
|
||||
/**
|
||||
* Creates a new instance of <code>StyledEditorKit</code>.
|
||||
*/
|
||||
public StyledEditorKit()
|
||||
{
|
||||
// TODO
|
||||
inputAttributes = new SimpleAttributeSet();
|
||||
}
|
||||
|
||||
/**
|
||||
* clone
|
||||
* @returns Object
|
||||
* Creates an exact copy of this <code>StyledEditorKit</code>.
|
||||
*
|
||||
* @return an exact copy of this <code>StyledEditorKit</code>
|
||||
*/
|
||||
public Object clone()
|
||||
{
|
||||
return null; // TODO
|
||||
StyledEditorKit clone = (StyledEditorKit) super.clone();
|
||||
// FIXME: Investigate which fields must be copied.
|
||||
return clone;
|
||||
}
|
||||
|
||||
/**
|
||||
* getActions
|
||||
* @returns Action[]
|
||||
* Returns the <code>Action</code>s supported by this {@link EditorKit}.
|
||||
* This includes the {@link BoldAction}, {@link ItalicAction} and
|
||||
* {@link UnderlineAction} as well as the <code>Action</code>s supported
|
||||
* by {@link DefaultEditorKit}.
|
||||
*
|
||||
* The other <code>Action</code>s of <code>StyledEditorKit</code> are not
|
||||
* returned here, since they require a parameter and thus custom
|
||||
* instantiation.
|
||||
*
|
||||
* @return the <code>Action</code>s supported by this {@link EditorKit}
|
||||
*/
|
||||
public Action[] getActions()
|
||||
{
|
||||
return null; // TODO
|
||||
Action[] actions1 = super.getActions();
|
||||
Action[] myActions = new Action[] { new BoldAction(), new ItalicAction(),
|
||||
new UnderlineAction() };
|
||||
return TextAction.augmentList(actions1, myActions);
|
||||
}
|
||||
|
||||
/**
|
||||
* getInputAttributes
|
||||
* @returns MutableAttributeSet
|
||||
* Returns the current input attributes. These are automatically set on
|
||||
* any newly inserted content, if not specified otherwise.
|
||||
*
|
||||
* @return the current input attributes
|
||||
*/
|
||||
public MutableAttributeSet getInputAttributes()
|
||||
{
|
||||
return null; // TODO
|
||||
return inputAttributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* getCharacterAttributeRun
|
||||
* @returns Element
|
||||
* Returns the {@link Element} that represents the character run at the
|
||||
* current caret position.
|
||||
*
|
||||
* @return the {@link Element} that represents the character run at the
|
||||
* current caret position
|
||||
*/
|
||||
public Element getCharacterAttributeRun()
|
||||
{
|
||||
return null; // TODO
|
||||
return currentRun;
|
||||
}
|
||||
|
||||
/**
|
||||
* createDefaultDocument
|
||||
* @returns Document
|
||||
* Creates the default {@link Document} supported by this
|
||||
* <code>EditorKit</code>. This is an instance of
|
||||
* {@link DefaultStyledDocument} in this case but may be overridden by
|
||||
* subclasses.
|
||||
*
|
||||
* @return an instance of <code>DefaultStyledDocument</code>
|
||||
*/
|
||||
public Document createDefaultDocument()
|
||||
{
|
||||
return null; // TODO
|
||||
return new DefaultStyledDocument();
|
||||
}
|
||||
|
||||
/**
|
||||
* install
|
||||
* @param component TODO
|
||||
* Installs this <code>EditorKit</code> on the specified {@link JEditorPane}.
|
||||
* This basically involves setting up required listeners on the
|
||||
* <code>JEditorPane</code>.
|
||||
*
|
||||
* @param component the <code>JEditorPane</code> to install this
|
||||
* <code>EditorKit</code> on
|
||||
*/
|
||||
public void install(JEditorPane component)
|
||||
{
|
||||
// TODO
|
||||
CaretTracker tracker = new CaretTracker();
|
||||
component.addCaretListener(tracker);
|
||||
}
|
||||
|
||||
/**
|
||||
* deinstall
|
||||
* @param component TODO
|
||||
* Deinstalls this <code>EditorKit</code> from the specified
|
||||
* {@link JEditorPane}. This basically involves removing all listeners from
|
||||
* <code>JEditorPane</code> that have been set up by this
|
||||
* <code>EditorKit</code>.
|
||||
*
|
||||
* @param component the <code>JEditorPane</code> from which to deinstall this
|
||||
* <code>EditorKit</code>
|
||||
*/
|
||||
public void deinstall(JEditorPane component)
|
||||
{
|
||||
// TODO
|
||||
CaretTracker t = caretTracker;
|
||||
if (t != null)
|
||||
component.removeCaretListener(t);
|
||||
caretTracker = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* getViewFactory
|
||||
* @returns ViewFactory
|
||||
* Returns a {@link ViewFactory} that is able to create {@link View}s
|
||||
* for {@link Element}s that are supported by this <code>EditorKit</code>,
|
||||
* namely the following types of <code>Element</code>s:
|
||||
*
|
||||
* <ul>
|
||||
* <li>{@link AbstractDocument.ContentElementName}</li>
|
||||
* <li>{@link AbstractDocument.ParagraphElementName}</li>
|
||||
* <li>{@link AbstractDocument.SectionElementName}</li>
|
||||
* <li>{@link StyleContext.ComponentElementName}</li>
|
||||
* <li>{@link StyleContext.IconElementName}</li>
|
||||
* </ul>
|
||||
*
|
||||
* @return a {@link ViewFactory} that is able to create {@link View}s
|
||||
* for {@link Element}s that are supported by this <code>EditorKit</code>
|
||||
*/
|
||||
public ViewFactory getViewFactory()
|
||||
{
|
||||
return null; // TODO
|
||||
if (viewFactory == null)
|
||||
viewFactory = new StyledViewFactory();
|
||||
return viewFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* createInputAttributes
|
||||
* @param element TODO
|
||||
* @param set TODO
|
||||
* Copies the text attributes from <code>element</code> to <code>set</code>.
|
||||
* This is called everytime when the caret position changes to keep
|
||||
* track of the current input attributes. The attributes in <code>set</code>
|
||||
* are cleaned before adding the attributes of <code>element</code>.
|
||||
*
|
||||
* This method filters out attributes for element names, <code>Icon</code>s
|
||||
* and <code>Component</code>s.
|
||||
*
|
||||
* @param element the <code>Element</code> from which to copy the text
|
||||
* attributes
|
||||
* @param set the inputAttributes to copy the attributes to
|
||||
*/
|
||||
protected void createInputAttributes(Element element, MutableAttributeSet set)
|
||||
protected void createInputAttributes(Element element,
|
||||
MutableAttributeSet set)
|
||||
{
|
||||
// TODO
|
||||
AttributeSet atts = element.getAttributes();
|
||||
set.removeAttributes(set);
|
||||
// FIXME: Filter out component, icon and element name attributes.
|
||||
set.addAttributes(atts);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue