]> matita.cs.unibo.it Git - logicplayer.git/blob - mainActivity/src/com/example/furt/myapplication/DialogTouchHandler.java
eba3c67868ac5c81869bf365df7fcce4bb44c409
[logicplayer.git] / mainActivity / src / com / example / furt / myapplication / DialogTouchHandler.java
1 package com.example.furt.myapplication;
2
3 import android.view.View;
4
5 /**DialogTouchHandler: Handler per la gestione delle regole cliccate
6  * nel Dialog delle regole di introduzione**/
7
8 public class DialogTouchHandler implements View.OnClickListener{
9     Node node;
10     DialogTouchHandler(Node n)
11     {
12         node=n;
13     }
14     public void onClick(View view)
15     {
16         Node selectedRule=node;
17         while(selectedRule.Father!=null) //se l'utente ha cliccato su uno dei figli del sottoalbero risalgo alla radice
18             selectedRule=selectedRule.Father;
19         for (Node n : selectedRule.Children) { //incollo i figli del nodo sul selectedNode avendo cura di integrare le ipotesi
20             for (Hypothesis hp : n.NodeHP)
21                 hp.fromNode = DrawActivity.selectedNode; //le ipotesi dei nuovi figli provengono dal nodo in cui stanno per essere inserite
22             n.addHPList(DrawActivity.selectedNode.NodeHP);
23             n.handler = null; //rimuovo l'handler per il DialogTouchHandler, che è ora inutile
24             DrawActivity.selectedNode.addChild(n);
25         }
26         DrawActivity.selectedNode.hasFocus = false; //il vecchio selectedNode non ha più il focus
27         DrawActivity.selectedNode.ruleName = selectedRule.Children.get(0).ruleName;
28         DrawActivity.selectedNode.Children.get(0).hasFocus = true; //il primo figlio della regola applicata acquisisce il focus
29         DrawActivity.nmoves++;
30         DrawActivity.rootNode.Clean();
31         DrawActivity.startDraw();
32         touchnodeHandler.ruleDialog.dismiss(); //il ruleDialog del touchnodeHandler non è più necessario
33     }
34 }