// ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . ide . project View . actions Ċ Ċ import Ġcom . intellij . ide . Java Ui Bundle Ċ import Ġcom . intellij . ide . project View . impl . ModuleName Validator Ċ import Ġcom . intellij . openapi . file Chooser . FileChooser Descriptor Factory Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Dialog Panel Ċ import Ġcom . intellij . openapi . ui . Dialog Wrapper Ċ import Ġcom . intellij . openapi . ui . TextField With Browse Button Ċ import Ġcom . intellij . openapi . util . io . File Util Ċ import Ġcom . intellij . ui . components . JB TextField Ċ import Ġcom . intellij . ui . layout .* Ċ import Ġorg . jetbrains . annotations . System Dependent Ċ import Ġjavax . swing . J Component Ċ Ċ class ĠExtract Module From Package Dialog ( private Ġval Ġproject : ĠProject , ĠmoduleName : ĠString , Ġprivate Ġvar Ġsource RootPath : Ġ@ System Dependent ĠString ) Ġ: ĠDialog Wrapper ( project , Ġtrue ) Ġ{ ĊĠ Ġprivate Ġval Ġvalidator Ġ= ĠModule Name Validator ( project ) ĊĠ Ġinternal Ġvar ĠmoduleName Ġ= ĠmoduleName ĊĠĠĠ Ġprivate Ġset ĊĠ Ġprivate Ġvar Ġmove To Separ ate Root Ġ= Ġtrue ĊĠ Ġprivate Ġlateinit Ġvar Ġpanel : ĠDialog Panel ĊĠ Ġprivate Ġlateinit Ġvar Ġname Field : ĠJ B TextField ĊĠ Ġprivate Ġlateinit Ġvar Ġpath Field : ĠTextField With Browse Button ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġtitle Ġ= ĠJava Ui Bundle . message (" dialog . title . extract . module . from . package ") ĊĠĠĠ Ġset OK ButtonText ( Java Ui Bundle . message (" button . text . extract . module ")) ĊĠĠĠ Ġinit () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Center Panel (): ĠJ Component Ġ{ ĊĠĠĠ Ġpanel Ġ= Ġpanel Ġ{ ĊĠĠĠĠĠ Ġrow ( Java Ui Bundle . message (" dialog . message . module . name ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġname Field Ġ= Ġtext Field (:: moduleName ). with Validation On Input Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġvalidator . getError Text ( name Field . text )?. let Ġ{ Ġerror ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ}. component ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmove Classes CheckBox Ġ= ĠcheckBox ( Java Ui Bundle . message (" checkbox . move . classes . to . separate . source . root "), Ġ:: moveTo Separ ate Root ) ĊĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġpath Field Ġ= Ġtext Field With Browse Button (:: source RootPath , ĠJava Ui Bundle . message (" dialog . title . specify . path . to . new . source . root "), Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Chooser Descriptor Factory . create Single Folder Descriptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. enable If ( move Classes CheckBox . selected ). component ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġname Field . select ( name Field . text . lastIndexOf ('.') Ġ+ Ġ 1 , Ġname Field . text . length ) ĊĠĠĠ Ġreturn Ġpanel ĊĠ Ġ} ĊĊĠ Ġinternal Ġval Ġtarget Source RootPath : ĠString ? ĊĠĠĠ Ġget () Ġ= Ġif Ġ( moveTo Separ ate Root ) ĠFile Util . to System In dependent Name ( source RootPath ) Ġelse Ġnull Ċ }