001/* ----------------------------------------------------------------------------
002   The Kiwi Toolkit - A Java Class Library
003   Copyright (C) 1998-2004 Mark A. Lindner
004
005   This library is free software; you can redistribute it and/or
006   modify it under the terms of the GNU General Public License as
007   published by the Free Software Foundation; either version 2 of the
008   License, or (at your option) any later version.
009
010   This library is distributed in the hope that it will be useful,
011   but WITHOUT ANY WARRANTY; without even the implied warranty of
012   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013   General Public License for more details.
014
015   You should have received a copy of the GNU General Public License
016   along with this library; if not, write to the Free Software
017   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
018   02111-1307, USA.
019 
020   The author may be contacted at: mark_a_lindner@yahoo.com
021   ----------------------------------------------------------------------------
022   $Log: MarkupProxy.java,v $
023   Revision 1.5  2004/05/12 19:02:58  markl
024   comment block updates
025
026   Revision 1.4  2003/01/19 09:50:53  markl
027   Javadoc & comment header updates.
028
029   Revision 1.3  2001/03/12 09:27:58  markl
030   Source code and Javadoc cleanup.
031
032   Revision 1.2  1999/01/10 02:49:15  markl
033   added GPL header & RCS tag
034   ----------------------------------------------------------------------------
035*/
036
037package kiwi.ui;
038
039import java.awt.Color;
040import javax.swing.*;
041import javax.swing.border.LineBorder;
042
043import kiwi.text.*;
044
045/** A <code>MarkupProxy</code> is a graphical element that serves as a proxy
046  * for a data structure that cannot easily be rendered in-line within a
047  * <code>SimpleStyledEditor</code>.
048  *
049  * @see kiwi.ui.SimpleStyledEditor
050  * @see kiwi.ui.MarkupProxyFactory
051  *
052  * @author Mark Lindner
053  */
054
055public abstract class MarkupProxy extends JLabel
056  {
057  /** The text for this proxy. */
058  protected String text;
059
060  /** Construct a new <code>MarkupProxy</code>.
061    *
062    * @param icon The icon for this proxy.
063    * @param text The text to display in this proxy.
064    */
065
066  public MarkupProxy(Icon icon, String text)
067    {
068    setText(text);
069    setIcon(icon);
070    setBackground(new Color(200, 200, 200));
071    setOpaque(true);
072    setToolTipText(getDescription());
073    setBorder(new LineBorder(Color.black, 1));
074    }
075
076  /** Get the textual markup used to encode this proxy. */
077
078  public abstract String getMarkup();
079
080  /** Get a description of this proxy. */
081
082  public abstract String getDescription();
083
084  }
085
086/* end of source file */