Skip to content

Commit 8d441af

Browse files
committed
Add custom node #74
- Command - View/Cell - Mailer - Middleware - Fixture - Shell/Helper - Shell/Task - Template/Cell - TestCase - config/Seeds
1 parent 4ed80d9 commit 8d441af

File tree

5 files changed

+109
-4
lines changed

5 files changed

+109
-4
lines changed

src/org/netbeans/modules/php/cake3/modules/CakePHP3ModuleDefault.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,10 @@ protected FileObject getDirectory(FileObject baseDirectory, Base base, Category
389389
sb.append(getSrcDirName(base));
390390
sb.append("/Controller"); // NOI18N
391391
break;
392+
case COMMAND:
393+
sb.append(getSrcDirName(base));
394+
sb.append("/Command"); // NOI18N
395+
break;
392396
case COMPONENT:
393397
sb.append(getSrcDirName(base));
394398
sb.append("/Controller/Component"); // NOI18N
@@ -446,6 +450,14 @@ protected FileObject getDirectory(FileObject baseDirectory, Base base, Category
446450
sb.append(getSrcDirName(base));
447451
sb.append("/Locale"); // NOI18N
448452
break;
453+
case Mailer:
454+
sb.append(getSrcDirName(base));
455+
sb.append("/Mailer"); // NOI18N
456+
break;
457+
case Middleware:
458+
sb.append(getSrcDirName(base));
459+
sb.append("/Middleware"); // NOI18N
460+
break;
449461
case MODEL:
450462
sb.append(getSrcDirName(base));
451463
sb.append("/Model"); // NOI18N
@@ -454,10 +466,20 @@ protected FileObject getDirectory(FileObject baseDirectory, Base base, Category
454466
sb.append(getSrcDirName(base));
455467
sb.append("/Template/Pages"); // NOI18N
456468
break;
469+
case PLUGINS:
470+
sb.append("plugins"); // NOI18N
471+
break;
472+
case SEEDS:
473+
sb.append("config/Seeds"); // NOI18N
474+
break;
457475
case SHELL:
458476
sb.append(getSrcDirName(base));
459477
sb.append("/Shell"); // NOI18N
460478
break;
479+
case SHELL_HELPER:
480+
sb.append(getSrcDirName(base));
481+
sb.append("/Shell/Helper"); // NOI18N
482+
break;
461483
case TABLE:
462484
sb.append(getSrcDirName(base));
463485
sb.append("/Model/Table"); // NOI18N

src/org/netbeans/modules/php/cake3/modules/CakePHP4ModuleDefault.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ protected FileObject getDirectory(FileObject baseDirectory, CakePHPModule.Base b
5858
sb.append(getSrcDirName(base));
5959
sb.append("/Controller"); // NOI18N
6060
break;
61+
case COMMAND:
62+
sb.append(getSrcDirName(base));
63+
sb.append("/Command"); // NOI18N
64+
break;
6165
case COMPONENT:
6266
sb.append(getSrcDirName(base));
6367
sb.append("/Controller/Component"); // NOI18N
@@ -111,17 +115,35 @@ protected FileObject getDirectory(FileObject baseDirectory, CakePHPModule.Base b
111115
sb.append(getSrcDirName(base));
112116
sb.append("/Locale"); // NOI18N
113117
break;
118+
case Mailer:
119+
sb.append(getSrcDirName(base));
120+
sb.append("/Mailer"); // NOI18N
121+
break;
122+
case Middleware:
123+
sb.append(getSrcDirName(base));
124+
sb.append("/Middleware"); // NOI18N
125+
break;
114126
case MODEL:
115127
sb.append(getSrcDirName(base));
116128
sb.append("/Model"); // NOI18N
117129
break;
118130
case PAGES:
119131
sb.append("templates/Pages"); // NOI18N
120132
break;
133+
case PLUGINS:
134+
sb.append("plugins"); // NOI18N
135+
break;
136+
case SEEDS:
137+
sb.append("config/Seeds"); // NOI18N
138+
break;
121139
case SHELL:
122140
sb.append(getSrcDirName(base));
123141
sb.append("/Shell"); // NOI18N
124142
break;
143+
case SHELL_HELPER:
144+
sb.append(getSrcDirName(base));
145+
sb.append("/Shell/Helper"); // NOI18N
146+
break;
125147
case TABLE:
126148
sb.append(getSrcDirName(base));
127149
sb.append("/Model/Table"); // NOI18N

src/org/netbeans/modules/php/cake3/modules/CakePHPModule.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ public class CakePHPModule {
3939
public static String PROPERTY_CHANGE_CAKE3 = "property-change-cake3"; // NOI18N
4040

4141
public enum Category {
42-
4342
BEHAVIOR("Behavior"), // NOI18N
4443
CONFIG(""), // NOI18N
4544
CONSOLE(""), // NOI18N
4645
CONTROLLER("Controller"), // NOI18N
46+
COMMAND("Command"), // NOI18N
4747
COMPONENT("Component"), // NOI18N
4848
CSS(""), // NOI18N
4949
DIR(""), // NOI18N
@@ -59,8 +59,13 @@ public enum Category {
5959
LAYOUT(""), // NOI18N
6060
LOCALE(""), // NOI18N
6161
MODEL(""), // NOI18N
62+
Mailer("Mailer"), // NOI18N
63+
Middleware("Middleware"), // NOI18N
6264
PAGES(""), // NOI18N
65+
PLUGINS(""), // NOI18N
66+
SEEDS("Seed"), // NOI18N
6367
SHELL("Shell"), // NOI18N
68+
SHELL_HELPER("Helper"), // NOI18N
6469
TABLE("Table"), // NOI18N
6570
TASK("Task"), // NOI18N
6671
TEMPLATE(""), // NOI18N
@@ -84,7 +89,6 @@ public String getSuffix() {
8489
}
8590

8691
public enum Base {
87-
8892
APP,
8993
PLUGIN,
9094
VENDOR,

src/org/netbeans/modules/php/cake3/options/CakePHP3Options.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,23 @@ public class CakePHP3Options {
4747
public static final List<String> ALL_AVAILABLE_NODES = new ArrayList<>(DEFAULT_AVAILABLE_NODES);
4848

4949
static {
50+
ALL_AVAILABLE_NODES.add("Command"); // NOI18N
5051
ALL_AVAILABLE_NODES.add("Element"); // NOI18N
5152
ALL_AVAILABLE_NODES.add("Entity"); // NOI18N
53+
ALL_AVAILABLE_NODES.add("Fixture"); // NOI18N
5254
ALL_AVAILABLE_NODES.add("Form"); // NOI18N
55+
ALL_AVAILABLE_NODES.add("Mailer"); // NOI18N
56+
ALL_AVAILABLE_NODES.add("Middleware"); // NOI18N
5357
ALL_AVAILABLE_NODES.add("Shell"); // NOI18N
58+
ALL_AVAILABLE_NODES.add("Shell/Helper"); // NOI18N
59+
ALL_AVAILABLE_NODES.add("Shell/Task"); // NOI18N
5460
ALL_AVAILABLE_NODES.add("Table"); // NOI18N
5561
ALL_AVAILABLE_NODES.add("Template"); // NOI18N
62+
ALL_AVAILABLE_NODES.add("Template/Cell"); // NOI18N
63+
ALL_AVAILABLE_NODES.add("TestCase"); // NOI18N
64+
ALL_AVAILABLE_NODES.add("View/Cell"); // NOI18N
5665
ALL_AVAILABLE_NODES.add("app/plugins"); // NOI18N
66+
ALL_AVAILABLE_NODES.add("config/Seeds"); // NOI18N
5767
Collections.sort(ALL_AVAILABLE_NODES);
5868
}
5969

src/org/netbeans/modules/php/cake3/ui/logicalview/MVCNodeFactory.java

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,23 @@ public List<Node> keys() {
7373
List<Node> list = new ArrayList<>();
7474
for (Object object : getAvailableCustomNodeList()) {
7575
List<FileObject> rootDirectories = Collections.emptyList();
76+
StringBuilder displayName = new StringBuilder();
7677
if (object instanceof Category) {
77-
rootDirectories = cakeModule.getDirectories(Base.APP, (Category) object, null);
78+
Category category = (Category) object;
79+
switch (category) {
80+
case SHELL_HELPER:
81+
displayName.append(" (Shell)"); // NOI18N
82+
break;
83+
case TEMPLATE_CELL:
84+
displayName.append(" (Template)"); // NOI18N
85+
break;
86+
case VIEW_CELL:
87+
displayName.append(" (View)"); // NOI18N
88+
break;
89+
default:
90+
break;
91+
}
92+
rootDirectories = cakeModule.getDirectories(Base.APP, category, null);
7893
} else if (object == Base.PLUGIN) {
7994
List<FileObject> appDirectories = cakeModule.getDirectories(Base.APP);
8095
if (!appDirectories.isEmpty()) {
@@ -90,9 +105,11 @@ public List<Node> keys() {
90105
FileObject rootDirectory = rootDirectories.get(0);
91106
DataFolder folder = getFolder(rootDirectory);
92107
if (folder != null) {
93-
list.add(new MVCNode(folder, null, rootDirectory.getName()));
108+
displayName.insert(0, rootDirectory.getName());
109+
list.add(new MVCNode(folder, null, displayName.toString()));
94110
}
95111
}
112+
list.sort((o1, o2) -> o1.getDisplayName().compareTo(o2.getDisplayName()));
96113
return list;
97114
}
98115

@@ -107,12 +124,24 @@ private List<Object> getAvailableCustomNodeList() {
107124
case "Controller": // NOI18N
108125
list.add(Category.CONTROLLER);
109126
break;
127+
case "Command": // NOI18N
128+
list.add(Category.COMMAND);
129+
break;
110130
case "Component": // NOI18N
111131
list.add(Category.COMPONENT);
112132
break;
113133
case "View": // NOI18N
114134
list.add(Category.VIEW);
115135
break;
136+
case "View/Cell": // NOI18N
137+
list.add(Category.VIEW_CELL);
138+
break;
139+
case "Mailer": // NOI18N
140+
list.add(Category.Mailer);
141+
break;
142+
case "Middleware": // NOI18N
143+
list.add(Category.Middleware);
144+
break;
116145
case "Model": // NOI18N
117146
list.add(Category.MODEL);
118147
break;
@@ -128,22 +157,40 @@ private List<Object> getAvailableCustomNodeList() {
128157
case "Entity": // NOI18N
129158
list.add(Category.ENTITY);
130159
break;
160+
case "Fixture": // NOI18N
161+
list.add(Category.FIXTURE);
162+
break;
131163
case "Form": // NOI18N
132164
list.add(Category.FORM);
133165
break;
134166
case "Shell": // NOI18N
135167
list.add(Category.SHELL);
136168
break;
169+
case "Shell/Helper": // NOI18N
170+
list.add(Category.SHELL_HELPER);
171+
break;
172+
case "Shell/Task": // NOI18N
173+
list.add(Category.TASK);
174+
break;
137175
case "Table": // NOI18N
138176
list.add(Category.TABLE);
139177
break;
140178
case "Template": // NOI18N
141179
list.add(Category.TEMPLATE);
142180
break;
181+
case "Template/Cell": // NOI18N
182+
list.add(Category.TEMPLATE_CELL);
183+
break;
184+
case "TestCase": // NOI18N
185+
list.add(Category.TEST_CASE);
186+
break;
143187
case "app/plugins": // NOI18N
144188
// XXX this is not proper
145189
list.add(Base.PLUGIN);
146190
break;
191+
case "config/Seeds": // NOI18N
192+
list.add(Category.SEEDS);
193+
break;
147194
default:
148195
break;
149196
}

0 commit comments

Comments
 (0)