public SettingsGui() {
		super();
		
		settings = Settings.getInstance();
		
		URL iconUrl = ClassLoader.getSystemResource(Constants.ICON_FILE);
		Image icon = new ImageIcon( iconUrl ).getImage();
		setIconImage( icon );
		
		languageLabel = new JLabel(settings.getLanguage().getLabel("label_language"));
		nameLabel = new JLabel(settings.getLanguage().getLabel("label_name"));
		portLabel = new JLabel(settings.getLanguage().getLabel("label_port"));
		minimizeToTrayLabel = new JLabel(settings.getLanguage().getLabel("label_minimizetotray"));
		

		ArrayList<LanguageId> languageList = settings.getLanguage().getListOfLanguagesAsId();
		LanguageId[] languageListArray = languageList.toArray(new LanguageId[0]);
		
		String key;
		for(int k=0; k<languageList.size(); ++k) {
			key = languageList.get(k).getId();
			languageComboBoxItems.put(key, k);
		}
	
		languageComboBox = new JComboBox<LanguageId>(languageListArray);
		nameTextField = new JTextField(10);
		portTextField = new JTextField(10);
		minimizeToTrayCheckbox = new JCheckBox();
		
		resetButton = new JButton(settings.getLanguage().getLabel("button_reset"));
		saveButton = new JButton(settings.getLanguage().getLabel("button_save"));

		
		 FormLayout layout = new FormLayout(
			      "3dlu, pref, 3dlu, pref, 3dlu",
			      "3dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu, pref, 3dlu");
		
		 CellConstraints cc = new CellConstraints();
		 
		JPanel settingsPanel = new JPanel(layout);
		settingsPanel.add(languageLabel, cc.xy  (2, 2));
		settingsPanel.add(languageComboBox, cc.xy  (4, 2));
		settingsPanel.add(nameLabel, cc.xy  (2, 4));
		settingsPanel.add(nameTextField, cc.xy  (4, 4));
		settingsPanel.add(portLabel, cc.xy  (2, 6));
		settingsPanel.add(portTextField, cc.xy  (4, 6));
		settingsPanel.add(minimizeToTrayLabel, cc.xy  (2, 8));
		settingsPanel.add(minimizeToTrayCheckbox, cc.xy  (4, 8));
		settingsPanel.add(resetButton, cc.xy  (2, 10));
		settingsPanel.add(saveButton, cc.xy  (4, 10));
	
		add(settingsPanel);
		
		pack();
		setResizable(false);
		
		resetButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				for(int k=0; k<settingsGuiListener.size(); ++k) {
					settingsGuiListener.get(k).resetSettings();
				}
			}
		});
		
		saveButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				for(int k=0; k<settingsGuiListener.size(); ++k) {
					settingsGuiListener.get(k).saveSettings(createHashMapWithSettings());
				}
			}
		});		
		
		refreshLabels();
		refreshForms();
		
	}