Skip to content

Commit 29ec258

Browse files
committed
Improve the updateCommands method
- Show a current command in a progress bar.
1 parent f4c23a7 commit 29ec258

2 files changed

Lines changed: 32 additions & 28 deletions

File tree

src/org/netbeans/modules/php/wordpress/commands/WordPressCli.java

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import org.netbeans.api.extexecution.base.input.InputProcessor;
6464
import org.netbeans.api.extexecution.base.input.InputProcessors;
6565
import org.netbeans.api.extexecution.base.input.LineProcessor;
66+
import org.netbeans.api.progress.ProgressHandle;
6667
import org.netbeans.modules.php.api.executable.InvalidPhpExecutableException;
6768
import org.netbeans.modules.php.api.executable.PhpExecutable;
6869
import org.netbeans.modules.php.api.executable.PhpExecutableValidator;
@@ -366,28 +367,35 @@ public List<FrameworkCommand> getCommands(boolean isForce) {
366367
return COMMANDS_CACHE;
367368
}
368369

370+
@NbBundle.Messages("WordPressCli.update.command.progress=Updating wp-cli commands...")
369371
public void updateCommands() {
370-
long startTime = System.currentTimeMillis();
371-
COMMANDS_CACHE.clear();
372-
getCommands(Collections.<String>emptyList(), COMMANDS_CACHE);
373-
if (COMMANDS_CACHE.isEmpty()) {
374-
NotifyDescriptor.Message message = new NotifyDescriptor.Message(Bundle.WordPressCli_commands_empty(), NotifyDescriptor.WARNING_MESSAGE);
375-
DialogDisplayer.getDefault().notify(message);
376-
} else {
377-
WordPressCliCommandListXmlBuilder builder = new WordPressCliCommandListXmlBuilder();
378-
builder.build(COMMANDS_CACHE);
379-
String commadlist = builder.asText();
380-
if (!StringUtils.isEmpty(commadlist)) {
381-
WordPressOptions.getInstance().setWpCliCommandList(commadlist);
372+
ProgressHandle handle = ProgressHandle.createHandle(Bundle.WordPressCli_update_command_progress());
373+
try {
374+
handle.start();
375+
long startTime = System.currentTimeMillis();
376+
COMMANDS_CACHE.clear();
377+
getCommands(Collections.<String>emptyList(), COMMANDS_CACHE, handle);
378+
if (COMMANDS_CACHE.isEmpty()) {
379+
NotifyDescriptor.Message message = new NotifyDescriptor.Message(Bundle.WordPressCli_commands_empty(), NotifyDescriptor.WARNING_MESSAGE);
380+
DialogDisplayer.getDefault().notify(message);
381+
} else {
382+
WordPressCliCommandListXmlBuilder builder = new WordPressCliCommandListXmlBuilder();
383+
builder.build(COMMANDS_CACHE);
384+
String commadlist = builder.asText();
385+
if (!StringUtils.isEmpty(commadlist)) {
386+
WordPressOptions.getInstance().setWpCliCommandList(commadlist);
387+
}
382388
}
389+
long endTime = System.currentTimeMillis();
390+
LOGGER.log(INFO, "Update Commands: took {0}ms", endTime - startTime); // NOI18N
391+
LOGGER.log(INFO, "{0} wp-cli commands.", COMMANDS_CACHE.size()); // NOI18N
392+
} finally {
393+
handle.finish();
383394
}
384-
long endTime = System.currentTimeMillis();
385-
LOGGER.log(INFO, "Update Commands: took {0}ms", endTime - startTime); // NOI18N
386-
LOGGER.log(INFO, "{0} wp-cli commands.", COMMANDS_CACHE.size()); // NOI18N
387395
}
388396

389397
// XXX get help later?
390-
private void getCommands(List<String> subcommands, List<FrameworkCommand> commands) {
398+
private void getCommands(List<String> subcommands, List<FrameworkCommand> commands, ProgressHandle handle) {
391399
ArrayList<String> params = new ArrayList<>(subcommands.size() + 1);
392400
params.add(HELP_COMMAND);
393401
params.addAll(subcommands);
@@ -409,6 +417,9 @@ private void getCommands(List<String> subcommands, List<FrameworkCommand> comman
409417
boolean isSubcommands = false;
410418
boolean isFirstEmpty = false;
411419
LOGGER.log(FINE, "{0} WP Command", StringUtils.implode(subcommands, " ")); // NOI18N
420+
if (handle != null) {
421+
handle.progress(StringUtils.implode(subcommands, " ")); // NOI18N
422+
}
412423
for (String line : lines) {
413424
if (isSubcommands) {
414425
if (StringUtils.isEmpty(line)) {
@@ -440,7 +451,7 @@ private void getCommands(List<String> subcommands, List<FrameworkCommand> comman
440451
commands.add(new WordPressCliCommand(nextSubcommands.toArray(new String[]{}), description, help)); // NOI18N
441452

442453
// get commands recursively
443-
getCommands(nextSubcommands, commands);
454+
getCommands(nextSubcommands, commands, handle);
444455
}
445456

446457
if (line.toLowerCase().startsWith("subcommands")) { // NOI18N

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

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -654,20 +654,13 @@ void store() {
654654
}
655655
}
656656

657-
@NbBundle.Messages("WordPressOptionsPanel.update.command.progress=Updating wp-cli command list")
658657
private void updateCommandListXml() {
659658
RP.post(() -> {
660-
ProgressHandle handle = ProgressHandle.createHandle(Bundle.WordPressOptionsPanel_update_command_progress());
661659
try {
662-
handle.start();
663-
try {
664-
WordPressCli wpCli = WordPressCli.getDefault(false);
665-
wpCli.updateCommands();
666-
} catch (InvalidPhpExecutableException ex) {
667-
LOGGER.log(Level.WARNING, ex.getLocalizedMessage());
668-
}
669-
} finally {
670-
handle.finish();
660+
WordPressCli wpCli = WordPressCli.getDefault(false);
661+
wpCli.updateCommands();
662+
} catch (InvalidPhpExecutableException ex) {
663+
LOGGER.log(Level.WARNING, ex.getLocalizedMessage());
671664
}
672665
});
673666
}

0 commit comments

Comments
 (0)