Lines 43-50
Link Here
|
43 |
*/ |
43 |
*/ |
44 |
package org.netbeans.modules.autoupdate.cli; |
44 |
package org.netbeans.modules.autoupdate.cli; |
45 |
|
45 |
|
46 |
import java.beans.PropertyChangeEvent; |
|
|
47 |
import java.beans.PropertyChangeListener; |
48 |
import java.io.IOException; |
46 |
import java.io.IOException; |
49 |
import java.io.PrintStream; |
47 |
import java.io.PrintStream; |
50 |
import java.net.MalformedURLException; |
48 |
import java.net.MalformedURLException; |
Lines 62-75
Link Here
|
62 |
import java.util.prefs.Preferences; |
60 |
import java.util.prefs.Preferences; |
63 |
import java.util.regex.Pattern; |
61 |
import java.util.regex.Pattern; |
64 |
import java.util.regex.PatternSyntaxException; |
62 |
import java.util.regex.PatternSyntaxException; |
65 |
import javax.swing.JLabel; |
|
|
66 |
import org.netbeans.api.autoupdate.*; |
63 |
import org.netbeans.api.autoupdate.*; |
67 |
import org.netbeans.api.autoupdate.InstallSupport.Installer; |
64 |
import org.netbeans.api.autoupdate.InstallSupport.Installer; |
68 |
import org.netbeans.api.autoupdate.InstallSupport.Validator; |
65 |
import org.netbeans.api.autoupdate.InstallSupport.Validator; |
69 |
import org.netbeans.api.autoupdate.OperationContainer.OperationInfo; |
66 |
import org.netbeans.api.autoupdate.OperationContainer.OperationInfo; |
70 |
import org.netbeans.api.autoupdate.OperationSupport.Restarter; |
67 |
import org.netbeans.api.autoupdate.OperationSupport.Restarter; |
71 |
import org.netbeans.api.progress.ProgressHandle; |
68 |
import org.netbeans.api.progress.ProgressHandle; |
72 |
import org.netbeans.api.progress.ProgressHandleFactory; |
|
|
73 |
import org.netbeans.api.sendopts.CommandException; |
69 |
import org.netbeans.api.sendopts.CommandException; |
74 |
import org.netbeans.spi.sendopts.Env; |
70 |
import org.netbeans.spi.sendopts.Env; |
75 |
import org.netbeans.spi.sendopts.Option; |
71 |
import org.netbeans.spi.sendopts.Option; |
Lines 78-83
Link Here
|
78 |
import org.openide.util.*; |
74 |
import org.openide.util.*; |
79 |
|
75 |
|
80 |
import static org.netbeans.modules.autoupdate.cli.Bundle.*; |
76 |
import static org.netbeans.modules.autoupdate.cli.Bundle.*; |
|
|
77 |
import org.netbeans.modules.progress.spi.Controller; |
78 |
import org.netbeans.modules.progress.spi.InternalHandle; |
79 |
import org.netbeans.modules.progress.spi.ProgressEvent; |
80 |
import org.netbeans.modules.progress.spi.ProgressUIWorker; |
81 |
|
81 |
|
82 |
/** |
82 |
/** |
83 |
* |
83 |
* |
Lines 335-370
Link Here
|
335 |
return; |
335 |
return; |
336 |
} |
336 |
} |
337 |
env.getOutputStream().println("updates=" + operate.listAll().size()); // NOI18N |
337 |
env.getOutputStream().println("updates=" + operate.listAll().size()); // NOI18N |
338 |
ProgressHandle downloadHandle = ProgressHandleFactory.createHandle("downloading-updates"); // NOI18N |
338 |
ProgressHandle downloadHandle = new CLIProgressHandle("downloading-updates", env); // NOI18N |
339 |
downloadHandle.setInitialDelay(0); |
339 |
downloadHandle.setInitialDelay(0); |
340 |
JLabel downloadDetailLabel = ProgressHandleFactory.createDetailLabelComponent(downloadHandle); |
|
|
341 |
downloadDetailLabel.addPropertyChangeListener(new PropertyChangeListener() { |
342 |
@Override |
343 |
public void propertyChange(PropertyChangeEvent evt) { |
344 |
if ("text".equals(evt.getPropertyName())) { // NOI18N |
345 |
env.getOutputStream().println( |
346 |
Bundle.MSG_Download(evt.getNewValue())); |
347 |
LOG.fine(" ... downloading update " + evt.getNewValue()); |
348 |
} |
349 |
} |
350 |
}); |
351 |
try { |
340 |
try { |
352 |
final Validator res1 = support.doDownload(downloadHandle, null, false); |
341 |
final Validator res1 = support.doDownload(downloadHandle, null, false); |
353 |
|
342 |
|
354 |
Installer res2 = support.doValidate(res1, null); |
343 |
Installer res2 = support.doValidate(res1, null); |
355 |
|
344 |
|
356 |
ProgressHandle installHandle = ProgressHandleFactory.createHandle("installing-updates"); // NOI18N |
345 |
ProgressHandle installHandle = new CLIProgressHandle("installing-updates", env); // NOI18N |
357 |
installHandle.setInitialDelay(0); |
346 |
installHandle.setInitialDelay(0); |
358 |
JLabel installDetailLabel = ProgressHandleFactory.createDetailLabelComponent(installHandle); |
|
|
359 |
installDetailLabel.addPropertyChangeListener(new PropertyChangeListener() { |
360 |
@Override |
361 |
public void propertyChange(PropertyChangeEvent evt) { |
362 |
if ("text".equals(evt.getPropertyName())) { |
363 |
env.getOutputStream().println(evt.getNewValue()); |
364 |
LOG.fine(" ... installing update " + evt.getNewValue()); |
365 |
} |
366 |
} |
367 |
}); |
368 |
Restarter res3 = support.doInstall(res2, installHandle); |
347 |
Restarter res3 = support.doInstall(res2, installHandle); |
369 |
if (res3 != null) { |
348 |
if (res3 != null) { |
370 |
support.doRestart(res3, null); |
349 |
support.doRestart(res3, null); |
Lines 445-479
Link Here
|
445 |
} |
424 |
} |
446 |
try { |
425 |
try { |
447 |
env.getOutputStream().println("modules=" + operate.listAll().size()); // NOI18N |
426 |
env.getOutputStream().println("modules=" + operate.listAll().size()); // NOI18N |
448 |
ProgressHandle downloadHandle = ProgressHandleFactory.createHandle("downloading-modules"); // NOI18N |
427 |
ProgressHandle downloadHandle = new CLIProgressHandle("downloading-modules", env); // NOI18N |
449 |
downloadHandle.setInitialDelay(0); |
428 |
downloadHandle.setInitialDelay(0); |
450 |
JLabel downloadDetailLabel = ProgressHandleFactory.createDetailLabelComponent(downloadHandle); |
|
|
451 |
downloadDetailLabel.addPropertyChangeListener(new PropertyChangeListener() { |
452 |
@Override |
453 |
public void propertyChange(PropertyChangeEvent evt) { |
454 |
if ("text".equals(evt.getPropertyName())) { // NOI18N |
455 |
env.getOutputStream().println( |
456 |
Bundle.MSG_Download(evt.getNewValue())); |
457 |
LOG.fine(" ... downloading module " + evt.getNewValue()); |
458 |
} |
459 |
} |
460 |
}); |
461 |
final Validator res1 = support.doDownload(downloadHandle, null, false); |
429 |
final Validator res1 = support.doDownload(downloadHandle, null, false); |
462 |
|
430 |
|
463 |
Installer res2 = support.doValidate(res1, null); |
431 |
Installer res2 = support.doValidate(res1, null); |
464 |
|
432 |
|
465 |
ProgressHandle installHandle = ProgressHandleFactory.createHandle("installing-modules"); // NOI18N |
433 |
ProgressHandle installHandle = new CLIProgressHandle("installing-modules", env); // NOI18N |
466 |
installHandle.setInitialDelay(0); |
434 |
installHandle.setInitialDelay(0); |
467 |
JLabel installDetailLabel = ProgressHandleFactory.createDetailLabelComponent(installHandle); |
|
|
468 |
installDetailLabel.addPropertyChangeListener(new PropertyChangeListener() { |
469 |
@Override |
470 |
public void propertyChange(PropertyChangeEvent evt) { |
471 |
if ("text".equals(evt.getPropertyName())) { // NOI18N |
472 |
env.getOutputStream().println(evt.getNewValue()); |
473 |
LOG.fine(" ... installing module " + evt.getNewValue()); |
474 |
} |
475 |
} |
476 |
}); |
477 |
Restarter res3 = support.doInstall(res2, installHandle); |
435 |
Restarter res3 = support.doInstall(res2, installHandle); |
478 |
if (res3 != null) { |
436 |
if (res3 != null) { |
479 |
support.doRestart(res3, null); |
437 |
support.doRestart(res3, null); |
Lines 537-540
Link Here
|
537 |
return res; |
495 |
return res; |
538 |
} |
496 |
} |
539 |
|
497 |
|
|
|
498 |
private class CLIProgressHandle extends ProgressHandle { |
499 |
public CLIProgressHandle(String displayName, Env env) { |
500 |
super(new CLIInternalHandle(displayName, env)); |
540 |
} |
501 |
} |
|
|
502 |
} |
503 |
|
504 |
private class CLIInternalHandle extends InternalHandle { |
505 |
public CLIInternalHandle(String displayName, Env env) { |
506 |
super(displayName, null, false); |
507 |
setController(new Controller(new CLIProgressUIWorker(env))); |
508 |
} |
509 |
} |
510 |
|
511 |
private class CLIProgressUIWorker implements ProgressUIWorker { |
512 |
private final Env env; |
513 |
public CLIProgressUIWorker(Env env) { |
514 |
this.env = env; |
515 |
} |
516 |
@Override |
517 |
public void processProgressEvent(ProgressEvent event) { |
518 |
env.getOutputStream().println(event.getMessage()); |
519 |
} |
520 |
@Override |
521 |
public void processSelectedProgressEvent(ProgressEvent event) { |
522 |
env.getOutputStream().println(event.getMessage()); |
523 |
} |
524 |
} |
525 |
|
526 |
} |