sourcecamembert::PluginCommands.fan

// History:
//  Jan 29 13 tcolar Creation
//

using fwt

**
** PluginCommands
** Implements plugin commands
**
const mixin PluginCommands
{
  ** Build the current project
  virtual Cmd build() {NotImplementedCmd{}}

  ** Build the project group (if the project is part of a parent project)
  virtual Cmd buildGroup() {NotImplementedCmd{}}

  ** Run the project
  virtual Cmd run() {NotImplementedCmd{}}

  ** Run the current file/item we are on
  virtual Cmd runSingle() {NotImplementedCmd{}}

  ** Build and run the current project
  virtual Cmd buildAndRun() {NotImplementedCmd{}}

  ** Build and run the current project
  virtual Cmd buildAndRunSingle() {NotImplementedCmd{}}

  ** Test the current project
  virtual Cmd test() {NotImplementedCmd{}}

  ** Test the current file/item we are on
  virtual Cmd testSingle() {NotImplementedCmd{}}
}

internal const class NotImplementedCmd : Cmd
{
  new make(|This| f) {f(this)}
  override const Str name := "NotImplemented"
  override Void invoke(Event event)
  {
    Desktop.callAsync |->|{
      Dialog.openInfo(frame, "This command is not implemented for this plugin.")
    }
  }
}