package usr.erichschroeter.jpreferences;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Vector;
import java.util.prefs.Preferences;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import usr.erichschroeter.jpreferences.pages.PersonalInformationPage;
import usr.erichschroeter.jpreferences.pages.ProfilesPage;
/**
* An example showing the simple usage of {@link PreferenceDialog}. This example
* includes using custom preference pages.
*
* @author Erich Schroeter
*/
public class SimpleDialogWithCustomPageExample {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager
.getSystemLookAndFeelClassName());
} catch (Exception exception) {
exception.printStackTrace();
}
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Preferences prefs = Preferences.userRoot().node(
"preference-dialog");
prefs.putInt("number of states", 50);
prefs.putDouble("pi", 3.14159);
prefs.put("name", "<Enter your name>");
PreferenceDialog dlg = new PreferenceDialog(frame, prefs,
Preferences.userRoot(), Preferences.systemRoot());
dlg.setCustomPagesEnabled(true);
dlg.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e) {
System.exit(0);
}
});
dlg.setLocationRelativeTo(null);
dlg.add(new PersonalInformationPage("Personal",
"Enter personal information"));
try {
dlg.add(new ProfilesPage(createTestProfiles()));
} catch (FileNotFoundException e) {
} catch (URISyntaxException e) {
} catch (IOException e) {
}
dlg.setVisible(true);
}
});
}
public static List<String[]> createTestProfiles()
throws URISyntaxException, IOException {
List<String[]> profiles = new Vector<String[]>();
BufferedReader csv = new BufferedReader(new FileReader(new File(
SimpleDialogWithCustomPageExample.class.getClassLoader()
.getResource("test/resources/profiles.csv").toURI())));
String line;
while ((line = csv.readLine()) != null) {
profiles.add(line.split(","));
}
return profiles;
}
}