]> matita.cs.unibo.it Git - logicplayer.git/blobdiff - mainActivity/app/src/main/java/com/example/furt/myapplication/DialogTouchHandler.java
Ported to latest version of Android SDK
[logicplayer.git] / mainActivity / app / src / main / java / com / example / furt / myapplication / DialogTouchHandler.java
diff --git a/mainActivity/app/src/main/java/com/example/furt/myapplication/DialogTouchHandler.java b/mainActivity/app/src/main/java/com/example/furt/myapplication/DialogTouchHandler.java
new file mode 100644 (file)
index 0000000..eba3c67
--- /dev/null
@@ -0,0 +1,34 @@
+package com.example.furt.myapplication;
+
+import android.view.View;
+
+/**DialogTouchHandler: Handler per la gestione delle regole cliccate
+ * nel Dialog delle regole di introduzione**/
+
+public class DialogTouchHandler implements View.OnClickListener{
+    Node node;
+    DialogTouchHandler(Node n)
+    {
+        node=n;
+    }
+    public void onClick(View view)
+    {
+        Node selectedRule=node;
+        while(selectedRule.Father!=null) //se l'utente ha cliccato su uno dei figli del sottoalbero risalgo alla radice
+            selectedRule=selectedRule.Father;
+        for (Node n : selectedRule.Children) { //incollo i figli del nodo sul selectedNode avendo cura di integrare le ipotesi
+            for (Hypothesis hp : n.NodeHP)
+                hp.fromNode = DrawActivity.selectedNode; //le ipotesi dei nuovi figli provengono dal nodo in cui stanno per essere inserite
+            n.addHPList(DrawActivity.selectedNode.NodeHP);
+            n.handler = null; //rimuovo l'handler per il DialogTouchHandler, che è ora inutile
+            DrawActivity.selectedNode.addChild(n);
+        }
+        DrawActivity.selectedNode.hasFocus = false; //il vecchio selectedNode non ha più il focus
+        DrawActivity.selectedNode.ruleName = selectedRule.Children.get(0).ruleName;
+        DrawActivity.selectedNode.Children.get(0).hasFocus = true; //il primo figlio della regola applicata acquisisce il focus
+        DrawActivity.nmoves++;
+        DrawActivity.rootNode.Clean();
+        DrawActivity.startDraw();
+        touchnodeHandler.ruleDialog.dismiss(); //il ruleDialog del touchnodeHandler non è più necessario
+    }
+}