Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/28/16 19:35:42 (8 years ago)
Author:
gkronber
Message:

#1966: implemented visualization for 2d packings

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs

    r13576 r13578  
    3737    }
    3838
    39     protected override void DeregisterContentEvents() {
    40       Content.QualityChanged -= new EventHandler(Content_QualityChanged);
    41       base.DeregisterContentEvents();
    42     }
    43     protected override void RegisterContentEvents() {
    44       base.RegisterContentEvents();
    45       Content.QualityChanged += new EventHandler(Content_QualityChanged);
    46     }
    47 
    48 
    4939    public new PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> Content {
    5040      get { return (PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>)base.Content; }
    5141      set { base.Content = value; }
    5242    }
    53 
    5443
    5544    protected override void OnContentChanged() {
     
    6554    }
    6655
    67 
    6856    private void ClearState() {
    69       packingPlan2D.InitializeContainer(0, 0);
     57      container2DView.Packing = null;
    7058    }
    7159
    72     private void UpdateState(PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> plan) {     
     60    private void UpdateState(PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> plan) {
    7361      int currentBin = (binSelection != null && binSelection.SelectedItem != null) ? (int)(binSelection.SelectedItem) : 0;
    74       var bin = plan.BinPackings[currentBin].BinMeasures;
    75       packingPlan2D.InitializeContainer(bin.Width, bin.Height);
    76       foreach (var entry in plan.BinPackings[currentBin].ItemMeasures) {
    77         var position = plan.BinPackings[currentBin].ItemPositions[entry.Key];
    78           packingPlan2D.AddItemToContainer(
    79             position.Rotated ? entry.Value.Height : entry.Value.Width,
    80             position.Rotated ? entry.Value.Width : entry.Value.Height,
    81             position.X, position.Y, entry.Key.ToString());
    82       }
     62      container2DView.Packing = plan.BinPackings[currentBin];
    8363    }
    8464
    8565    private void binSelection_SelectedIndexChanged(object sender, EventArgs e) {
    8666      UpdateState(Content);
    87       packingPlan2D.Refresh();
    8867    }
    89 
    90 
    91 
    92     private void Content_QualityChanged(object sender, EventArgs e) {
    93       if (InvokeRequired)
    94         Invoke(new EventHandler(Content_QualityChanged), sender, e);
    95       else {
    96         binSelection.Items.Clear();
    97         if (Content == null) {
    98           ClearState();
    99         } else {
    100           for (int i = 0; i < Content.NrOfBins; i++)
    101             binSelection.Items.Add(i);
    102           UpdateState(Content);
    103         }
    104         packingPlan2D.Refresh();
    105       }
    106     } 
    10768  }
    10869}
Note: See TracChangeset for help on using the changeset viewer.