You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/03/06 23:34:05 UTC

[09/50] [abbrv] incubator-taverna-workbench git commit: Document filter for names

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: alan@mygrid.org.uk <al...@bf327186-88b3-11dd-a302-d386e5130c1c>
Authored: Tue Jan 7 16:53:54 2014 +0000
Committer: alan@mygrid.org.uk <al...@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;		
+	}
+}