diff --git a/java_tools/pcb_sync/.idea/.name b/java_tools/pcb_sync/.idea/.name
deleted file mode 100644
index 929d46334f..0000000000
--- a/java_tools/pcb_sync/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-pcb_sync
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/ant.xml b/java_tools/pcb_sync/.idea/ant.xml
deleted file mode 100644
index 313b0c0cb8..0000000000
--- a/java_tools/pcb_sync/.idea/ant.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/java_tools/pcb_sync/.idea/compiler.xml b/java_tools/pcb_sync/.idea/compiler.xml
deleted file mode 100644
index 217af471a9..0000000000
--- a/java_tools/pcb_sync/.idea/compiler.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java_tools/pcb_sync/.idea/copyright/profiles_settings.xml b/java_tools/pcb_sync/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index e7bedf3377..0000000000
--- a/java_tools/pcb_sync/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/encodings.xml b/java_tools/pcb_sync/.idea/encodings.xml
deleted file mode 100644
index e206d70d85..0000000000
--- a/java_tools/pcb_sync/.idea/encodings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/java_tools/pcb_sync/.idea/libraries/junit.xml b/java_tools/pcb_sync/.idea/libraries/junit.xml
deleted file mode 100644
index bbfb92c92b..0000000000
--- a/java_tools/pcb_sync/.idea/libraries/junit.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/misc.xml b/java_tools/pcb_sync/.idea/misc.xml
deleted file mode 100644
index dc0cc3b8cf..0000000000
--- a/java_tools/pcb_sync/.idea/misc.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/modules.xml b/java_tools/pcb_sync/.idea/modules.xml
deleted file mode 100644
index b282c31437..0000000000
--- a/java_tools/pcb_sync/.idea/modules.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/java_tools/pcb_sync/.idea/runConfigurations/BomBuilder.xml b/java_tools/pcb_sync/.idea/runConfigurations/BomBuilder.xml
deleted file mode 100644
index 8272726709..0000000000
--- a/java_tools/pcb_sync/.idea/runConfigurations/BomBuilder.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/runConfigurations/Main_move.xml b/java_tools/pcb_sync/.idea/runConfigurations/Main_move.xml
deleted file mode 100644
index c8c3899763..0000000000
--- a/java_tools/pcb_sync/.idea/runConfigurations/Main_move.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/runConfigurations/Main_pcb_merge.xml b/java_tools/pcb_sync/.idea/runConfigurations/Main_pcb_merge.xml
deleted file mode 100644
index 8e77fe249c..0000000000
--- a/java_tools/pcb_sync/.idea/runConfigurations/Main_pcb_merge.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/runConfigurations/Main_rename.xml b/java_tools/pcb_sync/.idea/runConfigurations/Main_rename.xml
deleted file mode 100644
index d98ed688b0..0000000000
--- a/java_tools/pcb_sync/.idea/runConfigurations/Main_rename.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/runConfigurations/RemoveUnneededTraces.xml b/java_tools/pcb_sync/.idea/runConfigurations/RemoveUnneededTraces.xml
deleted file mode 100644
index 20763a89da..0000000000
--- a/java_tools/pcb_sync/.idea/runConfigurations/RemoveUnneededTraces.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/runConfigurations/main_cmp_merge.xml b/java_tools/pcb_sync/.idea/runConfigurations/main_cmp_merge.xml
deleted file mode 100644
index 0d7f4a0937..0000000000
--- a/java_tools/pcb_sync/.idea/runConfigurations/main_cmp_merge.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/scopes/scope_settings.xml b/java_tools/pcb_sync/.idea/scopes/scope_settings.xml
deleted file mode 100644
index 922003b843..0000000000
--- a/java_tools/pcb_sync/.idea/scopes/scope_settings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/java_tools/pcb_sync/.idea/uiDesigner.xml b/java_tools/pcb_sync/.idea/uiDesigner.xml
deleted file mode 100644
index 3b00020308..0000000000
--- a/java_tools/pcb_sync/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
diff --git a/java_tools/pcb_sync/.idea/vcs.xml b/java_tools/pcb_sync/.idea/vcs.xml
deleted file mode 100644
index ebabb34f16..0000000000
--- a/java_tools/pcb_sync/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/java_tools/pcb_sync/6ch_replace.txt b/java_tools/pcb_sync/6ch_replace.txt
deleted file mode 100644
index 5be5ee5150..0000000000
--- a/java_tools/pcb_sync/6ch_replace.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-P1;P401
-P2;P402
-P3;P403
-P4;P404
-P5;P405
-P7;P406
-
-R4;R401
-R18;R402
-
-R5;R403
-R16;R404
-
-R6;R405
-R14;R406
-
-R7;R407
-R17;R408
-
-R8;R409
-R15;R410
-
-R9;R411
-R13;R412
-
-
-R1;R451
-R2;R452
-R3;R453
-
-
-Q1;Q401
-Q2;Q402
-Q3;Q403
-Q4;Q404
-Q5;Q405
-Q6;Q406
-
-
-D1;D401
-D2;D402
-D3;D403
-D4;D404
-D5;D405
-D6;D406
-D7;D407
-D8;D408
-
diff --git a/java_tools/pcb_sync/build.xml b/java_tools/pcb_sync/build.xml
deleted file mode 100644
index 525e4eb1c1..0000000000
--- a/java_tools/pcb_sync/build.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java_tools/pcb_sync/comp.csv b/java_tools/pcb_sync/comp.csv
deleted file mode 100644
index 388955b931..0000000000
--- a/java_tools/pcb_sync/comp.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-#comment
-
-SM0805_500K,resistor,resistto_part,hi resistor
-
-LOGO_LOGO,ignore,ignore,ignore
\ No newline at end of file
diff --git a/java_tools/pcb_sync/in.cmp b/java_tools/pcb_sync/in.cmp
deleted file mode 100644
index e76847fecb..0000000000
--- a/java_tools/pcb_sync/in.cmp
+++ /dev/null
@@ -1,843 +0,0 @@
-Cmp-Mod V01 Created by CvPcb (2013-mar-13)-testing date = Пнд 20 Янв 2014 20:56:23
-
-BeginCmp
-TimeStamp = /524A0957;
-Reference = C210;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524A0814;
-Reference = C211;
-ValeurCmp = 0.1uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B71C8;
-Reference = C220;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B795A;
-Reference = C230;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B797C;
-Reference = C240;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B84CE;
-Reference = C250;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B84BC;
-Reference = C251;
-ValeurCmp = 0.1uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B84F0;
-Reference = C260;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8405;
-Reference = C270;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8427;
-Reference = C280;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FCF;
-Reference = C290;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FBD;
-Reference = C291;
-ValeurCmp = 0.1uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FED;
-Reference = C300;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CCE4;
-Reference = C310;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CD02;
-Reference = C320;
-ValeurCmp = 0.01uF;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7F12;
-Reference = D210;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7EE6;
-Reference = D220;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7290;
-Reference = D230;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7ED1;
-Reference = D240;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /52894617;
-Reference = D250;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /528945F7;
-Reference = D260;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /52895644;
-Reference = D270;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /5289563E;
-Reference = D280;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F800B;
-Reference = D290;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F8039;
-Reference = D300;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CD1A;
-Reference = D310;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CD43;
-Reference = D320;
-ValeurCmp = DOUBLE_SCHOTTKY;
-IdModule = sot23;
-EndCmp
-
-BeginCmp
-TimeStamp = /529C04C3;
-Reference = G200;
-ValeurCmp = LOGO;
-IdModule = LOGO;
-EndCmp
-
-BeginCmp
-TimeStamp = /529C091E;
-Reference = G201;
-ValeurCmp = LOGO;
-IdModule = LOGO_F;
-EndCmp
-
-BeginCmp
-TimeStamp = /529C09B9;
-Reference = G202;
-ValeurCmp = LOGO;
-IdModule = LOGO_F;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F705F;
-Reference = LD200;
-ValeurCmp = LED;
-IdModule = LED-1206;
-EndCmp
-
-BeginCmp
-TimeStamp = /52530AFC;
-Reference = M200;
-ValeurCmp = CONN_1;
-IdModule = PIN_ARRAY_1;
-EndCmp
-
-BeginCmp
-TimeStamp = /52530B0B;
-Reference = M201;
-ValeurCmp = CONN_1;
-IdModule = PIN_ARRAY_1;
-EndCmp
-
-BeginCmp
-TimeStamp = /52896702;
-Reference = M202;
-ValeurCmp = CONN_1;
-IdModule = PIN_ARRAY_1;
-EndCmp
-
-BeginCmp
-TimeStamp = /5234F161;
-Reference = P201;
-ValeurCmp = CONN_10X2;
-IdModule = PIN_ARRAY_10X2_M;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F6D3B;
-Reference = P202;
-ValeurCmp = CONN_3;
-IdModule = PIN_ARRAY_3X1;
-EndCmp
-
-BeginCmp
-TimeStamp = /5296836D;
-Reference = P203;
-ValeurCmp = CONN_2;
-IdModule = SIL-2;
-EndCmp
-
-BeginCmp
-TimeStamp = /52941801;
-Reference = P204;
-ValeurCmp = CONN_1;
-IdModule = PIN_ARRAY_1;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295D3A8;
-Reference = P205;
-ValeurCmp = CONN_1;
-IdModule = PIN_ARRAY_1;
-EndCmp
-
-BeginCmp
-TimeStamp = /5297EAA7;
-Reference = P207;
-ValeurCmp = CONN_2;
-IdModule = SIL-2;
-EndCmp
-
-BeginCmp
-TimeStamp = /52967E40;
-Reference = P208;
-ValeurCmp = CONN_6;
-IdModule = PIN_ARRAY-6X1;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7A58;
-Reference = P209;
-ValeurCmp = CONN_6;
-IdModule = PIN_ARRAY-6X1;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F714A;
-Reference = R200;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524A0A89;
-Reference = R210;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52350E9D;
-Reference = R211;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /525221CC;
-Reference = R212;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524A093F;
-Reference = R213;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5234EE8F;
-Reference = R214;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5234EE80;
-Reference = R215;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B7296;
-Reference = R220;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52351952;
-Reference = R221;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /525223BA;
-Reference = R222;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B71C2;
-Reference = R223;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52353061;
-Reference = R224;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5235311B;
-Reference = R225;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B7962;
-Reference = R230;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B7902;
-Reference = R231;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52894D15;
-Reference = R232;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B7954;
-Reference = R233;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B78DA;
-Reference = R234;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B78D4;
-Reference = R235;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B798A;
-Reference = R240;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B7914;
-Reference = R241;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52894D25;
-Reference = R242;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B7976;
-Reference = R243;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B7920;
-Reference = R244;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B7926;
-Reference = R245;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B84D6;
-Reference = R250;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8476;
-Reference = R251;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52894FE9;
-Reference = R252;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B84C8;
-Reference = R253;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B844E;
-Reference = R254;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8448;
-Reference = R255;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B84FE;
-Reference = R260;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8488;
-Reference = R261;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52894FEF;
-Reference = R262;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B84EA;
-Reference = R263;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8494;
-Reference = R264;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B849A;
-Reference = R265;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B840D;
-Reference = R270;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B83AD;
-Reference = R271;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52895668;
-Reference = R272;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B83FF;
-Reference = R273;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8385;
-Reference = R274;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B837F;
-Reference = R275;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8435;
-Reference = R280;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B83BF;
-Reference = R281;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52895662;
-Reference = R282;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B8421;
-Reference = R283;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B83CB;
-Reference = R284;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524B83D1;
-Reference = R285;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FD5;
-Reference = R290;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7F8D;
-Reference = R291;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /528954AB;
-Reference = R292;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FC9;
-Reference = R293;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7F71;
-Reference = R294;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7F6B;
-Reference = R295;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FF9;
-Reference = R300;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7F9F;
-Reference = R301;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /528954A5;
-Reference = R302;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FE7;
-Reference = R303;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FAB;
-Reference = R304;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /524F7FB1;
-Reference = R305;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CCEA;
-Reference = R310;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CCA2;
-Reference = R311;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CD5B;
-Reference = R312;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CCDE;
-Reference = R313;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CC8C;
-Reference = R314;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CC86;
-Reference = R315;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CD0E;
-Reference = R320;
-ValeurCmp = 2700;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CCB4;
-Reference = R321;
-ValeurCmp = 500K;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CD55;
-Reference = R322;
-ValeurCmp = 10k;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CCFC;
-Reference = R323;
-ValeurCmp = 100;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CCC0;
-Reference = R324;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /5295CCC6;
-Reference = R325;
-ValeurCmp = 1500;
-IdModule = SM0805;
-EndCmp
-
-BeginCmp
-TimeStamp = /52895DF7;
-Reference = U201;
-ValeurCmp = LMV324IDR;
-IdModule = so-14;
-EndCmp
-
-BeginCmp
-TimeStamp = /52896407;
-Reference = U202;
-ValeurCmp = LMV324IDR;
-IdModule = so-14;
-EndCmp
-
-BeginCmp
-TimeStamp = /528965D2;
-Reference = U203;
-ValeurCmp = LMV324IDR;
-IdModule = so-14;
-EndCmp
-
-BeginCmp
-TimeStamp = /52987094;
-Reference = W211;
-ValeurCmp = TEST;
-IdModule = SIL-2;
-EndCmp
-
-BeginCmp
-TimeStamp = /5298705E;
-Reference = W212;
-ValeurCmp = TEST;
-IdModule = SIL-2;
-EndCmp
-
-EndListe
diff --git a/java_tools/pcb_sync/mmc_replace.txt b/java_tools/pcb_sync/mmc_replace.txt
deleted file mode 100644
index 8979cb2503..0000000000
--- a/java_tools/pcb_sync/mmc_replace.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-C5;C101
-C6;C102
-C10;C103
-C13;C104
-C31;C105
-C32;C106
-C33;C107
-C34;C108
-
-D1;D101
-D2;D102
-
-G1;G101
-
-P1;P101
-P2;P102
-P3;P103
-P4;P104
-
-R1;R101
-R38;R102
-R39;R103
-R40;R104
-R41;R105
-R42;R106
-R43;R107
-R44;R108
-R45;R109
-R46;R110
-R48;R111
-R49;R112
-R52;R113
-R53;R114
-R62;R115
-R64;R116
-R65;R117
-R66;R118
-
-
-U20;U101
-U24;U102
\ No newline at end of file
diff --git a/java_tools/pcb_sync/pcb_merge_changes.txt b/java_tools/pcb_sync/pcb_merge_changes.txt
deleted file mode 100644
index 2ec61df4db..0000000000
--- a/java_tools/pcb_sync/pcb_merge_changes.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-
-optimize ../can_board/can_brd_1.kicad_pcb can_brd_1.kicad_pcb
-
-
-add ../adc_amp_divider.vertical12/adc_amp_divider.kicad_pcb
-add ../usb_mmc_spi/mmc_usb_1.kicad_pcb
-add ../knock_VR_Art_ELectro/cps_vrs_io_1.kicad_pcb
-add can_brd_1.kicad_pcb
-
-
-# DD from the VR board
-# knock in
-remove P101
-# amp chip
-remove U102
-# data out
-remove P103
-
-remove R115
-remove R116
-remove R117
-remove R118
-
-
-remove C105
-remove C106
-remove C107
-remove C108
-
-
-# VR board power LED
-remove R101
-remove D102
-remove D101
-remove R105
-
-
-
-
-# CAN module connector
-remove P471
-# CAN module power LED
-remove R471
-remove D471
-
-# SD/TTL module 3.3v LED
-remove R354
-remove D353
-
-# SD/TTL module 5v LED
-remove R353
-remove D352
-
-# SD/TTL right 10x2
-remove P354
\ No newline at end of file
diff --git a/java_tools/pcb_sync/src/main/java/com/rusefi/Main.java b/java_tools/pcb_sync/src/main/java/com/rusefi/Main.java
deleted file mode 100644
index 82ab8d30eb..0000000000
--- a/java_tools/pcb_sync/src/main/java/com/rusefi/Main.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.rusefi;
-
-import com.rusefi.bom.BomBuilder;
-import com.rusefi.misc.CmpMergeTool;
-import com.rusefi.misc.RemoveUnneededTraces;
-import com.rusefi.pcb.PcbMergeTool;
-import com.rusefi.pcb.PcbMoveTool;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * (c) Andrey Belomutskiy
- * 12/16/13.
- */
-public class Main {
- private static final Map TOOLS = new TreeMap(String.CASE_INSENSITIVE_ORDER);
-
- static {
- registerTool("pcb_move", PcbMoveTool.class);
- registerTool("pcb_merge", PcbMergeTool.class);
-
- registerTool("copy", PcbCopyTool.class);
-
- registerTool("cmp_merge", CmpMergeTool.class);
- registerTool("rename", RenameComponents.class);
-
- registerTool("optimize", RemoveUnneededTraces.class);
-
- registerTool("bom_builder", BomBuilder.class);
- }
-
- private static void registerTool(String name, Class> clazz) {
- TOOLS.put(name, clazz);
- }
-
- public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
- if (args.length < 1) {
- System.out.println("At least tool name parameter expected");
- System.out.println(TOOLS.size() + " tools available:");
- for (String name : TOOLS.keySet())
- System.out.println("\t\t" + name);
- return;
- }
- String name = args[0];
- Class c = TOOLS.get(name);
- if (c == null)
- throw new NullPointerException("No tool: " + name);
-
- Method main = c.getMethod("main", String[].class);
-
- List asList = Arrays.asList(args);
- String[] a = asList.subList(1, asList.size()).toArray(new String[args.length - 1]);
-
- main.invoke(null, new Object[]{a});
- }
-}
diff --git a/java_tools/pcb_sync/src/main/java/com/rusefi/RenameComponents.java b/java_tools/pcb_sync/src/main/java/com/rusefi/RenameComponents.java
deleted file mode 100644
index 06861cd024..0000000000
--- a/java_tools/pcb_sync/src/main/java/com/rusefi/RenameComponents.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.rusefi;
-
-import java.io.*;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class RenameComponents {
- private static final Map replaceMap = new HashMap();
-
- public static void main(String[] args) throws IOException {
- if (args.length != 3) {
- System.out.println("Three paramters expected:");
- System.out.println(" replace_replace_file source_folder destination_folder");
- return;
- }
- String requestFileName = args[0];
- File file = new File(requestFileName);
- if (!file.exists() || !file.isFile())
- throw new IllegalArgumentException("No replace_request_file");
- String sourceDir = args[1];
- assertFolder(sourceDir);
- String destinationDir = args[2];
- assertFolder(destinationDir);
-
- readReplaceRequest(file);
- for (String fileName : new File(sourceDir).list())
- processFile(sourceDir, destinationDir, fileName);
- }
-
- private static void processFile(String sourceDir, String destinationDir, String fileName) throws IOException {
- String newFileName = destinationDir + File.separator + fileName;
- BufferedWriter bw = new BufferedWriter(new FileWriter(newFileName));
-
- String sourceFile = sourceDir + File.separator + fileName;
- BufferedReader br = new BufferedReader(new FileReader(sourceFile));
-
- System.out.println("Making " + newFileName + " from " + sourceFile);
-
- String line;
- while ((line = br.readLine()) != null) {
- line = processLine(line);
- bw.append(line + "\r\n");
- }
-
- bw.close();
- }
-
- private static String processLine(String line) {
- for (Map.Entry e : replaceMap.entrySet()) {
- String from = e.getKey();
- String to = e.getValue();
-
- line = Pattern.compile(" " + from + "$").matcher(
- line).replaceAll(Matcher.quoteReplacement(" " + to));
-
- line = processLine(line, " " + from + ";", " " + to + ";");
- line = processLine(line, " " + from + ")", " " + to + ")");
- line = processLine(line, " " + from + " ", " " + to + " ");
- line = processLine(line, " " + from + "-", " " + to + "-");
- line = processLine(line, "\"" + from + "\"", "\"" + to + "\"");
- }
- return line;
- }
-
- private static String processLine(String line, String s, String s1) {
- return line.replace(s, s1);
- }
-
- private static void readReplaceRequest(File file) throws IOException {
- String line;
- BufferedReader br = new BufferedReader(new FileReader(file));
- int lineNumber = 0;
-
- while ((line = br.readLine()) != null) {
- lineNumber++;
- line = line.trim();
- if (line.isEmpty())
- continue;
- String[] s = line.split("\\;");
- if (s.length != 2)
- throw new IllegalArgumentException("Invalid replace request: " + line);
-
- String from = s[0];
- String to = s[1];
-
-
- if (replaceMap.containsKey(from) || replaceMap.containsValue(from))
- throw new IllegalArgumentException("Name already mentioned: " + from + " @" + lineNumber);
-
- if (replaceMap.containsKey(to) || replaceMap.containsValue(to))
- throw new IllegalArgumentException("Name already mentioned: " + to + " @" + lineNumber);
-
- replaceMap.put(from, to);
-
- System.out.println("Replacing [" + from + "] by [" + to + "]");
- }
- }
-
- private static void assertFolder(String dir) {
- File d = new File(dir);
- if (!d.exists() || !d.isDirectory())
- throw new IllegalArgumentException("No such folder: " + dir);
- }
-}
diff --git a/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomBuilder.java b/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomBuilder.java
deleted file mode 100644
index 6e03d5dc20..0000000000
--- a/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomBuilder.java
+++ /dev/null
@@ -1,230 +0,0 @@
-package com.rusefi.bom;
-
-import com.rusefi.pcb.ModuleNode;
-import com.rusefi.pcb.PcbNode;
-import com.rusefi.util.FileUtils;
-
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * (c) Andrey Belomutskiy
- * 2/2/14
- */
-public class BomBuilder {
- private static final String DELIMITER = ",";
-
- private static final CpmFileModel allComponents = new CpmFileModel();
- private static final String IGNORE_TAG = "ignore";
- private static String cmpFileName;
- private static String bomDictionaryName;
- private static Map bomDictionary;
- private static Set ignoreList = new TreeSet(String.CASE_INSENSITIVE_ORDER);
-
- private static boolean printQtyInFull = true;
- private static boolean printPadCount = false;
- private static boolean printReference = false;
- private static boolean printUserComment = false;
- private static PcbNode pcb;
-
- public static void main(String[] args) throws IOException {
- if (args.length < 3) {
- System.out.println("bom_builder FILE_NAME.CMP PCB.kicad_pcb COMPONENTS_DICTIONARY.CSV OUTPUT_FILE.CSV");
- return;
- }
- cmpFileName = args[0];
- String pcbFileName = args[1];
- bomDictionaryName = args[2];
- String outputFileName = args[3];
-
- pcb = PcbNode.readFromFile(pcbFileName);
-
- for (int i = 4; i < args.length; i++) {
- String option = args[i].trim();
- if (option.equalsIgnoreCase("printUserComment")) {
- printUserComment = true;
- } else if (option.equalsIgnoreCase("printreference")) {
- printReference = true;
- } else if (option.equalsIgnoreCase("printpadcount")) {
- printPadCount = true;
- } else if (option.equalsIgnoreCase("skipqtyinfull")) {
- printQtyInFull = false;
- }
- }
-
-
- allComponents.readCmpFile(FileUtils.readFileToList(cmpFileName));
-
- bomDictionary = readBomDictionary(FileUtils.readFileToList(bomDictionaryName));
-
- writeCompactPartList(outputFileName + "_compact.csv", bomDictionary);
- writeFullPartList(outputFileName + "_full.csv", bomDictionary);
- }
-
- private static void writeMissingElements(Map bomDictionary, BufferedWriter bw, Map> componentsByKey) throws IOException {
- for (Iterator>> i = componentsByKey.entrySet().iterator(); i.hasNext(); ) {
- Map.Entry> e = i.next();
- String key = e.getKey();
-
- if (ignoreList.contains(key))
- continue;
-
- BomRecord bomRecord = bomDictionary.get(key);
- if (bomRecord == null) {
- bw.write("### no BOM record for " + key + ": " + e.getValue() + "\r\n");
- i.remove();
- }
- }
- bw.write("\r\n\n\n\n");
- }
-
- private static void writeFullPartList(String outputFileName, Map bomDictionary) throws IOException {
- BufferedWriter bw = new BufferedWriter(new FileWriter(outputFileName));
-
- Map> componentsByKey = new TreeMap>(allComponents.componentsByKey);
-
- log("Writing full parts list to " + outputFileName);
- writeCommonHeader(bw);
- writeMissingElements(bomDictionary, bw, componentsByKey);
-
- StringBuilder notMounted = new StringBuilder();
-
- for (Map.Entry> e : componentsByKey.entrySet()) {
- // for instance, SM0805_47pF
- String componentName = e.getKey();
-
- List list = e.getValue();
-
- if (ignoreList.contains(componentName))
- continue;
-
- BomRecord bomRecord = bomDictionary.get(componentName);
- if (bomRecord == null)
- throw new NullPointerException();
-
-
-
-
- for (BomComponent c : list) {
- if (!findModule(c.getReference())) {
- bw.write("Not mounted: " + c.getReference() + "\r\n");
- continue;
- }
- writeLine(bw, bomRecord, 1, c.getReference() + ": ", c.getReference());
- }
- }
- bw.close();
- }
-
- private static boolean findModule(String reference) {
- for (PcbNode node : pcb.iterate("module")) {
- if (node instanceof ModuleNode) {
- ModuleNode mn = (ModuleNode) node;
- if (mn.getReference().equalsIgnoreCase(reference))
- return true;
- }
- }
- return false;
- }
-
- private static void writeCompactPartList(String outputFileName, Map bomDictionary) throws IOException {
- BufferedWriter bw = new BufferedWriter(new FileWriter(outputFileName));
- Map> componentsByKey = new TreeMap>(allComponents.componentsByKey);
-
- log("Writing compact parts list to " + outputFileName);
- writeCommonHeader(bw);
- writeMissingElements(bomDictionary, bw, componentsByKey);
-
- for (Map.Entry> e : componentsByKey.entrySet()) {
- // for instance, SM0805_47pF
- String componentName = e.getKey();
-
- if (ignoreList.contains(componentName))
- continue;
-
- List list = e.getValue();
- log(list.size() + " items of " + componentName);
-
- BomRecord bomRecord = bomDictionary.get(componentName);
- if (bomRecord == null)
- throw new NullPointerException();
- writeLine(bw, bomRecord, list.size(), "", "");
- }
- bw.close();
- }
-
- private static void writeCommonHeader(BufferedWriter bw) throws IOException {
- bw.write("### this file was generated by rusEfi bom_builder on " + new Date() + "\r\n");
- bw.write("### " + allComponents.componentsCount + " components in " + allComponents.linesCount + " lines of " + cmpFileName + "\r\n");
- bw.write("### " + allComponents.componentsByKey.size() + " kinds of components in input file\r\n");
- bw.write("### " + bomDictionary.size() + " entries in BOM dictionary " + bomDictionaryName + "\r\n");
- bw.write("### " + ignoreList.size() + " entries in ignore list\r\n");
- }
-
- private static void writeLine(BufferedWriter bw, BomRecord bomRecord, int quantity, String prefix, String reference) throws IOException {
- bw.write(quantity + DELIMITER +
- bomRecord.getStorePart() + DELIMITER +
- prefix + bomRecord.getCustomerRef() + DELIMITER +
- (printReference ? reference + DELIMITER : "") +
- (printUserComment ? bomRecord.getUserComment() + DELIMITER : "") +
- (printPadCount ? bomRecord.getPadCount() + DELIMITER : "") +
- "\r\n"
- );
- }
-
- private static Map readBomDictionary(List strings) {
- Map result = new TreeMap(String.CASE_INSENSITIVE_ORDER);
- for (String line : strings) {
- line = line.trim();
- if (line.isEmpty())
- continue;
-
- if (line.startsWith("#")) {
- log("Skipping comment: " + line);
- continue;
- }
-
- String[] tokens = line.split(",");
-
- if (tokens.length < 2) {
- log("Unexpected line: " + line + " Expected at least two tokens but " + tokens.length);
- System.exit(-1);
- }
-
- String ref = tokens[0];
- String mfgPart = tokens[1];
-
- if (mfgPart.equalsIgnoreCase(IGNORE_TAG)) {
- log("Ignoring entry: " + ref);
- ignoreList.add(ref);
- continue;
- }
-
- if (tokens.length != 6) {
- log("Unexpected line: [" + line + "] Expected 6 tokens but " + tokens.length);
- System.exit(-1);
- }
-
- String storePart = tokens[2];
- String componentName = tokens[3];
- int padCount = Integer.parseInt(tokens[4]);
- String customerRef = tokens[5];
-
- result.put(ref, new BomRecord(mfgPart, storePart, customerRef, padCount, componentName));
-
- log("BOM key: " + ref);
- log("mfgPartNo: " + mfgPart);
- log("storePartNo: " + storePart);
- }
-
- log("Got " + result.size() + " entries in BOM dictionary");
- log("Got " + ignoreList.size() + " entries in ignore list");
- return result;
- }
-
- protected static void log(String msg) {
- System.out.println(msg);
- }
-}
diff --git a/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomComponent.java b/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomComponent.java
deleted file mode 100644
index dcad2eddc1..0000000000
--- a/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomComponent.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.rusefi.bom;
-
-/**
- * (c) Andrey Belomutskiy
- * 2/2/14
- */
-public class BomComponent {
- private final String reference;
-
- public BomComponent(String reference) {
- this.reference = reference;
- }
-
- public String getReference() {
- return reference;
- }
-
- @Override
- public String toString() {
- return reference;
- }
-}
diff --git a/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomRecord.java b/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomRecord.java
deleted file mode 100644
index 7080d25d8a..0000000000
--- a/java_tools/pcb_sync/src/main/java/com/rusefi/bom/BomRecord.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.rusefi.bom;
-
-/**
- * (c) Andrey Belomutskiy
- * 2/2/14
- */
-public class BomRecord {
- private final String mfgPart;
- private final String storePart;
- private final String customerRef;
- private final int padCount;
- private final String userComment;
-
- public BomRecord(String mfgPart, String storePart, String customerRef, int padCount, String userComment) {
- this.mfgPart = mfgPart;
- this.storePart = storePart;
- this.customerRef = customerRef;
- this.padCount = padCount;
- this.userComment = userComment;
- }
-
- public String getMfgPart() {
- return mfgPart;
- }
-
- public String getStorePart() {
- return storePart;
- }
-
- public String getCustomerRef() {
- return customerRef;
- }
-
- public int getPadCount() {
- return padCount;
- }
-
- public String getUserComment() {
- return userComment;
- }
-}
diff --git a/java_tools/pcb_sync/src/main/java/com/rusefi/bom/CpmFileModel.java b/java_tools/pcb_sync/src/main/java/com/rusefi/bom/CpmFileModel.java
deleted file mode 100644
index 8dfbcb6a14..0000000000
--- a/java_tools/pcb_sync/src/main/java/com/rusefi/bom/CpmFileModel.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.rusefi.bom;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import static com.rusefi.bom.BomBuilder.log;
-
-/**
- * (c) Andrey Belomutskiy
- * 2/22/14
- */
-public class CpmFileModel {
-
- public final Map> componentsByKey = new TreeMap>(String.CASE_INSENSITIVE_ORDER);
-
- public int linesCount;
- public int componentsCount;
-
-
- public void readCmpFile(List list) throws IOException {
- linesCount = list.size();
- componentsCount = 0;
-
- for (int lineIndex = 0; lineIndex < list.size(); lineIndex++) {
- String line = list.get(lineIndex);
- if ("BeginCmp".equals(line)) {
- componentsCount++;
-
- lineIndex += 2; // skipping 'TimeStamp' line
-
- String a = list.get(lineIndex);
- String reference = parseReferenceLine(a);
- log(lineIndex + ": reference: " + reference);
- lineIndex++;
-
- String valueLine = list.get(lineIndex);
- String value = parseValueLine(valueLine);
- log(lineIndex + ": value: " + value);
- lineIndex++;
-
- String packageLine = list.get(lineIndex);
-
- String packageName = packageLine.split("=")[1].trim();
- packageName = cutLastSymbol(packageName);
- log(lineIndex + ": package: " + packageName);
- lineIndex++;
-
- String package_value = packageName + "_" + value;
- List l = componentsByKey.get(package_value);
- if (l == null) {
- l = new ArrayList();
- componentsByKey.put(package_value, l);
- }
- l.add(new BomComponent(reference));
- }
- }
- }
-
- private static String parseValueLine(String s) {
- String value = s.split("=")[1].trim();
- return cutLastSymbol(value);
- }
-
- private static String parseReferenceLine(String line) {
- String reference = line.split("=")[1].trim();
- return cutLastSymbol(reference);
- }
-
- private static String cutLastSymbol(String reference) {
- return reference.substring(0, reference.length() - 1);
- }
-}
diff --git a/java_tools/pcb_sync/src/main/java/com/rusefi/misc/CmpMergeTool.java b/java_tools/pcb_sync/src/main/java/com/rusefi/misc/CmpMergeTool.java
deleted file mode 100644
index 1c6796dd8f..0000000000
--- a/java_tools/pcb_sync/src/main/java/com/rusefi/misc/CmpMergeTool.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.rusefi.misc;
-
-import com.rusefi.util.FileUtils;
-
-import java.io.*;
-import java.util.List;
-
-/**
- * 12/8/13
- * (c) Andrey Belomutskiy
- */
-public class CmpMergeTool {
- private CmpMergeTool() {
- }
-
- public static void main(String[] args) throws IOException {
- if (args.length < 2) {
- System.out.println("This tool merges .cmp KiCad component mappting files");
- System.out.println("usage:");
- System.out.println("NetListMerge DEST_FILE SOURCE_1 SOURCE_2 [SOURCE_x]*");
- return;
- }
-
- String destinationFile = args[0];
-
- System.out.println("Writing result into " + destinationFile);
- BufferedWriter bw = new BufferedWriter(new FileWriter(destinationFile));
-
- bw.write("Cmp-Mod V01 Created by CvPcb (2013-07-07 BZR 4022)-stable date = 01/12/2013 21:54:01\r\n");
-
- for (int i = 1; i < args.length; i++) {
- String sourceFile = args[i];
-
- List list = FileUtils.readFileToList(sourceFile);
-
- for (String line : list.subList(1, list.size() - 2))
- bw.write(line + "\r\n");
- }
-
- bw.write("\r\nEndListe\r\n");
- bw.close();
- }
-}
diff --git a/java_tools/ts_screenshots/.gitignore b/java_tools/ts_screenshots/.gitignore
deleted file mode 100644
index 3ddb801bcf..0000000000
--- a/java_tools/ts_screenshots/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-inc
-config
-TunerStudio.properties
-lib
-images
-output.xml
-rusEFI-project*.md
\ No newline at end of file
diff --git a/java_tools/ts_screenshots/build.xml b/java_tools/ts_screenshots/build.xml
deleted file mode 100644
index 8b9b307d7a..0000000000
--- a/java_tools/ts_screenshots/build.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java_tools/ts_screenshots/readme.md b/java_tools/ts_screenshots/readme.md
deleted file mode 100644
index 7447b0327b..0000000000
--- a/java_tools/ts_screenshots/readme.md
+++ /dev/null
@@ -1,16 +0,0 @@
-
-step 0:
-
-In TunerStudio, set "Options->Preferences->Load Last Project on startup". Exit TunerStudio.
-
-
-step 1:
-
-``ant``
-
-Expected output: ScreenShots.jar
-
-
-step 2:
-
-Copy ScreenShots.jar inside
\ No newline at end of file
diff --git a/java_tools/ts_screenshots/screen/src/ScreenCaptureLauncher.java b/java_tools/ts_screenshots/screen/src/ScreenCaptureLauncher.java
deleted file mode 100644
index 39f13c0e74..0000000000
--- a/java_tools/ts_screenshots/screen/src/ScreenCaptureLauncher.java
+++ /dev/null
@@ -1,23 +0,0 @@
-import com.rusefi.ScreenGenerator;
-
-public class ScreenCaptureLauncher {
- public static void main(String[] args) throws Exception {
- startTunerStudio(args);
- ScreenGenerator.main(args);
- }
-
- private static void startTunerStudio(String[] args) {
- Thread t = new Thread(() -> {
- try {
- TunerStudio.main(args);
- } catch (Exception e) {
- e.printStackTrace();
- throw new IllegalStateException(e);
- }
- });
-
- t.setDaemon(false);
- t.start();
- }
-
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/Callback.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/Callback.java
deleted file mode 100644
index d6b78f9fba..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/Callback.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.rusefi;
-
-import java.awt.*;
-
-interface Callback {
- void onComponent(Component parent, Component component);
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/MdGenerator.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/MdGenerator.java
deleted file mode 100644
index 168222e403..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/MdGenerator.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.rusefi;
-
-import com.rusefi.xml.*;
-
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Date;
-
-/**
- * Unused and replaced by http://rusefi.online?
- * REMOVE ONE DAY PRETTY SOON
- */
-public class MdGenerator {
- public static final String PREFIX = "rusEFI-project";
- static String FOLDER;
-
- private static final String EOL = "\r\n";
-
- public static void main(String[] args) throws Exception {
- //FOLDER = "images/";
- FOLDER = "overview/TS_generated/";
-
- ContentModel contentModel = XmlUtil.readModel(ContentModel.class, ScreenGenerator.FILE_NAME);
-
- generateTopLevel(contentModel);
-
- for (TopLevelMenuModel topLevelMenuModel : contentModel.getTopLevelMenus()) {
- String pageName = getPageName(topLevelMenuModel);
- FileWriter md = new FileWriter(pageName + ".md");
-
- md.append("# [rusEFI project](rusEFI-project)"+ EOL);
-
- md.append("## " + topLevelMenuModel.getTitle() + EOL);
-
- for (DialogModel dialogModel : topLevelMenuModel.getDialogs()) {
- md.append("[" + dialogModel.getDialogTitle() + "](" + "#" + safeUrl(dialogModel.getDialogTitle()).toLowerCase() + ")" + EOL + EOL);
- }
-
-
- for (DialogModel dialogModel : topLevelMenuModel.getDialogs()) {
- appendDialog(md, dialogModel);
- }
-
- md.write(EOL);
- md.write("generated by " + MdGenerator.class + " on " + new Date());
- md.write(EOL);
- md.close();
- }
- }
-
- private static String getPageName(TopLevelMenuModel topLevelMenuModel) {
- return PREFIX + "-" + safeUrl(topLevelMenuModel.getTitle());
- }
-
- private static String safeUrl(String title) {
- return title.replace(" ", "-");
- }
-
- private static void generateTopLevel(ContentModel contentModel) throws IOException {
- FileWriter md = new FileWriter(PREFIX + ".md");
-
- for (TopLevelMenuModel topLevelMenuModel : contentModel.getTopLevelMenus()) {
- String url = getPageName(topLevelMenuModel);
- md.append("# [" + topLevelMenuModel.getTitle() + "](" + url + ")" + EOL + EOL);
-
- md.append("" + getImageTag(topLevelMenuModel.getImageName()) + "");
-
- for (DialogModel dialogModel : topLevelMenuModel.getDialogs()) {
- md.append("[" + dialogModel.getDialogTitle() + "](" + url + "#" + safeUrl(dialogModel.getDialogTitle()).toLowerCase() + ")" + EOL + EOL);
- }
-
- md.append(EOL);
- }
- md.write(EOL);
- md.write("generated by " + MdGenerator.class + " on " + new Date());
- md.write(EOL);
- md.close();
- }
-
- private static void appendDialog(FileWriter md, DialogModel dialogModel) throws IOException {
- md.append("### " + dialogModel.getDialogTitle() + EOL);
-
- md.append(getImageTag(dialogModel.getImageName()) + EOL);
-
- for (FieldModel fieldModel : dialogModel.fields) {
- String tooltip = fieldModel.getTooltip();
-
- if (tooltip.length() > 0) {
- tooltip = tooltip.replace("\\n", EOL);
-
- md.append(fieldModel.getUiName() + ": " + tooltip + EOL + EOL);
- }
- }
- }
-
- private static String getImageTag(String imageName) {
- String IMG_SUFFIX = ")" + EOL;
- String IMG_PREFIX = "![x](";
-
- return IMG_PREFIX + FOLDER + imageName + IMG_SUFFIX;
- }
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/ScreenGenerator.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/ScreenGenerator.java
deleted file mode 100644
index 2ecabc518b..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/ScreenGenerator.java
+++ /dev/null
@@ -1,271 +0,0 @@
-package com.rusefi;
-
-import com.opensr5.ini.IniFileModel;
-import com.rusefi.xml.*;
-
-import javax.imageio.ImageIO;
-import javax.swing.*;
-import java.awt.*;
-import java.awt.image.BufferedImage;
-import java.awt.image.RasterFormatException;
-import java.io.*;
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-public class ScreenGenerator {
- public static final String FILE_NAME = "output.xml";
- private static final String PNG = "png";
- private static ArrayList topLevelButtons = new ArrayList<>();
-
- private static final int MENU_CLICK_DELAY = 50;
- private static final int TOP_MENU_CLICK_DELAY = 200;
- private static final int WAITING_FOR_FRAME_PERIOD = 1000;
-
-
- private static final String DESTINATION = "images" + File.separator;
-
- static ContentModel contentModel = new ContentModel();
- static IniFileModel iniFileModel = new IniFileModel();
-
- static Map byCleanUiName = new TreeMap<>();
-
- public static void main(String[] args) throws Exception {
- if (args.length != 1) {
- System.out.println("One parameter expected: path to directory containing rusefi.ini file");
- System.exit(-1);
- }
-
- iniFileModel.readIniFile(".");
-
- for (Map.Entry a : iniFileModel.getAllFields().entrySet()) {
- String cleanUiName = cleanName(a.getValue().getUiName());
- byCleanUiName.put(cleanUiName, a.getValue());
- }
-
- if (byCleanUiName.isEmpty())
- throw new IllegalStateException("Something not right with input file. April 29 version is needed");
-
-
- System.out.println("mkdirs " + DESTINATION);
- new File(DESTINATION).mkdirs();
-
- System.out.println("Launching TunerStudioIntegration");
- Frame mainFrame = TunerStudioIntegration.findMainFrame();
-
- waitForMainFrame(mainFrame);
-
- System.out.println("Done discovering buttons, " + topLevelButtons.size());
-
- Thread.sleep(2 * WAITING_FOR_FRAME_PERIOD); // we have this sleep to avoid an artifact on first screenshot
-
- handleTopLevelButtons(mainFrame, topLevelButtons);
-
- XmlUtil.writeXml(contentModel, ContentModel.class, FILE_NAME);
- }
-
- private static void waitForMainFrame(Frame mainFrame) throws InterruptedException {
- while (topLevelButtons.isEmpty()) {
- UiUtils.visitComponents(mainFrame, "", (parent, component) -> {
- if (component instanceof AbstractButton) {
- AbstractButton ab = (AbstractButton) component;
- System.out.println("topLevelButton " + ab.getText());
-
- if (TunerStudioIntegration.isTopLevelMenuButton(component)) {
- topLevelButtons.add(ab);
- }
- }
- });
- Thread.sleep(WAITING_FOR_FRAME_PERIOD);
- }
- }
-
- private static void handleTopLevelButtons(Frame frame, ArrayList topLevelButtons) throws Exception {
- for (AbstractButton topLevel : topLevelButtons) {
- handleTopLevelButton(frame, topLevel);
- }
- }
-
- private static void handleTopLevelButton(Frame frame, AbstractButton topLevel) throws Exception {
- SwingUtilities.invokeAndWait(topLevel::doClick);
- Thread.sleep(TOP_MENU_CLICK_DELAY);
-
-
- String imageName = "top_level_" + cleanName(topLevel.getText()) + "." + PNG;
-
- TopLevelMenuModel topLevelMenuModel = new TopLevelMenuModel(topLevel.getText(), imageName);
- ScreenGenerator.contentModel.getTopLevelMenus().add(topLevelMenuModel);
-
- ImageIO.write(
- UiUtils.getScreenShot(frame),
- PNG,
- new File(DESTINATION + imageName));
-
- List menuItems = TunerStudioIntegration.findMenuItems(frame);
-
- for (JMenuItem menuItem : menuItems) {
- handleMenuItem(menuItem, topLevelMenuModel);
- }
- }
-
- private static void handleMenuItem(JMenuItem menuItem, TopLevelMenuModel topLevelMenuModel) throws InterruptedException, InvocationTargetException {
- SwingUtilities.invokeAndWait(menuItem::doClick);
-
- Thread.sleep(MENU_CLICK_DELAY);
-
- AtomicReference ref = new AtomicReference<>();
- SwingUtilities.invokeAndWait(() -> ref.set(TunerStudioIntegration.findDynamicDialog()));
- // let's give it time to appear on the screen
- Thread.sleep(MENU_CLICK_DELAY);
- JDialog dialog = ref.get();
- if (dialog == null) {
- System.out.println("Not found for " + menuItem);
- return;
- }
-
- String dialogTitle = dialog.getTitle();
-
- String imageName = "dialog_" + cleanName(dialogTitle) + "." + PNG;
- DialogModel dialogModel = new DialogModel(dialogTitle, imageName);
- topLevelMenuModel.getDialogs().add(dialogModel);
-
- SwingUtilities.invokeAndWait(() -> {
- try {
- findSlices(dialog, dialogModel);
-
- if (dialog == null) {
- // this happens for example for disabled menu items
- return;
- }
-
-// Robot robot = new Robot();
-// Rectangle captureRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
-// BufferedImage screenFullImage = robot.createScreenCapture(captureRect);
-// ImageIO.write(screenFullImage, PNG, new File(DESTINATION + "full_" + d.getTitle() + ".png"));
-
- BufferedImage dialogScreenShot = UiUtils.getScreenShot(dialog);
- ImageIO.write(
- dialogScreenShot,
- PNG,
- new File(DESTINATION + imageName));
- dialog.setVisible(false);
- dialog.dispose();
- } catch (Exception e) {
- throw new IllegalStateException(e);
- }
- });
- }
-
- private static void saveSlices(String dialogTitle, Map yCoordinates, BufferedImage dialogScreenShot, DialogModel dialogModel) {
- System.out.println("Label Y coordinates: " + yCoordinates);
- yCoordinates.put(0, "top");
- yCoordinates.put(dialogScreenShot.getHeight(), "bottom");
-
- List sorted = new ArrayList<>(yCoordinates.keySet());
-
- for (int i = 0; i < sorted.size() - 1; i++) {
- int fromY = sorted.get(i);
- int toY = sorted.get(i + 1);
-
- String sectionNameWithSpecialCharacters = yCoordinates.get(sorted.get(i));
- String sectionName = cleanName(sectionNameWithSpecialCharacters);
-
- BufferedImage slice;
- try {
- slice = dialogScreenShot.getSubimage(0, fromY, dialogScreenShot.getWidth(), toY - fromY);
- } catch (RasterFormatException e) {
- System.out.println("Dialog does not fit screen? " + sectionNameWithSpecialCharacters);
- continue;
- }
-
- if (slice == null) {
- System.out.println("Weird");
- continue;
- }
- String fileName = cleanName(dialogTitle) + "_slice_" + fromY + "_" + sectionName + "." + PNG;
-
- com.opensr5.ini.DialogModel.Field f = byCleanUiName.get(sectionName);
- if (f == null)
- continue;
-
- String fieldName = f.getKey();
- String tooltip = iniFileModel.tooltips.get(fieldName);
-
- dialogModel.fields.add(new FieldModel(sectionNameWithSpecialCharacters, fieldName, fileName, tooltip));
-
- File output = new File(DESTINATION + fileName);
- if (output == null) {
- System.out.println(sectionName + " in " + fileName + " was not a success");
- continue;
- }
- try {
- ImageIO.write(slice, PNG, output);
- } catch (Exception e) {
- System.out.println(sectionName + " in " + fileName + " was not a success?");
- continue;
- }
- }
- }
-
- private static void findSlices(JDialog dialog, DialogModel dialogModel) {
- UiUtils.visitComponents(dialog, "Dynamic dialog", new Callback() {
- @Override
- public void onComponent(Component parent, Component component) {
- if (component instanceof JPanel) {
- JPanel panel = (JPanel) component;
- handleBox(dialog.getTitle(), panel, dialogModel);
- }
- }
- });
- }
-
- private static void handleBox(String dialogTitle, JPanel panel, DialogModel dialogModel) {
- if (panel.getLayout() instanceof BoxLayout) {
- BoxLayout layout = (BoxLayout) panel.getLayout();
- if (layout.getAxis() == BoxLayout.X_AXIS)
- return;
-
- BufferedImage panelImage = UiUtils.getScreenShot(panel);
-
- Map yCoordinates = new TreeMap<>();
- int relativeY = panel.getLocationOnScreen().y;
-
- UiUtils.visitComponents(panel, "Looking inside the box", new Callback() {
- @Override
- public void onComponent(Component parent, Component component) {
- if (component instanceof JLabel) {
- JLabel label = (JLabel) component;
- if (!label.isVisible() || label.getSize().width == 0)
- return;
- String labelText = label.getText();
- if (labelText.length() > 0) {
- System.out.println("Looking at " + label);
- try {
- yCoordinates.put(label.getLocationOnScreen().y - relativeY, labelText);
- } catch (IllegalComponentStateException e) {
- System.out.printf("Did not go well for " + label);
- }
- }
- }
- }
- });
-
- saveSlices(dialogTitle, yCoordinates, panelImage, dialogModel);
- }
- }
-
- private static String cleanName(String title) {
- title = title.replace(' ', '_');
- title = title.replace(")", "");
- title = title.replace("%", "");
- title = title.replace(">", "");
- title = title.replace("<", "");
- title = title.replace("?", "");
- title = title.replace("(", "");
- title = title.replace('/', '_');
- title = title.replace('\\', '_');
- title = title.replace(" ", " ");
- return title;
- }
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/TunerStudioIntegration.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/TunerStudioIntegration.java
deleted file mode 100644
index 28b6cd6e36..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/TunerStudioIntegration.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.rusefi;
-
-import javax.swing.*;
-import java.awt.*;
-import java.util.ArrayList;
-import java.util.List;
-
-public class TunerStudioIntegration {
- /**
- * these magic class names are specific to TS build
- * At the moment we use 3.1.02 names
- * http://www.tunerstudio.com/downloads2/TunerStudioMS_Setup_v3.1.02.exe
- */
- private static final String VERSION = "3.1.02";
- private static final String TS_DIALOG = "com.efiAnalytics.ui.dg";
- private static final String TS_POPUP_MAIN_MENU = "aH.gc";
- private static final String TUNER_STUDIO = "TunerStudio";
-
- static Frame findMainFrame() throws InterruptedException {
- while (true) {
- Frame[] all = JFrame.getFrames();
-
- for (Frame frame : all) {
- String frameTitle = frame.getTitle();
- System.out.println("I see " + frameTitle);
- if (frameTitle.contains(TUNER_STUDIO)) {
- if (!frameTitle.contains(VERSION)) {
- System.out.println("Title does not look right " + frameTitle + " not " + VERSION);
- System.exit(-1);
- }
- return frame;
- }
- }
- Thread.sleep(1000);
- }
- }
-
- static boolean isTopLevelMenuButton(Component component) {
- return component instanceof bi.b;
- }
-
- static java.util.List findMenuItems(Frame frame) {
- List menuItems = new ArrayList<>();
- UiUtils.visitComponents(frame, "Just clicked ", (parent, component) -> {
- if (component instanceof JMenuItem && component.getClass().getName().endsWith(TS_POPUP_MAIN_MENU)) {
- JMenuItem menuItem = (JMenuItem) component;
- System.out.println("Menu item " + menuItem.getText());
- menuItems.add(menuItem);
- }
- });
- return menuItems;
- }
-
- static JDialog findDynamicDialog() {
- for (Window d : Dialog.getWindows()) {
- if (d.getClass().getName().equals(TS_DIALOG) && d.isVisible()) {
- return (JDialog) d;
- }
- }
- return null;
- }
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/UiUtils.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/UiUtils.java
deleted file mode 100644
index 84a2e38abe..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/UiUtils.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.rusefi;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.image.BufferedImage;
-
-public class UiUtils {
- public static void visitComponents(Component cmp, String prefix, Callback callback) {
- visitComponents(cmp, null, prefix, callback);
- }
-
- public static void visitComponents(Component component, Component parent, String prefix, Callback callback) {
- if (component == null)
- throw new NullPointerException("component");
- if (component instanceof AbstractButton) {
- AbstractButton ab = (AbstractButton) component;
- System.out.println("[button " + ab.getText() + "]");
- } else if (component instanceof JLabel) {
- JLabel ab = (JLabel) component;
- System.out.println("[label " + ab.getText() + "]");
- } else if (component instanceof JComboBox) {
- JComboBox ab = (JComboBox) component;
- System.out.println("[combo " + ab.getSelectedItem() + "]");
- } else if (component instanceof JPanel) {
- JPanel p = (JPanel) component;
- System.out.println("[panel " + p.getLayout() + "] children=" + p.getComponents().length);
- System.out.println("[panel " + p.getLayout() + "] " + p.getLocation() + " size = " + p.getSize());
- }
-
- System.out.println(prefix + " I see " + component.getClass());
- callback.onComponent(parent, component);
- Container container = (Container) component;
- if (container == null) {
- // Not a container, return
- return;
- }
- // Go visit and add all children
- for (Component subComponent : container.getComponents()) {
- if (subComponent == null)
- continue;
- visitComponents(subComponent, component, prefix + " " + subComponent.getClass().getSimpleName(), callback);
- }
- }
-
- public static BufferedImage getScreenShot(Component component) {
- BufferedImage image = new BufferedImage(
- component.getWidth(),
- component.getHeight(),
- BufferedImage.TYPE_INT_RGB
- );
- // call the Component's paint method, using
- // the Graphics object of the image.
- component.paint(image.getGraphics()); // alternately use .printAll(..)
- return image;
- }
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/ContentModel.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/ContentModel.java
deleted file mode 100644
index b5da19e66c..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/ContentModel.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.rusefi.xml;
-
-import com.rusefi.ScreenGenerator;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-@XmlRootElement
-public class ContentModel {
- private List menus = new ArrayList<>();
-
- @XmlElementWrapper
- @XmlElement(name = "keyword")
- public List getTopLevelMenus() {
- return menus;
- }
-
- @XmlAttribute
- public String getVersion() {
- return "Generated by " + ScreenGenerator.class + " on " + new Date();
- }
-
- @Override
- public String toString() {
- return "ContentModel{" +
- "menus=" + menus +
- '}';
- }
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/DialogModel.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/DialogModel.java
deleted file mode 100644
index e0f5e8abc3..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/DialogModel.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.rusefi.xml;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import java.util.ArrayList;
-import java.util.List;
-
-public class DialogModel {
- private String dialogTitle;
- private String imageName;
- @XmlElementWrapper
- @XmlElement(name = "field")
- public List fields = new ArrayList<>();
-
- public DialogModel() {
- }
-
- public DialogModel(String dialogTitle, String imageName) {
- this.dialogTitle = dialogTitle;
- this.imageName = imageName;
- }
-
- @XmlAttribute
- public String getImageName() {
- return imageName;
- }
-
- public void setImageName(String imageName) {
- this.imageName = imageName;
- }
-
- @XmlAttribute
- public String getDialogTitle() {
- return dialogTitle;
- }
-
- public void setDialogTitle(String dialogTitle) {
- this.dialogTitle = dialogTitle;
- }
-
- @Override
- public String toString() {
- return "DialogModel{" +
- "dialogTitle='" + dialogTitle + '\'' +
- ", imageName='" + imageName + '\'' +
- ", fields=" + fields +
- '}';
- }
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/FieldModel.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/FieldModel.java
deleted file mode 100644
index 66d2d3cd3f..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/FieldModel.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.rusefi.xml;
-
-import javax.xml.bind.annotation.XmlAttribute;
-
-public class FieldModel {
-
- private String uiName;
- private String fieldName;
- private String imageName;
- private String tooltip;
-
- public FieldModel() {
- }
-
- public FieldModel(String uiName, String fieldName, String fileName, String tooltip) {
- this.uiName = uiName;
- this.fieldName = fieldName;
- this.imageName = fileName;
- this.tooltip = tooltip == null ? "" : tooltip;
- }
-
- @XmlAttribute
- public String getUiName() {
- return uiName;
- }
-
- public void setUiName(String uiName) {
- this.uiName = uiName;
- }
-
- @XmlAttribute
- public String getFieldName() {
- return fieldName;
- }
-
- public void setFieldName(String fieldName) {
- this.fieldName = fieldName;
- }
-
- @XmlAttribute
- public String getImageName() {
- return imageName;
- }
-
- public void setImageName(String imageName) {
- this.imageName = imageName;
- }
-
- @XmlAttribute
- public String getTooltip() {
- return tooltip;
- }
-
- public void setTooltip(String tooltip) {
- this.tooltip = tooltip;
- }
-
- @Override
- public String toString() {
- return "FieldModel{" +
- "uiName='" + uiName + '\'' +
- ", fieldName='" + fieldName + '\'' +
- ", imageName='" + imageName + '\'' +
- ", tooltip='" + tooltip + '\'' +
- '}';
- }
-}
diff --git a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/TopLevelMenuModel.java b/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/TopLevelMenuModel.java
deleted file mode 100644
index 13fc95a221..0000000000
--- a/java_tools/ts_screenshots/screen/src/main/java/com/rusefi/xml/TopLevelMenuModel.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.rusefi.xml;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import java.util.ArrayList;
-import java.util.List;
-
-public class TopLevelMenuModel {
- private String title;
- private String imageName;
-
- @XmlElementWrapper
- @XmlElement(name = "dialog")
- private List dialogs = new ArrayList<>();
-
- public TopLevelMenuModel() {
- }
-
- public TopLevelMenuModel(String title, String imageName) {
- this.title = title;
- this.imageName = imageName;
- }
-
- @XmlAttribute
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- @XmlAttribute
- public String getImageName() {
- return imageName;
- }
-
- public void setImageName(String imageName) {
- this.imageName = imageName;
- }
-
- public List getDialogs() {
- return dialogs;
- }
-
- @Override
- public String toString() {
- return "TopLevelMenuModel{" +
- "title='" + title + '\'' +
- ", imageName='" + imageName + '\'' +
- ", dialogs=" + dialogs +
- '}';
- }
-}