Exemplo n.º 1
0
 private void initFontPrefs() {
   UserPreferences pref = UserPreferences.getInstance();
   String[] fontList =
       GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
   for (String font : fontList) _cmbFontName.addItem(font);
   _cmbFontName.setSelectedItem(pref.getFontName());
   _spnFontSize.setValue(pref.getFontSize());
 }
Exemplo n.º 2
0
  private void initLangPrefs() {
    String[] SUPPORT_LOCALES = {
      "es", "pt_BR", "ar", "fr", "ru", "bg", "he", "sv", "ca", "ja", "tr", "da", "ko", "uk", "de",
      "nl", "zh_CN", "en_US", "pl", "zh_TW"
    };
    Locale[] sortedLocales = new Locale[SUPPORT_LOCALES.length];
    UserPreferences pref = UserPreferences.getInstance();
    int count = 0;
    for (String locale_code : SUPPORT_LOCALES) {
      Locale l;
      if (locale_code.indexOf("_") >= 0) {
        String[] lang_country = locale_code.split("_");
        l = new Locale(lang_country[0], lang_country[1]);
      } else l = new Locale(locale_code);
      sortedLocales[count++] = l;
    }
    Arrays.sort(
        sortedLocales,
        new Comparator<Locale>() {
          public int compare(Locale l1, Locale l2) {
            return l1.getDisplayLanguage().compareTo(l2.getDisplayLanguage());
          }
        });

    for (Locale l : sortedLocales) {
      _cmbLang.addItem(l);
    }
    _cmbLang.setRenderer(new LocaleListCellRenderer());
    Locale curLocale = pref.getLocale();
    _cmbLang.setSelectedItem(curLocale);
    if (!_cmbLang.getSelectedItem().equals(curLocale)) {
      if (curLocale.getVariant().length() > 0) {
        curLocale = new Locale(curLocale.getLanguage(), curLocale.getCountry());
        _cmbLang.setSelectedItem(curLocale);
      }
      if (!_cmbLang.getSelectedItem().equals(curLocale))
        _cmbLang.setSelectedItem(new Locale(curLocale.getLanguage()));
    }
  }
Exemplo n.º 3
0
public class PreferencesWin extends JFrame {
  UserPreferences pref = UserPreferences.getInstance();
  int _cap_hkey, _cap_mod;
  int _old_cap_hkey, _old_cap_mod;

  public PreferencesWin() {
    super(SikuliIDE._I("winPreferences"));
    initComponents();
    loadPrefs();
  }

  private void loadPrefs() {
    SikuliIDE ide = SikuliIDE.getInstance();
    double delay = pref.getCaptureDelay();
    _spnDelay.setValue(delay);
    _old_cap_hkey = _cap_hkey = pref.getCaptureHotkey();
    _old_cap_mod = _cap_mod = pref.getCaptureHotkeyModifiers();
    setTxtHotkey(_cap_hkey, _cap_mod);
    switch (pref.getAutoNamingMethod()) {
      case UserPreferences.AUTO_NAMING_TIMESTAMP:
        _radTimestamp.setSelected(true);
        break;
      case UserPreferences.AUTO_NAMING_OCR:
        _radOCR.setSelected(true);
        break;
      case UserPreferences.AUTO_NAMING_OFF:
        _radOff.setSelected(true);
        break;
      default:
        Debug.error("Error in reading auto naming method preferences");
    }
    _chkAutoUpdate.setSelected(pref.getCheckUpdate());

    _chkExpandTab.setSelected(pref.getExpandTab());
    _spnTabWidth.setValue(pref.getTabWidth());
    initFontPrefs();
    initLangPrefs();
  }

  private void initLangPrefs() {
    String[] SUPPORT_LOCALES = {
      "es", "pt_BR", "ar", "fr", "ru", "bg", "he", "sv", "ca", "ja", "tr", "da", "ko", "uk", "de",
      "nl", "zh_CN", "en_US", "pl", "zh_TW"
    };
    Locale[] sortedLocales = new Locale[SUPPORT_LOCALES.length];
    UserPreferences pref = UserPreferences.getInstance();
    int count = 0;
    for (String locale_code : SUPPORT_LOCALES) {
      Locale l;
      if (locale_code.indexOf("_") >= 0) {
        String[] lang_country = locale_code.split("_");
        l = new Locale(lang_country[0], lang_country[1]);
      } else l = new Locale(locale_code);
      sortedLocales[count++] = l;
    }
    Arrays.sort(
        sortedLocales,
        new Comparator<Locale>() {
          public int compare(Locale l1, Locale l2) {
            return l1.getDisplayLanguage().compareTo(l2.getDisplayLanguage());
          }
        });

    for (Locale l : sortedLocales) {
      _cmbLang.addItem(l);
    }
    _cmbLang.setRenderer(new LocaleListCellRenderer());
    Locale curLocale = pref.getLocale();
    _cmbLang.setSelectedItem(curLocale);
    if (!_cmbLang.getSelectedItem().equals(curLocale)) {
      if (curLocale.getVariant().length() > 0) {
        curLocale = new Locale(curLocale.getLanguage(), curLocale.getCountry());
        _cmbLang.setSelectedItem(curLocale);
      }
      if (!_cmbLang.getSelectedItem().equals(curLocale))
        _cmbLang.setSelectedItem(new Locale(curLocale.getLanguage()));
    }
  }

  private void initFontPrefs() {
    UserPreferences pref = UserPreferences.getInstance();
    String[] fontList =
        GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
    for (String font : fontList) _cmbFontName.addItem(font);
    _cmbFontName.setSelectedItem(pref.getFontName());
    _spnFontSize.setValue(pref.getFontSize());
  }

  private void savePrefs() {
    SikuliIDE ide = SikuliIDE.getInstance();
    pref.setCaptureDelay((Double) _spnDelay.getValue());
    pref.setCaptureHotkey(_cap_hkey);
    pref.setCaptureHotkeyModifiers(_cap_mod);
    pref.setAutoNamingMethod(
        _radTimestamp.isSelected()
            ? UserPreferences.AUTO_NAMING_TIMESTAMP
            : _radOCR.isSelected()
                ? UserPreferences.AUTO_NAMING_OCR
                : UserPreferences.AUTO_NAMING_OFF);
    if (_old_cap_hkey != _cap_hkey || _old_cap_mod != _cap_mod) {
      ide.removeCaptureHotkey(_old_cap_hkey, _old_cap_mod);
      ide.installCaptureHotkey(_cap_hkey, _cap_mod);
    }
    pref.setCheckUpdate(_chkAutoUpdate.isSelected());

    pref.setExpandTab(_chkExpandTab.isSelected());
    pref.setTabWidth((Integer) _spnTabWidth.getValue());

    pref.setFontName((String) _cmbFontName.getSelectedItem());
    pref.setFontSize((Integer) _spnFontSize.getValue());

    Locale locale = (Locale) _cmbLang.getSelectedItem();
    pref.setLocale(locale);
    I18N.setLocale(locale);
  }

  private void setTxtHotkey(int code, int mod) {
    _cap_hkey = code;
    _cap_mod = mod;
    _txtHotkey.setText(Utils.convertKeyToText(code, mod));
  }

  private void btnOkActionPerformed(ActionEvent e) {
    savePrefs();
    this.dispose();
  }

  private void btnApplyActionPerformed(ActionEvent e) {
    savePrefs();
  }

  private void btnCancelActionPerformed(ActionEvent e) {
    this.dispose();
  }

  private void txtHotkeyFocusGained(FocusEvent e) {
    _txtHotkey.setEditable(true);
  }

  private void txtHotkeyKeyPressed(KeyEvent e) {
    int code = e.getKeyCode();
    int mod = e.getModifiers();
    Debug.log(7, "" + code + " " + mod);
    setTxtHotkey(code, mod);
    _txtHotkey.setEditable(false);
  }

  private void updateFontPreview() {
    SikuliIDE ide = SikuliIDE.getInstance();
    Font font =
        new Font(
            (String) _cmbFontName.getSelectedItem(), Font.PLAIN, (Integer) _spnFontSize.getValue());

    SikuliCodePane codePane = SikuliIDE.getInstance().getCurrentCodePane();
    if (Utils.typeOfCodePane(codePane) == Utils.SikuliCodePaneType.SIKULI_PANE_TYPE_TEXT) {
      // preview only supported on text code panes
      SikuliTextPane textPane = (SikuliTextPane) (codePane.getComponent());
      textPane.setFont(font);
    }
  }

  private void fontNameItemStateChanged(ItemEvent e) {
    updateFontPreview();
  }

  private void fontSizeStateChanged(ChangeEvent e) {
    updateFontPreview();
  }

  private void initComponents() {
    // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
    DefaultComponentFactory compFactory = DefaultComponentFactory.getInstance();
    _tabPane = new JTabbedPane();
    JPanel paneCapture = new JPanel();
    _txtHotkey = new JTextField();
    _lblHotkey = new JLabel();
    _lblDelay = new JLabel();
    _spnDelay = new JSpinner();
    _lblDelaySecs = new JLabel();
    _lblNaming = new JLabel();
    _radTimestamp = new JRadioButton();
    _radOCR = new JRadioButton();
    _radOff = new JRadioButton();
    _paneTextEditing = new JPanel();
    _chkExpandTab = new JCheckBox();
    _lblTabWidth = new JLabel();
    _cmbFontName = new JComboBox();
    _lblFont = new JLabel();
    _titleAppearance = compFactory.createTitle("");
    _titleIndentation = compFactory.createTitle("");
    _spnTabWidth = new JSpinner();
    _lblFontSize = new JLabel();
    _spnFontSize = new JSpinner();
    JPanel paneGeneral = new JPanel();
    _chkAutoUpdate = new JCheckBox();
    _cmbLang = new JComboBox();
    _lblUpdates = new JLabel();
    _lblLanguage = new JLabel();
    JPanel paneOkCancel = new JPanel();
    JPanel hSpacer1 = new JPanel(null);
    _btnOk = new JButton();
    _btnApply = new JButton();
    _btnCancel = new JButton();

    // ======== this ========
    Container contentPane = getContentPane();
    contentPane.setLayout(new BorderLayout());

    // ======== _tabPane ========
    {
      _tabPane.setBorder(new EmptyBorder(10, 10, 0, 10));

      // ======== paneCapture ========
      {

        // ---- _txtHotkey ----
        _txtHotkey.setHorizontalAlignment(SwingConstants.RIGHT);
        _txtHotkey.addFocusListener(
            new FocusAdapter() {
              @Override
              public void focusGained(FocusEvent e) {
                txtHotkeyFocusGained(e);
              }
            });
        _txtHotkey.addKeyListener(
            new KeyAdapter() {
              @Override
              public void keyPressed(KeyEvent e) {
                txtHotkeyKeyPressed(e);
              }
            });

        // ---- _lblHotkey ----
        _lblHotkey.setLabelFor(_txtHotkey);

        // ---- _lblDelay ----
        _lblDelay.setLabelFor(_spnDelay);

        // ---- _spnDelay ----
        _spnDelay.setModel(new SpinnerNumberModel(1.0, 0.0, null, 0.1));

        // ---- _radTimestamp ----
        _radTimestamp.setSelected(true);

        GroupLayout paneCaptureLayout = new GroupLayout(paneCapture);
        paneCapture.setLayout(paneCaptureLayout);
        paneCaptureLayout.setHorizontalGroup(
            paneCaptureLayout
                .createParallelGroup()
                .add(
                    paneCaptureLayout
                        .createSequentialGroup()
                        .add(26, 26, 26)
                        .add(
                            paneCaptureLayout
                                .createParallelGroup()
                                .add(GroupLayout.TRAILING, _lblDelay)
                                .add(GroupLayout.TRAILING, _lblHotkey)
                                .add(GroupLayout.TRAILING, _lblNaming))
                        .addPreferredGap(LayoutStyle.RELATED)
                        .add(
                            paneCaptureLayout
                                .createParallelGroup()
                                .add(_radTimestamp)
                                .add(_radOCR)
                                .add(_radOff)
                                .add(
                                    paneCaptureLayout
                                        .createSequentialGroup()
                                        .add(
                                            _spnDelay,
                                            GroupLayout.DEFAULT_SIZE,
                                            148,
                                            Short.MAX_VALUE)
                                        .addPreferredGap(LayoutStyle.RELATED)
                                        .add(
                                            _lblDelaySecs,
                                            GroupLayout.DEFAULT_SIZE,
                                            161,
                                            Short.MAX_VALUE))
                                .add(_txtHotkey, GroupLayout.DEFAULT_SIZE, 315, Short.MAX_VALUE))
                        .add(69, 69, 69)));
        paneCaptureLayout.setVerticalGroup(
            paneCaptureLayout
                .createParallelGroup()
                .add(
                    paneCaptureLayout
                        .createSequentialGroup()
                        .add(34, 34, 34)
                        .add(
                            paneCaptureLayout
                                .createParallelGroup(GroupLayout.BASELINE)
                                .add(
                                    _lblHotkey,
                                    GroupLayout.PREFERRED_SIZE,
                                    22,
                                    GroupLayout.PREFERRED_SIZE)
                                .add(
                                    _txtHotkey,
                                    GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE,
                                    GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(LayoutStyle.RELATED)
                        .add(
                            paneCaptureLayout
                                .createParallelGroup()
                                .add(
                                    _lblDelay,
                                    GroupLayout.PREFERRED_SIZE,
                                    28,
                                    GroupLayout.PREFERRED_SIZE)
                                .add(
                                    _spnDelay,
                                    GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE,
                                    GroupLayout.PREFERRED_SIZE)
                                .add(
                                    _lblDelaySecs,
                                    GroupLayout.PREFERRED_SIZE,
                                    28,
                                    GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(LayoutStyle.RELATED)
                        .add(
                            paneCaptureLayout
                                .createParallelGroup(GroupLayout.LEADING, false)
                                .add(
                                    paneCaptureLayout
                                        .createSequentialGroup()
                                        .add(
                                            paneCaptureLayout
                                                .createParallelGroup(GroupLayout.BASELINE)
                                                .add(
                                                    _lblNaming,
                                                    GroupLayout.PREFERRED_SIZE,
                                                    22,
                                                    GroupLayout.PREFERRED_SIZE)
                                                .add(_radTimestamp))
                                        .add(18, 18, 18)
                                        .add(_radOff)
                                        .addPreferredGap(LayoutStyle.RELATED))
                                .add(
                                    GroupLayout.TRAILING,
                                    paneCaptureLayout
                                        .createSequentialGroup()
                                        .add(_radOCR)
                                        .add(21, 21, 21)))
                        .add(80, 80, 80)));
      }
      _tabPane.addTab(I18N._I("prefTabScreenCapturing"), paneCapture);

      // ======== _paneTextEditing ========
      {

        // ---- _lblTabWidth ----
        _lblTabWidth.setLabelFor(_spnTabWidth);

        // ---- _cmbFontName ----
        _cmbFontName.addItemListener(
            new ItemListener() {
              public void itemStateChanged(ItemEvent e) {
                fontNameItemStateChanged(e);
              }
            });

        // ---- _lblFont ----
        _lblFont.setLabelFor(_cmbFontName);

        // ---- _lblFontSize ----
        _lblFontSize.setLabelFor(_cmbFontName);

        // ---- _spnFontSize ----
        _spnFontSize.addChangeListener(
            new ChangeListener() {
              public void stateChanged(ChangeEvent e) {
                fontSizeStateChanged(e);
              }
            });

        GroupLayout _paneTextEditingLayout = new GroupLayout(_paneTextEditing);
        _paneTextEditing.setLayout(_paneTextEditingLayout);
        _paneTextEditingLayout.setHorizontalGroup(
            _paneTextEditingLayout
                .createParallelGroup()
                .add(
                    GroupLayout.TRAILING,
                    _paneTextEditingLayout
                        .createSequentialGroup()
                        .add(95, 95, 95)
                        .add(
                            _paneTextEditingLayout
                                .createParallelGroup()
                                .add(
                                    _titleIndentation,
                                    GroupLayout.PREFERRED_SIZE,
                                    GroupLayout.DEFAULT_SIZE,
                                    GroupLayout.PREFERRED_SIZE)
                                .add(
                                    _paneTextEditingLayout
                                        .createSequentialGroup()
                                        .add(
                                            _titleAppearance,
                                            GroupLayout.PREFERRED_SIZE,
                                            GroupLayout.DEFAULT_SIZE,
                                            GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(LayoutStyle.RELATED)
                                        .add(
                                            _paneTextEditingLayout
                                                .createParallelGroup()
                                                .add(
                                                    _paneTextEditingLayout
                                                        .createSequentialGroup()
                                                        .add(29, 29, 29)
                                                        .add(
                                                            _paneTextEditingLayout
                                                                .createParallelGroup()
                                                                .add(
                                                                    GroupLayout.TRAILING,
                                                                    _lblTabWidth)
                                                                .add(GroupLayout.TRAILING, _lblFont)
                                                                .add(
                                                                    GroupLayout.TRAILING,
                                                                    _lblFontSize))
                                                        .addPreferredGap(LayoutStyle.RELATED)
                                                        .add(
                                                            _paneTextEditingLayout
                                                                .createParallelGroup()
                                                                .add(
                                                                    _cmbFontName,
                                                                    0,
                                                                    218,
                                                                    Short.MAX_VALUE)
                                                                .add(
                                                                    _spnFontSize,
                                                                    GroupLayout.PREFERRED_SIZE,
                                                                    67,
                                                                    GroupLayout.PREFERRED_SIZE)
                                                                .add(
                                                                    _spnTabWidth,
                                                                    GroupLayout.PREFERRED_SIZE,
                                                                    52,
                                                                    GroupLayout.PREFERRED_SIZE))
                                                        .addPreferredGap(
                                                            LayoutStyle.RELATED,
                                                            97,
                                                            Short.MAX_VALUE))
                                                .add(
                                                    _chkExpandTab,
                                                    GroupLayout.DEFAULT_SIZE,
                                                    420,
                                                    Short.MAX_VALUE))))
                        .addContainerGap()));
        _paneTextEditingLayout.setVerticalGroup(
            _paneTextEditingLayout
                .createParallelGroup()
                .add(
                    _paneTextEditingLayout
                        .createSequentialGroup()
                        .add(21, 21, 21)
                        .add(
                            _titleIndentation,
                            GroupLayout.PREFERRED_SIZE,
                            GroupLayout.DEFAULT_SIZE,
                            GroupLayout.PREFERRED_SIZE)
                        .add(
                            _paneTextEditingLayout
                                .createParallelGroup()
                                .add(
                                    _paneTextEditingLayout
                                        .createSequentialGroup()
                                        .add(81, 81, 81)
                                        .add(
                                            _titleAppearance,
                                            GroupLayout.PREFERRED_SIZE,
                                            GroupLayout.DEFAULT_SIZE,
                                            GroupLayout.PREFERRED_SIZE))
                                .add(
                                    _paneTextEditingLayout
                                        .createSequentialGroup()
                                        .addPreferredGap(LayoutStyle.RELATED)
                                        .add(_chkExpandTab)
                                        .addPreferredGap(LayoutStyle.RELATED)
                                        .add(
                                            _paneTextEditingLayout
                                                .createParallelGroup()
                                                .add(
                                                    _lblTabWidth,
                                                    GroupLayout.PREFERRED_SIZE,
                                                    16,
                                                    GroupLayout.PREFERRED_SIZE)
                                                .add(
                                                    _spnTabWidth,
                                                    GroupLayout.PREFERRED_SIZE,
                                                    GroupLayout.DEFAULT_SIZE,
                                                    GroupLayout.PREFERRED_SIZE))
                                        .add(40, 40, 40)
                                        .add(
                                            _paneTextEditingLayout
                                                .createParallelGroup(GroupLayout.BASELINE)
                                                .add(_lblFont)
                                                .add(
                                                    _cmbFontName,
                                                    GroupLayout.PREFERRED_SIZE,
                                                    GroupLayout.DEFAULT_SIZE,
                                                    GroupLayout.PREFERRED_SIZE))
                                        .addPreferredGap(LayoutStyle.RELATED)
                                        .add(
                                            _paneTextEditingLayout
                                                .createParallelGroup(GroupLayout.TRAILING)
                                                .add(
                                                    _lblFontSize,
                                                    GroupLayout.PREFERRED_SIZE,
                                                    27,
                                                    GroupLayout.PREFERRED_SIZE)
                                                .add(
                                                    _spnFontSize,
                                                    GroupLayout.PREFERRED_SIZE,
                                                    GroupLayout.DEFAULT_SIZE,
                                                    GroupLayout.PREFERRED_SIZE))))
                        .addContainerGap(154, Short.MAX_VALUE)));
        _paneTextEditingLayout.linkSize(
            new Component[] {_lblTabWidth, _spnTabWidth}, GroupLayout.VERTICAL);
        _paneTextEditingLayout.linkSize(
            new Component[] {_cmbFontName, _lblFont}, GroupLayout.VERTICAL);
      }
      _tabPane.addTab(I18N._I("PreferencesWin.paneTextEditing.tab.title"), _paneTextEditing);

      // ======== paneGeneral ========
      {

        // ---- _lblUpdates ----
        _lblUpdates.setFont(
            _lblUpdates.getFont().deriveFont(_lblUpdates.getFont().getStyle() | Font.BOLD));

        // ---- _lblLanguage ----
        _lblLanguage.setFont(
            _lblLanguage.getFont().deriveFont(_lblLanguage.getFont().getStyle() | Font.BOLD));

        GroupLayout paneGeneralLayout = new GroupLayout(paneGeneral);
        paneGeneral.setLayout(paneGeneralLayout);
        paneGeneralLayout.setHorizontalGroup(
            paneGeneralLayout
                .createParallelGroup()
                .add(
                    paneGeneralLayout
                        .createSequentialGroup()
                        .add(137, 137, 137)
                        .add(
                            paneGeneralLayout
                                .createParallelGroup()
                                .add(
                                    paneGeneralLayout
                                        .createSequentialGroup()
                                        .add(_lblLanguage)
                                        .add(185, 185, 185))
                                .add(
                                    paneGeneralLayout
                                        .createSequentialGroup()
                                        .add(38, 38, 38)
                                        .add(
                                            _cmbLang,
                                            GroupLayout.PREFERRED_SIZE,
                                            215,
                                            GroupLayout.PREFERRED_SIZE))
                                .add(
                                    paneGeneralLayout
                                        .createSequentialGroup()
                                        .add(_lblUpdates)
                                        .add(318, 318, 318))
                                .add(
                                    GroupLayout.TRAILING,
                                    paneGeneralLayout
                                        .createSequentialGroup()
                                        .add(38, 38, 38)
                                        .add(
                                            _chkAutoUpdate,
                                            GroupLayout.DEFAULT_SIZE,
                                            376,
                                            Short.MAX_VALUE)))
                        .addContainerGap()));
        paneGeneralLayout.setVerticalGroup(
            paneGeneralLayout
                .createParallelGroup()
                .add(
                    paneGeneralLayout
                        .createSequentialGroup()
                        .add(26, 26, 26)
                        .add(_lblUpdates)
                        .addPreferredGap(LayoutStyle.RELATED)
                        .add(_chkAutoUpdate)
                        .add(40, 40, 40)
                        .add(_lblLanguage)
                        .addPreferredGap(LayoutStyle.RELATED)
                        .add(
                            _cmbLang,
                            GroupLayout.PREFERRED_SIZE,
                            GroupLayout.DEFAULT_SIZE,
                            GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(196, Short.MAX_VALUE)));
      }
      _tabPane.addTab(I18N._I("prefTabGeneralSettings"), paneGeneral);
    }
    contentPane.add(_tabPane, BorderLayout.CENTER);

    // ======== paneOkCancel ========
    {
      paneOkCancel.setBorder(new EmptyBorder(5, 5, 5, 5));
      paneOkCancel.setLayout(new BoxLayout(paneOkCancel, BoxLayout.X_AXIS));
      paneOkCancel.add(hSpacer1);

      // ---- _btnOk ----
      _btnOk.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              btnOkActionPerformed(e);
            }
          });
      paneOkCancel.add(_btnOk);

      // ---- _btnCancel ----
      _btnCancel.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              btnCancelActionPerformed(e);
            }
          });
      paneOkCancel.add(_btnCancel);

      // ---- _btnApply ----
      _btnApply.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              btnApplyActionPerformed(e);
            }
          });
      paneOkCancel.add(_btnApply);
    }
    contentPane.add(paneOkCancel, BorderLayout.SOUTH);
    setSize(600, 475);
    setLocationRelativeTo(getOwner());

    // ---- btngrpNaming ----
    ButtonGroup btngrpNaming = new ButtonGroup();
    btngrpNaming.add(_radTimestamp);
    btngrpNaming.add(_radOCR);
    btngrpNaming.add(_radOff);

    initComponentsI18n();
    // JFormDesigner - End of component initialization  //GEN-END:initComponents
  }

  private void initComponentsI18n() {
    // JFormDesigner - Component i18n initialization - DO NOT MODIFY  //GEN-BEGIN:initI18n
    DefaultComponentFactory.setTextAndMnemonic(
        _titleAppearance, I18N._I("PreferencesWin.titleAppearance.textWithMnemonic"));
    DefaultComponentFactory.setTextAndMnemonic(
        _titleIndentation, I18N._I("PreferencesWin.titleIndentation.textWithMnemonic"));
    _lblHotkey.setText(I18N._I("prefCaptureHotkey"));
    _lblDelay.setText(I18N._I("prefCaptureDelay"));
    _lblDelaySecs.setText(I18N._I("prefSeconds"));
    _lblNaming.setText(I18N._I("prefAutoNaming"));
    _radTimestamp.setText(I18N._I("prefTimestamp"));
    _radOCR.setText(I18N._I("prefRecognizedText"));
    _radOff.setText(I18N._I("prefManualInput"));
    _tabPane.setTitleAt(0, I18N._I("prefTabScreenCapturing"));
    _chkExpandTab.setText(I18N._I("PreferencesWin.chkExpandTab.text"));
    _lblTabWidth.setText(I18N._I("PreferencesWin.lblTabWidth.text"));
    _lblFont.setText(I18N._I("PreferencesWin.lblFont.text"));
    _lblFontSize.setText(I18N._I("PreferencesWin.lblFontSize.text"));
    _tabPane.setTitleAt(1, I18N._I("PreferencesWin.paneTextEditing.tab.title"));
    _chkAutoUpdate.setText(I18N._I("prefGeneralAutoCheck"));
    _lblUpdates.setText(I18N._I("PreferencesWin.lblUpdates.text"));
    _lblLanguage.setText(I18N._I("PreferencesWin.lblLanguage.text"));
    _tabPane.setTitleAt(2, I18N._I("prefTabGeneralSettings"));
    _btnOk.setText(I18N._I("ok"));
    _btnApply.setText(I18N._I("apply"));
    _btnCancel.setText(I18N._I("cancel"));
    // JFormDesigner - End of component i18n initialization  //GEN-END:initI18n
  }

  // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
  private JTabbedPane _tabPane;
  private JTextField _txtHotkey;
  private JLabel _lblHotkey;
  private JLabel _lblDelay;
  private JSpinner _spnDelay;
  private JLabel _lblDelaySecs;
  private JLabel _lblNaming;
  private JRadioButton _radTimestamp;
  private JRadioButton _radOCR;
  private JRadioButton _radOff;
  private JPanel _paneTextEditing;
  private JCheckBox _chkExpandTab;
  private JLabel _lblTabWidth;
  private JComboBox _cmbFontName;
  private JLabel _lblFont;
  private JLabel _titleAppearance;
  private JLabel _titleIndentation;
  private JSpinner _spnTabWidth;
  private JLabel _lblFontSize;
  private JSpinner _spnFontSize;
  private JCheckBox _chkAutoUpdate;
  private JComboBox _cmbLang;
  private JLabel _lblUpdates;
  private JLabel _lblLanguage;
  private JButton _btnOk;
  private JButton _btnApply;
  private JButton _btnCancel;
  // JFormDesigner - End of variables declaration  //GEN-END:variables
}