55package org .cakephp .netbeans ;
66
77import java .io .File ;
8+ import java .util .Collections ;
9+ import java .util .Comparator ;
10+ import java .util .Enumeration ;
11+ import java .util .LinkedList ;
12+ import java .util .List ;
813import org .netbeans .modules .php .api .phpmodule .BadgeIcon ;
914import org .netbeans .modules .php .api .phpmodule .PhpModule ;
1015import org .netbeans .modules .php .api .phpmodule .PhpModuleProperties ;
16+ import org .netbeans .modules .php .api .util .FileUtils ;
1117import org .netbeans .modules .php .spi .commands .FrameworkCommandSupport ;
1218import org .netbeans .modules .php .spi .editor .EditorExtender ;
1319import org .netbeans .modules .php .spi .phpmodule .PhpFrameworkProvider ;
1420import org .netbeans .modules .php .spi .phpmodule .PhpModuleActionsExtender ;
1521import org .netbeans .modules .php .spi .phpmodule .PhpModuleExtender ;
1622import org .netbeans .modules .php .spi .phpmodule .PhpModuleIgnoredFilesExtender ;
1723import org .openide .filesystems .FileObject ;
24+ import org .openide .filesystems .FileUtil ;
1825import org .openide .util .ImageUtilities ;
1926import org .openide .util .NbBundle ;
2027
@@ -23,6 +30,12 @@ public final class CakePhpFrameworkProvider extends PhpFrameworkProvider {
2330 // TODO: provide better badge icon
2431 private static final String ICON_PATH = "org/cakephp/netbeans/ui/resources/cakephp_badge_8.png" ; // NOI18N
2532 private static final CakePhpFrameworkProvider INSTANCE = new CakePhpFrameworkProvider ();
33+ private static final Comparator <File > FILE_COMPARATOR = new Comparator <File >() {
34+ @ Override
35+ public int compare (File o1 , File o2 ) {
36+ return o1 .getName ().compareToIgnoreCase (o2 .getName ());
37+ }
38+ };
2639
2740 private final BadgeIcon badgeIcon ;
2841
@@ -52,7 +65,24 @@ public boolean isInPhpModule(PhpModule phpModule) {
5265
5366 @ Override
5467 public File [] getConfigurationFiles (PhpModule phpModule ) {
55- return new File [0 ];
68+ // return all php files from app/config
69+ List <File > configFiles = new LinkedList <File >();
70+
71+ FileObject config = phpModule .getSourceDirectory ().getFileObject ("app/config" ); // NOI18N
72+ assert config != null : "app/config not found for CakePHP project " + phpModule .getDisplayName ();
73+ if (config != null && config .isFolder ()) {
74+ Enumeration <? extends FileObject > children = config .getChildren (true );
75+ while (children .hasMoreElements ()) {
76+ FileObject child = children .nextElement ();
77+ if (child .isData () && FileUtils .isPhpFile (child )) {
78+ configFiles .add (FileUtil .toFile (child ));
79+ }
80+ }
81+ }
82+ if (!configFiles .isEmpty ()) {
83+ Collections .sort (configFiles , FILE_COMPARATOR );
84+ }
85+ return configFiles .toArray (new File [configFiles .size ()]);
5686 }
5787
5888 @ Override
0 commit comments