cbc75e4bc2
test: add contains(Point) hit-testing tests for all shapes
...
Add 36 tests covering bounds-based hit-testing (getBounds().contains(Point))
for SRectangle, SCircle, STriangle, SText, and SCollection:
- Point inside, outside, on boundary (inclusive top-left, exclusive bottom-right)
- Point after translate to verify position update
- SCollection union bounds, gap between children, single-child bounds
Closes #11
2026-03-27 16:37:27 +01:00
da70c9f568
test: add HTML and SVG exporter unit tests
...
- Add HTMLExporterTest covering HTML structure, rectangle/circle div generation,
empty and nested collections, and constructor
- Add SVGExporterTest covering SVG structure, rectangle/circle elements,
color attributes, nested collections, and constructor
2026-03-27 14:29:38 +01:00
211f15658b
test: add core unit tests
...
- Add JUnit 5 Jupiter dependencies to pom.xml
- Add maven-surefire-plugin for test execution
- Add AbstractShapeTest for base class methods
- Add SCircleTest, SRectangleTest, STriangleTest, STextTest
Tests cover: creation, bounds, clone, resize (AbstractShape)
2026-03-27 14:24:25 +01:00
b0e3428696
feat(ui): add box selection feature
...
- Selection: add addAll() method for bulk shape addition
- Controller: box selection with mouse drag on empty space
- ShapeDraftman: drawSelectionBox() for rubber-band rendering
- ShapesView: currentSelectionBox field and setter
2026-03-26 23:56:01 +01:00
3a6f98455a
fix: fix resize and dragging
...
- AbstractShape: make bounds protected for subclass access
- STriangle: refactor resize logic
- SCircle: refactor resize logic (preserves equal dimensions)
- SText: add reasonable default bounds for hit testing
2026-03-26 23:55:38 +01:00
fbe3714182
update TODO.md
2026-03-19 23:05:40 +01:00
0d357853ae
Merge pull request 'Resize shapes' ( #4 ) from resize-feature into master
...
Reviewed-on: #4
2026-03-19 21:33:43 +00:00
fcd68be51b
Fix bugs: stroke condition, logging typo, NPE in clone(), mutable bounds
2026-03-19 22:32:53 +01:00
b34ad6a2e4
implement resize feature
2026-03-19 22:32:49 +01:00
332ac76a23
Merge pull request 'feat/text-shapes' ( #3 ) from feat/text-shapes into master
...
Reviewed-on: #3
2026-03-19 21:24:08 +00:00
f8a6d786ee
feat: implement SText shape
2026-03-19 21:45:54 +01:00
bd9c6c4b7d
add TODO.md
2026-03-19 20:21:20 +01:00
f424735a7b
Add STriangle
2026-03-19 20:03:28 +01:00
b8ecf9859b
Implement SVG export
2026-03-19 19:06:12 +01:00
ad45eddbf5
fix confusion between circle radius and diameter
...
classic shite
2026-03-19 19:05:12 +01:00
dd59c7d51a
sync edit menu checkbox state with the selected shape
2026-03-19 16:29:56 +01:00
ce6d0b0815
fix drag of multiple selected shapes with shift
2026-03-19 14:51:12 +01:00
02dd84c1f4
handle multiple selection with shift
2025-02-19 13:44:23 +01:00
5f0bcda8ba
Import menu items from original project
2025-02-19 12:57:48 +01:00
75bd5997df
add menubar
2025-02-19 12:15:39 +01:00
55e74b5e4b
Add HTML export action
2025-02-19 11:45:32 +01:00
1b0284cb4d
Add change color action
2025-02-19 11:39:50 +01:00
aea90f5a93
Implement copy action
2025-02-19 11:27:45 +01:00
b4eac668c8
Add delete shape operation
2025-02-19 10:50:27 +01:00
98b05e435e
Add SCircle
2019-03-19 21:56:00 +01:00
5be59b37f0
Avoid use of try-catch as control flow
2019-03-19 21:37:11 +01:00
51885d8c53
Base java event POC
2019-03-19 21:29:26 +01:00
95cb82d419
Init repository
2019-03-19 20:40:20 +01:00