The AI component catalog no longer offers the deprecated inner layers, and lists the new 'Board Side' property

This commit is contained in:
Bane Stojkovic
2026-11-11 17:05:44 +01:00
parent 19c78e5fa9
commit 5ef6952ef4
7 changed files with 264 additions and 20 deletions
+231 -6
View File
@@ -1,5 +1,5 @@
{ {
"version" : "6.10.0", "version" : "6.11.0",
"components" : [ { "components" : [ {
"name" : "Blank Board", "name" : "Blank Board",
"className" : "boards.BlankBoard", "className" : "boards.BlankBoard",
@@ -1035,7 +1035,7 @@
}, { }, {
"name" : "Layer", "name" : "Layer",
"type" : "PCBLayer", "type" : "PCBLayer",
"possibleValues" : [ "_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8" ], "possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_1" "defaultValue" : "_1"
}, { }, {
"name" : "Name", "name" : "Name",
@@ -1077,7 +1077,7 @@
}, { }, {
"name" : "Layer", "name" : "Layer",
"type" : "PCBLayer", "type" : "PCBLayer",
"possibleValues" : [ "_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8" ], "possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_1" "defaultValue" : "_1"
}, { }, {
"name" : "Name", "name" : "Name",
@@ -1196,6 +1196,11 @@
"creationMethod" : "SINGLE_CLICK", "creationMethod" : "SINGLE_CLICK",
"notes" : [ "A junction marker for schematics and wiring diagrams; it is drawing only and connects nothing, since ends that meet at the same point are already connected. For a pad on a board use Solder Pad" ], "notes" : [ "A junction marker for schematics and wiring diagrams; it is drawing only and connects nothing, since ends that meet at the same point are already connected. For a pad on a board use Solder Pad" ],
"properties" : [ { "properties" : [ {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, {
"name" : "Color", "name" : "Color",
"type" : "Color", "type" : "Color",
"format" : "hex", "format" : "hex",
@@ -1277,7 +1282,7 @@
}, { }, {
"name" : "Layer", "name" : "Layer",
"type" : "PCBLayer", "type" : "PCBLayer",
"possibleValues" : [ "_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8" ], "possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_1" "defaultValue" : "_1"
}, { }, {
"name" : "Name", "name" : "Name",
@@ -1459,6 +1464,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -1706,7 +1716,7 @@
}, { }, {
"name" : "Layer", "name" : "Layer",
"type" : "PCBLayer", "type" : "PCBLayer",
"possibleValues" : [ "_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8" ], "possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_1" "defaultValue" : "_1"
}, { }, {
"name" : "Node Name", "name" : "Node Name",
@@ -7155,6 +7165,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Font Size Override", "name" : "Font Size Override",
"type" : "Integer" "type" : "Integer"
@@ -7228,6 +7243,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Font Size Override", "name" : "Font Size Override",
"type" : "Integer" "type" : "Integer"
@@ -7306,6 +7326,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Font Size Override", "name" : "Font Size Override",
"type" : "Integer" "type" : "Integer"
@@ -7746,6 +7771,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Display", "name" : "Display",
"type" : "Display", "type" : "Display",
@@ -7851,6 +7881,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -8509,6 +8544,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Name", "name" : "Name",
"type" : "String" "type" : "String"
@@ -8577,6 +8617,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Font Size Override", "name" : "Font Size Override",
"type" : "Integer" "type" : "Integer"
@@ -8645,6 +8690,11 @@
}, { }, {
"name" : "Angle Offset", "name" : "Angle Offset",
"type" : "Angle" "type" : "Angle"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Color", "name" : "Color",
"type" : "Color", "type" : "Color",
@@ -9035,6 +9085,11 @@
}, { }, {
"name" : "Angle", "name" : "Angle",
"type" : "Angle" "type" : "Angle"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Color", "name" : "Color",
"type" : "Color", "type" : "Color",
@@ -9372,6 +9427,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -9496,6 +9556,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -11842,6 +11907,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -11970,7 +12040,7 @@
}, { }, {
"name" : "Layer", "name" : "Layer",
"type" : "PCBLayer", "type" : "PCBLayer",
"possibleValues" : [ "_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8" ], "possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_1" "defaultValue" : "_1"
}, { }, {
"name" : "Orientation", "name" : "Orientation",
@@ -12082,6 +12152,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12170,6 +12245,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12252,6 +12332,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12367,6 +12452,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12492,6 +12582,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12589,6 +12684,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12693,6 +12793,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12804,6 +12909,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12913,6 +13023,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -12994,6 +13109,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -13083,6 +13203,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Coil", "name" : "Coil",
"type" : "Color", "type" : "Color",
@@ -13222,6 +13347,11 @@
"type" : "Color", "type" : "Color",
"format" : "hex", "format" : "hex",
"defaultValue" : "#333333" "defaultValue" : "#333333"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -13301,6 +13431,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -13459,6 +13594,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -13527,6 +13667,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -13621,6 +13766,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -13728,6 +13878,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -13786,6 +13941,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -13844,6 +14004,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -16501,6 +16666,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -16574,6 +16744,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -16837,6 +17012,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -16930,6 +17110,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Border", "name" : "Border",
"type" : "Color", "type" : "Color",
@@ -17017,6 +17202,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Color", "name" : "Color",
"type" : "Color", "type" : "Color",
@@ -17102,6 +17292,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -17263,6 +17458,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -17344,6 +17544,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -17779,6 +17984,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -18210,6 +18420,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -19072,6 +19287,11 @@
"type" : "Percentage", "type" : "Percentage",
"format" : "number without the % sign, e.g. 100", "format" : "number without the % sign, e.g. 100",
"defaultValue" : "100" "defaultValue" : "100"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Body", "name" : "Body",
"type" : "Color", "type" : "Color",
@@ -20011,6 +20231,11 @@
"type" : "Base", "type" : "Base",
"possibleValues" : [ "B9A", "OCTAL", "B7G", "B12C", "UX4" ], "possibleValues" : [ "B9A", "OCTAL", "B7G", "B12C", "UX4" ],
"defaultValue" : "B9A" "defaultValue" : "B9A"
}, {
"name" : "Board Side",
"type" : "PCBLayer",
"possibleValues" : [ "_1", "_2" ],
"defaultValue" : "_2"
}, { }, {
"name" : "Color", "name" : "Color",
"type" : "Color", "type" : "Color",
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"version" : "6.10.0", "version" : "6.11.0",
"categories" : { "categories" : {
"Boards" : [ { "Boards" : [ {
"name" : "Blank Board", "name" : "Blank Board",
@@ -54,6 +54,7 @@ import org.diylc.presenter.ComparatorFactory;
import org.diylc.presenter.ComponentProcessor; import org.diylc.presenter.ComponentProcessor;
import org.diylc.presenter.DatasheetService; import org.diylc.presenter.DatasheetService;
import org.diylc.presenter.ReleaseHistory; import org.diylc.presenter.ReleaseHistory;
import org.diylc.utils.ReflectionUtils;
/** /**
* Standalone tool that generates component catalog JSON files from the current codebase. * Standalone tool that generates component catalog JSON files from the current codebase.
@@ -227,9 +228,11 @@ public class ComponentCatalogGenerator {
} }
} }
// Include enum possible values (using name() instead of toString()) // Include enum possible values (using name() instead of toString()), leaving out the
// deprecated ones the editor does not offer either
if (propType.isEnum()) { if (propType.isEnum()) {
List<String> possibleValues = Arrays.stream(propType.getEnumConstants()) List<String> possibleValues = Arrays.stream(propType.getEnumConstants())
.filter(e -> !ReflectionUtils.isDeprecated((Enum<?>) e))
.map(e -> ((Enum<?>) e).name()) .map(e -> ((Enum<?>) e).name())
.collect(Collectors.toList()); .collect(Collectors.toList());
prop.put("possibleValues", possibleValues); prop.put("possibleValues", possibleValues);
@@ -148,4 +148,16 @@ public class ReflectionUtils {
} }
return result.get(0); return result.get(0);
} }
/**
* @return true when the enum constant is marked {@link Deprecated}; such values are kept only so
* that old files load, and are not offered for new choices
*/
public static boolean isDeprecated(Enum<?> value) {
try {
return value.getDeclaringClass().getField(value.name()).isAnnotationPresent(Deprecated.class);
} catch (NoSuchFieldException e) {
return false;
}
}
} }
@@ -96,6 +96,10 @@ public class ComponentCatalogGeneratorTest {
(List<Map<String, Object>>) togglePinout.get("variants"); (List<Map<String, Object>>) togglePinout.get("variants");
assertTrue("every switch type should be described", variants.size() > 1); assertTrue("every switch type should be described", variants.size() > 1);
assertTrue("a switch carries its switching table", variants.get(0).containsKey("switching")); assertTrue("a switch carries its switching table", variants.get(0).containsKey("switching"));
// the deprecated inner layers are kept only so that old files load
Map<String, Object> layer = findProperty(find(components, "connectivity.CopperTrace"), "Layer");
assertEquals(List.of("_1", "_2"), layer.get("possibleValues"));
} }
@Test @Test
@@ -112,6 +116,13 @@ public class ComponentCatalogGeneratorTest {
ComponentCatalogGenerator.collectNotes(Leaf.class, EnumSet.of(Scope.SELECTION))); ComponentCatalogGenerator.collectNotes(Leaf.class, EnumSet.of(Scope.SELECTION)));
} }
@SuppressWarnings("unchecked")
private static Map<String, Object> findProperty(Map<String, Object> component, String name) {
return ((List<Map<String, Object>>) component.get("properties")).stream()
.filter(p -> name.equals(p.get("name"))).findFirst()
.orElseThrow(() -> new AssertionError("no property " + name));
}
private static Map<String, Object> find(List<Map<String, Object>> components, String className) { private static Map<String, Object> find(List<Map<String, Object>> components, String className) {
return components.stream().filter(c -> className.equals(c.get("className"))).findFirst() return components.stream().filter(c -> className.equals(c.get("className"))).findFirst()
.orElseThrow(() -> new AssertionError("no catalog entry for " + className)); .orElseThrow(() -> new AssertionError("no catalog entry for " + className));
@@ -35,6 +35,7 @@ import javax.swing.JList;
import org.diylc.common.PropertyWrapper; import org.diylc.common.PropertyWrapper;
import org.diylc.lang.LangUtil; import org.diylc.lang.LangUtil;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
import org.diylc.utils.ReflectionUtils;
public class EnumEditor extends JComboBox<Object> { public class EnumEditor extends JComboBox<Object> {
@@ -84,18 +85,10 @@ public class EnumEditor extends JComboBox<Object> {
private static Object[] getOfferedValues(PropertyWrapper property) { private static Object[] getOfferedValues(PropertyWrapper property) {
List<Object> values = new ArrayList<Object>(); List<Object> values = new ArrayList<Object>();
for (Object value : property.getType().getEnumConstants()) { for (Object value : property.getType().getEnumConstants()) {
if (value.equals(property.getValue()) || !isDeprecated((Enum<?>) value)) { if (value.equals(property.getValue()) || !ReflectionUtils.isDeprecated((Enum<?>) value)) {
values.add(value); values.add(value);
} }
} }
return values.toArray(); return values.toArray();
} }
private static boolean isDeprecated(Enum<?> value) {
try {
return value.getDeclaringClass().getField(value.name()).isAnnotationPresent(Deprecated.class);
} catch (NoSuchFieldException e) {
return false;
}
}
} }
+3 -3
View File
@@ -74,14 +74,14 @@ were regenerated for the faded copper. The open questions below remain.
- The **Fade Copper Under Board** checkbox is in the Config menu after Extra Working Area. - The **Fade Copper Under Board** checkbox is in the Config menu after Extra Working Area.
`CanvasPanel.getDrawOptions` and `ProjectDrawingProvider.draw` add `FADE_FAR_SIDE` from it. `CanvasPanel.getDrawOptions` and `ProjectDrawingProvider.draw` add `FADE_FAR_SIDE` from it.
- `EnumEditor` hides `@Deprecated` constants unless one is the current value. - `EnumEditor` hides `@Deprecated` constants unless one is the current value, and
`ComponentCatalogGenerator` leaves them out of the AI catalog's possible values; both use
`ReflectionUtils.isDeprecated`.
- The language key **Fade Copper Under Board** is in every file in `lang/`. - The language key **Fade Copper Under Board** is in every file in `lang/`.
## 4. Open questions ## 4. Open questions
- **`EurorackStripboard`.** Unchanged until the side of its traces is sourced. - **`EurorackStripboard`.** Unchanged until the side of its traces is sourced.
- **AI catalog.** `ComponentCatalogGenerator` still lists the deprecated inner layers as possible
values.
## 5. Verification ## 5. Verification