       (when path (nsky/start! path consume-fn)))
     (nsky/stop!)))
 
-(defn reconfig-ui! [status]
-  (let [btn (ssc/select window [:#nl-connect])
+(defn reconfig-ui! [btn status]
+  (let [conf (get status-config status {})
         lbl (ssc/select window [:#status])
         combo (ssc/select window [:#ports])]
-    (ssc/config! btn :text (get nl-button-texts status))
-    (ssc/config! lbl :text (get label-texts status))
-    (ssc/config! combo :enabled? (get combo-enabled status))))
+    (ssc/config! btn :text (:connect-button-text conf))
+    (ssc/config! lbl :text (:status-label-text conf))
+    (ssc/config! combo :enabled? (:device-combo-enabled? conf))))
 
 (defn read-nl-configuration []
   (letfn [(select-all [keys->ids]

  (ssc/vertical-panel
   :id :vlc-panel
   :visible? false
   :items [(ssc/form-panel
            :items
            [[nil :fill :horizontal :insets (java.awt.Insets. 2 5 0 5)

  (let [items-ids (vals (:items (vlc/get-playlist)))]
    (filter map? (map #(get-vlc-item-rule %) items-ids))))

(defn- handle-control-metric-selection [evt]
  (let [metric (ssc/config (.getSource evt) :text)
        help-label (ssc/select window [:#metric-help-msg])]
