/*
* (c) 2000-2010 Carlos G�mez Rodr�guez, todos los derechos reservados / all rights reserved.
* Licencia en license/bsd.txt / License in license/bsd.txt
*/
package eu.irreality.age.swing;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
import javax.swing.text.NavigationFilter;
import javax.swing.text.Position.Bias;
/**
*
* @author Carlos G�mez
* Created at mortadelo, 08/04/2010 16:49:47
*
*/
public class PromptNavigationFilter extends NavigationFilter
{
private String leftPrompt = "";
private String rightPrompt = "";
private Document doc;
public PromptNavigationFilter(String leftPrompt , String rightPrompt , Document doc)
{
this.leftPrompt = leftPrompt;
this.rightPrompt = rightPrompt;
this.doc = doc;
}
public String getLeftPrompt() { return leftPrompt; }
public String getRightPrompt() { return rightPrompt; }
public void setLeftPrompt ( String leftPrompt ) { this.leftPrompt = leftPrompt; }
public void setRightPrompt ( String rightPrompt ) { this.rightPrompt = rightPrompt; }
/*
public int getNextVisualPositionFrom(JTextComponent text, int pos,
Bias bias, int direction, Bias[] biasRet)
throws BadLocationException {
// TODO Auto-generated method stub
return super.getNextVisualPositionFrom(text, pos, bias, direction, biasRet);
}
*/
public void moveDot(FilterBypass fb, int dot, Bias bias)
{
int pos = Math.max(dot,leftPrompt.length());
pos = Math.min(pos,doc.getLength()-rightPrompt.length());
fb.moveDot(pos, bias);
}
public void setDot(FilterBypass fb, int dot, Bias bias)
{
int pos = Math.max(dot,leftPrompt.length());
pos = Math.min(pos,doc.getLength()-rightPrompt.length());
fb.setDot(pos, bias);
}
}