/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust . lang . refactor ing . extract Function Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . ComboBox Ċ import Ġcom . intellij . openapi . ui . Dialog Wrapper Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . refactor ing . ui . Name Suggestions Field Ċ import Ġcom . intellij . ui . components . dialog Ċ import Ġcom . intellij . ui . layout . panel Ċ import Ġjava . awt . Dimension Ċ Ċ private Ġfun Ġupdate Config ( ĊĠĠĠ Ġconfig : ĠRs Extract Function Config , ĊĠĠĠ Ġfunction Name : ĠName Suggestions Field , ĊĠĠĠ Ġvisibility Box : ĠCombo Box < String > Ċ ) Ġ{ ĊĠĠĠ Ġconfig . name Ġ= Ġfunction Name . enter ed Name ĊĠĠĠ Ġconfig . visibility Level Public Ġ= Ġvisibility Box . selected Item Ġ== Ġ" Public " Ċ } Ċ Ċ fun Ġextract Function Dialog ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġfile : ĠPsi File , ĊĠĠĠ Ġconfig : ĠRs Extract Function Config Ċ ) Ġ{ ĊĠĠĠ Ġval Ġfunction Name Field Ġ= ĠName Suggestions Field ( project ) ĊĊĠĠĠ Ġval Ġvisibility Box Ġ= ĠCombo Box < String >() ĊĠĠĠ Ġwith ( visibility Box ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Item (" Public ") ĊĠĠĠĠĠĠĠ Ġadd Item (" Private ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġvisibility Box . selected Item Ġ= Ġ" Private " ĊĠĠĠ Ġval Ġsignature Component Ġ= ĠRs Signature Component ( config . signature , Ġproject ) ĊĠĠĠ Ġsignature Component . minimum Size Ġ= ĠDimension ( 3 0 0 , Ġ 3 0 ) ĊĊĠĠĠ Ġvisibility Box . addActionListener Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Config ( config , Ġfunction Name Field , Ġvisibility Box ) ĊĠĠĠĠĠĠĠ Ġsignature Component . set Signature ( config . signature ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfunction Name Field . addData Changed Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Config ( config , Ġfunction Name Field , Ġvisibility Box ) ĊĠĠĠĠĠĠĠ Ġsignature Component . set Signature ( config . signature ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpanel Ġ= Ġpanel Ġ{ ĊĠĠĠĠĠĠĠ Ġrow (" Name :") Ġ{ Ġfunction Name Field () Ġ} ĊĠĠĠĠĠĠĠ Ġrow (" Visibility :") Ġ{ Ġvisibility Box () Ġ} ĊĠĠĠĠĠĠĠ Ġrow (" Signature :") Ġ{ Ġsignature Component () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdialog ( ĊĠĠĠĠĠĠĠ Ġ" Extract ĠFunction ", ĊĠĠĠĠĠĠĠ Ġpanel , ĊĠĠĠĠĠĠĠ Ġres izable Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġfocused Component Ġ= Ġfunction Name Field , ĊĠĠĠĠĠĠĠ Ġok Action Enabled Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġproject Ġ= Ġproject , ĊĠĠĠĠĠĠĠ Ġparent Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġerror Text Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġmod ality Ġ= ĠDialog Wrapper . Ide Modal ity Type . IDE ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Config ( config , Ġfunction Name Field , Ġvisibility Box ) ĊĠĠĠĠĠĠĠ ĠRs Extract Function Handler Action ( project , Ġfile , Ġconfig ). execute () ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ}. show () Ċ } Ċ