Document filter for names

git-svn-id: 
https://taverna.googlecode.com/svn/taverna/utils/net.sf.taverna.t2.lang/branches/maintenance@16489
 bf327186-88b3-11dd-a302-d386e5130c1c


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/commit/e388ce29
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/tree/e388ce29
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/diff/e388ce29

Branch: refs/heads/master
Commit: e388ce29bae532569d5c7aca1316421cba02c9ea
Parents: ddfae3f
Author: [email protected] 
<[email protected]@bf327186-88b3-11dd-a302-d386e5130c1c>
Authored: Tue Jan 7 16:53:54 2014 +0000
Committer: [email protected] 
<[email protected]@bf327186-88b3-11dd-a302-d386e5130c1c>
Committed: Tue Jan 7 16:53:54 2014 +0000

----------------------------------------------------------------------
 .../t2/lang/ui/SanitisingDocumentFilter.java    | 43 ++++++++++++++++++++
 1 file changed, 43 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/e388ce29/ui/src/main/java/net/sf/taverna/t2/lang/ui/SanitisingDocumentFilter.java
----------------------------------------------------------------------
diff --git 
a/ui/src/main/java/net/sf/taverna/t2/lang/ui/SanitisingDocumentFilter.java 
b/ui/src/main/java/net/sf/taverna/t2/lang/ui/SanitisingDocumentFilter.java
new file mode 100644
index 0000000..04341d4
--- /dev/null
+++ b/ui/src/main/java/net/sf/taverna/t2/lang/ui/SanitisingDocumentFilter.java
@@ -0,0 +1,43 @@
+/**
+ * 
+ */
+package net.sf.taverna.t2.lang.ui;
+
+import java.util.regex.Pattern;
+
+import javax.swing.text.AttributeSet;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.DocumentFilter;
+
+/**
+ * @author alanrw
+ *
+ */
+public class SanitisingDocumentFilter extends DocumentFilter {
+       public void insertString(DocumentFilter.FilterBypass fb, int offset, 
String string, AttributeSet attr) throws BadLocationException {
+               
+               fb.insertString(offset, sanitiseString(string), attr);
+       }
+       
+       public void replace(DocumentFilter.FilterBypass fb, int offset, int 
length,
+                     String text, javax.swing.text.AttributeSet attr)
+
+                     throws BadLocationException {
+                          fb.insertString(offset, sanitiseString(text), attr); 
  
+                }
+       
+       private static String sanitiseString(String text) {
+               String result = text;
+               if (Pattern.matches("\\w++", text) == false) {
+                       result = "";
+                       for (char c : text.toCharArray()) {
+                               if (Character.isLetterOrDigit(c) || c == '_') {
+                                       result += c;
+                               } else {
+                                       result += "_";
+                               }
+                       }
+               }
+               return result;          
+       }
+}

Reply via email to