public TreeView(TreeHandler[] treeHandler, Dictionary<String, String> attrDef, ClientClass client) { InitializeComponent(); this.treeHandler = treeHandler; this.attrDef = attrDef; this.client = client; }
/*_________________Metodo che, data un stringa contente gli alberi con i relativi attributi, ritorna una struttura dati_____________ *_________________contente le informazioni ottenute dal parsing della stringa______________________________________________________ * ___formato della stringa: NomeAlbero#attr1Vertex?tipo:attr2Vertex?tipo#attrEdge?tipo:attrEdge2?tipo$NomeAlbero2#etc*/ private TreeHandler[] fillTreeHandl(String treeParameters) { TreeHandler[] treeHandler; String[] trees = treeParameters.Split('$'); treeHandler = new TreeHandler[trees.Length]; for (int i = 0; i < trees.Length; i++) { Dictionary <String, String> vertex = new Dictionary <String, String>(); Dictionary <String, String> edge = new Dictionary <String, String>(); String[] trees_aux = trees[i].Split('#'); String[] vertex_aux = trees_aux[1].Split(':'); String[] edge_aux = trees_aux[2].Split(':'); String[] nomeAttrTipo = new String[2]; foreach (String aux in vertex_aux) { nomeAttrTipo = aux.Split('?'); vertex.Add(nomeAttrTipo[0], nomeAttrTipo[1]); } foreach (String aux in edge_aux) { nomeAttrTipo = aux.Split('?'); edge.Add(nomeAttrTipo[0], nomeAttrTipo[1]); } treeHandler[i] = new TreeHandler(trees_aux[0], vertex, edge); } return(treeHandler); }
private void SelAlbModcomboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { isSelected = true; albero = SelAlbModcomboBox.SelectedItem.ToString(); NomAttrLabel.Content = ""; type = ""; ArchiListBox.Items.Clear(); NodiListBox.Items.Clear(); this.newNodeAttrList = new Dictionary <String, String>(); this.newEdgeAttrList = new Dictionary <String, String>(); foreach (TreeHandler selTree in treeHandler) { if (selTree.nome.Equals(albero)) { selectedTree = selTree; break; } } foreach (KeyValuePair <String, String> vertexAttr in selectedTree.vertexAttrList) { NodiListBox.Items.Add(vertexAttr.Key); } foreach (KeyValuePair <String, String> edgeAttr in selectedTree.edgeAttrList) { ArchiListBox.Items.Add(edgeAttr.Key); } }
public EsportaFileWindow(ClientClass client, TreeHandler[] parameters) { InitializeComponent(); this.client = client; this.trees = parameters; this.file = ""; foreach (TreeHandler tree in trees) { MenuComboBox.Items.Add(tree.nome); } }
public CreaAlberoWindow(TreeHandler[] treeHandler, Dictionary<String, String> attrDef, ClientClass client) { InitializeComponent(); this.client = client; this.attrDef = attrDef; this.treeHandler = treeHandler; this.vertexAttrList = new Dictionary<String, String[]>(); this.edgeAttrList = new Dictionary<String, String[]>(); this.type = ""; setVisibile(false); setDefStringVisibility(false); setRandomNumberVisibility(false); foreach (KeyValuePair<String, String> attribute in attrDef) { AttributeListbox.Items.Add(attribute.Key); } }
private void SelAlbCalcomboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { this.isSelected = true; albero = SelAlbCalcomboBox.SelectedItem.ToString(); NomAttrLabel.Content = ""; AttrArchiListbox.Items.Clear(); AttrNodiListBox.Items.Clear(); this.attrArchi = new List <string>(); this.attrNodi = new List <string>(); foreach (TreeHandler selTree in treeHandler) { if (selTree.nome.Equals(albero)) { selectedTree = selTree; break; } } foreach (KeyValuePair <String, String> vertexAttr in selectedTree.vertexAttrList) { if (vertexAttr.Value.Equals("numeric")) { AttrNodiListBox.Items.Add(vertexAttr.Key); } } foreach (KeyValuePair <String, String> edgeAttr in selectedTree.edgeAttrList) { if (edgeAttr.Value.Equals("numeric")) { AttrArchiListbox.Items.Add(edgeAttr.Key); } } }
/*_________________Metodo che si connette al server e al db specificati dai parametri___________________________________________*/ private void ConnectButton_Click(object sender, RoutedEventArgs e) { /*controlla se i parametri sono errati*/ if (!CheckParameters()) { ParametersErrorWindow error = new ParametersErrorWindow(false, "Parametri errati"); error.ShowDialog(); } /*Se i parametri sono sintatticamente corretti*/ else { /*parsing parametri*/ IPAddress ip = IPAddress.Parse(IPStartTextBox.Text); int porta = Int32.Parse(PortStartTextBox.Text); /*______-----1-------Connettersi al Server_________________________*/ ClientClass clientGui = new ClientClass(ip, porta); /*verifica il successo della connessione con il server*/ if (!clientGui.connect()) { this.Close(); return; } /*______-----2-------Inviare username e password al server_________*/ String parameters = IpDBTextBox.Text + '$' + UsernameTextBoxStart.Text + '$' + PasswordBoxStart.Password; clientGui.write(parameters); /*______-----3--------Check login database andato a buon fine_______*/ String checkAuth = clientGui.read(); /*-3.1- Se l'autenticazione non è andata a buon fine il server ci ritorna "1", altrimenti "0" */ if (checkAuth.Equals("1")) { ParametersErrorWindow errorAuth = new ParametersErrorWindow(false, "Auth DB fallita"); errorAuth.ShowDialog(); clientGui.disconnect(); }/*Fine if-autenticazione non andata a buon fine*/ else /*-3.2-Autenticazione andata a buon fine*/ { /*______-----4-------Salvare in una strutturadati i dati dei database ricevuti dal server*/ String treeParameters = clientGui.read(); TreeHandler[] treeHandler; if (!treeParameters.Equals("Vuoto")) { /*-4.1- I parametri arrivano nel formato seguente "NomeAlbero#attr1Vertex?tipo:attr2Vertex?tipo#attrEdge?tipo:attrEdge2?tipo$NomeAlbero2#etc*/ treeHandler = fillTreeHandl(treeParameters); } else { treeHandler = new TreeHandler[0]; } /*______-----5-------Una volta che il server ci ha inviato la lista degli alberi con gli attributi,viene inviata l'attribute definition */ Dictionary<String, String> attrDef = attrDefPars(clientGui.read()); /*______-----6-------Instanziare finestra TreeView passando al costruttore treeHandler[] e attrDef e client*/ TreeView treeView = new TreeView(treeHandler, attrDef, clientGui); treeView.Show(); this.Close(); }/*Fine if-autenticazione andata a buon-fine*/ }/*Fine if-Se i parametri sono sintatticamente corretti*/ }/*Fine funzione ConnectButton_Click*/
/*_________________Metodo che, data un stringa contente gli alberi con i relativi attributi, ritorna una struttura dati_____________ *_________________contente le informazioni ottenute dal parsing della stringa______________________________________________________ * ___formato della stringa: NomeAlbero#attr1Vertex?tipo:attr2Vertex?tipo#attrEdge?tipo:attrEdge2?tipo$NomeAlbero2#etc*/ private TreeHandler[] fillTreeHandl(String treeParameters) { TreeHandler[] treeHandler; String[] trees = treeParameters.Split('$'); treeHandler = new TreeHandler[trees.Length]; for(int i = 0; i < trees.Length; i++) { Dictionary<String, String> vertex = new Dictionary<String, String>(); Dictionary<String, String> edge = new Dictionary<String, String>(); String[] trees_aux = trees[i].Split('#'); String[] vertex_aux = trees_aux[1].Split(':'); String[] edge_aux = trees_aux[2].Split(':'); String[] nomeAttrTipo = new String[2]; foreach (String aux in vertex_aux) { nomeAttrTipo = aux.Split('?'); vertex.Add(nomeAttrTipo[0], nomeAttrTipo[1]); } foreach (String aux in edge_aux) { nomeAttrTipo = aux.Split('?'); edge.Add(nomeAttrTipo[0], nomeAttrTipo[1]); } treeHandler[i] = new TreeHandler(trees_aux[0], vertex, edge); } return treeHandler; }
private void SelAlbModcomboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { isSelected = true; albero = SelAlbModcomboBox.SelectedItem.ToString(); NomAttrLabel.Content = ""; type = ""; ArchiListBox.Items.Clear(); NodiListBox.Items.Clear(); this.newNodeAttrList = new Dictionary<String, String>(); this.newEdgeAttrList = new Dictionary<String, String>(); foreach (TreeHandler selTree in treeHandler) { if (selTree.nome.Equals(albero)) { selectedTree = selTree; break; } } foreach (KeyValuePair<String, String> vertexAttr in selectedTree.vertexAttrList) { NodiListBox.Items.Add(vertexAttr.Key); } foreach (KeyValuePair<String, String> edgeAttr in selectedTree.edgeAttrList) { ArchiListBox.Items.Add(edgeAttr.Key); } }
/*_________________Metodo che si connette al server e al db specificati dai parametri___________________________________________*/ private void ConnectButton_Click(object sender, RoutedEventArgs e) { /*controlla se i parametri sono errati*/ if (!CheckParameters()) { ParametersErrorWindow error = new ParametersErrorWindow(false, "Parametri errati"); error.ShowDialog(); } /*Se i parametri sono sintatticamente corretti*/ else { /*parsing parametri*/ IPAddress ip = IPAddress.Parse(IPStartTextBox.Text); int porta = Int32.Parse(PortStartTextBox.Text); /*______-----1-------Connettersi al Server_________________________*/ ClientClass clientGui = new ClientClass(ip, porta); /*verifica il successo della connessione con il server*/ if (!clientGui.connect()) { this.Close(); return; } /*______-----2-------Inviare username e password al server_________*/ String parameters = IpDBTextBox.Text + '$' + UsernameTextBoxStart.Text + '$' + PasswordBoxStart.Password; clientGui.write(parameters); /*______-----3--------Check login database andato a buon fine_______*/ String checkAuth = clientGui.read(); /*-3.1- Se l'autenticazione non è andata a buon fine il server ci ritorna "1", altrimenti "0" */ if (checkAuth.Equals("1")) { ParametersErrorWindow errorAuth = new ParametersErrorWindow(false, "Auth DB fallita"); errorAuth.ShowDialog(); clientGui.disconnect(); }/*Fine if-autenticazione non andata a buon fine*/ else /*-3.2-Autenticazione andata a buon fine*/ { /*______-----4-------Salvare in una strutturadati i dati dei database ricevuti dal server*/ String treeParameters = clientGui.read(); TreeHandler[] treeHandler; if (!treeParameters.Equals("Vuoto")) { /*-4.1- I parametri arrivano nel formato seguente "NomeAlbero#attr1Vertex?tipo:attr2Vertex?tipo#attrEdge?tipo:attrEdge2?tipo$NomeAlbero2#etc*/ treeHandler = fillTreeHandl(treeParameters); } else { treeHandler = new TreeHandler[0]; } /*______-----5-------Una volta che il server ci ha inviato la lista degli alberi con gli attributi,viene inviata l'attribute definition */ Dictionary <String, String> attrDef = attrDefPars(clientGui.read()); /*______-----6-------Instanziare finestra TreeView passando al costruttore treeHandler[] e attrDef e client*/ TreeView treeView = new TreeView(treeHandler, attrDef, clientGui); treeView.Show(); this.Close(); } /*Fine if-autenticazione andata a buon-fine*/ } /*Fine if-Se i parametri sono sintatticamente corretti*/ } /*Fine funzione ConnectButton_Click*/
private void SelAlbCalcomboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { this.isSelected = true; albero = SelAlbCalcomboBox.SelectedItem.ToString(); NomAttrLabel.Content = ""; AttrArchiListbox.Items.Clear(); AttrNodiListBox.Items.Clear(); this.attrArchi = new List<string>(); this.attrNodi = new List<string>(); foreach (TreeHandler selTree in treeHandler) { if (selTree.nome.Equals(albero)) { selectedTree = selTree; break; } } foreach(KeyValuePair<String, String> vertexAttr in selectedTree.vertexAttrList) { if(vertexAttr.Value.Equals("numeric")) { AttrNodiListBox.Items.Add(vertexAttr.Key); } } foreach (KeyValuePair<String, String> edgeAttr in selectedTree.edgeAttrList) { if (edgeAttr.Value.Equals("numeric")) { AttrArchiListbox.Items.Add(edgeAttr.Key); } } }