9bcd984b0d
2003/04/08 14:28:46 obr 1.2.2.1: re-added accessibility workbench
123 lines
2.9 KiB
Java
123 lines
2.9 KiB
Java
import java.awt.Font;
|
|
import java.awt.Rectangle;
|
|
import java.awt.Color;
|
|
import java.awt.Graphics;
|
|
import javax.swing.JScrollPane;
|
|
import javax.swing.JTextArea;
|
|
import javax.swing.JScrollBar;
|
|
|
|
|
|
|
|
/** A message area displays text in a scrollable text widget. It is a
|
|
singleton. Other objects can access it directly to display messages.
|
|
*/
|
|
public class MessageArea
|
|
extends JScrollPane
|
|
{
|
|
public static synchronized MessageArea Instance ()
|
|
{
|
|
if (saInstance == null)
|
|
saInstance = new MessageArea ();
|
|
return saInstance;
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Create a new message area. This method is private because the class is
|
|
a singleton and may therefore not be instanciated from the outside.
|
|
*/
|
|
private MessageArea ()
|
|
{
|
|
maText = new JTextArea();
|
|
maText.setBackground (new Color (255,250,240));
|
|
maText.setFont (new Font ("Helvetica", Font.PLAIN, 9));
|
|
setViewportView (maText);
|
|
setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
|
|
setHorizontalScrollBarPolicy (JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
|
|
|
|
printMessage (
|
|
"class path is " + System.getProperty ("java.class.path") + "\n");
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Show the given string at the end of the message area and scroll to make
|
|
it visible.
|
|
*/
|
|
public static synchronized void print (String aMessage)
|
|
{
|
|
print (0, aMessage);
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Show the given string at the end of the message area and scroll to make
|
|
it visible. Indent the string as requested.
|
|
*/
|
|
public static synchronized void print (int nIndentation, String aMessage)
|
|
{
|
|
while (nIndentation-- > 0)
|
|
aMessage = " " + aMessage;
|
|
Instance().printMessage(aMessage);
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Show the given string at the end of the message area and scroll to make
|
|
it visible.
|
|
*/
|
|
public static void println (String aMessage)
|
|
{
|
|
println (0, aMessage);
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Show the given string at the end of the message area and scroll to make
|
|
it visible.
|
|
*/
|
|
public static void println (int nIndentation, String aMessage)
|
|
{
|
|
print (nIndentation, aMessage+"\n");
|
|
}
|
|
|
|
|
|
|
|
|
|
public void paintComponent (Graphics g)
|
|
{
|
|
synchronized (g)
|
|
{
|
|
JScrollBar sb = getVerticalScrollBar();
|
|
if (sb != null)
|
|
{
|
|
int nScrollBarValue = sb.getMaximum() - sb.getVisibleAmount() - 1;
|
|
sb.setValue (nScrollBarValue);
|
|
}
|
|
super.paintComponent (g);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Append the given string to the end of the text and scroll so that it
|
|
becomes visible. This is an internal method. Use one of the static
|
|
and public ones.
|
|
*/
|
|
private synchronized void printMessage (String aMessage)
|
|
{
|
|
maText.append (aMessage);
|
|
}
|
|
|
|
|
|
|
|
|
|
private static MessageArea saInstance = null;
|
|
private JTextArea maText;
|
|
}
|