/******************************************************************************* * LogDruid : Generate charts and reports using data gathered in log files * Copyright (C) 2016 Frederic Valente (frederic.valente@gmail.com) * * 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 logdruid.ui.mainpanel; import javax.swing.JPanel; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.BorderLayout; import java.util.HashMap; import java.util.Iterator; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; import javax.swing.SwingConstants; import org.apache.log4j.Logger; import logdruid.data.Preferences; import logdruid.data.Repository; import logdruid.ui.WrapLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.BoxLayout; public class PreferencePanel extends JPanel { private static Logger logger = Logger.getLogger(EventRecordingSelectorPanel.class.getName()); private JTextField textField; /** * Create the panel. * @param repository */ public PreferencePanel(final Repository repository) { setLayout(new BorderLayout(0, 0)); final JPanel panel_1 = new JPanel(); panel_1.setLayout(new BorderLayout()); JPanel panel_2 = new JPanel(); add(panel_2, BorderLayout.EAST); //HashMap<String, String> if (Preferences.getPreferences()!=null){ SortedSet<String> prefSet = new TreeSet<String>(); prefSet.addAll(Preferences.getPreferences().keySet()); Iterator ite = prefSet.iterator(); while (ite.hasNext()){ String key=(String) ite.next(); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel_1.add(panel,BorderLayout.LINE_START); panel.setMaximumSize(new Dimension(600, 20)); JLabel lblKey = new JLabel(key); panel.add(lblKey,BorderLayout.WEST); textField = new JTextField(); panel.add(textField); textField.setColumns(30); textField.setText(Preferences.getPreference(key)); } } JButton btnSave = new JButton("Save"); btnSave.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Component[] comp=panel_1.getComponents(); int i=0; logger.debug(Preferences.getPreferences()); while (i<comp.length-1){ logger.debug(((JLabel)((JPanel)comp[i]).getComponents()[0]).getText()+" = "+((JTextField)((JPanel)comp[i]).getComponents()[1]).getText()); Preferences.setPreference(((JLabel)((JPanel)comp[i]).getComponents()[0]).getText(), ((JTextField)((JPanel)comp[i]).getComponents()[1]).getText()); i++; } Preferences.persist(); } }); WrapLayout wl_panel_2 = new WrapLayout(WrapLayout.LEFT, 5, 5); wl_panel_2.setAlignment(FlowLayout.CENTER); panel_2.setLayout(wl_panel_2); panel_2.add(btnSave); add(panel_1, BorderLayout.CENTER); panel_1.setLayout(new BoxLayout(panel_1, BoxLayout.PAGE_AXIS)); JPanel panel = new JPanel(); panel.setMinimumSize(new Dimension(50,0)); panel_1.add(panel, BorderLayout.WEST); JPanel panel_3 = new JPanel(); panel_3.setMinimumSize(new Dimension(0,40)); add(panel_3, BorderLayout.NORTH); } }