@@ -1,3 +1,4 @@ | |||
settings.txt | |||
*.json | |||
.classpath | |||
@@ -6,8 +6,9 @@ package libsys; | |||
class Main | |||
{ | |||
static String bookFilename = "books.json"; | |||
static String userFilename = "users.json"; | |||
static Settings settings = new Settings("settings.txt"); | |||
static String bookFilename = settings.get("Books Filename"); | |||
static String userFilename = settings.get("Users Filename"); | |||
public static void main(String[] args) | |||
{ | |||
@@ -35,6 +36,6 @@ class Main | |||
handler.users.setUserFileName(userFilename); | |||
} | |||
new MainGUI(handler).setVisible(true); | |||
new MainGUI(handler, settings).setVisible(true); | |||
} | |||
} |
@@ -52,20 +52,22 @@ | |||
<Group type="102" attributes="0"> | |||
<EmptySpace max="-2" attributes="0"/> | |||
<Group type="103" groupAlignment="0" attributes="0"> | |||
<Component id="jTabbedPane" max="32767" attributes="0"/> | |||
<Group type="102" attributes="0"> | |||
<Group type="103" groupAlignment="0" attributes="0"> | |||
<Group type="102" attributes="0"> | |||
<Component id="createBookBtn" min="-2" pref="130" max="-2" attributes="0"/> | |||
<EmptySpace max="-2" attributes="0"/> | |||
<Component id="createUserBtn" min="-2" pref="130" max="-2" attributes="0"/> | |||
</Group> | |||
<Component id="nameLabel" alignment="0" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
<Component id="jTabbedPane" max="32767" attributes="0"/> | |||
<EmptySpace max="-2" attributes="0"/> | |||
</Group> | |||
<Group type="102" attributes="0"> | |||
<Component id="nameLabel" min="-2" max="-2" attributes="0"/> | |||
<EmptySpace min="0" pref="0" max="32767" attributes="0"/> | |||
</Group> | |||
<Group type="102" attributes="0"> | |||
<Component id="createBookBtn" min="-2" pref="130" max="-2" attributes="0"/> | |||
<EmptySpace max="-2" attributes="0"/> | |||
<Component id="createUserBtn" min="-2" pref="130" max="-2" attributes="0"/> | |||
<EmptySpace max="32767" attributes="0"/> | |||
<Component id="settingsBtn" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
</Group> | |||
<EmptySpace max="-2" attributes="0"/> | |||
</Group> | |||
</Group> | |||
</DimensionLayout> | |||
@@ -76,10 +78,18 @@ | |||
<Component id="nameLabel" min="-2" pref="59" max="-2" attributes="0"/> | |||
<EmptySpace type="unrelated" max="-2" attributes="0"/> | |||
<Component id="jTabbedPane" min="-2" max="-2" attributes="0"/> | |||
<EmptySpace min="-2" pref="10" max="-2" attributes="0"/> | |||
<Group type="103" groupAlignment="3" attributes="0"> | |||
<Component id="createBookBtn" alignment="3" max="32767" attributes="0"/> | |||
<Component id="createUserBtn" alignment="3" max="32767" attributes="0"/> | |||
<Group type="103" groupAlignment="0" attributes="0"> | |||
<Group type="102" attributes="0"> | |||
<EmptySpace min="-2" pref="10" max="-2" attributes="0"/> | |||
<Group type="103" groupAlignment="3" attributes="0"> | |||
<Component id="createBookBtn" alignment="3" max="32767" attributes="0"/> | |||
<Component id="createUserBtn" alignment="3" max="32767" attributes="0"/> | |||
</Group> | |||
</Group> | |||
<Group type="102" alignment="1" attributes="0"> | |||
<EmptySpace max="32767" attributes="0"/> | |||
<Component id="settingsBtn" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
</Group> | |||
<EmptySpace max="-2" attributes="0"/> | |||
</Group> | |||
@@ -324,7 +334,7 @@ | |||
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> | |||
<Font name="Lucida Grande" size="36" style="0"/> | |||
</Property> | |||
<Property name="text" type="java.lang.String" value="Welcome to abc Library"/> | |||
<Property name="text" type="java.lang.String" value="Welcome to the library"/> | |||
</Properties> | |||
</Component> | |||
<Component class="javax.swing.JButton" name="createBookBtn"> | |||
@@ -343,6 +353,14 @@ | |||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createUserBtnActionPerformed"/> | |||
</Events> | |||
</Component> | |||
<Component class="javax.swing.JButton" name="settingsBtn"> | |||
<Properties> | |||
<Property name="text" type="java.lang.String" value="Settings"/> | |||
</Properties> | |||
<Events> | |||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="settingsBtnActionPerformed"/> | |||
</Events> | |||
</Component> | |||
</SubComponents> | |||
</Container> | |||
</SubComponents> | |||
@@ -2,17 +2,21 @@ package libsys; | |||
import java.awt.event.ActionEvent; | |||
import java.awt.event.ActionListener; | |||
import java.util.concurrent.CountDownLatch; | |||
@SuppressWarnings({"unchecked", "serial"}) | |||
public class MainGUI extends javax.swing.JFrame | |||
{ | |||
Handler handler; | |||
Settings settings; | |||
public MainGUI(Handler handler) | |||
public MainGUI(Handler handler, Settings settings) | |||
{ | |||
this.handler = handler; | |||
this.settings = settings; | |||
initComponents(); | |||
nameLabel.setText(settings.get(settings.getKey(0))); | |||
} | |||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents | |||
@@ -41,6 +45,7 @@ public class MainGUI extends javax.swing.JFrame | |||
nameLabel = new javax.swing.JLabel(); | |||
createBookBtn = new javax.swing.JButton(); | |||
createUserBtn = new javax.swing.JButton(); | |||
settingsBtn = new javax.swing.JButton(); | |||
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); | |||
@@ -193,7 +198,7 @@ public class MainGUI extends javax.swing.JFrame | |||
jTabbedPane.addTab("User", userPanel); | |||
nameLabel.setFont(new java.awt.Font("Lucida Grande", 0, 36)); // NOI18N | |||
nameLabel.setText("Welcome to abc Library"); | |||
nameLabel.setText("Welcome to the library"); | |||
createBookBtn.setText("Add new book"); | |||
createBookBtn.addActionListener(new java.awt.event.ActionListener() { | |||
@@ -209,6 +214,13 @@ public class MainGUI extends javax.swing.JFrame | |||
} | |||
}); | |||
settingsBtn.setText("Settings"); | |||
settingsBtn.addActionListener(new java.awt.event.ActionListener() { | |||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||
settingsBtnActionPerformed(evt); | |||
} | |||
}); | |||
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel); | |||
mainPanel.setLayout(mainPanelLayout); | |||
mainPanelLayout.setHorizontalGroup( | |||
@@ -216,16 +228,18 @@ public class MainGUI extends javax.swing.JFrame | |||
.addGroup(mainPanelLayout.createSequentialGroup() | |||
.addContainerGap() | |||
.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
.addComponent(jTabbedPane) | |||
.addGroup(mainPanelLayout.createSequentialGroup() | |||
.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
.addGroup(mainPanelLayout.createSequentialGroup() | |||
.addComponent(createBookBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |||
.addComponent(createUserBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)) | |||
.addComponent(nameLabel)) | |||
.addGap(0, 0, Short.MAX_VALUE))) | |||
.addContainerGap()) | |||
.addComponent(jTabbedPane) | |||
.addContainerGap()) | |||
.addGroup(mainPanelLayout.createSequentialGroup() | |||
.addComponent(nameLabel) | |||
.addGap(0, 0, Short.MAX_VALUE)) | |||
.addGroup(mainPanelLayout.createSequentialGroup() | |||
.addComponent(createBookBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |||
.addComponent(createUserBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | |||
.addComponent(settingsBtn)))) | |||
); | |||
mainPanelLayout.setVerticalGroup( | |||
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
@@ -234,10 +248,15 @@ public class MainGUI extends javax.swing.JFrame | |||
.addComponent(nameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |||
.addComponent(jTabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) | |||
.addGap(10, 10, 10) | |||
.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||
.addComponent(createBookBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | |||
.addComponent(createUserBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) | |||
.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
.addGroup(mainPanelLayout.createSequentialGroup() | |||
.addGap(10, 10, 10) | |||
.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||
.addComponent(createBookBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | |||
.addComponent(createUserBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) | |||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup() | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | |||
.addComponent(settingsBtn))) | |||
.addContainerGap()) | |||
); | |||
@@ -298,6 +317,20 @@ public class MainGUI extends javax.swing.JFrame | |||
} | |||
}//GEN-LAST:event_createBookBtnActionPerformed | |||
private void settingsBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_settingsBtnActionPerformed | |||
SettingsDialog settingsUI = new SettingsDialog(this, true, settings); | |||
settingsUI.setVisible(true); | |||
if (settingsUI.getReturnStatus() != -1) | |||
{ | |||
settings.update(settings.getKey(0), settingsUI.getTitle()); | |||
settings.update(settings.getKey(1), settingsUI.getUsersFilename()); | |||
settings.update(settings.getKey(2), settingsUI.getBooksFilename()); | |||
nameLabel.setText(settingsUI.getTitle()); | |||
} | |||
}//GEN-LAST:event_settingsBtnActionPerformed | |||
private void rentBtnActionPerformed(java.awt.event.ActionEvent evt) | |||
{ | |||
User thisUser = handler.users.getUser(Integer.parseInt(userSearch.getText())); | |||
@@ -378,6 +411,7 @@ public class MainGUI extends javax.swing.JFrame | |||
private javax.swing.JLabel nameLabel; | |||
private javax.swing.JButton rentBtn; | |||
private javax.swing.JButton returnBtn; | |||
private javax.swing.JButton settingsBtn; | |||
private javax.swing.JLabel userBooks; | |||
private javax.swing.JLabel userID; | |||
private javax.swing.JLabel userLimit; | |||
@@ -0,0 +1,101 @@ | |||
package libsys; | |||
import java.util.Scanner; | |||
import java.io.FileInputStream; | |||
import java.io.PrintWriter; | |||
import java.util.HashMap; | |||
import java.util.ArrayList; | |||
public class Settings | |||
{ | |||
private HashMap<String, String> items = new HashMap(); | |||
private ArrayList<String> keys = new ArrayList(); | |||
private String settingsFileName; | |||
public Settings(String settingsFileName) | |||
{ | |||
this.settingsFileName = settingsFileName; | |||
try | |||
{ | |||
Scanner in = new Scanner(new FileInputStream(settingsFileName)); | |||
while (in.hasNextLine()) | |||
{ | |||
String newInput = in.nextLine(); | |||
String[] inputSplitted = newInput.split(":"); | |||
keys.add(inputSplitted[0]); | |||
items.put(keys.get(keys.size() - 1), inputSplitted[1]); | |||
} | |||
} | |||
catch (Exception e) | |||
{ | |||
System.out.println("Settings file not found!"); | |||
setDefault(); | |||
} | |||
} | |||
public void toFile() | |||
{ | |||
try | |||
{ | |||
PrintWriter out = new PrintWriter(settingsFileName); | |||
for (int i = 0; i < keys.size(); i++) | |||
{ | |||
out.println(keys.get(i) + ":" + items.get(keys.get(i))); | |||
} | |||
out.close(); | |||
} | |||
catch (Exception e) | |||
{ | |||
System.out.println(e.getMessage()); | |||
setDefault(); | |||
} | |||
} | |||
public void update(String key, String newValue) | |||
{ | |||
items.remove(key); | |||
items.put(key, newValue); | |||
toFile(); | |||
} | |||
public int size() | |||
{ | |||
return keys.size(); | |||
} | |||
public String getKey(int location) | |||
{ | |||
return keys.get(location); | |||
} | |||
public String get(String key) | |||
{ | |||
return items.get(key); | |||
} | |||
public void setTitle(String newTitle) | |||
{ | |||
update("Title", newTitle); | |||
} | |||
public void setUsersFilename(String newUsersFilename) | |||
{ | |||
update("Users Filename", newUsersFilename); | |||
} | |||
public void setBooksFilename(String newBooksFilename) | |||
{ | |||
update("Books Filename", newBooksFilename); | |||
} | |||
public void setDefault() | |||
{ | |||
keys.add("Title"); | |||
items.put(keys.get(0), "Welcome to the library"); | |||
keys.add("Users Filename"); | |||
items.put(keys.get(1), "users.json"); | |||
keys.add("Books Filename"); | |||
items.put(keys.get(2), "books.json"); | |||
} | |||
} |
@@ -0,0 +1,135 @@ | |||
<?xml version="1.0" encoding="UTF-8" ?> | |||
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> | |||
<Properties> | |||
<Property name="defaultCloseOperation" type="int" value="2"/> | |||
</Properties> | |||
<SyntheticProperties> | |||
<SyntheticProperty name="formSizePolicy" type="int" value="1"/> | |||
<SyntheticProperty name="generateCenter" type="boolean" value="false"/> | |||
</SyntheticProperties> | |||
<AuxValues> | |||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> | |||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> | |||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> | |||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> | |||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> | |||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> | |||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> | |||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> | |||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> | |||
</AuxValues> | |||
<Layout> | |||
<DimensionLayout dim="0"> | |||
<Group type="103" groupAlignment="0" attributes="0"> | |||
<Group type="102" attributes="0"> | |||
<EmptySpace max="-2" attributes="0"/> | |||
<Group type="103" groupAlignment="0" attributes="0"> | |||
<Group type="102" alignment="0" attributes="0"> | |||
<Component id="saveBtn" min="-2" max="-2" attributes="0"/> | |||
<EmptySpace pref="118" max="32767" attributes="0"/> | |||
<Component id="discardBtn" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
<Group type="102" attributes="0"> | |||
<Group type="103" groupAlignment="0" attributes="0"> | |||
<Component id="settingsLbl" min="-2" max="-2" attributes="0"/> | |||
<Group type="102" alignment="0" attributes="0"> | |||
<Group type="103" groupAlignment="0" attributes="0"> | |||
<Component id="usersFilenameLbl" alignment="0" min="-2" max="-2" attributes="0"/> | |||
<Component id="titleLbl" alignment="0" min="-2" max="-2" attributes="0"/> | |||
<Component id="booksFilenameLbl" alignment="0" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
<EmptySpace type="unrelated" max="-2" attributes="0"/> | |||
<Group type="103" groupAlignment="0" max="-2" attributes="0"> | |||
<Component id="booksFilenameTxt" pref="136" max="32767" attributes="0"/> | |||
<Component id="titleTxtField" max="32767" attributes="0"/> | |||
<Component id="usersFilenameTxt" max="32767" attributes="0"/> | |||
</Group> | |||
</Group> | |||
</Group> | |||
<EmptySpace min="0" pref="0" max="32767" attributes="0"/> | |||
</Group> | |||
</Group> | |||
<EmptySpace max="32767" attributes="0"/> | |||
</Group> | |||
</Group> | |||
</DimensionLayout> | |||
<DimensionLayout dim="1"> | |||
<Group type="103" groupAlignment="0" attributes="0"> | |||
<Group type="102" alignment="0" attributes="0"> | |||
<EmptySpace max="-2" attributes="0"/> | |||
<Component id="settingsLbl" min="-2" max="-2" attributes="0"/> | |||
<EmptySpace type="separate" max="-2" attributes="0"/> | |||
<Group type="103" groupAlignment="3" attributes="0"> | |||
<Component id="titleLbl" alignment="3" min="-2" max="-2" attributes="0"/> | |||
<Component id="titleTxtField" alignment="3" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
<EmptySpace type="unrelated" max="-2" attributes="0"/> | |||
<Group type="103" groupAlignment="3" attributes="0"> | |||
<Component id="usersFilenameLbl" alignment="3" min="-2" max="-2" attributes="0"/> | |||
<Component id="usersFilenameTxt" alignment="3" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
<EmptySpace type="unrelated" max="-2" attributes="0"/> | |||
<Group type="103" groupAlignment="3" attributes="0"> | |||
<Component id="booksFilenameLbl" alignment="3" min="-2" max="-2" attributes="0"/> | |||
<Component id="booksFilenameTxt" alignment="3" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
<EmptySpace max="32767" attributes="0"/> | |||
<Group type="103" groupAlignment="3" attributes="0"> | |||
<Component id="saveBtn" alignment="3" min="-2" max="-2" attributes="0"/> | |||
<Component id="discardBtn" alignment="3" min="-2" max="-2" attributes="0"/> | |||
</Group> | |||
<EmptySpace max="-2" attributes="0"/> | |||
</Group> | |||
</Group> | |||
</DimensionLayout> | |||
</Layout> | |||
<SubComponents> | |||
<Component class="javax.swing.JLabel" name="settingsLbl"> | |||
<Properties> | |||
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> | |||
<Font name="Lucida Grande" size="24" style="0"/> | |||
</Property> | |||
<Property name="text" type="java.lang.String" value="Settings"/> | |||
</Properties> | |||
</Component> | |||
<Component class="javax.swing.JLabel" name="titleLbl"> | |||
<Properties> | |||
<Property name="text" type="java.lang.String" value="Title :"/> | |||
</Properties> | |||
</Component> | |||
<Component class="javax.swing.JTextField" name="titleTxtField"> | |||
</Component> | |||
<Component class="javax.swing.JLabel" name="usersFilenameLbl"> | |||
<Properties> | |||
<Property name="text" type="java.lang.String" value="Users Filename :"/> | |||
</Properties> | |||
</Component> | |||
<Component class="javax.swing.JTextField" name="usersFilenameTxt"> | |||
</Component> | |||
<Component class="javax.swing.JLabel" name="booksFilenameLbl"> | |||
<Properties> | |||
<Property name="text" type="java.lang.String" value="Books Filename :"/> | |||
</Properties> | |||
</Component> | |||
<Component class="javax.swing.JTextField" name="booksFilenameTxt"> | |||
</Component> | |||
<Component class="javax.swing.JButton" name="saveBtn"> | |||
<Properties> | |||
<Property name="text" type="java.lang.String" value="Save"/> | |||
</Properties> | |||
<Events> | |||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="saveBtnActionPerformed"/> | |||
</Events> | |||
</Component> | |||
<Component class="javax.swing.JButton" name="discardBtn"> | |||
<Properties> | |||
<Property name="text" type="java.lang.String" value="Discard"/> | |||
</Properties> | |||
<Events> | |||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="discardBtnActionPerformed"/> | |||
</Events> | |||
</Component> | |||
</SubComponents> | |||
</Form> |
@@ -0,0 +1,220 @@ | |||
package libsys; | |||
/** | |||
* | |||
* @author BinHong Lee | |||
*/ | |||
public class SettingsDialog extends javax.swing.JDialog { | |||
/** | |||
* Creates new form SettingsDialog | |||
*/ | |||
public SettingsDialog(java.awt.Frame parent, boolean modal, Settings preset) { | |||
super(parent, modal); | |||
initComponents(); | |||
setup(preset); | |||
this.preset = preset; | |||
} | |||
/** | |||
* This method is called from within the constructor to initialize the form. | |||
* WARNING: Do NOT modify this code. The content of this method is always | |||
* regenerated by the Form Editor. | |||
*/ | |||
@SuppressWarnings("unchecked") | |||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents | |||
private void initComponents() { | |||
settingsLbl = new javax.swing.JLabel(); | |||
titleLbl = new javax.swing.JLabel(); | |||
titleTxtField = new javax.swing.JTextField(); | |||
usersFilenameLbl = new javax.swing.JLabel(); | |||
usersFilenameTxt = new javax.swing.JTextField(); | |||
booksFilenameLbl = new javax.swing.JLabel(); | |||
booksFilenameTxt = new javax.swing.JTextField(); | |||
saveBtn = new javax.swing.JButton(); | |||
discardBtn = new javax.swing.JButton(); | |||
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); | |||
settingsLbl.setFont(new java.awt.Font("Lucida Grande", 0, 24)); // NOI18N | |||
settingsLbl.setText("Settings"); | |||
titleLbl.setText("Title :"); | |||
usersFilenameLbl.setText("Users Filename :"); | |||
booksFilenameLbl.setText("Books Filename :"); | |||
saveBtn.setText("Save"); | |||
saveBtn.addActionListener(new java.awt.event.ActionListener() { | |||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||
saveBtnActionPerformed(evt); | |||
} | |||
}); | |||
discardBtn.setText("Discard"); | |||
discardBtn.addActionListener(new java.awt.event.ActionListener() { | |||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||
discardBtnActionPerformed(evt); | |||
} | |||
}); | |||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); | |||
getContentPane().setLayout(layout); | |||
layout.setHorizontalGroup( | |||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
.addGroup(layout.createSequentialGroup() | |||
.addContainerGap() | |||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
.addGroup(layout.createSequentialGroup() | |||
.addComponent(saveBtn) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 118, Short.MAX_VALUE) | |||
.addComponent(discardBtn)) | |||
.addGroup(layout.createSequentialGroup() | |||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
.addComponent(settingsLbl) | |||
.addGroup(layout.createSequentialGroup() | |||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
.addComponent(usersFilenameLbl) | |||
.addComponent(titleLbl) | |||
.addComponent(booksFilenameLbl)) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) | |||
.addComponent(booksFilenameTxt, javax.swing.GroupLayout.DEFAULT_SIZE, 136, Short.MAX_VALUE) | |||
.addComponent(titleTxtField) | |||
.addComponent(usersFilenameTxt)))) | |||
.addGap(0, 0, Short.MAX_VALUE))) | |||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) | |||
); | |||
layout.setVerticalGroup( | |||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||
.addGroup(layout.createSequentialGroup() | |||
.addContainerGap() | |||
.addComponent(settingsLbl) | |||
.addGap(18, 18, 18) | |||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||
.addComponent(titleLbl) | |||
.addComponent(titleTxtField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||
.addComponent(usersFilenameLbl) | |||
.addComponent(usersFilenameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||
.addComponent(booksFilenameLbl) | |||
.addComponent(booksFilenameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | |||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||
.addComponent(saveBtn) | |||
.addComponent(discardBtn)) | |||
.addContainerGap()) | |||
); | |||
pack(); | |||
}// </editor-fold>//GEN-END:initComponents | |||
private void saveBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveBtnActionPerformed | |||
doClose(1); | |||
}//GEN-LAST:event_saveBtnActionPerformed | |||
private void discardBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_discardBtnActionPerformed | |||
doClose(-1); | |||
}//GEN-LAST:event_discardBtnActionPerformed | |||
/** | |||
* @param args the command line arguments | |||
*/ | |||
public static void main(String args[]) { | |||
/* Set the Nimbus look and feel */ | |||
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> | |||
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. | |||
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html | |||
*/ | |||
try { | |||
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { | |||
if ("Nimbus".equals(info.getName())) { | |||
javax.swing.UIManager.setLookAndFeel(info.getClassName()); | |||
break; | |||
} | |||
} | |||
} catch (ClassNotFoundException ex) { | |||
java.util.logging.Logger.getLogger(SettingsDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |||
} catch (InstantiationException ex) { | |||
java.util.logging.Logger.getLogger(SettingsDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |||
} catch (IllegalAccessException ex) { | |||
java.util.logging.Logger.getLogger(SettingsDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |||
} catch (javax.swing.UnsupportedLookAndFeelException ex) { | |||
java.util.logging.Logger.getLogger(SettingsDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |||
} | |||
//</editor-fold> | |||
/* Create and display the dialog */ | |||
java.awt.EventQueue.invokeLater(new Runnable() { | |||
public void run() { | |||
SettingsDialog dialog = new SettingsDialog(new javax.swing.JFrame(), true, preset); | |||
dialog.addWindowListener(new java.awt.event.WindowAdapter() { | |||
@Override | |||
public void windowClosing(java.awt.event.WindowEvent e) { | |||
System.exit(0); | |||
} | |||
}); | |||
dialog.setVisible(true); | |||
} | |||
}); | |||
} | |||
private void setup(Settings preset) | |||
{ | |||
titleTxtField.setText(preset.get(preset.getKey(0))); | |||
usersFilenameTxt.setText((preset.get(preset.getKey(1)))); | |||
booksFilenameTxt.setText(preset.get(preset.getKey(2))); | |||
} | |||
private void doClose(int retStatus) | |||
{ | |||
returnStatus = retStatus; | |||
title = titleTxtField.getText(); | |||
usersFilename = usersFilenameTxt.getText(); | |||
booksFilename = booksFilenameTxt.getText(); | |||
setVisible(false); | |||
} | |||
public String getTitle() | |||
{ | |||
return title; | |||
} | |||
public String getUsersFilename() | |||
{ | |||
return usersFilename; | |||
} | |||
public String getBooksFilename() | |||
{ | |||
return booksFilename; | |||
} | |||
public int getReturnStatus() | |||
{ | |||
return returnStatus; | |||
} | |||
// Variables declaration - do not modify//GEN-BEGIN:variables | |||
private javax.swing.JLabel booksFilenameLbl; | |||
private javax.swing.JTextField booksFilenameTxt; | |||
private javax.swing.JButton discardBtn; | |||
private javax.swing.JButton saveBtn; | |||
private javax.swing.JLabel settingsLbl; | |||
private javax.swing.JLabel titleLbl; | |||
private javax.swing.JTextField titleTxtField; | |||
private javax.swing.JLabel usersFilenameLbl; | |||
private javax.swing.JTextField usersFilenameTxt; | |||
// End of variables declaration//GEN-END:variables | |||
private int returnStatus; | |||
private String title; | |||
private String usersFilename; | |||
private String booksFilename; | |||
private static Settings preset; | |||
} |