src/Tools/Graphview/mutator_dialog.scala
changeset 59224 e3f90d5c0006
parent 59223 d1e233b4125b
child 59228 56b34fc7a015
--- a/src/Tools/Graphview/mutator_dialog.scala	Thu Jan 01 14:05:48 2015 +0100
+++ b/src/Tools/Graphview/mutator_dialog.scala	Thu Jan 01 14:21:26 2015 +0100
@@ -243,27 +243,16 @@
 
     focusList = focusList.reverse
 
-    private def isRegex(regex: String): Boolean =
-    {
-      try { regex.r; true }
-      catch { case _: java.util.regex.PatternSyntaxException =>  false }
-    }
-
     def get_mutator: Mutator.Info =
     {
-      def regexOrElse(regex: String, orElse: String): String =
-      {
-        if (isRegex(regex)) regex
-        else orElse
-      }
-
       val m =
         initials.mutator match {
           case Mutator.Identity() =>
             Mutator.Identity()
           case Mutator.Node_Expression(r, _, _, _) =>
+            val r1 = inputs(2)._2.get_string
             Mutator.Node_Expression(
-              regexOrElse(inputs(2)._2.get_string, r),
+              if (Library.make_regex(r1).isDefined) r1 else r,
               inputs(3)._2.get_bool,
               // "Parents" means "Show parents" or "Matching Children"
               inputs(1)._2.get_bool,
@@ -280,7 +269,8 @@
               inputs(0)._2.get_string,
               inputs(1)._2.get_string)
           case Mutator.Add_Node_Expression(r) =>
-            Mutator.Add_Node_Expression(regexOrElse(inputs(0)._2.get_string, r))
+            val r1 = inputs(0)._2.get_string
+            Mutator.Add_Node_Expression(if (Library.make_regex(r1).isDefined) r1 else r)
           case Mutator.Add_Transitive_Closure(_, _) =>
             Mutator.Add_Transitive_Closure(
               inputs(0)._2.get_bool,
@@ -298,7 +288,7 @@
           List(
             ("", new iCheckBox("Parents", check_children)),
             ("", new iCheckBox("Children", check_parents)),
-            ("Regex", new iTextField(regex, x => !isRegex(x))),
+            ("Regex", new iTextField(regex, x => Library.make_regex(x).isEmpty)),
             ("", new iCheckBox(reverse_caption, reverse)))
         case Mutator.Node_List(list, reverse, check_parents, check_children) =>
           List(
@@ -311,7 +301,7 @@
             ("Source", new iTextField(source)),
             ("Destination", new iTextField(dest)))
         case Mutator.Add_Node_Expression(regex) =>
-          List(("Regex", new iTextField(regex, x => !isRegex(x))))
+          List(("Regex", new iTextField(regex, x => Library.make_regex(x).isEmpty)))
         case Mutator.Add_Transitive_Closure(parents, children) =>
           List(
             ("", new iCheckBox("Parents", parents)),