Ejemplo n.º 1
0
        public override void MouseLeftButtonUp(Point point)
        {
            if (selectedAtLeastOne)
            {
                return;
            }
            if (Figure != null)
            {
                ObservableFigure tmp = Figure as ObservableFigure; // aby moc wywolac np. ObservableFigure.Attach()

                // po puszczeniu myszki sprawdzamy jakie figury są zaznaczone
                // pobranie listy figur z MainWindow
                List <Figure> figures = ((MainWindow)Application.Current.MainWindow).GetFigureList();

                // przechodzimy po wszystkich figurach
                foreach (Figure figure in figures)
                {
                    if (tmp.Contains(figure))   // jezeli obserwowany obejmuje dana figure
                    {
                        tmp.Attach(figure);     // dodajemy dana figure do listy obserwatorow

                        if (selectedAtLeastOne == false)
                        {
                            selectedAtLeastOne = true;
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public override void MouseLeftButtonDown(Point point)
        {
            if (Figure != null) // jesli nie mamy zadnej figury to wiadomo, ze musimy dodac nowa
            {
                // jezeli myszka jest nad obserwowanym to chcemy przesuwac
                if (Figure.adaptedPath.IsMouseOver)
                {
                    ToMove      = true;
                    widthShift  = 0;
                    lengthShift = 0;
                    return;
                }
            }
            // w przeciwnym wypadku tworzymy nowego obserwowanego
            if (selectedAtLeastOne == true) //Odpinamy wszystkich
            {
                ObservableFigure tmp = Figure as ObservableFigure;
                tmp.DetachAll();
                selectedAtLeastOne = false;
            }

            Figure     = new ObservableFigure(new Path());
            StartPoint = point;
            ((MainWindow)Application.Current.MainWindow).AddObservable(Figure);

            ToMove = false;
        }
Ejemplo n.º 3
0
        private void RestoreCanvas(int index)
        {
            if (SelectedFigure != null)
            {
                SelectedFigure = null;
            }
            if (ObservableFigure != null)
            {
                ObservableFigure = null;
            }

            string oldCanvasFile = this.originator.RestoreFromMemento(this.caretaker.GetMemento(index)); //Odczyt z listy Memento
            string CanvasString;

            try
            {
                using (var sr = new StreamReader(this.canvasPath + oldCanvasFile))
                {
                    CanvasString = sr.ReadToEnd();
                }

                Canvas oldCanvas = XamlReader.Parse(CanvasString) as Canvas;

                MainGrid.Children.Remove(canvas);
                canvas = null;
                canvas = oldCanvas;
                SetCanvas();
                FigureList = RestoreFigureList(canvas.Children);
            }
            catch (IOException e)
            {
                MessageBox.Show("Nie można odczytać pliku: " + e.Message);
            }
        }
Ejemplo n.º 4
0
 private void ResetObservableFigure()
 {
     if (ObservableFigure != null)
     {
         ObservableFigure.DetachAll();
         canvas.Children.Remove(ObservableFigure.adaptedPath);
         ObservableFigure = null;
     }
 }
Ejemplo n.º 5
0
        public void AddObservable(Figure figure)
        {
            // musimy usunac starego obserwowanego z canvasa
            if (ObservableFigure != null)
            {
                canvas.Children.Remove(ObservableFigure.adaptedPath);
            }

            ObservableFigure = figure as ObservableFigure;

            // dodanie go do canvasa, zeby byl widoczny
            canvas.Children.Add(figure.adaptedPath);
        }