/*******************************************************************************
* Copyright (c) 2001, 2010 Mathew A. Nelson and Robocode contributors
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://robocode.sourceforge.net/license/epl-v10.html
*
* Contributors:
* Mathew A. Nelson
* - Initial API and implementation
*******************************************************************************/
package net.sf.robocode.ui.util;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
/**
* @author Mathew A. Nelson (original)
*/
@SuppressWarnings("serial")
public class LimitedClassnameDocument extends LimitedDocument {
public LimitedClassnameDocument() {
super();
}
public LimitedClassnameDocument(int maxRows, int maxCols) {
super(maxRows, maxCols);
}
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (offs == 0 && str.length() > 0) {
if (!Character.isJavaIdentifierStart(str.charAt(0))) {
java.awt.Toolkit.getDefaultToolkit().beep();
return;
}
} else {
for (int i = 0; i < str.length(); i++) {
if (!Character.isJavaIdentifierPart(str.charAt(i))) {
java.awt.Toolkit.getDefaultToolkit().beep();
return;
}
}
}
if (offs == 0) {
if (!Character.isUpperCase(str.charAt(0))) {
str = str.substring(0, 1).toUpperCase() + str.substring(1);
}
}
super.insertString(offs, str, a);
}
}