Scala Installations support stage II : choose your own installation

This is here to help advance review for the [second phase](https://docs.google.com/a/typesafe.com/document/d/10YvZQaPGdRepMwEaMTMU_-Ij-_y3Gg8ui2Usgv1tIsk/edit?usp=sharing) of the Scala Installations support 

The basic functionality is here, meaning you can choose a scala installation instead of a source level, and add your own scala installation as *just a bunch of jars*. A few missing items that will be added quickly:
- [x] ~~Directory installation tests (@skyluc)~~
- [x] ~~Scala Installation switches tests (@huitseeker)~~
- [x] ~~Classpath Container edition window should set the initially selected container to the current one~~
- [x] ~~Classpath Container edition should prohibit edition and redirect to compiler settings if both compiler and library containers are on classpath~~
- [x] ~~in Compiler Settings, Scala Installation combo field selection should update the Apply button and the dirtiness.~~
- [x] ~~A project with differently-versioned libraries ("cross-compiled" case of the classpath check, e.g. sbteclipse) should offer a Scala installation preference change.~~
- [x] ~~A project with the wrong scala-library ("previous version" case of the classpath check, currently suggesting `-Xsource`) should offer a Scala installation preference change~~
- [x] ~~Detection of a no-longer-valid scala installation (currently falling back to desired source level or platform) should offer a Scala Installation preference change.~~
- [x] ~~Change the "Installed Scalas" name on the workspace-wide install page to smoething else~~
- [x] ~~Adapt w.r.t  https://github.com/scala-ide/scala-ide/pull/733~~


https://github.com/huitseeker/scala-ide/commit/6a83af68a0c046050b8853fea1da390919a4f1b1#diff-e07697562aaf418fb401446bc6db8896R67


On Wed, Jul 9, 2014 at 10:49 AM, Iulian Dragos <notifications@github.com>
wrote:

> In
> org.scala-ide.sdt.core/src/org/scalaide/ui/internal/handlers/BadScalaInstallationPromptStatusHandler.scala:
>
> >          Array(IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL),
> >          1)
> >        dialog.open()
> >        val buttonId = dialog.getReturnCode()
> > -      if (buttonId == IDialogConstants.OK_ID) continuation.get trySuccess {() => Utils.tryExecute(project.setDesiredSourceLevel(ScalaVersion(previousScalaVer), "Classpath check dialog tasked with restoring compatibility")) }
> > -      else continuation.get trySuccess { () => }
> > +      if (buttonId == IDialogConstants.OK_ID) {
> > +        val installationChoiceList = ScalaInstallationChoiceListDialog(shell, project)
> > +        val rCode = installationChoiceList.open()
> > +        val res = installationChoiceList.getInstallationChoice()
> > +        if (res.isDefined) continuation.get trySuccess { () => Utils.tryExecute(project.projectSpecificStorage.setValue(SettingConverterUtil.SCALA_DESIRED_INSTALLATION, res.get.toString())) }
>
> Worth a comment.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/scala-ide/scala-ide/pull/731/files#r14699097>.
>



-- 
François Garillot