예제 #1
0
 public void SubmitResult(ErrorResult result)
 {
     if (results.InvokeRequired)
     {
         CallResultMethodDelegate d = SubmitResult;
         try { progress.Invoke(d, result); }
         catch (ThreadInterruptedException) { }
     }
     else
     {
         if (!result.IsHidden && !hiddentresulttypes.Contains(result.GetType()))                //mxd
         {
             results.Items.Add(result);
         }
         resultslist.Add(result);                 //mxd
         UpdateTitle();
     }
 }
예제 #2
0
        // Redrawing display
        public override void OnRedrawDisplay()
        {
            // Get the selection
            ErrorResult selection = BuilderPlug.Me.ErrorCheckForm.SelectedResult;

            renderer.RedrawSurface();

            // Render lines
            if (renderer.StartPlotter(true))
            {
                renderer.PlotLinedefSet(General.Map.Map.Linedefs);
                renderer.PlotVerticesSet(General.Map.Map.Vertices);
                if (selection != null)
                {
                    selection.PlotSelection(renderer);
                }
                renderer.Finish();
            }

            // Render things
            if (renderer.StartThings(true))
            {
                renderer.RenderThingSet(General.Map.Map.Things, 1.0f);
                if (selection != null)
                {
                    selection.RenderThingsSelection(renderer);
                }
                renderer.Finish();
            }

            // Render overlay
            if (renderer.StartOverlay(true))
            {
                if (selection != null)
                {
                    selection.RenderOverlaySelection(renderer);
                }
                renderer.Finish();
            }

            renderer.Present();
        }
예제 #3
0
        //mxd
        private Dictionary <Type, bool> GetSelectedTypes()
        {
            Dictionary <Type, bool> selectedtypes = new Dictionary <Type, bool>();

            foreach (var ro in results.SelectedItems)
            {
                ErrorResult r = ro as ErrorResult;
                if (r == null)
                {
                    continue;
                }
                Type t = r.GetType();
                if (!selectedtypes.ContainsKey(t))
                {
                    selectedtypes.Add(t, false);
                }
            }

            return(selectedtypes);
        }
예제 #4
0
 // Third button
 private void fix3_Click(object sender, EventArgs e)
 {
     // Anything selected?
     if (results.SelectedIndex >= 0)
     {
         if (running)
         {
             General.ShowWarningMessage("You must stop the analysis before you can make changes to your map!", MessageBoxButtons.OK);
         }
         else
         {
             ErrorResult r = (results.SelectedItem as ErrorResult);
             if (r.Button3Click())
             {
                 StartChecking();
             }
             else
             {
                 General.Interface.RedrawDisplay();
             }
         }
     }
 }
예제 #5
0
        // Results selection changed
        private void results_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Anything selected?
            if (results.SelectedIndex >= 0)
            {
                ErrorResult r = (results.SelectedItem as ErrorResult);
                resultinfo.Text    = r.Description;
                resultinfo.Enabled = true;
                fix1.Text          = r.Button1Text;
                fix2.Text          = r.Button2Text;
                fix3.Text          = r.Button3Text;
                fix1.Visible       = (r.Buttons >= 1);
                fix2.Visible       = (r.Buttons >= 2);
                fix3.Visible       = (r.Buttons >= 3);
                r.ZoomToObject();
            }
            else
            {
                ClearSelectedResult();
            }

            General.Interface.RedrawDisplay();
        }
예제 #6
0
 // This submits a result to show in the results list
 protected void SubmitResult(ErrorResult result)
 {
     BuilderPlug.Me.ErrorCheckForm.SubmitResult(result);
 }
예제 #7
0
        // Results selection changed
        private void results_SelectedIndexChanged(object sender, EventArgs e)
        {
            //mxd
            if (bathselectioninprogress)
            {
                return;
            }

            // Anything selected?
            if (results.SelectedItems.Count > 0)
            {
                ErrorResult firstresult = (results.SelectedItems[0] as ErrorResult);
                if (firstresult == null)
                {
                    ClearSelectedResult();
                }
                else
                {
                    bool sametype = true;
                    List <ErrorResult> validresults = new List <ErrorResult>();

                    // Selected results have the same fixes?
                    foreach (var ri in results.SelectedItems)
                    {
                        ErrorResult result = ri as ErrorResult;
                        if (result == null)
                        {
                            continue;
                        }
                        validresults.Add(result);

                        if (result.Buttons != firstresult.Buttons || result.Button1Text != firstresult.Button1Text ||
                            result.Button2Text != firstresult.Button2Text || result.Button3Text != firstresult.Button3Text)
                        {
                            sametype = false;
                            break;
                        }
                    }

                    resultinfo.Enabled = true;

                    if (sametype)
                    {
                        resultinfo.Text = firstresult.Description;
                        fix1.Text       = firstresult.Button1Text;
                        fix2.Text       = firstresult.Button2Text;
                        fix3.Text       = firstresult.Button3Text;
                        fix1.Visible    = (firstresult.Buttons > 0);
                        fix2.Visible    = (firstresult.Buttons > 1);
                        fix3.Visible    = (firstresult.Buttons > 2);
                    }
                    else
                    {
                        resultinfo.Text = "Several types of map analysis results are selected. To display fixes, make sure that only a single result type is selected.";
                        fix1.Visible    = false;
                        fix2.Visible    = false;
                        fix3.Visible    = false;
                    }

                    // Zoom to area
                    if (validresults.Count > 0)
                    {
                        RectangleF zoomarea = validresults[0].GetZoomArea();
                        foreach (ErrorResult result in validresults)
                        {
                            zoomarea = RectangleF.Union(zoomarea, result.GetZoomArea());
                        }

                        ClassicMode editmode = (General.Editing.Mode as ClassicMode);
                        editmode.CenterOnArea(zoomarea, 0.6f);
                    }
                }

                UpdateTitle();                 //mxd
            }
            else
            {
                ClearSelectedResult();
            }

            General.Interface.RedrawDisplay();
        }