Changeset 13578 for branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs
- Timestamp:
- 01/28/16 19:35:42 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs
r13576 r13578 37 37 } 38 38 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 49 39 public new PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> Content { 50 40 get { return (PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>)base.Content; } 51 41 set { base.Content = value; } 52 42 } 53 54 43 55 44 protected override void OnContentChanged() { … … 65 54 } 66 55 67 68 56 private void ClearState() { 69 packingPlan2D.InitializeContainer(0, 0);57 container2DView.Packing = null; 70 58 } 71 59 72 private void UpdateState(PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> plan) { 60 private void UpdateState(PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> plan) { 73 61 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]; 83 63 } 84 64 85 65 private void binSelection_SelectedIndexChanged(object sender, EventArgs e) { 86 66 UpdateState(Content); 87 packingPlan2D.Refresh();88 67 } 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 }107 68 } 108 69 }
Note: See TracChangeset
for help on using the changeset viewer.