@Override
 protected void getControls(DialogAccess dlg) {
   if (dlg.getCheckBoxStateAsBoolean("UseCustom" + getSuffix())) {
     saveFile(sCustomFileName, dlg.getTextFieldText("Custom" + getSuffix()));
     killFile(sCustomFileName + ".bak");
   } else {
     saveFile(sCustomFileName + ".bak", dlg.getTextFieldText("Custom" + getSuffix()));
     killFile(sCustomFileName);
   }
 }
 // Internal methods
 private void updateAttributeMaps(DialogAccess dlg) {
   // Save the current attribute map, if any
   if (nCurrentAttribute > -1) {
     String sName = sAttributeNames[nCurrentAttribute];
     if (!attributeMap.containsKey(sName)) {
       attributeMap.put(sName, new HashMap<String, String>());
     }
     Map<String, String> attr = attributeMap.get(sName);
     attr.put("deleted", Boolean.toString(!dlg.getCheckBoxStateAsBoolean("CustomAttribute")));
     getControls(dlg, attr);
     attributeMap.put(sName, attr);
   }
 }
 private void customAttributeChange(DialogAccess dlg) {
   prepareControls(dlg, dlg.getCheckBoxStateAsBoolean("CustomAttribute"));
 }
 private void useCustomChange(DialogAccess dlg) {
   boolean bUseCustom = dlg.getCheckBoxStateAsBoolean("UseCustom" + getSuffix());
   dlg.setControlEnabled("Custom" + getSuffix(), bUseCustom);
   dlg.setControlEnabled("Load" + getSuffix() + "Button", bUseCustom);
   useCustomInner(dlg, bUseCustom);
 }
 protected void checkBoxToConfig(DialogAccess dlg, String sCheckBoxName, String sConfigName) {
   config.setOption(sConfigName, Boolean.toString(dlg.getCheckBoxStateAsBoolean(sCheckBoxName)));
 }