private void tabelarniPrikazEtiketeToolStripMenuItem_Click(object sender, EventArgs e) { TreeNode node = treeView1.SelectedNode; Vrsta vrsta = (Vrsta)node.Tag; Tabelarni_prikaz_etikete tEtikete = new Tabelarni_prikaz_etikete(this, vrsta); DialogResult r = tEtikete.ShowDialog(); }
private void toolStripLabel12_Click(object sender, EventArgs e) { //prikazi etikete jedne vrste TreeNode node = treeView1.SelectedNode; Vrsta vrsta = (Vrsta)node.Tag; Tabelarni_prikaz_etikete tEtikete = new Tabelarni_prikaz_etikete(this, vrsta); DialogResult r = tEtikete.ShowDialog(); }
private void toolStripMenuItem9_Click(object sender, EventArgs e) { //dodavanje etikete TreeNode node = treeView1.SelectedNode; Vrsta vrsta = (Vrsta)node.Tag; FormEtiketa etiketa = new FormEtiketa(vrsta); DialogResult r = etiketa.ShowDialog(); }
private void buttonIzmjena_Click(object sender, EventArgs e) { koZoveDodaj = "izmjeni"; Vrsta vr = new Vrsta(textBoxID.Text, textBoxIme.Text, textBoxOpis.Text, textBoxTip.Text, textBoxStatus.Text, textBoxOpasna.Text, textBoxLista.Text, textBoxRegion.Text, textBoxTuristi.Text, Int32.Parse(textBoxPrihod.Text), textBoxDatum.Text, pictureBoxVrsta.BackgroundImage); FormVrsta vrsta = new FormVrsta(vr, main); DialogResult r = vrsta.ShowDialog(); dataGridViewVrsta.Rows.Clear(); foreach (Vrsta v in vrste) { dataGridViewVrsta.Rows.Add(new object[] { v.ID, v.Ime, v.Opis, v.Tip, v.StatusUgrozenosti, v.Opasna, v.CrvenaLista, v.NaseljeniRegion, v.TuristickiStatus, v.GodisnjiPrihod, v.DatumOtkrivanja }); dataGridViewVrsta.Rows[dataGridViewVrsta.Rows.Count - 1].Tag = v; } ucitavanje = false; dataGridViewVrsta.CurrentCell = dataGridViewVrsta.Rows[0].Cells[0]; dataGridViewVrsta_SelectionChanged(dataGridViewVrsta, EventArgs.Empty); buttonDodaj.Enabled = true; buttonIzmjena.Enabled = true; buttonBrisanje.Enabled = true; main.refreshTree(); }
public void provjeraPriIzmjeni() { formIsValid = true; this.ValidateChildren(); if (formIsValid) { this.DialogResult = DialogResult.OK; String ID = textBoxIdE.Text; Color boja = textBoxBoja.BackColor; String opis = textBoxOpisE.Text; // Etiketa e = new Etiketa(ID, boja, opis); //izbrisemo onu etiketu koja vec postoji sa tim id-em List <Etiketa> etikete = Tabelarni_prikaz_etikete.etikete; int index = 0; for (int i = 0; i < etikete.Count; i++) { if (etikete[i].ID.Equals(ID)) { etikete[i].Boja = boja; etikete[i].Opis = opis; index = i; break; } } if (vrsta == null) { Console.WriteLine("Nema vrstu"); vrsta = etikete[index].vrsta; } //dodavanje etikete u listu etiketa u vrsti for (int i = 0; i < vrsta.etikete.Count; i++) { if ((vrsta.etikete[i]).ID.Equals(ID)) { (vrsta.etikete[i]).Boja = boja; (vrsta.etikete[i]).Opis = opis; break; } } this.Close(); } else { labelErrorE.Text = "Unos nemoguć. \nPostoje greške."; labelErrorE.Visible = true; timUnosE.Start(); } }
public Tabelarni_prikaz_etikete(Vrsta vrsta) { InitializeComponent(); this.CenterToParent(); this.vrsta = vrsta; this.Text = "Tabelarni prikaz etiketa vrste"; comboBoxFilt.SelectedIndex = 2; // Etiketa et = new Etiketa("desetka", Color.Tomato, "bas je ugrozena"); //etikete.Add(et); }
private void buttonDodajE_Click(object sender, EventArgs e) { Vrsta vrsta = dajSelektovanuVrstu(); if (vrsta != null) { Console.WriteLine("Imam vrstu!"); } FormEtiketa etiketa = new FormEtiketa(vrsta); DialogResult r = etiketa.ShowDialog(); }
public FormEtiketa(Vrsta v) //konstruktor sa imenom vrste da bismo znali u koju listu dodati etiketu { //pozivan iz tabele vrsta InitializeComponent(); this.CenterToParent(); this.vrsta = v; Tabelarni_prikaz_etikete.koZoveDodaj = "dodaj"; rx_id = new Regex("^\\w+$"); //rx_opis = new Regex("^\\w+$"); errorRepeat.Add(textBoxIdE, false); errorRepeat.Add(textBoxOpisE, false); }
}//konstruktor dijaloga za izmjenu public FormVrsta(Vrsta v, formMain main) { InitializeComponent(); this.CenterToParent(); this.main = main; this.vrsta = v; foreach (Tip tip in Tabelarni_prikaz_tipa.tipovi) { comboBoxTip.Items.Add(tip.Ime + " " + tip.ID); //prikazuje i id jer je to kljuc i trebace mi da bih nasla odgovarajuci tip } //za dodavanje u listu vrsta ofd.Filter = "Image Files(*.BMP;*.JPG;*.PNG)|*.BMP;*.JPG;*.PNG"; rx_id = new Regex("^\\w+$"); rx_ime = new Regex("^\\w+$"); //rx_opis = new Regex("^\\w+$"); rx_prihod = new Regex("^\\d+$");//prihod je u ciframa errorRepeat.Add(textBoxIme, false); errorRepeat.Add(textBoxId, false); errorRepeat.Add(textBoxOpis, false); errorRepeat.Add(comboBoxTip, false); errorRepeat.Add(textBoxPrihod, false); errorRepeat.Add(comboBoxStatus, false); errorRepeat.Add(comboBoxTuristicki, false); errorRepeat.Add(pictureBoxVrsta, false); this.Text = "Izmjena vrste"; textBoxId.Text = v.ID; textBoxId.ReadOnly = true;//ako je izmjeni da ne moze mijenjati id textBoxIme.Text = v.Ime; textBoxOpis.Text = v.Opis; comboBoxTip.SelectedItem = v.Tip; comboBoxStatus.SelectedItem = v.StatusUgrozenosti; if (v.Opasna.Equals("DA")) { checkBoxOpasna.Checked = true; } if (v.CrvenaLista.Equals("DA")) { checkBoxUICN.Checked = true; } if (v.NaseljeniRegion.Equals("DA")) { checkBoxRegion.Checked = true; } pictureBoxVrsta.BackgroundImage = v.Img; comboBoxTuristicki.SelectedItem = v.TuristickiStatus; textBoxPrihod.Text = (v.GodisnjiPrihod).ToString(); String date = v.DatumOtkrivanja;//05-05-1994 String[] poCrti = date.Split('-'); dateTimePicker1.Value = new DateTime(Int32.Parse(poCrti[2]), Int32.Parse(poCrti[1]), Int32.Parse(poCrti[0]));//godina,mjesec,dan }
private void izmjenimeniv_Click(object sender, EventArgs e) { //izmjena vrste TreeNode node = treeView1.SelectedNode; if (node.Tag is Vrsta) { Vrsta vrsta = (Vrsta)node.Tag; Tabelarni_prikaz_vrste.koZoveDodaj = "izmjeni"; FormVrsta fvrste = new FormVrsta(vrsta, this); DialogResult r = fvrste.ShowDialog(); refreshTree(); } }
private void toolStripMenuItem6_Click(object sender, EventArgs e) { //izmjena vrste TreeNode node = treeView1.SelectedNode; if (node.Tag is Vrsta) { Vrsta vrsta = (Vrsta)node.Tag; Tabelarni_prikaz_vrste.koZoveDodaj = "izmjeni"; FormVrsta fvrste = new FormVrsta(vrsta, this); DialogResult r = fvrste.ShowDialog(); //isctrajPonovo = true; refreshTree(); //isctrajPonovo = false; } }
public FormEtiketa(Etiketa e, Vrsta vrsta) { InitializeComponent(); this.CenterToParent(); this.vrsta = vrsta; rx_id = new Regex("^\\w+$"); //rx_opis = new Regex("^\\w+$"); errorRepeat.Add(textBoxIdE, false); errorRepeat.Add(textBoxOpisE, false); this.Text = "Izmjena etikete"; textBoxIdE.Text = e.ID; textBoxIdE.ReadOnly = true;//ako je izmjeni da ne moze mijenjati id textBoxBoja.BackColor = e.Boja; textBoxOpisE.Text = e.Opis; }
private void panelMapa_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; for (int i = 0; i < nodesOnMap.Count; i++) { Point p = new Point(); Vrsta vrsta = (Vrsta)nodesOnMap[i].Tag; foreach (KeyValuePair <TreeNode, Point> entry in pozicije) { if (entry.Key.Text.Equals(nodesOnMap[i].Text)) { p = entry.Value; } } Image img = new Bitmap(vrsta.Img, new Size(30, 30)); g.DrawImage(img, new Point(p.X, p.Y)); } }
public void brisanjeVrste() { DialogResult d = MessageBox.Show("Da li da sigurno želite da obrišete vrstu?", "Brisanje vrste", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d.Equals(DialogResult.Yes)) { TreeNode node = treeView1.SelectedNode; if (node.Tag is Vrsta) { Vrsta vrsta = (Vrsta)node.Tag; int ind_vrste = 0; //pokupim indeks vrste da bi je kasnije obrisala iz vrste tipa int ind_tipa = 0; List <Tip> tipovi = Tabelarni_prikaz_tipa.tipovi; for (int i = 0; i < tipovi.Count; i++) { for (int j = 0; j < tipovi[i].vrste.Count; j++) { if (tipovi[i].vrste[j].ID.Equals(vrsta.ID)) { ind_vrste = tipovi[i].vrste.IndexOf(tipovi[i].vrste[j]); ind_tipa = i; break; } } } tipovi[ind_tipa].vrste.RemoveAt(ind_vrste); //izbrisi vrstu iz liste Vrsta vr = null; foreach (Vrsta v in Tabelarni_prikaz_vrste.vrste) { if (vrsta.ID.Equals(v.ID)) { vr = v; Tabelarni_prikaz_vrste.vrste.Remove(v); break; } } refreshTree(); invalidatePanel(vr); } } }
private void dataGridViewVrsta_SelectionChanged(object sender, EventArgs e) { if (ucitavanje) { return; } if (dataGridViewVrsta.SelectedRows.Count == 0) { textBoxID.Text = ""; textBoxIme.Text = ""; textBoxLista.Text = ""; textBoxOpis.Text = ""; textBoxPrihod.Text = ""; textBoxDatum.Text = ""; textBoxTip.Text = ""; textBoxOpasna.Text = ""; textBoxRegion.Text = ""; textBoxStatus.Text = ""; textBoxTuristi.Text = ""; return; } Vrsta v = (Vrsta)dataGridViewVrsta.SelectedRows[0].Tag; if (v == null) { return; } textBoxID.Text = v.ID; textBoxIme.Text = v.Ime; textBoxLista.Text = v.CrvenaLista; textBoxTip.Text = v.Tip; textBoxOpis.Text = v.Opis; textBoxPrihod.Text = (v.GodisnjiPrihod).ToString(); textBoxDatum.Text = v.DatumOtkrivanja; textBoxOpasna.Text = v.Opasna; textBoxRegion.Text = v.NaseljeniRegion; textBoxStatus.Text = v.StatusUgrozenosti; textBoxTuristi.Text = v.TuristickiStatus; pictureBoxVrsta.BackgroundImage = v.Img; }
public void invalidatePanel(Vrsta vrsta) { TreeNode node = vrsta.treeNode; TreeNode key = null; foreach (KeyValuePair <TreeNode, List <Point> > entry in sve_pozicije) { if (entry.Key.Text == node.Text) { key = entry.Key; break; } } if (key == null) { return; } Dictionary <TreeNode, List <Point> > sve_pozicije1 = new Dictionary <TreeNode, List <Point> >(sve_pozicije); foreach (KeyValuePair <TreeNode, List <Point> > entry in sve_pozicije1) { if (entry.Key.Text.Equals(vrsta.Ime)) { pozicije.Remove(key); sve_pozicije.Remove(key); foreach (PictureBox pb in listPB) { if (pb.Name.Equals(vrsta.Ime)) { panelMapa.Controls.Remove(pb); Console.WriteLine("Obrsisamo sam " + vrsta.Ime); } } } } panelMapa.Invalidate(); }
public Vrsta dajSelektovanuVrstu() { Vrsta vrsta = null; if (dataGridViewVrsta.SelectedCells.Count > 0) { int selectedrowindex = dataGridViewVrsta.SelectedCells[0].RowIndex; DataGridViewRow selectedRow = dataGridViewVrsta.Rows[selectedrowindex]; string id = Convert.ToString(selectedRow.Cells["ID"].Value);//preuzimamo ime vrste i proslijedimo etikete Console.WriteLine(id); //preuzimanje trenutno selekotvane vrste foreach (Vrsta v in vrste) { if (id.Equals(v.ID)) { vrsta = v; break; } } } return(vrsta); }
public void initilizeTree() { List <Tip> tipovi = Tabelarni_prikaz_tipa.tipovi; treeView1.ImageList = myImageList; treeView1.ImageList.ImageSize = new Size(30, 30); int index = 0; for (int i = 0; i < tipovi.Count; i++) { myImageList.Images.Add(tipovi[i].Img); TreeNode node = new TreeNode(tipovi[i].Ime); node.ForeColor = Color.Gray; node.ImageIndex = index; node.SelectedImageIndex = index; this.treeView1.Nodes.Add(node); treeView1.Nodes[i].Tag = tipovi[i]; index++; for (int j = 0; j < tipovi[i].vrste.Count; j++) { Tip tip = tipovi[i]; Vrsta v = tip.vrste[j]; Image image = v.Img; if (image == null) { Console.WriteLine("Nemaa slike"); } else { myImageList.Images.Add(image); } TreeNode node1 = new TreeNode(tipovi[i].vrste[j].Ime); node1.ImageIndex = index; node1.SelectedImageIndex = index; node1.Tag = tipovi[i].vrste[j]; tipovi[i].vrste[j].treeNode = node1; this.treeView1.Nodes[i].Nodes.Add(node1); if (image != null) { index++; } TreeNode key = null; foreach (KeyValuePair <TreeNode, List <Point> > entry in sve_pozicije) { if (entry.Key.Text == node1.Text) { key = entry.Key; break; } } if (key == null) { continue; } for (int p = 0; p < panelMapa.Controls.Count; p++) //kad se desi izmjena ikonice vrste da je promjeni i na mapi { PictureBox pb = (PictureBox)panelMapa.Controls[p]; Tuple <Point, TreeNode> tuple = (Tuple <Point, TreeNode>)pb.Tag; if (tuple.Item2.Text.Equals(node1.Text)) { pb.Image = tipovi[i].vrste[j].Img; } } if (sve_pozicije.ContainsKey(key) && isctrajPonovo) // if (sve_pozicije.ContainsKey(key)) { //panelMapa.Controls.Clear(); List <Point> tacke = sve_pozicije[key]; for (int k = 0; k < tacke.Count; k++) { PictureBox pb = new PictureBox(); pb.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseDown); pb.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); pb.MouseHover += new System.EventHandler(this.pictureBox_MouseHover); pb.ContextMenuStrip = new ContextMenuStrip(); ToolStripDropDownItem item = new ToolStripMenuItem(); item.Text = "Obriši"; item.Click += obriToolStripMenuItem_Click; pb.ContextMenuStrip.Items.Add(item); pb.ContextMenuStrip.Tag = new Tuple <Point, PictureBox>(tacke[k], pb); pb.Image = tipovi[i].vrste[j].Img; pb.Size = new System.Drawing.Size(30, 30); pb.SizeMode = PictureBoxSizeMode.StretchImage; pb.Name = tipovi[i].vrste[j].Ime; pb.Tag = new Tuple <Point, TreeNode>(tacke[k], key); pb.Location = new Point(tacke[k].X, tacke[k].Y); panelMapa.Controls.Add(pb); listPB.Add(pb); } } } } if (treeView1.Nodes.Count > 0) { treeView1.SelectedNode = treeView1.Nodes[0]; treeView1.HideSelection = false; } }
public void provjeraPriDodavanju() { String postoji = "ne postoji";//flag da li postoji vrsta sa takvim id-om String ID = textBoxId.Text; String tip = (String)comboBoxTip.SelectedItem; foreach (Vrsta vr in Tabelarni_prikaz_vrste.vrste) { if (ID.Equals(vr.ID)) { postoji = "postoji"; MessageBox.Show("ID mora biti jednistven!", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } } if (postoji.Equals("ne postoji")) { formIsValid = true; this.ValidateChildren(); if (pictureBoxVrsta.BackgroundImage == null) { foreach (Tip t in Tabelarni_prikaz_tipa.tipovi) { String tip_id = t.Ime + " " + t.ID; if (tip_id.Equals(tip)) { pictureBoxVrsta.BackgroundImage = t.Img; break; } } } if (formIsValid) { this.DialogResult = DialogResult.OK; String ime = textBoxIme.Text; String opis = textBoxOpis.Text; status = (String)comboBoxStatus.SelectedItem;//preuzima koji je selektovan status ugrozenosti //Console.WriteLine(status); String opasna = (checkBoxOpasna.Checked) ? "DA" : "NE"; String uicn = (checkBoxUICN.Checked) ? "DA" : "NE"; String region = (checkBoxRegion.Checked) ? "DA" : "NE"; String tur_status = (String)comboBoxTuristicki.SelectedItem; int prihod = Int32.Parse(textBoxPrihod.Text); string datum = dateTimePicker1.Value.ToString("dd-MM-yyyy"); Image img = pictureBoxVrsta.BackgroundImage; Vrsta v = new Vrsta(ID, ime, opis, tip, status, opasna, uicn, region, tur_status, prihod, datum, img); (Tabelarni_prikaz_vrste.vrste).Add(v); //dodavanje vrste u listu vrsta odgovarajuce String tip_id = tip.Split(' ')[1]; foreach (Tip t in Tabelarni_prikaz_tipa.tipovi) { if (t.ID.Equals(tip_id)) { t.vrste.Add(v); break; } } this.Close(); } else { labelError.Text = "Unos nemoguć. \nPostoje greške."; labelError.Visible = true; timUnos.Start(); } } }
private void buttonBrisanje_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("Da li da sigurno želite da obrišete vrstu?", "Brisanje vrste", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d.Equals(DialogResult.Yes)) { String ID = textBoxID.Text; //brisanje iz svih vrsta Vrsta vrsta = dajSelektovanuVrstu(); //brisanje vrste iz tipa String tip_id = vrsta.Tip.Split(' ')[1]; //Console.WriteLine(tip_id); int ind_vrste = 0; //pokupim indeks vrste da bi je kasnije obrisala iz vrste tipa int ind_tipa = 0; //u slucaju da je izmjenjen tip neke vrste //izbrise vrstu iz liste tog tipa i stavi je u listu novog tipa List <Tip> tipovi = Tabelarni_prikaz_tipa.tipovi; for (int i = 0; i < tipovi.Count; i++) { for (int j = 0; j < tipovi[i].vrste.Count; j++) { if (tipovi[i].vrste[j].ID.Equals(ID)) { ind_vrste = tipovi[i].vrste.IndexOf(tipovi[i].vrste[j]); ind_tipa = i; break; } } } tipovi[ind_tipa].vrste.RemoveAt(ind_vrste); //izbrisi vrstu iz liste Vrsta vr = null; foreach (Vrsta v in vrste) { if (ID.Equals(v.ID)) { vr = v; vrste.Remove(v); break; } } main.refreshTree(); //nakon sto obrise vrstu osvjezi stablo main.invalidatePanel(vr); //kad izbrise red iz tabele, ponovo je popuni dataGridViewVrsta.Rows.Clear(); foreach (Vrsta v in vrste) { dataGridViewVrsta.Rows.Add(new object[] { v.ID, v.Ime, v.Opis, v.Tip, v.StatusUgrozenosti, v.Opasna, v.CrvenaLista, v.NaseljeniRegion, v.TuristickiStatus, v.GodisnjiPrihod, v.DatumOtkrivanja }); dataGridViewVrsta.Rows[dataGridViewVrsta.Rows.Count - 1].Tag = v; } ucitavanje = false; if (vrste.Count != 0) { dataGridViewVrsta.CurrentCell = dataGridViewVrsta.Rows[0].Cells[0]; dataGridViewVrsta_SelectionChanged(dataGridViewVrsta, EventArgs.Empty); } else { pictureBoxVrsta.BackgroundImage = null; buttonDodaj.Enabled = true; buttonIzmjena.Enabled = false; buttonBrisanje.Enabled = false; } } }
private void buttonPrikazE_Click(object sender, EventArgs e) { Vrsta vrsta = dajSelektovanuVrstu(); Tabelarni_prikaz_etikete tEtikete = new Tabelarni_prikaz_etikete(vrsta); DialogResult r = tEtikete.ShowDialog(); }
private void buttonBrisanje_Click(object sender, EventArgs e) { DialogResult d = MessageBox.Show("Da li da sigurno želite da obrišete etiketu?", "Brisanje etikete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (d.Equals(DialogResult.Yes)) { String ID = textBoxId.Text; if (flag_za_sve) //ako su prikazane sve etikete { Vrsta vr = null; foreach (Etiketa etik in etikete) { if (ID.Equals(etik.ID)) { vr = etik.vrsta; vr.etikete.Remove(etik); etikete.Remove(etik); break; } } //kad izbrise red iz tabele, ponovo je popuni dataGridViewEtiketa.Rows.Clear(); foreach (Etiketa et in etikete) { dataGridViewEtiketa.Rows.Add(new object[] { et.ID, "", et.Opis }); dataGridViewEtiketa[1, dataGridViewEtiketa.Rows.Count - 1].Style.BackColor = et.Boja; dataGridViewEtiketa.Rows[dataGridViewEtiketa.Rows.Count - 1].Tag = et; } ucitavanje = false; if (etikete.Count != 0) { dataGridViewEtiketa.CurrentCell = dataGridViewEtiketa.Rows[0].Cells[0]; dataGridViewEtiketa_SelectionChanged(dataGridViewEtiketa, EventArgs.Empty); } else { buttonDodavanje.Enabled = false; buttonIzmjena.Enabled = false; buttonBrisanje.Enabled = false; } } else //kada je brisanje iz etiketa nekog tipa { foreach (Etiketa etik in vrsta.etikete) { if (ID.Equals(etik.ID)) { vrsta.etikete.Remove(etik); etikete.Remove(etik); //brisanje iz svih etiketa break; } } //kad izbrise red iz tabele, ponovo je popuni dataGridViewEtiketa.Rows.Clear(); foreach (Etiketa et in vrsta.etikete) { dataGridViewEtiketa.Rows.Add(new object[] { et.ID, "", et.Opis }); dataGridViewEtiketa[1, dataGridViewEtiketa.Rows.Count - 1].Style.BackColor = et.Boja; dataGridViewEtiketa.Rows[dataGridViewEtiketa.Rows.Count - 1].Tag = et; } ucitavanje = false; if (vrsta.etikete.Count != 0) { dataGridViewEtiketa.CurrentCell = dataGridViewEtiketa.Rows[0].Cells[0]; dataGridViewEtiketa_SelectionChanged(dataGridViewEtiketa, EventArgs.Empty); } else { buttonDodavanje.Enabled = true; buttonIzmjena.Enabled = false; buttonBrisanje.Enabled = false; } } } }
private void panelMapa_DragDrop(object sender, DragEventArgs e) { Point panelLokacija = panelMapa.PointToScreen(Point.Empty); Rectangle draggedElement = new Rectangle(new Point(e.X - panelLokacija.X, e.Y - panelLokacija.Y), new Size(5, 5)); bool presjek = false; foreach (Control pb in panelMapa.Controls) { if (draggedElement.IntersectsWith(pb.Bounds)) { presjek = true; MessageBox.Show("Vrste se ne smiju preklapati!", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (prevuciSaStabla) { Type testTip = new TreeNode().GetType(); Panel dropPicturePanel = (Panel)sender; TreeNode prevuceniCvor; prevuciSaStabla = false; selekcioniProzor = Rectangle.Empty; if (e.Data.GetDataPresent(testTip) && presjek == false) //Da li je poslati tip u stvari treeNode? { prevuceniCvor = (TreeNode)e.Data.GetData(testTip); prevuceniCvor.ImageIndex = prevuceniCvor.Index; prevuceniCvor.SelectedImageIndex = prevuceniCvor.Index; //PictureBox pb = new PictureBox(); PictureBox pb = new PictureBox(); pb.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseDown); pb.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); pb.MouseHover += new System.EventHandler(this.pictureBox_MouseHover); pb.ContextMenuStrip = new ContextMenuStrip(); ToolStripDropDownItem item = new ToolStripMenuItem(); item.Text = "Obriši"; item.Click += obriToolStripMenuItem_Click; pb.ContextMenuStrip.Items.Add(item); //pb.Image = imageList1.Images[prevuceniCvor.Index]; Vrsta vrsta = (Vrsta)prevuceniCvor.Tag; pb.Image = vrsta.Img; refreshTree(); pb.Size = new System.Drawing.Size(30, 30); pb.SizeMode = PictureBoxSizeMode.StretchImage; Point lokacijaPanela = panelMapa.PointToScreen(Point.Empty); // izracuna lokaciju u odnosu na panel pb.Location = new System.Drawing.Point(e.X - lokacijaPanela.X, e.Y - lokacijaPanela.Y); ///panelMapa.Controls.Add(pb); string oznaka = prevuceniCvor.Text; pb.Name = oznaka; // cuvam za kasnije prevlacenje po mapi panelMapa.Controls.Add(pb); listPB.Add(pb); //dodajem u listu pb Point lokacija = new Point(pb.Location.X - panelMapa.AutoScrollPosition.X, pb.Location.Y - panelMapa.AutoScrollPosition.Y); // u odnosu na panel i skrol //SpomenikMapa snmp = new SpomenikMapa(oznaka, true, lokacija); //bool snimio = PodaciSpomenici.getInstance().getSpomeniciMapa().saveSpomenikNaMapi(snmp); //vrsteNaMapi.Add(vrsta.ID, vrsta); treeView1.SelectedNode = prevuceniCvor; //pozicije.Add(prevuceniCvor, lokacija); pb.Tag = new Tuple <Point, TreeNode>(lokacija, prevuceniCvor); //potrebno mi je da pamti ko mu je treenode i poziciju za kasniji drag i drop //posto ne cuva pozicije nakon drag and drop po panelu pb.ContextMenuStrip.Tag = new Tuple <Point, PictureBox>(lokacija, pb); TreeNode key = null; foreach (KeyValuePair <TreeNode, List <Point> > entry in sve_pozicije) { if (entry.Key.Text == prevuceniCvor.Text) { key = entry.Key; break; } } if (key != null) { List <Point> tacke = sve_pozicije[key]; tacke.Add(lokacija); } else { List <Point> tacke = new List <Point>(); tacke.Add(lokacija); sve_pozicije.Add(prevuceniCvor, tacke); } } } else // ako nije sa stabla, onda je po panelu { Type testTip = new PictureBox().GetType(); Panel dropPicturePanel = (Panel)sender; PictureBox droppedPictureBox; prevuciSaMape = false; selekcioniProzor = Rectangle.Empty; if (e.Data.GetDataPresent(testTip) && presjek == false) //Da li je poslati tip u stvari treeNode? { droppedPictureBox = (PictureBox)e.Data.GetData(testTip); Point lokacijaPanela = panelMapa.PointToScreen(Point.Empty); // izracuna lokaciju u odnosu na panel droppedPictureBox.Location = new System.Drawing.Point(e.X - lokacijaPanela.X, e.Y - lokacijaPanela.Y); string oznaka = droppedPictureBox.Name; Point lokacija = new Point(droppedPictureBox.Location.X - panelMapa.AutoScrollPosition.X, droppedPictureBox.Location.Y - panelMapa.AutoScrollPosition.Y); // u odnosu na panel i skrol Tuple <Point, TreeNode> tuple = (Tuple <Point, TreeNode>)droppedPictureBox.Tag; TreeNode prevuceniCvor = tuple.Item2; Point stara_lokacija = tuple.Item1; ////PodaciSpomenici.getInstance().getSpomeniciMapa().izmeniSpomenikNaMapi(oznaka, true, lokacija); foreach (KeyValuePair <TreeNode, List <Point> > entry in sve_pozicije) { if (entry.Key.Text == prevuceniCvor.Text) { List <Point> tacke = entry.Value; for (int i = 0; i < tacke.Count; i++) { if (stara_lokacija.X == tacke[i].X && stara_lokacija.Y == tacke[i].Y) { tacke[i] = lokacija; droppedPictureBox.Tag = new Tuple <Point, TreeNode>(lokacija, prevuceniCvor); droppedPictureBox.ContextMenuStrip.Tag = new Tuple <Point, PictureBox>(lokacija, droppedPictureBox); break; } } } } } } }