aj and Claude
703efd528a
Encapsulate mutable collections in Bin and Result
...
Replace public mutable collection fields/properties with private
backing fields and expose them as IReadOnlyList. Add proper methods
for mutation (AddItem, AddItems, RemoveItem, SortItems).
Changes:
- Bin.Items: Now private with AddItem/AddItems/RemoveItem/SortItems
- Result.ItemsNotUsed: Now readonly with Add methods
- Result.Bins: Now readonly with Add methods
- Updated all engine classes to use new encapsulated APIs
This improves encapsulation and prevents external code from
bypassing business logic by directly manipulating collections.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-18 16:02:48 -05:00
aj and Claude
2c6fe924e5
Remove useless catch-and-rethrow blocks in Toolbox
...
Remove empty catch-and-rethrow blocks in Load() and Save() methods
that were catching exceptions only to rethrow them without adding
any value. This improves code clarity and exception propagation.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-18 16:02:36 -05:00
aj and Claude
ee7275ac4f
Fix state-mutating getter in LengthItem.Length
...
Remove dangerous side effect where the Length property getter
was modifying the LengthInputValue field. Property getters should
be pure and not cause state mutations, as this violates the principle
of least surprise and can cause issues with data binding, serialization,
and debugging.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-18 16:02:27 -05:00
aj
2869daf4f7
Remove commented-out sanity check code in MultiBinEngine
2025-10-01 23:26:30 -04:00
aj
b8612f72d7
Fix null reference risk in BestFitEngine
2025-10-01 23:25:43 -04:00
aj
d64d5a8d53
Fix CreateDuplicateBins bug in AdvancedFitEngine
2025-10-01 23:23:12 -04:00
aj
a4dfd8c0c4
Simplified BestCombination.FindFrom2
2025-10-01 23:17:34 -04:00
aj
95b663c893
SyncDocumentFromUI
2025-10-01 23:09:00 -04:00
aj
0fb54daf6f
Duplicate bins when possible in AdvancedFitEngine
2025-01-11 00:02:01 -05:00
aj
ccbf8beeae
Allow quantity -1 for infinite.
2025-01-05 23:16:39 -05:00
aj
a1ad16bc52
Document
2025-01-02 23:21:34 -05:00
aj
1636a62a77
Refactored BinLayoutView
2025-01-02 23:20:48 -05:00
aj
491b98f983
Added cancel option to load example data
2025-01-01 01:30:47 -05:00
aj
08b3aa9182
Didnt like the name EnhancedBestFitEngine, new one isn't great either but it's better
2025-01-01 00:48:33 -05:00
aj
913064f4f8
Load Example Data
2025-01-01 00:47:01 -05:00
aj
8651465864
Refactored BestCombination.FindFrom2
2024-12-29 22:17:05 -05:00
aj
58b3c49cc6
Added option to OpenFileAfterSave
2024-12-24 13:34:31 -05:00
aj
90ae89802a
BinFileSaver
2024-12-09 11:15:08 -05:00
aj
d3ab49a7d2
Renamed Engine2 to EnhancedBestFitEngine
2023-03-01 21:59:24 -05:00
aj
2ce685bb83
Added Toolbox to manage tools
2023-01-14 08:39:01 -05:00
aj
2af0c5967f
Show results windows maximized
2023-01-14 07:37:48 -05:00
aj
eac422cba6
Fixed bin height when drawing BinLayoutView
2023-01-14 02:13:02 -05:00
aj
9ae37ca10c
Fixed method name DrawingRowNumbers to DrawRowNumbers
2023-01-13 06:43:37 -05:00
aj
93f5571bbb
BestCombination
2022-12-11 21:42:16 -05:00
aj
b65dd1ec7d
Used lower value priority bins first.
2022-02-09 11:22:56 -05:00
aj
4427cde20d
End edit for controls before running
2022-02-09 11:14:33 -05:00
aj
804eedc649
Fixed DataSource reference.
2021-11-15 11:39:12 -05:00
aj
a750fe0953
Fixed bin id increment twice.
2021-11-15 11:38:38 -05:00
aj
497d1fc7fc
Revised publish url
2021-11-15 09:27:05 -05:00
aj
90d770e10c
Fixed utilization greater than 100 percent
2021-11-15 09:10:20 -05:00
aj
029414099e
Remember save file name.
2021-11-15 08:46:46 -05:00
aj
24cec30bf7
Set CutList as startup project.
2021-10-14 08:08:31 -04:00
aj
f892a4096b
Base class LengthItem
...
Item and BinInputItem are basically the same for accepting string input.
2021-10-14 08:06:29 -04:00
aj
263ce9c0f4
Round inches when converting to feet / inches
2021-10-14 08:03:21 -04:00
aj
495abe8cc3
Reordered methods within MainForm
2021-10-14 07:53:07 -04:00
aj
5e12d8db9c
LoadTools
2021-10-14 07:39:32 -04:00
aj
fc557d2500
Cleanup
2021-10-07 09:12:38 -04:00
aj
5af1daac11
DataGridView.DrawingRowNumbers
2021-10-07 09:10:34 -04:00
aj
63fa51c5cd
Display lengths in feet and inches
2021-10-05 09:25:39 -04:00
aj
28d53e6d38
Multi-bin nesting
2021-10-05 09:24:05 -04:00
aj
25b3cdcfdc
Rename UIItem to Item
2021-10-04 19:16:51 -04:00
aj
5f3d95a4c9
Renamed CutToLength to CutList
2021-10-04 19:12:37 -04:00
aj
44f3cbfa81
Moved nesting to SawCut library
2021-10-04 19:06:33 -04:00
aj
793c6173b1
Updated publish settings
2021-04-14 07:15:45 -04:00
aj
b305aaa0d4
Number the rows in bins datagridview
2020-05-30 23:36:48 -04:00
aj
7a76426c76
Changed font and header names on ResultsForm
2020-05-30 00:10:11 -04:00
aj
86c10451fb
Removed unused OptimizeResult class
2020-03-28 00:06:06 -04:00
aj
9abb4d93b7
Added Engine2
2019-11-20 02:49:31 -05:00
aj
8d7185bda8
Separated nesting logic from UI
2019-11-17 22:42:14 -05:00
aj
e9802ce44a
Split stock length input into feet and inches boxes
2019-06-30 21:02:54 -04:00
aj
77be658d1b
Using SimpleExpressionEvaluator
2019-06-25 19:41:46 -04:00
aj
1f761e6812
Renamed custom tool to other
2019-06-25 19:40:54 -04:00
aj
b433a50fde
Fixed drawing scrap
2019-06-25 19:40:27 -04:00
aj
b085bef9a7
Dont save new row items
2018-06-02 21:43:08 -04:00
aj
7c287e4bd4
Changed dataGridView1 row height
2018-06-02 21:42:33 -04:00
aj
4c5e8f8afb
Indent json when saving tools
2018-06-02 21:41:20 -04:00
aj
0cded86d75
Added tool selection for kerf width
2018-06-02 21:28:50 -04:00
aj
e5f919a3e8
Fixed Bin.Utilization
2018-06-02 20:24:38 -04:00
aj
2d0494731d
Disable save and run buttons when items are empty
2018-06-02 20:22:14 -04:00
aj
4277b866af
Renamed Forms
2018-06-02 20:21:39 -04:00
aj
a7b0f90a32
Format total length
2018-05-31 23:13:14 -04:00
aj
09fa851367
Removed automatic naming for items
2018-05-31 22:50:09 -04:00
aj
8967aa8b55
Cleanup classes.
2018-05-31 22:31:04 -04:00
aj
c3f24df75e
Renamed Class1 to BinLayoutView
2018-05-31 18:22:19 -04:00
aj
3fd5f336f0
Skip over items that have 0 length
2018-05-31 17:14:24 -04:00
aj
21e498619c
Add project files.
2017-02-20 21:37:49 -05:00
aj
79ed1db912
Add .gitignore and .gitattributes.
2017-02-06 08:36:35 -05:00