Skip to content

Commit 90a0316

Browse files
committed
Merge branch 'logicalview-feature' into nb82
2 parents dd7559a + 458a6bb commit 90a0316

File tree

10 files changed

+750
-5
lines changed

10 files changed

+750
-5
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ Support them using `.cake` file.
7878
- Support for a `.cake` file
7979
- Resolve mime-types for a ctp extension and a `.cake` file
8080
- Show a parent directory name of a ctp file in the multi-row tabs(see Tools > Options > Appearance > Document Tabs) e.g. `home.ctp [Pages]`
81+
- Custom nodes
8182

8283
### Code Completion
8384

@@ -241,5 +242,10 @@ Just run `cake server`. If you want to set details, please use `Run Configuratio
241242
Please run this action after you changed the `.cake` file or you updated the version of CakePHP.
242243
Refresh the version number and category paths.
243244

245+
### Custom nodes
246+
247+
You can add some directories(nodes) under the your project tree. Controller, Model, e.t.c. are shown by default.
248+
If you want to hide/show them, please change the options.(Tools > Options > PHP > Frameworks and Tools > CakePHP3 > Custom nodes)
249+
244250
## License
245251
[Common Development and Distribution License (CDDL) v1.0 and GNU General Public License (GPL) v2](http://netbeans.org/cddl-gplv2.html)

nbproject/genfiles.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
build.xml.data.CRC32=e8c34427
1+
build.xml.data.CRC32=26a6082c
22
build.xml.script.CRC32=99224ca9
33
build.xml.stylesheet.CRC32=a56c6a5b@2.72.1
44
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
55
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
6-
nbproject/build-impl.xml.data.CRC32=e8c34427
6+
nbproject/build-impl.xml.data.CRC32=26a6082c
77
nbproject/build-impl.xml.script.CRC32=3e0b9a07
88
nbproject/build-impl.xml.stylesheet.CRC32=238281d1@2.72.1

nbproject/project.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,15 @@
243243
<implementation-version/>
244244
</run-dependency>
245245
</dependency>
246+
<dependency>
247+
<code-name-base>org.netbeans.modules.projectapi</code-name-base>
248+
<build-prerequisite/>
249+
<compile-dependency/>
250+
<run-dependency>
251+
<release-version>1</release-version>
252+
<specification-version>1.66.1</specification-version>
253+
</run-dependency>
254+
</dependency>
246255
<dependency>
247256
<code-name-base>org.netbeans.modules.projectuiapi</code-name-base>
248257
<build-prerequisite/>
@@ -252,6 +261,15 @@
252261
<specification-version>1.78.1.8</specification-version>
253262
</run-dependency>
254263
</dependency>
264+
<dependency>
265+
<code-name-base>org.netbeans.modules.projectuiapi.base</code-name-base>
266+
<build-prerequisite/>
267+
<compile-dependency/>
268+
<run-dependency>
269+
<release-version>1</release-version>
270+
<specification-version>1.85.1.9</specification-version>
271+
</run-dependency>
272+
</dependency>
255273
<dependency>
256274
<code-name-base>org.netbeans.swing.tabcontrol</code-name-base>
257275
<build-prerequisite/>
@@ -260,6 +278,14 @@
260278
<specification-version>1.54.1</specification-version>
261279
</run-dependency>
262280
</dependency>
281+
<dependency>
282+
<code-name-base>org.openide.actions</code-name-base>
283+
<build-prerequisite/>
284+
<compile-dependency/>
285+
<run-dependency>
286+
<specification-version>6.39.1</specification-version>
287+
</run-dependency>
288+
</dependency>
263289
<dependency>
264290
<code-name-base>org.openide.awt</code-name-base>
265291
<build-prerequisite/>

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,12 @@
4141
*/
4242
package org.netbeans.modules.php.cake3.modules;
4343

44+
import java.beans.PropertyChangeEvent;
45+
import java.beans.PropertyChangeListener;
46+
import java.beans.PropertyChangeSupport;
4447
import java.util.List;
4548
import java.util.Set;
49+
import javax.swing.SwingUtilities;
4650
import org.netbeans.api.annotations.common.CheckForNull;
4751
import org.netbeans.modules.php.api.phpmodule.PhpModule;
4852
import org.netbeans.modules.php.cake3.CakePHP3FrameworkProvider;
@@ -57,6 +61,9 @@
5761
*/
5862
public class CakePHP3Module {
5963

64+
private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
65+
public static String PROPERTY_CHANGE_CAKE3 = "property-change-cake3"; // NOI18N
66+
6067
public enum Category {
6168

6269
BEHAVIOR("Behavior"), // NOI18N
@@ -225,4 +232,32 @@ public Dotcake getDotcake() {
225232
return impl.getDotcake();
226233
}
227234

235+
public void addPropertyChangeListener(PropertyChangeListener listener) {
236+
propertyChangeSupport.addPropertyChangeListener(listener);
237+
}
238+
239+
public void removePropertyChangeListener(PropertyChangeListener listener) {
240+
propertyChangeSupport.removePropertyChangeListener(listener);
241+
}
242+
243+
public void notifyPropertyChanged(PropertyChangeEvent event) {
244+
if (PROPERTY_CHANGE_CAKE3.equals(event.getPropertyName())) {
245+
SwingUtilities.invokeLater(new Runnable() {
246+
247+
@Override
248+
public void run() {
249+
refreshNodes();
250+
// reset();
251+
}
252+
});
253+
}
254+
}
255+
256+
// void reset() {
257+
// CakePHP3ModuleFactory.getInstance().reset(this);
258+
// }
259+
void refreshNodes() {
260+
propertyChangeSupport.firePropertyChange(PROPERTY_CHANGE_CAKE3, null, null);
261+
}
262+
228263
}

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@
4141
*/
4242
package org.netbeans.modules.php.cake3.options;
4343

44+
import java.util.ArrayList;
45+
import java.util.Arrays;
46+
import java.util.List;
4447
import java.util.prefs.Preferences;
48+
import org.netbeans.modules.php.api.util.StringUtils;
4549
import org.netbeans.modules.php.composer.api.Composer;
4650
import org.openide.util.NbPreferences;
4751

@@ -53,8 +57,23 @@ public class CakePHP3Options {
5357

5458
private static final String PREFERENCES_PATH = "cakephp3"; // NOI18N
5559
private static final String EXTERNAL_DRAG_AND_DROP = "external.drop"; // NOI18N
60+
private static final String AVAILABLE_CUSTOM_NODES = "available-custom-nodes"; // NOI18N
5661
private static final String COMPOSER_PREFERENCES_PATH = "composer"; // NOI18N
5762
private static final CakePHP3Options INSTANCE = new CakePHP3Options();
63+
public static final List<String> DEFAULT_AVAILABLE_NODES = Arrays.asList(
64+
"Console", // NOI18N
65+
"Controller", // NOI18N
66+
"Component", // NOI18N
67+
"Model", // NOI18N
68+
"View", // NOI18N
69+
"Helper", // NOI18N
70+
"webroot" // NOI18N
71+
);
72+
public static final List<String> ALL_AVAILABLE_NODES = new ArrayList<>(DEFAULT_AVAILABLE_NODES);
73+
74+
static {
75+
ALL_AVAILABLE_NODES.add("app/plugins"); // NOI18N
76+
}
5877

5978
private CakePHP3Options() {
6079
}
@@ -75,6 +94,18 @@ public String getComposerPath() {
7594
return getComposerPreferences().get("composer.path", ""); // NOI18N
7695
}
7796

97+
public List<String> getAvailableCustomNodes() {
98+
String nodes = getPreferences().get(AVAILABLE_CUSTOM_NODES, null);
99+
if (nodes == null) {
100+
return DEFAULT_AVAILABLE_NODES;
101+
}
102+
return StringUtils.explode(nodes, "|"); // NOI18N
103+
}
104+
105+
public void setAvailableCustomNodes(List<String> nodes) {
106+
getPreferences().put(AVAILABLE_CUSTOM_NODES, StringUtils.implode(nodes, "|")); // NOI18N
107+
}
108+
78109
private Preferences getPreferences() {
79110
return NbPreferences.forModule(CakePHP3Options.class).node(PREFERENCES_PATH);
80111
}

0 commit comments

Comments
 (0)