You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/SIPRPSoft/src/leaf/ui/LeafTextArea.java

71 lines
1.1 KiB

package leaf.ui;
import java.beans.PropertyChangeListener;
import javax.swing.JTextArea;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
public class LeafTextArea extends JTextArea
{
private static final long serialVersionUID = 1L;
private static final String PROPERTY = "CHANGED";
private final ChangeThread thread = new ChangeThread();
private boolean isRunning = true;
public LeafTextArea( PropertyChangeListener parent )
{
this.addPropertyChangeListener( PROPERTY, parent );
this.addCaretListener( new CaretListener()
{
@Override
public void caretUpdate( CaretEvent e )
{
firePropertyChange( PROPERTY, false, true );
}
} );
}
@Override
public void setEditable( boolean b )
{
super.setEditable( b );
if( b )
{
startThread();
}
else
{
stopThread();
}
}
private void startThread()
{
isRunning = true;
thread.start();
}
private void stopThread()
{
isRunning = false;
}
private class ChangeThread extends Thread
{
@Override
public synchronized void start()
{
while( isRunning )
{
}
}
}
}