1.1 --- a/isac-java/src/java/isac/gui/mawen/editor/TransformAstUtil.scala Tue Sep 12 10:38:02 2017 +0200
1.2 +++ b/isac-java/src/java/isac/gui/mawen/editor/TransformAstUtil.scala Tue Sep 12 12:02:50 2017 +0200
1.3 @@ -37,8 +37,12 @@
1.4 if (boxAst != null) {// check if there is a box
1.5 val boxAstElem = TransformAstUtil.UnBox(boxAst) // get ast from Appl(Cursor, ast)
1.6 val unboxedroot = TransformAstUtil.Update(c.getAst(), boxAst, TransformAstUtil.UnBox) // remove Box from Root Ast
1.7 - val parentAst = AstInfoUtil.Parent(unboxedroot, boxAstElem)
1.8 - c.setAst(TransformAstUtil.Update(unboxedroot, AstInfoUtil.NextChild(parentAst, boxAstElem), TransformAstUtil.Box))
1.9 + AstInfoUtil.Parent(unboxedroot, boxAstElem) match {
1.10 + case Some(parentAst) => c.setAst(TransformAstUtil.Update(unboxedroot, AstInfoUtil.NextChild(parentAst, boxAstElem), TransformAstUtil.Box))
1.11 + case None => {}
1.12 + }
1.13 +
1.14 +
1.15 }
1.16 }
1.17 def BoxPrevChild(c: AstContainer) = {
1.18 @@ -46,7 +50,11 @@
1.19 if (boxAst != null) {// check if there is a box
1.20 val boxAstElem = TransformAstUtil.UnBox(boxAst)
1.21 val unboxedAst = TransformAstUtil.Update(c.getAst(), boxAst, TransformAstUtil.UnBox)
1.22 - c.setAst(TransformAstUtil.Update(unboxedAst, AstInfoUtil.PrevChild(AstInfoUtil.Parent(unboxedAst, boxAstElem), boxAstElem), TransformAstUtil.Box))
1.23 + AstInfoUtil.Parent(unboxedAst, boxAstElem) match {
1.24 + case Some(parentAst) => c.setAst(TransformAstUtil.Update(unboxedAst, AstInfoUtil.PrevChild(parentAst, boxAstElem), TransformAstUtil.Box))
1.25 + case None => {}
1.26 + }
1.27 +
1.28 }
1.29 }
1.30 def BoxParent(c: AstContainer) = {
1.31 @@ -54,7 +62,11 @@
1.32 if (boxAst != null) {// check if there is a box
1.33 val boxAstElem = TransformAstUtil.UnBox(boxAst)
1.34 val unboxedAst = TransformAstUtil.Update(c.getAst(), boxAst, TransformAstUtil.UnBox)
1.35 - c.setAst(TransformAstUtil.Update(unboxedAst, AstInfoUtil.Parent(unboxedAst, boxAstElem), TransformAstUtil.Box))
1.36 + AstInfoUtil.Parent(unboxedAst, boxAstElem) match {
1.37 + case Some(parentAst) => c.setAst(TransformAstUtil.Update(unboxedAst, parentAst, TransformAstUtil.Box))
1.38 + case None => {}
1.39 + }
1.40 +
1.41 }
1.42 }
1.43 def BoxChild(c: AstContainer) = {
1.44 @@ -63,7 +75,11 @@
1.45 val boxAstElem = TransformAstUtil.UnBox(boxAst)
1.46 if (AstInfoUtil.FirstChild(boxAstElem) != null) {
1.47 val unboxedAst = TransformAstUtil.Update(c.getAst(), boxAst, TransformAstUtil.UnBox)
1.48 - c.setAst(TransformAstUtil.Update(unboxedAst, AstInfoUtil.FirstChild(boxAstElem), TransformAstUtil.Box))
1.49 + AstInfoUtil.FirstChild(boxAstElem) match {
1.50 + case Some(a) => c.setAst(TransformAstUtil.Update(unboxedAst, a, TransformAstUtil.Box))
1.51 + case None => {}
1.52 + }
1.53 +
1.54 }
1.55 }
1.56 }
1.57 @@ -72,8 +88,11 @@
1.58 if (boxAst != null) {
1.59 val boxAstElem = TransformAstUtil.CursorToAst(boxAst) // get ast from Appl(Cursor, ast)
1.60 val unboxedroot = TransformAstUtil.Update(c.getAst(), boxAst, TransformAstUtil.CursorToAst) // remove Box from Root Ast
1.61 - val parentAst = AstInfoUtil.Parent(unboxedroot, boxAstElem)
1.62 - c.setAst(TransformAstUtil.Update(unboxedroot, AstInfoUtil.NextChild(parentAst, boxAstElem), TransformAstUtil.AstToCursor))
1.63 + AstInfoUtil.Parent(unboxedroot, boxAstElem) match {
1.64 + case Some(parentAst) => c.setAst(TransformAstUtil.Update(unboxedroot, AstInfoUtil.NextChild(parentAst, boxAstElem), TransformAstUtil.AstToCursor))
1.65 + case None => {}
1.66 + }
1.67 +
1.68 }
1.69 }
1.70 def CursorPrevChild(c: AstContainer) = {
1.71 @@ -81,7 +100,11 @@
1.72 if (boxAst != null) {// check if there is a box
1.73 val boxAstElem = TransformAstUtil.CursorToAst(boxAst)
1.74 val unboxedAst = TransformAstUtil.Update(c.getAst(), boxAst, TransformAstUtil.CursorToAst)
1.75 - c.setAst(TransformAstUtil.Update(unboxedAst, AstInfoUtil.PrevChild(AstInfoUtil.Parent(unboxedAst, boxAstElem), boxAstElem), TransformAstUtil.AstToCursor))
1.76 + AstInfoUtil.Parent(unboxedAst, boxAstElem) match {
1.77 + case Some(parentAst) => c.setAst(TransformAstUtil.Update(unboxedAst, AstInfoUtil.PrevChild(parentAst, boxAstElem), TransformAstUtil.AstToCursor))
1.78 + case None => {}
1.79 + }
1.80 +
1.81 }
1.82 }
1.83 def CursorParent(c: AstContainer) = {
1.84 @@ -89,7 +112,10 @@
1.85 if (boxAst != null) {// check if there is a box
1.86 val boxAstElem = TransformAstUtil.CursorToAst(boxAst)
1.87 val unboxedAst = TransformAstUtil.Update(c.getAst(), boxAst, TransformAstUtil.CursorToAst)
1.88 - c.setAst(TransformAstUtil.Update(unboxedAst, AstInfoUtil.Parent(unboxedAst, boxAstElem), TransformAstUtil.AstToCursor))
1.89 + AstInfoUtil.Parent(unboxedAst, boxAstElem) match {
1.90 + case Some(parentAst) => c.setAst(TransformAstUtil.Update(unboxedAst, parentAst, TransformAstUtil.AstToCursor))
1.91 + case None => {}
1.92 + }
1.93 }
1.94 }
1.95 def CursorChild(c: AstContainer) = {
1.96 @@ -98,7 +124,11 @@
1.97 val boxAstElem = TransformAstUtil.CursorToAst(boxAst)
1.98 if (AstInfoUtil.FirstChild(boxAstElem) != null) {
1.99 val unboxedAst = TransformAstUtil.Update(c.getAst(), boxAst, TransformAstUtil.CursorToAst)
1.100 - c.setAst(TransformAstUtil.Update(unboxedAst, AstInfoUtil.FirstChild(boxAstElem), TransformAstUtil.AstToCursor))
1.101 + AstInfoUtil.FirstChild(boxAstElem) match {
1.102 + case Some(a) => c.setAst(TransformAstUtil.Update(unboxedAst, a, TransformAstUtil.AstToCursor))
1.103 + case None => {}
1.104 + }
1.105 +
1.106 }
1.107 }
1.108 }