/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust . cargo . project . model Ċ Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . file Chooser . FileChooser Descriptor Ċ import Ġcom . intellij . openapi . file Chooser . FileChooser Factory Ċ import Ġcom . intellij . openapi . ui . Messages Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġorg . rust . cargo . project . model . Cargo Project Chooser Descriptor . with File Filter Ċ import Ġorg . rust . cargo . toolchain . Rust Tool chain Ċ import Ġorg . rust . openapi ext . path As Path Ċ import Ġorg . rust . openapi ext . save All Documents ĊĊ Ċ class ĠAttach Cargo Project Action Ġ: ĠC argo Project Action Base () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġe . project Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġsave All Documents () ĊĠĠĠĠĠĠĠ Ġval Ġcho oser Ġ= ĠFile Chooser Factory . getInstance (). create FileChooser ( Cargo Project Chooser Descriptor , Ġproject , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġcho oser . choose ( project ). single OrNull () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcargo Tom l Ġ= Ġif Ġ( file . isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . find Child ( Rust Tool chain . C ARG O _ TO ML ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! project . cargo Projects . attach Cargo Project ( cargo Tom l . path As Path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessages . show Error Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" This ĠC argo Ġpackage Ġis Ġalready Ġa Ġpart Ġof Ġan Ġattached Ġworkspace .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unable Ġto Ġattach ĠC argo Ġproject " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠC argo Project Chooser Descriptor Ġ: ĠFile Chooser Descriptor ( true , Ġtrue , Ġfalse , Ġfalse , Ġfalse , Ġfalse ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġfilter Ġis Ġnot Ġused Ġfor Ġdirectories ĊĠĠĠĠĠĠĠ Ġwith File Filter Ġ{ Ġit . name Ġ== ĠRust Tool chain . C ARG O _ TO ML Ġ} ĊĠĠĠĠĠĠĠ Ġwith Title (" Select ĠC argo . toml ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis File Selectable ( file : ĠVirtual File ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . isFile Selectable ( file ) Ġ&& Ġ(! file . isDirectory Ġ|| Ġfile . find Child ( Rust Tool chain . C ARG O _ TO ML ) Ġ!= Ġnull ) ĊĠĠĠ Ġ} Ċ } Ċ