Skip to content

Commit 89a2d13

Browse files
committed
Show Options if wp-cli path is not set when Run Command actions is run #64
1 parent 0ff5562 commit 89a2d13

File tree

3 files changed

+32
-13
lines changed

3 files changed

+32
-13
lines changed

src/org/netbeans/modules/php/wordpress/WordPressActionsExtender.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,14 @@
4444
import java.util.ArrayList;
4545
import java.util.List;
4646
import javax.swing.Action;
47-
import org.netbeans.modules.php.api.util.StringUtils;
4847
import org.netbeans.modules.php.spi.framework.PhpModuleActionsExtender;
4948
import org.netbeans.modules.php.spi.framework.actions.RunCommandAction;
50-
import org.netbeans.modules.php.wordpress.commands.WordPressCli;
5149
import org.netbeans.modules.php.wordpress.ui.actions.CreateChildThemeAction;
5250
import org.netbeans.modules.php.wordpress.ui.actions.CreatePermalinkHtaccessAction;
5351
import org.netbeans.modules.php.wordpress.ui.actions.CreatePluginAction;
5452
import org.netbeans.modules.php.wordpress.ui.actions.CreateThemeAction;
5553
import org.netbeans.modules.php.wordpress.ui.actions.RefreshCodeCompletionAction;
5654
import org.netbeans.modules.php.wordpress.ui.actions.WordPressRunCommandAction;
57-
import org.netbeans.modules.php.wordpress.ui.options.WordPressOptions;
5855
import org.openide.util.NbBundle;
5956

6057
/**
@@ -71,15 +68,7 @@ public String getMenuName() {
7168

7269
@Override
7370
public RunCommandAction getRunCommandAction() {
74-
// If wp-cli path is invalid, run command action is not added to context menu.
75-
String wpCliPath = WordPressOptions.getInstance().getWpCliPath();
76-
if (StringUtils.isEmpty(wpCliPath)) {
77-
return null;
78-
}
79-
String error = WordPressCli.validate(wpCliPath);
80-
if (error != null) {
81-
return null;
82-
}
71+
// wp-cli path is validated when the Run Command action is run
8372
return WordPressRunCommandAction.getInstance();
8473
}
8574

src/org/netbeans/modules/php/wordpress/ui/actions/WordPressRunCommandAction.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,16 @@
4141
*/
4242
package org.netbeans.modules.php.wordpress.ui.actions;
4343

44+
import org.netbeans.api.options.OptionsDisplayer;
4445
import org.netbeans.modules.php.api.phpmodule.PhpModule;
46+
import org.netbeans.modules.php.api.util.StringUtils;
4547
import org.netbeans.modules.php.spi.framework.actions.RunCommandAction;
4648
import org.netbeans.modules.php.wordpress.WordPressPhpProvider;
49+
import org.netbeans.modules.php.wordpress.commands.WordPressCli;
50+
import org.netbeans.modules.php.wordpress.ui.options.WordPressOptions;
4751
import org.netbeans.modules.php.wordpress.util.WPUtils;
52+
import org.openide.DialogDisplayer;
53+
import org.openide.NotifyDescriptor;
4854
import org.openide.util.NbBundle;
4955

5056
/**
@@ -54,6 +60,7 @@
5460
public class WordPressRunCommandAction extends RunCommandAction {
5561

5662
private static final WordPressRunCommandAction INSTANCE = new WordPressRunCommandAction();
63+
private static final long serialVersionUID = 158739462398606689L;
5764

5865
private WordPressRunCommandAction() {
5966
}
@@ -67,6 +74,16 @@ public void actionPerformed(PhpModule phpModule) {
6774
if (!WPUtils.isWP(phpModule)) {
6875
return;
6976
}
77+
String wpCliPath = WordPressOptions.getInstance().getWpCliPath();
78+
if (StringUtils.isEmpty(wpCliPath)) {
79+
openOptionsPanel(Bundle.WordPressRunCommandAction_message_no_wp_cli());
80+
return;
81+
}
82+
String error = WordPressCli.validate(wpCliPath);
83+
if (error != null) {
84+
openOptionsPanel(Bundle.WordPressRunCommandAction_message_invalid_wp_cli());
85+
return;
86+
}
7087
WordPressPhpProvider.getInstance().getFrameworkCommandSupport(phpModule).openPanel();
7188
}
7289

@@ -79,4 +96,17 @@ protected String getFullName() {
7996
return Bundle.WordPressRunCommandAction_name(getPureName());
8097
}
8198

99+
@NbBundle.Messages({
100+
"WordPressRunCommandAction.message.no.wp-cli=Please set wp-cli path.",
101+
"WordPressRunCommandAction.message.invalid.wp-cli=Please set valid wp-cli path."
102+
})
103+
private void openOptionsPanel(String errorMessage) {
104+
NotifyDescriptor.Message message = new NotifyDescriptor.Message(
105+
errorMessage,
106+
NotifyDescriptor.ERROR_MESSAGE
107+
);
108+
DialogDisplayer.getDefault().notify(message);
109+
OptionsDisplayer.getDefault().open(WordPressOptions.getOptionsPath());
110+
}
111+
82112
}

src/org/netbeans/modules/php/wordpress/ui/options/WordPressOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ private WordPressOptions() {
7070
}
7171

7272
public static String getOptionsPath() {
73-
return UiUtils.OPTIONS_PATH + "/" + WordPressOptions.OPTIONS_SUBPATH; // NOI18N
73+
return UiUtils.FRAMEWORKS_AND_TOOLS_OPTIONS_PATH + "/" + WordPressOptions.OPTIONS_SUBPATH; // NOI18N
7474
}
7575

7676
public static WordPressOptions getInstance() {

0 commit comments

Comments
 (0)