anchor.diff:      actionManager.registerAction(new PubGetAction(this));
       actionManager.registerAction(new PubUpgradeAction(this));
       actionManager.registerAction(new BowerGetAction(this));
  +    actionManager.registerAction(new BowerUpgradeAction(this));
       actionManager.registerAction(new ApplicationRunAction(this));
       actionManager.registerAction(new ApplicationPushAction(this, getDialogElement('#pushDialog')));
       actionManager.registerAction(new CompileDartAction(this));
  
positive.code: 
    bool appliesTo(list) => list.length == 1 && _appliesTo(list.first);
  
    Job _createJob(ws.Project project);
  
    bool _appliesTo(ws.Resource resource);
  }
  
  class PubGetAction extends PackageGetAction {
    PubGetAction(Spark spark) : super(spark, "pub-get", "Pub Get");
  
    Job _createJob(ws.Project project) => new PubGetJob(spark, project);
  
    bool _appliesTo(ws.Resource resource) =>
        spark.pubManager.properties.isPackageResource(resource);
  }
  
  class BowerGetAction extends PackageGetAction {
    BowerGetAction(Spark spark) : super(spark, "bower-install", "Bower Install");
  
    Job _createJob(ws.Project project) => new BowerGetJob(spark, project);
  
    bool _appliesTo(ws.Resource resource) =>
        spark.bowerManager.properties.isPackageResource(resource);
  }
  
  class PubUpgradeAction extends SparkAction implements ContextAction {
    PubUpgradeAction(Spark spark) : super(spark, "pub-upgrade", "Pub Upgrade");
  
    void _invoke([context]) {
      ws.Resource resource;
  
      if (context == null) {
        resource = spark.focusManager.currentResource;
      } else {
        resource = context.first;
      }
  
      spark.jobManager.schedule(new PubUpgradeJob(spark, resource.project));
    }
  
    String get category => 'application';
  
    bool appliesTo(list) => list.length == 1 && _appliesTo(list.first);
  
    bool _appliesTo(ws.Resource resource) =>
        spark.pubManager.properties.isPackageResource(resource);
  }
  
  /**
  
negative.code:       super(spark, project, 'bower install');
  
    Future _run() => _spark.bowerManager.installPackages(_project);
  }
  
  class BowerUpgradeJob extends PackageManagementJob {
    BowerUpgradeJob(Spark spark, ws.Project project) :
        super(spark, project, 'bower upgrade');
  
    Future _run() => _spark.bowerManager.upgradePackages(_project);
  }
  
  class CompileDartJob extends Job {
  