Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace UmlZadatak
- {
- public partial class Form1 : Form
- {
- Graphics g;
- Model pravougaonik;
- List<Model> listaModela = new List<Model>();
- public bool postojiSelektovan;
- public bool postojiSelektovanaVeza;
- List<string> imenaKlasa = new List<string>();
- List<Veza> listaVeza = new List<Veza>();
- private Point prvaTacka;
- public Model prvi=null;
- public Model drugi=null;
- public int kliknuoJednom = 0;
- public Form1()
- {
- InitializeComponent();
- g = CreateGraphics();
- MouseClick += Form1_MouseClick;
- }
- private void Form1_MouseClick(object sender,MouseEventArgs e)
- {
- if (rbClass.Checked)
- {
- if (rbNone.Checked)
- {
- if (textBoxClassName.Text.Length == 0)
- {
- MessageBox.Show("Morate uneti naziv klase!");
- }
- else
- {
- if (postojiIme(textBoxClassName.Text) == true)
- {
- MessageBox.Show("Postoji ime klase!");
- textBoxClassName.Text = "";
- }
- else
- {
- pravougaonik = new Model(e.X, e.Y, textBoxClassName.Text);
- imenaKlasa.Add(textBoxClassName.Text);
- listaModela.Add(pravougaonik);
- textBoxClassName.Text = "";
- g.Clear(this.BackColor);
- foreach (Model m in listaModela)
- {
- m.CrtajSe(g);
- }
- }
- }
- }
- else if(!rbNone.Checked)
- {
- prvaTacka = new Point(e.X, e.Y);
- //if (kliknuoJednom == 0)
- if(prvi==null)
- {
- //prvaTacka = new Point(e.X, e.Y);
- //kliknuoJednom = 1;
- foreach (Model m in listaModela)
- {
- if (m.Rec.Contains(prvaTacka))
- {
- prvi = m;
- }
- }
- }
- //else if (kliknuoJednom == 1)
- else
- {
- Point druga = new Point(e.X, e.Y);
- //if (prvi == null)
- //{
- /*foreach (Model m in listaModela)
- {
- if (m.Rec.Contains(prvaTacka))
- {
- prvi = m;
- }
- }*/
- //}
- //if (drugi == null)
- //{
- foreach (Model m in listaModela)
- {
- if (m.Rec.Contains(druga))
- {
- drugi = m;
- }
- }
- //}
- if(drugi!=null)
- {
- if (prvi == drugi)
- drugi = null;
- else
- {
- if (rbAsocijacija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "asocijacija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- else if (rbAgregacija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "agregacija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- else if (rbGeneralizacija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "generalizacija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- else if (rbKompozicija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "kompozicija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- else if (rbRealizacija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "realizacija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- //foreach (Veza l in listaVeza)
- // l.CrtajVezu(g);
- prvi = null;
- drugi = null;
- }
- }
- }
- /* if (rbAsocijacija.Checked)
- {
- Veza v = new Veza(prvi, drugi,"asocijacija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- else if(rbAgregacija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "agregacija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- else if (rbGeneralizacija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "generalizacija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- else if(rbKompozicija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "kompozicija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- else if (rbRealizacija.Checked)
- {
- Veza v = new Veza(prvi, drugi, "realizacija");
- kliknuoJednom = 0;
- v.CrtajVezu(g);
- listaVeza.Add(v);
- }
- }*/
- //prvi = null;
- //drugi = null;
- }
- foreach (Veza l in listaVeza)
- l.CrtajVezu(g);
- }
- else
- {
- //selektovanje veze
- postojiSelektovanaVeza = false;
- checkBox1.Checked = false;
- for (int i = 0; i < listaVeza.Count; i++)
- {
- listaVeza[i].Selektovan = false;
- if (listaVeza[i].Sadrzi(e.X, e.Y))
- {
- if (!postojiSelektovanaVeza)
- {
- listaVeza[i].Selektovan = true;
- postojiSelektovanaVeza = true;
- checkBox1.Enabled = true;
- if (listaVeza[i].Naziv == "asocijacija")
- {
- cbLeftMult.Items.Add("1");
- cbLeftMult.Items.Add("0..*");
- cbLeftMult.Items.Add("1..*");
- cbLeftMult.Items.Add("0..1");
- cbRightMult.Items.Add("1");
- cbRightMult.Items.Add("0..*");
- cbRightMult.Items.Add("1..*");
- cbRightMult.Items.Add("0..1");
- }
- else if (listaVeza[i].Naziv == "agregacija")
- {
- cbLeftMult.Items.Add("0..1");
- cbLeftMult.Items.Add("1..*");
- cbRightMult.Items.Add("0..1");
- cbRightMult.Items.Add("1..*");
- //da li mi je potreban kardinalitet 1?
- }
- else if(listaVeza[i].Naziv=="kompozicija")
- {
- cbLeftMult.Items.Add("1");
- cbLeftMult.Items.Add("1..*");
- cbRightMult.Items.Add("1");
- cbRightMult.Items.Add("1..*");
- }
- else if(listaVeza[i].Naziv== "generalizacija")
- {
- cbLeftMult.Enabled = false;
- cbRightMult.Enabled = false;
- }
- else if (listaVeza[i].Naziv == "realizacija")
- {
- //postavicu kardinalitete na normalno posto ne znam
- //koji se koriste za datu vezu
- cbLeftMult.Items.Add("1");
- cbLeftMult.Items.Add("0..*");
- cbLeftMult.Items.Add("1..*");
- cbLeftMult.Items.Add("0..1");
- cbRightMult.Items.Add("1");
- cbRightMult.Items.Add("0..*");
- cbRightMult.Items.Add("1..*");
- cbRightMult.Items.Add("0..1");
- }
- listaVeza[i].KardLevo = cbLeftMult.Text;
- listaVeza[i].KardDesno = cbRightMult.Text;
- }
- }
- listaVeza[i].CrtajVezu(g);
- }
- //selektovanje klase
- postojiSelektovan = false;
- txtMethod.Text = "";
- cmbAccessorMetoda.Text = "";
- txtName.Text = "";
- cmbProperties.Text = "";
- textDataType.Text = "";
- listBoxMet.Items.Clear();
- listBoxAtrib.Items.Clear();
- for (int i = 0; i < listaModela.Count(); i++)
- {
- listaModela[i].Selektovan = false;
- if (listaModela[i].Rec.Contains(e.X, e.Y))
- {
- if (!postojiSelektovan)
- {
- listaModela[i].Selektovan = true;
- postojiSelektovan = true;
- checkBox1.Enabled = true;
- listBoxMet.Items.Clear();
- listBoxMet.Items.AddRange(listaModela[i].listaMetoda.ToArray());
- listBoxAtrib.Items.Clear();
- listBoxAtrib.Items.AddRange(listaModela[i].listaAtributa.ToArray());
- labelClassName.Text = SetLabelClassName(listaModela[i].Naziv);
- }
- }
- listaModela[i].CrtajSe(g);
- }
- }
- }
- public string SetLabelClassName(string text)
- {
- return "<" + text + ">";
- }
- public bool postojiIme(string naziv)
- {
- for(int i=0;i<imenaKlasa.Count();i++)
- {
- if (imenaKlasa[i] == naziv)
- return true;
- }
- return false;
- }
- public bool postojiMetoda(string naziv)
- {
- for(int i=0;i<pravougaonik.listaMetoda.Count;i++)
- {
- if (pravougaonik.listaMetoda[i].Ime == naziv)
- return true;
- }
- return false;
- }
- public bool postojiAtribut(string naziv)
- {
- for (int i = 0; i < pravougaonik.listaAtributa.Count; i++)
- {
- if (pravougaonik.listaAtributa[i].ImeAtributa == naziv)
- return true;
- }
- return false;
- }
- private void checkBox1_CheckedChanged(object sender, EventArgs e)
- {
- if(checkBox1.Checked && postojiSelektovan==true)
- {
- panel3.Hide();
- panel2.Show();
- }
- else if(checkBox1.Checked && postojiSelektovanaVeza==true)
- {
- panel2.Hide();
- panel3.Show();
- }
- }
- private void button1ClearScreen_Click(object sender, EventArgs e)
- {
- listaModela.Clear();
- this.Invalidate();
- }
- private void btnAddMethod_Click(object sender, EventArgs e)
- {
- foreach (Model m in listaModela)
- {
- if (m.Selektovan == true)
- {
- if (postojiMetoda(txtMethod.Text) || String.IsNullOrEmpty(txtMethod.Text) || String.IsNullOrEmpty(cmbAccessorMetoda.Text))
- {
- MessageBox.Show("Neodgovarajuci unos, pokusajte ponovo");
- txtMethod.Text = "";
- }
- else
- {
- if (cmbAccessorMetoda.Text == "public")
- {
- m.listaMetoda.Add(new Metoda(cmbAccessorMetoda.Text, txtMethod.Text));
- }
- else if (cmbAccessorMetoda.Text == "private")
- {
- m.listaMetoda.Add(new Metoda(cmbAccessorMetoda.Text, txtMethod.Text));
- }
- else if (cmbAccessorMetoda.Text == "protected")
- {
- m.listaMetoda.Add(new Metoda(cmbAccessorMetoda.Text, txtMethod.Text));
- }
- else if (cmbAccessorMetoda.Text == "package")
- {
- m.listaMetoda.Add(new Metoda(cmbAccessorMetoda.Text, txtMethod.Text));
- }
- else
- {
- MessageBox.Show("Neodgovarajuci specifikator pristupa!");
- }
- listBoxMet.Items.Clear();
- listBoxMet.Items.AddRange(m.listaMetoda.ToArray());
- }
- }
- }
- }
- private void btnAddProperty_Click(object sender, EventArgs e)
- {
- foreach (Model m in listaModela)
- {
- if (m.Selektovan == true)
- {
- if (postojiAtribut(txtName.Text) == true || String.IsNullOrEmpty(textDataType.Text) || String.IsNullOrEmpty(cmbProperties.Text))
- {
- MessageBox.Show("Neodgovarajuci unos, pokusajte ponovo");
- txtName.Text = "";
- }
- else
- {
- if (cmbProperties.Text == "public")
- {
- m.listaAtributa.Add(new Atribut(txtName.Text, cmbProperties.Text, textDataType.Text));
- }
- else if (cmbProperties.Text == "private")
- {
- m.listaAtributa.Add(new Atribut(txtName.Text, cmbProperties.Text, textDataType.Text));
- }
- else if (cmbProperties.Text == "protected")
- {
- m.listaAtributa.Add(new Atribut(txtName.Text, cmbProperties.Text, textDataType.Text));
- }
- else if (cmbProperties.Text == "package")
- {
- m.listaAtributa.Add(new Atribut(txtName.Text, cmbProperties.Text, textDataType.Text));
- }
- else
- {
- MessageBox.Show("Neodgovarajuci specifikator pristupa!");
- }
- listBoxAtrib.Items.Clear();
- listBoxAtrib.Items.AddRange(m.listaAtributa.ToArray());
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement