@@ -455,9 +455,9 @@ private static TreeMap<String, IPath> getLibExampleFolders(File LibRoot) {
455
455
File Lib_examples = LibRoot .toPath ().resolve (curLib ).resolve ("examples" ).toFile ();//$NON-NLS-1$
456
456
File Lib_Examples = LibRoot .toPath ().resolve (curLib ).resolve ("Examples" ).toFile ();//$NON-NLS-1$
457
457
if (Lib_examples .isDirectory ()) {
458
- examples .putAll (getExamplesFromFolder (libID , Lib_examples ));
458
+ examples .putAll (getExamplesFromFolder (libID , Lib_examples , 2 ));
459
459
} else if (Lib_Examples .isDirectory ()) {
460
- examples .putAll (getExamplesFromFolder (libID , Lib_Examples ));
460
+ examples .putAll (getExamplesFromFolder (libID , Lib_Examples , 2 ));
461
461
} else // nothing found directly so maybe this is a version
462
462
// based lib
463
463
{
@@ -470,9 +470,9 @@ private static TreeMap<String, IPath> getLibExampleFolders(File LibRoot) {
470
470
Lib_Examples = LibRoot .toPath ().resolve (curLib ).resolve (versions [0 ]).resolve ("Examples" ) //$NON-NLS-1$
471
471
.toFile ();
472
472
if (Lib_examples .isDirectory ()) {
473
- examples .putAll (getExamplesFromFolder (libID , Lib_examples ));
473
+ examples .putAll (getExamplesFromFolder (libID , Lib_examples , 2 ));
474
474
} else if (Lib_Examples .isDirectory ()) {
475
- examples .putAll (getExamplesFromFolder (libID , Lib_Examples ));
475
+ examples .putAll (getExamplesFromFolder (libID , Lib_Examples , 2 ));
476
476
}
477
477
}
478
478
}
@@ -488,19 +488,20 @@ private static TreeMap<String, IPath> getLibExampleFolders(File LibRoot) {
488
488
*
489
489
* @param File
490
490
*/
491
- private static TreeMap <String , IPath > getExamplesFromFolder (String prefix , File location ) {
491
+ private static TreeMap <String , IPath > getExamplesFromFolder (String prefix , File location , int maxDepth ) {
492
492
TreeMap <String , IPath > examples = new TreeMap <>(String .CASE_INSENSITIVE_ORDER );
493
493
File [] children = location .listFiles ();
494
- if (children == null ) {
494
+ if (( children == null ) || ( maxDepth <= 0 ) ) {
495
495
// Either dir does not exist or is not a directory
496
496
return examples ;
497
497
}
498
+ int newmaxDepth = maxDepth - 1 ;
498
499
for (File exampleFolder : children ) {
499
- String extension = FilenameUtils .getExtension (exampleFolder .toString ());
500
+ String extension = FilenameUtils .getExtension (exampleFolder .toString ()). toLowerCase ( );
500
501
if (exampleFolder .isDirectory ()) {
501
- examples . putAll ( getExamplesFromFolder ( prefix + '/' + exampleFolder . getName (), exampleFolder ));
502
- } else if ( INO . equalsIgnoreCase ( extension ) || PDE . equalsIgnoreCase ( extension )
503
- || CPP .equalsIgnoreCase (extension ) || C .equalsIgnoreCase (extension )) {
502
+ examples . putAll (
503
+ getExamplesFromFolder ( prefix + '/' + exampleFolder . getName (), exampleFolder , newmaxDepth ));
504
+ } else if ( INO . equals ( extension ) || PDE . equals ( extension ) || CPP .equals (extension ) || C .equals (extension )) {
504
505
examples .put (prefix , new Path (location .toString ()));
505
506
}
506
507
}
@@ -532,7 +533,7 @@ public static TreeMap<String, IPath> getAllArduinoIDEExamples() {
532
533
File exampleLocation = ConfigurationPreferences .getInstallationPathExamples ().toFile ();
533
534
534
535
if (exampleLocation .exists ()) {
535
- examples .putAll (getExamplesFromFolder (EXAMPLE_DESCRIPTOR_PREFIX , exampleLocation ));
536
+ examples .putAll (getExamplesFromFolder (EXAMPLE_DESCRIPTOR_PREFIX , exampleLocation , 100 ));
536
537
}
537
538
return examples ;
538
539
}
0 commit comments