package Ġcom . ac mer obot ics . road runner . gui Ċ Ċ import Ġcom . ac mer obot ics . road runner . geometry . Vector 2 d Ċ import Ġjava . awt . geom . Ellipse 2 D Ċ import Ġjava . awt . geom . Path 2 D Ċ import Ġjava . awt . geom . Point 2 D Ċ import Ġjava . text . Decimal Format Ċ import Ġjavax . swing . Default ListModel Ċ import Ġjavax . swing . J ComboBox Ċ import Ġjavax . swing . J Formatted TextField Ċ import Ġjavax . swing . JTextField Ċ import Ġjavax . swing . event . Document Event Ċ import Ġjavax . swing . event . Document Listener Ċ import Ġjavax . swing . text . Number Formatter Ċ Ċ fun ĠJTextField . add ChangeListener ( listener : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġdocument . add Document Listener ( object Ġ: ĠDocument Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġchanged Update ( e : ĠDocument Event ?) Ġ= Ġlistener () ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinsert Update ( e : ĠDocument Event ?) Ġ= Ġlistener () ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġremove Update ( e : ĠDocument Event ?) Ġ= Ġlistener () ĊĠĠĠ Ġ}) Ċ } Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ val Ġ< E > ĠJ ComboBox < E >. selected Item Typed : ĠE ? ĊĠĠĠ Ġget () Ġ= Ġselected Item Ġas ĠE ? Ċ Ċ fun Ġmake Formatted Double Field () Ġ= ĠJ Formatted TextField ( Number Formatter ( Decimal Format (" 0 . 0 0 "))) Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ fun Ġ< T > ĠJ Formatted TextField . get Typed Value () Ġ= Ġvalue Ġas ĠT ? Ċ Ċ val ĠJ Formatted TextField . doubleValue ĊĠĠĠ Ġget () Ġ= Ġget Typed Value < Number >() ?. toDouble () Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠJ Formatted TextField . add Value ChangeListener ( ĊĠĠĠ Ġcross inline Ġlistener : Ġ( T ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġadd Property ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠnewValue Ġ= Ġit . newValue ĊĠĠĠĠĠĠĠ Ġif Ġ( newValue Ġis ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ( newValue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠVector 2 d . awt () Ġ= ĠPoint 2 D . Double ( x , Ġy ) Ċ Ċ fun ĠPath 2 D . Double . moveTo ( point : ĠPoint 2 D . Double ) Ġ{ ĊĠĠĠ Ġmove To ( point . x , Ġpoint . y ) Ċ } Ċ Ċ fun ĠPath 2 D . Double . lineTo ( point : ĠPoint 2 D . Double ) Ġ{ ĊĠĠĠ Ġline To ( point . x , Ġpoint . y ) Ċ } Ċ Ċ fun Ġcircle ( center : ĠVector 2 d , Ġradius : ĠDouble ) Ġ= ĠEl lipse 2 D . Double ( center . x Ġ- Ġradius Ġ/ Ġ 2 , Ġcenter . y Ġ- Ġradius Ġ/ Ġ 2 , Ġradius , Ġradius ) Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ fun Ġ< E > ĠDefault ListModel < E >. asList () Ġ= Ġthis . toArray (). asList () Ġas ĠList < E > Ċ