Example #1
0
        public void Drop(IDropInfo dropInfo)
        {
            ZawartośćKlockaPionowegoZZawartością docelowaKolekcja = (ZawartośćKlockaPionowegoZZawartością)dropInfo.TargetCollection;
            KlocekPionowy upuszczanyKlocek = (KlocekPionowy)dropInfo.Data;

            upuszczanyKlocek.Rodzic       = docelowaKolekcja.KlocekPionowyZZawartością;
            upuszczanyKlocek.ZPrzybornika = false;
            int       indeksDocelowy                         = dropInfo.InsertIndex;
            IDragInfo informacjeOPrzeciągnięciu              = dropInfo.DragInfo;
            ZawartośćKlockaPionowegoZZawartością źródło      = informacjeOPrzeciągnięciu.SourceCollection as ZawartośćKlockaPionowegoZZawartością;
            ManipulacjaKlockiemPionowym          manipulacja = new ManipulacjaKlockiemPionowym(ManipulacjeKlockiem.Dodanie, upuszczanyKlocek)
            {
                IndeksDocelowy = indeksDocelowy,
                Cel            = docelowaKolekcja
            };

            if (źródło != null)
            {
                manipulacja.IndeksŹródłowy = informacjeOPrzeciągnięciu.SourceIndex;
                manipulacja.Źródło         = źródło;
            }

            docelowaKolekcja.Insert(indeksDocelowy, upuszczanyKlocek);
            _metodaZachowującaStanAplikacji(manipulacja);
        }
Example #2
0
        private void Otwórz_OnClick(object sender, RoutedEventArgs e)
        {
            if (ModelWidoku.Debugowanie)
            {
                return;
            }

            if (!OstrzeżenieOUtracie())
            {
                return;
            }

            OpenFileDialog okno = new OpenFileDialog
            {
                DefaultExt = "mgr",
                Filter     = @"Pliki projektu pracy mgr | *.mgr"
            };

            if (okno.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Czyść();

                string ścieżkaPliku = okno.FileName;
                ModelWidoku.ŚcieżkaPliku = ścieżkaPliku;
                Title = $"Praca magisterska - {Path.GetFileName(ścieżkaPliku)}";
                XDocument  dokumentXml = XDocument.Load(ścieżkaPliku);
                XElement[] węzły       = dokumentXml.Elements().Elements().ToArray();
                ObservableCollection <Zmienna> zmienne       = ModelWidoku.Zmienne;
                RozpoczęcieProgramu            głównaFunkcja = ModelWidoku.RozpoczęcieProgramu;

                foreach (XElement zmienna in węzły.Single(w => w.Name == "Zmienne").Elements())
                {
                    zmienne.Add(new Zmienna(zmienne)
                    {
                        Nazwa = zmienna.Value
                    });
                }

                IEnumerable <XElement> klockiWewnętrzne = węzły.Single(w => w.Name == "Klocki").Element(typeof(RozpoczęcieProgramu).FullName)?.Element("Zawartość")?.Elements();

                if (klockiWewnętrzne != null)
                {
                    foreach (XElement węzełKlockaPionowego in klockiWewnętrzne)
                    {
                        Type typKlockaPionowego = Type.GetType(węzełKlockaPionowego.Name.LocalName);

                        if (typKlockaPionowego != null)
                        {
                            KlocekPionowy klocekPionowy = (KlocekPionowy)Activator.CreateInstance(typKlockaPionowego);
                            klocekPionowy.Rodzic = głównaFunkcja;

                            klocekPionowy.PrzeczytajZXml(węzełKlockaPionowego, ModelWidoku.Konsola, ModelWidoku.Semafor, zmienne);
                            głównaFunkcja.Zawartość.Add(klocekPionowy);
                        }
                    }

                    głównaFunkcja.Semafor = ModelWidoku.Semafor;
                }
            }
        }
Example #3
0
        private void DodajUsuńPunktPrzerwania(object obiektKlocka)
        {
            KlocekPionowy klocekPionowy = (KlocekPionowy)obiektKlocka;

            if (klocekPionowy.Rodzic != null)
            {
                klocekPionowy.PunktPrzerwania = !klocekPionowy.PunktPrzerwania;
                RozpoczęcieProgramu.Semafor   = Semafor;
            }
        }
Example #4
0
        public void DragOver(IDropInfo dropInfo)
        {
            KlocekPionowy   upuszczanyKlocek = dropInfo.Data as KlocekPionowy;
            DragDropEffects efektUpuszczenia;

            if (upuszczanyKlocek == null)
            {
                efektUpuszczenia = DragDropEffects.None;
            }
            else
            {
                efektUpuszczenia           = upuszczanyKlocek.ZPrzybornika ? DragDropEffects.Copy : DragDropEffects.Move;
                dropInfo.DropTargetAdorner = DropTargetAdorners.Insert;
            }

            dropInfo.Effects = efektUpuszczenia;
        }
Example #5
0
        private void UsuńKlocekPionowy(object obiektKlocka)
        {
            KlocekPionowy             usuwanyKlocek             = (KlocekPionowy)obiektKlocka;
            KlocekPionowyZZawartością klocekPionowyZZawartością = usuwanyKlocek.Rodzic;

            if (klocekPionowyZZawartością != null)
            {
                ZawartośćKlockaPionowegoZZawartością miejsceUmieszczenia = klocekPionowyZZawartością.Zawartość;
                int indeks = miejsceUmieszczenia.IndexOf(usuwanyKlocek);

                if ((indeks == -1) && klocekPionowyZZawartością is WykonajJeżeli)
                {
                    miejsceUmieszczenia = ((WykonajJeżeli)klocekPionowyZZawartością).AlternatywnaZawartość;
                    indeks = miejsceUmieszczenia.IndexOf(usuwanyKlocek);
                }

                miejsceUmieszczenia.RemoveAt(indeks);
                DodajDziałanie(new ManipulacjaKlockiemPionowym(ManipulacjeKlockiem.Usunięcie, usuwanyKlocek)
                {
                    IndeksDocelowy = indeks,
                    Cel            = miejsceUmieszczenia
                });
            }
        }