Пример #1
0
        public graphWindow(designGraph dg, CanvasProperty canvasProperties,
                           string filename, string title)
        {
            /* the following is common to all GS window types. */
            InitializeComponent();
            Owner         = main;
            ShowInTaskbar = false;
            foreach (CommandBinding cb in main.CommandBindings)
            {
                CommandBindings.Add(cb);
                graphGUI.CommandBindings.Add(cb);
            }
            foreach (InputBinding ib in main.InputBindings)
            {
                InputBindings.Add(ib);
                graphGUI.InputBindings.Add(ib);
            }
            /***************************************************/

            graph = graphGUI.graph = dg;
            graphGUI.ScrollOwner = scrollViewer1;

            canvasProps = canvasProperties ?? new CanvasProperty();
            canvasProps.AddGUIToControl(graphGUI);
            AdoptWindowWideCanvasProperties();

            this.filename = !string.IsNullOrEmpty(filename) ? filename : "Untitled";
            Title         = !string.IsNullOrEmpty(title) ? title : Path.GetFileNameWithoutExtension(this.filename);

            graphGUI.InitDrawGraph();

            txtGlobalVariables.Text = DoubleCollectionConverter.Convert(graph.globalVariables);
            txtGlobalLabels.Text    = StringCollectionConverter.Convert(graph.globalLabels);
        }
Пример #2
0
        public void NewGraph_ClickOnExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            var canvas = TemplatePickerWindow.ShowWindowDialog();

            if (canvas == null)
            {
                canvas = new CanvasProperty();
            }
            var gW = new graphWindow(canvas);

            windowsMgr.AddandShowWindow(gW);
        }
Пример #3
0
        public static string SerializeCanvasToXml(CanvasProperty canvas)
        {
            /* any negative values in CanvasWidth are reset to zero s.t. there are not problems in
             * re-opening the canvas. */
            canvas.CanvasWidth = new Thickness(Math.Max(0.0, canvas.CanvasWidth.Left),
                                               Math.Max(0.0, canvas.CanvasWidth.Top),
                                               Math.Max(0.0, canvas.CanvasWidth.Right),
                                               Math.Max(0.0, canvas.CanvasWidth.Bottom));

            var xmlString        = XamlWriter.Save(canvas);
            var startOfResources = xmlString.IndexOf("<CanvasProperty.Resources>");
            var endOfResources   = xmlString.LastIndexOf("</CanvasProperty>");

            xmlString = xmlString.Remove(startOfResources, (endOfResources - startOfResources));

            return(xmlString);
        }
Пример #4
0
        public void SetActiveAsSeedOnExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            var activeWin = windowsMgr.activeWindow;
            var activeGD  = ((graphWindow)activeWin).graphGUI;

            if ((GSApp.settings.seed == null) || (GSApp.settings.seed == activeGD.graph) ||
                (MessageBoxResult.Yes == MessageBox.Show("The graph "
                                                         + GSApp.settings.seed.name
                                                         + " is already loaded as the seed."
                                                         + " Replace it with the active graph?", "Seed already defined.",
                                                         MessageBoxButton.YesNo, MessageBoxImage.Information)))
            {
                GSApp.settings.seed = activeGD.graph;
                GSApp.settings.DefaultSeedFileName = ((graphWindow)activeWin).filename;
                SeedCanvas = ((graphWindow)activeWin).canvasProps;
            }
        }
Пример #5
0
 public void NewGrammarRule_ClickOnExecuted(object sender, ExecutedRoutedEventArgs e)
 {
     try
     {
         ///
         /// a temporary fix until we phase out UI.UICanvas
         var canvas = TemplatePickerWindow.ShowWindowDialog();
         if (canvas == null)
         {
             canvas = new CanvasProperty();
         }
         var rW = new ruleWindow(canvas);
         windowsMgr.AddandShowWindow(rW);
     }
     catch (Exception exc)
     {
         ErrorLogger.Catch(exc);
     }
 }
        private void OpenTemplateFromFile()
        {
            var filename    = "";
            var fileChooser = new OpenFileDialog
            {
                Title            = "Open a canvas template stored in another file.",
                InitialDirectory = GSApp.settings.WorkingDirAbsolute,
                Filter           = "GraphSynth files|*.gxml;*.grxml;*.rsxml|All xml files|*.xml;*.xaml"
            };

            if ((Boolean)fileChooser.ShowDialog())
            {
                filename = fileChooser.FileName;
            }
            if (filename.Length > 0)
            {
                try
                {
                    var    cp  = ((WPFFiler)GSApp.settings.filer).LoadCanvasProperty(XElement.Load(filename));
                    string key = null;
                    if (cp != null)
                    {
                        Value = cp;
                        key   = "from=>" + Path.GetFileNameWithoutExtension(filename);
                        if (!Application.Current.Resources.MergedDictionaries[1].Contains(key))
                        {
                            var xamlString = "<DataTemplate>"
                                             + CanvasProperty.SerializeCanvasToXml(cp) + "</DataTemplate>";

                            var dt = (DataTemplate)MyXamlHelpers.Parse(xamlString);
                            Application.Current.Resources.MergedDictionaries[1].Add(key, dt);
                        }
                    }
                    //}
                    ReadInTemplates(key);
                }
                catch (Exception exc)
                {
                    ErrorLogger.Catch(exc);
                }
            }
        }
        private void listBoxOfTemplates_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (listBoxOfTemplates.Items.Count == 0)
            {
                return;
            }
            var selected = ((ListBoxItem)listBoxOfTemplates.SelectedItem).Tag.ToString();

            if (selected.Equals("openTemplate"))
            {
                OpenTemplateFromFile();
            }
            else
            {
                var dt = (DataTemplate)Application.Current.Resources[selected];
                if (dt != null)
                {
                    Value = (CanvasProperty)dt.LoadContent();
                    RaiseValueChangedEvent();
                }
            }
        }
Пример #8
0
        public ruleWindow(grammarRule gr, CanvasProperty canvasProperties,
                          string filename, string title)
        {
            /* the following is common to all GS window types. */
            InitializeComponent();
            Owner = main;
            graphCanvasK.ScrollOwner = scrollViewerK;
            graphCanvasL.ScrollOwner = scrollViewerL;
            graphCanvasR.ScrollOwner = scrollViewerR;
            ShowInTaskbar            = false;
            foreach (CommandBinding cb in main.CommandBindings)
            {
                CommandBindings.Add(cb);
                graphCanvasK.CommandBindings.Add(cb);
                graphCanvasL.CommandBindings.Add(cb);
                graphCanvasR.CommandBindings.Add(cb);
            }
            foreach (InputBinding ib in main.InputBindings)
            {
                InputBindings.Add(ib);
                graphCanvasK.InputBindings.Add(ib);
                graphCanvasL.InputBindings.Add(ib);
                graphCanvasR.InputBindings.Add(ib);
            }
            /***************************************************/

            rule          = gr;
            this.filename = !string.IsNullOrEmpty(filename) ? filename : "Untitled";
            Title         = !string.IsNullOrEmpty(title) ? title : Path.GetFileNameWithoutExtension(this.filename);

            canvasProps = canvasProperties;
            canvasProps.AddGUIToControl(graphCanvasK);
            canvasProps.AddGUIToControl(graphCanvasL);
            canvasProps.AddGUIToControl(graphCanvasR);
            AdoptWindowWideCanvasProperties();

            InitDrawRule();
        }
Пример #9
0
 public graphWindow(designGraph dg, CanvasProperty canvasProperties,
                    string filename)
     : this(dg, canvasProperties, filename, Path.GetFileNameWithoutExtension(filename))
 {
 }
Пример #10
0
 public graphWindow(designGraph dg, CanvasProperty canvasProperties)
     : this(dg, canvasProperties, "Untitled")
 {
 }
Пример #11
0
 public graphWindow(CanvasProperty canvasProperties)
     : this(new designGraph(), canvasProperties)
 {
 }
 private void btnCancel_Click(object sender, RoutedEventArgs e)
 {
     Value = null;
     Close();
 }
Пример #13
0
        public void addAndShowRuleWindow(object obj, string title = null)
        {
            var    gR       = new grammarRule();
            var    canvas   = new CanvasProperty();
            string filename = null;

            if (obj == null)
            {
                gR = null;
            }
            else if (obj is grammarRule)
            {
                gR = (grammarRule)obj;
            }
            else if (obj is object[])
            {
                var objArray = (object[])obj;
                if (objArray.GetLength(0) > 0)
                {
                    if (objArray[0] is grammarRule)
                    {
                        gR = (grammarRule)objArray[0];
                    }
                    else if (objArray[0] is CanvasProperty)
                    {
                        canvas = (CanvasProperty)objArray[0];
                    }
                    else if (objArray[0] is string)
                    {
                        filename = (string)objArray[0];
                    }
                }
                if (objArray.GetLength(0) > 1)
                {
                    if (objArray[1] is grammarRule)
                    {
                        gR = (grammarRule)objArray[1];
                    }
                    else if (objArray[1] is CanvasProperty)
                    {
                        canvas = (CanvasProperty)objArray[1];
                    }
                    else if (objArray[1] is string)
                    {
                        filename = (string)objArray[1];
                    }
                }
                if (objArray.GetLength(0) > 2)
                {
                    if (objArray[2] is grammarRule)
                    {
                        gR = (grammarRule)objArray[2];
                    }
                    else if (objArray[2] is CanvasProperty)
                    {
                        canvas = (CanvasProperty)objArray[2];
                    }
                    else if (objArray[2] is string)
                    {
                        filename = (string)objArray[2];
                    }
                }
            }
            if (!windowsMgr.FindAndFocusFileInCollection(filename, WindowType.Rule))
            {
                var rW = new ruleWindow(gR, canvas, filename, title);
                windowsMgr.AddandShowWindow(rW);
            }
        }
Пример #14
0
 public ruleWindow(grammarRule gr, CanvasProperty canvasProperties,
                   string filename)
     : this(gr, canvasProperties, filename, Path.GetFileNameWithoutExtension(filename))
 {
 }
Пример #15
0
 public ruleWindow(grammarRule gr, CanvasProperty canvasProperties)
     : this(gr, canvasProperties, "Untitled")
 {
 }
Пример #16
0
 public ruleWindow(CanvasProperty canvasProperties)
     : this(new grammarRule(), canvasProperties)
 {
 }