gt:         enableTrayIcon = new JCheckBox();
context: /*
   * ATLauncher - https://github.com/ATLauncher/ATLauncher
   * Copyright (C) 2013 ATLauncher
   *
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program. If not, see <http://www.gnu.org/licenses/>.
   */
  package com.atlauncher.gui.tabs.settings;
  
  import com.atlauncher.App;
  import com.atlauncher.data.Language;
  import com.atlauncher.evnt.listener.RelocalizationListener;
  import com.atlauncher.evnt.manager.RelocalizationManager;
  import com.atlauncher.gui.components.JLabelWithHover;
  import com.atlauncher.utils.Utils;
  
  import javax.swing.JCheckBox;
  import javax.swing.JComboBox;
  import javax.swing.JPanel;
  import java.awt.FlowLayout;
  import java.awt.GridBagConstraints;
  
  @SuppressWarnings("serial")
  public class GeneralSettingsTab extends AbstractSettingsTab implements RelocalizationListener {
      private JLabelWithHover languageLabel;
      private JComboBox<String> language;
      private JLabelWithHover themeLabel;
      private JComboBox<String> theme;
      private JLabelWithHover themeLabelRestart;
      private JPanel themeLabelPanel;
      private JLabelWithHover dateFormatLabel;
      private JComboBox<String> dateFormat;
      private JLabelWithHover advancedBackupLabel;
      private JCheckBox advancedBackup;
      private JLabelWithHover sortPacksAlphabeticallyLabel;
      private JCheckBox sortPacksAlphabetically;
      private JLabelWithHover keepLauncherOpenLabel;
      private JCheckBox keepLauncherOpen;
      private JLabelWithHover enableConsoleLabel;
      private JCheckBox enableConsole;
      private JLabelWithHover enableTrayIconLabel;
      private JCheckBox enableTrayIcon;
      private JLabelWithHover enablePackTagsLabel;
      private JCheckBox enablePackTags;
  
      public GeneralSettingsTab() {
          RelocalizationManager.addListener(this);
          // Language
          gbc.gridx = 0;
          gbc.gridy = 0;
          gbc.insets = LABEL_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
  
          languageLabel = new JLabelWithHover(Language.INSTANCE.localize("settings.language") + ":", HELP_ICON,
                  Language.INSTANCE.localize("settings.languagehelp"));
  
          add(languageLabel, gbc);
  
          gbc.gridx++;
          gbc.insets = FIELD_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_LEADING;
          language = new JComboBox<String>(Language.available());
          language.setSelectedItem(Language.current());
          add(language, gbc);
  
          // Theme
  
          gbc.gridx = 0;
          gbc.gridy++;
          gbc.insets = LABEL_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
  
          themeLabelRestart = new JLabelWithHover(ERROR_ICON, Language.INSTANCE.localize("settings" + "" +
                  ".requiresrestart"), RESTART_BORDER);
  
          themeLabel = new JLabelWithHover(Language.INSTANCE.localize("settings.theme") + ":", HELP_ICON, Language
                  .INSTANCE.localize("settings.themehelp"));
  
          themeLabelPanel = new JPanel();
          themeLabelPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0));
          themeLabelPanel.add(themeLabelRestart);
          themeLabelPanel.add(themeLabel);
  
          add(themeLabelPanel, gbc);
  
          gbc.gridx++;
          gbc.insets = FIELD_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_LEADING;
          theme = new JComboBox<String>();
          for (String themee : App.settings.getThemesDir().list(Utils.getThemesFileFilter())) {
              theme.addItem(themee.replace(".zip", ""));
          }
          theme.setSelectedItem(App.settings.getTheme());
  
          add(theme, gbc);
  
          // Date Format
  
          gbc.gridx = 0;
          gbc.gridy++;
          gbc.insets = LABEL_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
  
          dateFormatLabel = new JLabelWithHover(Language.INSTANCE.localize("settings.dateformat") + ":", HELP_ICON,
                  Language.INSTANCE.localize("settings.dateformathelp"));
  
          add(dateFormatLabel, gbc);
  
          gbc.gridx++;
          gbc.insets = FIELD_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_LEADING;
          dateFormat = new JComboBox<String>();
          dateFormat.addItem("dd/M/yyy");
          dateFormat.addItem("M/dd/yyy");
          dateFormat.addItem("yyy/M/dd");
          dateFormat.setSelectedItem(App.settings.getDateFormat());
  
          add(dateFormat, gbc);
  
          // Advanced Backup
  
          gbc.gridx = 0;
          gbc.gridy++;
          gbc.insets = LABEL_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
          advancedBackupLabel = new JLabelWithHover(Language.INSTANCE.localize("settings.advancedbackup") + "?",
                  HELP_ICON, "<html>" + Language.INSTANCE.localizeWithReplace("settings.advancedbackuphelp", "<br/>") +
                  "</html>");
          add(advancedBackupLabel, gbc);
  
          gbc.gridx++;
          gbc.insets = FIELD_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_LEADING;
          advancedBackup = new JCheckBox();
          if (App.settings.isAdvancedBackupsEnabled()) {
              advancedBackup.setSelected(true);
          }
          add(advancedBackup, gbc);
  
          // Sort Packs Alphabetically
  
          gbc.gridx = 0;
          gbc.gridy++;
          gbc.insets = LABEL_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
          sortPacksAlphabeticallyLabel = new JLabelWithHover(Language.INSTANCE.localize("settings" + "" +
                  ".sortpacksalphabetically") + "?", HELP_ICON, Language.INSTANCE.localize("settings" + "" +
                  ".sortpacksalphabeticallyhelp"));
          add(sortPacksAlphabeticallyLabel, gbc);
  
          gbc.gridx++;
          gbc.insets = FIELD_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_LEADING;
          sortPacksAlphabetically = new JCheckBox();
          if (App.settings.sortPacksAlphabetically()) {
              sortPacksAlphabetically.setSelected(true);
          }
          add(sortPacksAlphabetically, gbc);
  
          // Keep Launcher Open
  
          gbc.gridx = 0;
          gbc.gridy++;
          gbc.insets = LABEL_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
          keepLauncherOpenLabel = new JLabelWithHover(Language.INSTANCE.localize("settings.keeplauncheropen") + "?",
                  HELP_ICON, Language.INSTANCE.localize("settings.keeplauncheropenhelp"));
          add(keepLauncherOpenLabel, gbc);
  
          gbc.gridx++;
          gbc.insets = FIELD_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_LEADING;
          keepLauncherOpen = new JCheckBox();
          if (App.settings.keepLauncherOpen()) {
              keepLauncherOpen.setSelected(true);
          }
          add(keepLauncherOpen, gbc);
  
          // Enable Console
  
          gbc.gridx = 0;
          gbc.gridy++;
          gbc.insets = LABEL_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
          enableConsoleLabel = new JLabelWithHover(Language.INSTANCE.localize("settings.console") + "?", HELP_ICON,
                  Language.INSTANCE.localize("settings.consolehelp"));
          add(enableConsoleLabel, gbc);
  
          gbc.gridx++;
          gbc.insets = FIELD_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_LEADING;
          enableConsole = new JCheckBox();
          if (App.settings.enableConsole()) {
              enableConsole.setSelected(true);
          }
          add(enableConsole, gbc);
  
          // Enable Tray Icon
  
          gbc.gridx = 0;
          gbc.gridy++;
          gbc.insets = LABEL_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
          enableTrayIconLabel = new JLabelWithHover(Language.INSTANCE.localize("settings.traymenu") + "?", HELP_ICON,
                  "<html>" + Language.INSTANCE.localizeWithReplace("settings.traymenuhelp", "<br/>") + "</html>");
          add(enableTrayIconLabel, gbc);
  
          gbc.gridx++;
          gbc.insets = FIELD_INSETS;
          gbc.anchor = GridBagConstraints.BASELINE_LEADING;
  