@@ -1,3 +1,5 @@ | |||||
*.json | |||||
.classpath | .classpath | ||||
effective.pom | effective.pom | ||||
*.class | *.class | ||||
@@ -6,6 +8,7 @@ target | |||||
.mtj.tmp/ | .mtj.tmp/ | ||||
# Package Files # | # Package Files # | ||||
*.jar | |||||
*.war | *.war | ||||
*.ear | *.ear | ||||
@@ -1,20 +0,0 @@ | |||||
{ | |||||
"0": { | |||||
"Status": "RENTED", | |||||
"Title": "Cracking the Coding Interview", | |||||
"Due Date": [ | |||||
2017, | |||||
6, | |||||
8 | |||||
] | |||||
}, | |||||
"1": { | |||||
"Status": "AVAILABLE", | |||||
"Title": "Who was that?", | |||||
"Due Date": [ | |||||
2017, | |||||
6, | |||||
8 | |||||
] | |||||
} | |||||
} |
@@ -1,7 +1,7 @@ | |||||
package libsys; | package libsys; | ||||
/* | /* | ||||
* Written by : Bin Hong Lee | * Written by : Bin Hong Lee | ||||
* Last edited : 5/28/2017 | |||||
* Last edited : 5/30/2017 | |||||
*/ | */ | ||||
import java.util.List; | import java.util.List; | ||||
@@ -20,6 +20,7 @@ class BookFactory | |||||
{ | { | ||||
private List<Book> books = new ArrayList<Book>(); | private List<Book> books = new ArrayList<Book>(); | ||||
private int id; | private int id; | ||||
private String bookFilename; | |||||
public BookFactory() | public BookFactory() | ||||
{ | { | ||||
@@ -56,10 +57,11 @@ class BookFactory | |||||
System.out.println(ex.getMessage()); | System.out.println(ex.getMessage()); | ||||
} | } | ||||
this.bookFilename = bookFilename; | |||||
id = getBook(books.size()-1).getId() + 1; | id = getBook(books.size()-1).getId() + 1; | ||||
} | } | ||||
public void toJsonFile(String bookFilename) | |||||
public void toJsonFile() | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
@@ -84,12 +86,18 @@ class BookFactory | |||||
} | } | ||||
} | } | ||||
public void setBookFileName(String bookFilename) | |||||
{ | |||||
this.bookFilename = bookFilename; | |||||
} | |||||
public Book newBook(String title) | public Book newBook(String title) | ||||
{ | { | ||||
Book temp = new Book(title, id); | Book temp = new Book(title, id); | ||||
books.add(temp); | books.add(temp); | ||||
id++; | id++; | ||||
toJsonFile(); | |||||
return temp; | return temp; | ||||
} | } | ||||
@@ -132,5 +140,7 @@ class BookFactory | |||||
books.set(i, newBook); | books.set(i, newBook); | ||||
} | } | ||||
} | } | ||||
toJsonFile(); | |||||
} | } | ||||
} | } |
@@ -10,8 +10,8 @@ import org.json.JSONObject; | |||||
class Handler | class Handler | ||||
{ | { | ||||
Exception BookNotFound = new Exception("Error 404 : Book not found"); | Exception BookNotFound = new Exception("Error 404 : Book not found"); | ||||
BookFactory books = new BookFactory(); | |||||
UserFactory users = new UserFactory(); | |||||
BookFactory books; | |||||
UserFactory users; | |||||
Calendar cal = Calendar.getInstance(); | Calendar cal = Calendar.getInstance(); | ||||
public Handler() | public Handler() | ||||
@@ -29,9 +29,6 @@ class Handler | |||||
books.update(book, newBook); | books.update(book, newBook); | ||||
users.update(user, newUser); | users.update(user, newUser); | ||||
books.toJsonFile("books.json"); | |||||
users.toJsonFile("users.json"); | |||||
return true; | return true; | ||||
} | } | ||||
@@ -50,9 +47,6 @@ class Handler | |||||
books.update(book, newBook); | books.update(book, newBook); | ||||
users.update(user, newUser); | users.update(user, newUser); | ||||
books.toJsonFile("books.json"); | |||||
users.toJsonFile("users.json"); | |||||
return true; | return true; | ||||
} | } | ||||
@@ -1,7 +1,7 @@ | |||||
package libsys; | package libsys; | ||||
/* | /* | ||||
* Written by : Bin Hong Lee | * Written by : Bin Hong Lee | ||||
* Last edited : 5/28/2017 | |||||
* Last edited : 5/30/2017 | |||||
*/ | */ | ||||
class Main | class Main | ||||
@@ -12,8 +12,29 @@ class Main | |||||
public static void main(String[] args) | public static void main(String[] args) | ||||
{ | { | ||||
Handler handler = new Handler(); | Handler handler = new Handler(); | ||||
handler.books = new BookFactory(bookFilename); | |||||
handler.users = new UserFactory(userFilename); | |||||
try | |||||
{ | |||||
handler.books = new BookFactory(bookFilename); | |||||
} | |||||
catch (Exception e) | |||||
{ | |||||
System.out.println("Book Exception"); | |||||
handler.books = new BookFactory(); | |||||
handler.books.setBookFileName(bookFilename); | |||||
} | |||||
try | |||||
{ | |||||
handler.users = new UserFactory(userFilename); | |||||
} | |||||
catch (Exception e) | |||||
{ | |||||
System.out.println("User Exception"); | |||||
handler.users = new UserFactory(); | |||||
handler.users.setUserFileName(userFilename); | |||||
} | |||||
new MainGUI(handler).setVisible(true); | new MainGUI(handler).setVisible(true); | ||||
} | } | ||||
} | } |
@@ -74,8 +74,8 @@ | |||||
<Group type="102" alignment="1" attributes="0"> | <Group type="102" alignment="1" attributes="0"> | ||||
<EmptySpace max="-2" attributes="0"/> | <EmptySpace max="-2" attributes="0"/> | ||||
<Component id="nameLabel" min="-2" pref="59" max="-2" attributes="0"/> | <Component id="nameLabel" min="-2" pref="59" max="-2" attributes="0"/> | ||||
<EmptySpace max="-2" attributes="0"/> | |||||
<Component id="jTabbedPane" min="-2" pref="290" 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"/> | <EmptySpace min="-2" pref="10" max="-2" attributes="0"/> | ||||
<Group type="103" groupAlignment="3" attributes="0"> | <Group type="103" groupAlignment="3" attributes="0"> | ||||
<Component id="createBookBtn" alignment="3" max="32767" attributes="0"/> | <Component id="createBookBtn" alignment="3" max="32767" attributes="0"/> | ||||
@@ -144,7 +144,7 @@ | |||||
<Component id="bookStatus" min="-2" max="-2" attributes="0"/> | <Component id="bookStatus" min="-2" max="-2" attributes="0"/> | ||||
<EmptySpace type="unrelated" max="-2" attributes="0"/> | <EmptySpace type="unrelated" max="-2" attributes="0"/> | ||||
<Component id="bookDueDate" min="-2" max="-2" attributes="0"/> | <Component id="bookDueDate" min="-2" max="-2" attributes="0"/> | ||||
<EmptySpace pref="94" max="32767" attributes="0"/> | |||||
<EmptySpace pref="88" max="32767" attributes="0"/> | |||||
</Group> | </Group> | ||||
</Group> | </Group> | ||||
</DimensionLayout> | </DimensionLayout> | ||||
@@ -336,6 +336,9 @@ | |||||
<Properties> | <Properties> | ||||
<Property name="text" type="java.lang.String" value="Add new user"/> | <Property name="text" type="java.lang.String" value="Add new user"/> | ||||
</Properties> | </Properties> | ||||
<Events> | |||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createUserBtnActionPerformed"/> | |||||
</Events> | |||||
</Component> | </Component> | ||||
</SubComponents> | </SubComponents> | ||||
</Container> | </Container> | ||||
@@ -103,7 +103,7 @@ public class MainGUI extends javax.swing.JFrame | |||||
.addComponent(bookStatus) | .addComponent(bookStatus) | ||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | ||||
.addComponent(bookDueDate) | .addComponent(bookDueDate) | ||||
.addContainerGap(94, Short.MAX_VALUE)) | |||||
.addContainerGap(88, Short.MAX_VALUE)) | |||||
); | ); | ||||
jTabbedPane.addTab("Book", bookPanel); | jTabbedPane.addTab("Book", bookPanel); | ||||
@@ -198,6 +198,11 @@ public class MainGUI extends javax.swing.JFrame | |||||
createBookBtn.setText("Add new book"); | createBookBtn.setText("Add new book"); | ||||
createUserBtn.setText("Add new user"); | createUserBtn.setText("Add new user"); | ||||
createUserBtn.addActionListener(new java.awt.event.ActionListener() { | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||||
createUserBtnActionPerformed(evt); | |||||
} | |||||
}); | |||||
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel); | javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel); | ||||
mainPanel.setLayout(mainPanelLayout); | mainPanel.setLayout(mainPanelLayout); | ||||
@@ -222,8 +227,8 @@ public class MainGUI extends javax.swing.JFrame | |||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup() | .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup() | ||||
.addContainerGap() | .addContainerGap() | ||||
.addComponent(nameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) | .addComponent(nameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) | ||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |||||
.addComponent(jTabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE, 290, 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) | .addGap(10, 10, 10) | ||||
.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | ||||
.addComponent(createBookBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | .addComponent(createBookBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) | ||||
@@ -266,6 +271,17 @@ public class MainGUI extends javax.swing.JFrame | |||||
} | } | ||||
}//GEN-LAST:event_returnBtnActionPerformed | }//GEN-LAST:event_returnBtnActionPerformed | ||||
private void createUserBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createUserBtnActionPerformed | |||||
NewUserDialog newUserUI = new NewUserDialog(this, true); | |||||
newUserUI.setVisible(true); | |||||
if (newUserUI.getReturnStatus() != -1) | |||||
{ | |||||
userSearch.setText(String.valueOf(handler.users.newUser(newUserUI.getName(), newUserUI.getLimit()).getId())); | |||||
userSearchBtnActionPerformed(evt); | |||||
} | |||||
}//GEN-LAST:event_createUserBtnActionPerformed | |||||
private void rentBtnActionPerformed(java.awt.event.ActionEvent evt) | private void rentBtnActionPerformed(java.awt.event.ActionEvent evt) | ||||
{ | { | ||||
User thisUser = handler.users.getUser(Integer.parseInt(userSearch.getText())); | User thisUser = handler.users.getUser(Integer.parseInt(userSearch.getText())); | ||||
@@ -0,0 +1,132 @@ | |||||
<?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="createBtn" min="-2" max="-2" attributes="0"/> | |||||
<EmptySpace pref="13" max="32767" attributes="0"/> | |||||
<Component id="cancelBtn" min="-2" max="-2" attributes="0"/> | |||||
</Group> | |||||
<Group type="102" attributes="0"> | |||||
<Group type="103" groupAlignment="0" attributes="0"> | |||||
<Component id="title" alignment="0" min="-2" max="-2" attributes="0"/> | |||||
<Component id="errorLbl" alignment="0" min="-2" max="-2" attributes="0"/> | |||||
</Group> | |||||
<EmptySpace min="0" pref="0" max="32767" attributes="0"/> | |||||
</Group> | |||||
<Group type="102" alignment="0" attributes="0"> | |||||
<Group type="103" groupAlignment="0" attributes="0"> | |||||
<Component id="limitLbl" alignment="0" min="-2" max="-2" attributes="0"/> | |||||
<Component id="nameLbl" alignment="0" min="-2" max="-2" attributes="0"/> | |||||
</Group> | |||||
<EmptySpace type="unrelated" max="-2" attributes="0"/> | |||||
<Group type="103" groupAlignment="0" attributes="0"> | |||||
<Component id="nameTxtField" max="32767" attributes="0"/> | |||||
<Component id="limitTxtField" max="32767" attributes="0"/> | |||||
</Group> | |||||
</Group> | |||||
</Group> | |||||
<EmptySpace max="-2" 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="title" min="-2" max="-2" attributes="0"/> | |||||
<EmptySpace type="unrelated" max="-2" attributes="0"/> | |||||
<Component id="errorLbl" min="-2" max="-2" attributes="0"/> | |||||
<EmptySpace type="unrelated" max="-2" attributes="0"/> | |||||
<Group type="103" groupAlignment="3" attributes="0"> | |||||
<Component id="nameLbl" alignment="3" min="-2" max="-2" attributes="0"/> | |||||
<Component id="nameTxtField" alignment="3" min="-2" max="-2" attributes="0"/> | |||||
</Group> | |||||
<EmptySpace type="separate" max="-2" attributes="0"/> | |||||
<Group type="103" groupAlignment="3" attributes="0"> | |||||
<Component id="limitLbl" alignment="3" min="-2" max="-2" attributes="0"/> | |||||
<Component id="limitTxtField" alignment="3" min="-2" max="-2" attributes="0"/> | |||||
</Group> | |||||
<EmptySpace pref="12" max="32767" attributes="0"/> | |||||
<Group type="103" groupAlignment="3" attributes="0"> | |||||
<Component id="createBtn" alignment="3" min="-2" max="-2" attributes="0"/> | |||||
<Component id="cancelBtn" 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="title"> | |||||
<Properties> | |||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> | |||||
<Font name="Lucida Grande" size="18" style="0"/> | |||||
</Property> | |||||
<Property name="text" type="java.lang.String" value="New User"/> | |||||
</Properties> | |||||
</Component> | |||||
<Component class="javax.swing.JLabel" name="nameLbl"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="Name :"/> | |||||
</Properties> | |||||
</Component> | |||||
<Component class="javax.swing.JLabel" name="limitLbl"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="Limit :"/> | |||||
</Properties> | |||||
</Component> | |||||
<Component class="javax.swing.JButton" name="createBtn"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="Create user"/> | |||||
</Properties> | |||||
<Events> | |||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createBtnActionPerformed"/> | |||||
</Events> | |||||
</Component> | |||||
<Component class="javax.swing.JButton" name="cancelBtn"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="Cancel"/> | |||||
</Properties> | |||||
<Events> | |||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cancelBtnActionPerformed"/> | |||||
</Events> | |||||
</Component> | |||||
<Component class="javax.swing.JTextField" name="nameTxtField"> | |||||
</Component> | |||||
<Component class="javax.swing.JTextField" name="limitTxtField"> | |||||
</Component> | |||||
<Component class="javax.swing.JLabel" name="errorLbl"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="LIMIT MUST BE NUMERICAL!"/> | |||||
</Properties> | |||||
<AuxValues> | |||||
<AuxValue name="JavaCodeGenerator_InitCodePre" type="java.lang.String" value="errorLbl.setVisible(false);"/> | |||||
</AuxValues> | |||||
</Component> | |||||
</SubComponents> | |||||
</Form> |
@@ -0,0 +1,208 @@ | |||||
package libsys; | |||||
/** | |||||
* | |||||
* @author binhonglee | |||||
*/ | |||||
public class NewUserDialog extends javax.swing.JDialog { | |||||
/** | |||||
* Creates new form NewUserDialog | |||||
*/ | |||||
public NewUserDialog(java.awt.Frame parent, boolean modal) { | |||||
super(parent, modal); | |||||
initComponents(); | |||||
} | |||||
/** | |||||
* @return the return status of this dialog - one of RET_OK or RET_CANCEL | |||||
*/ | |||||
public int getReturnStatus() { | |||||
return returnStatus; | |||||
} | |||||
public String getName() { | |||||
return name; | |||||
} | |||||
public int getLimit() | |||||
{ | |||||
return limit; | |||||
} | |||||
/** | |||||
* 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() { | |||||
title = new javax.swing.JLabel(); | |||||
nameLbl = new javax.swing.JLabel(); | |||||
limitLbl = new javax.swing.JLabel(); | |||||
createBtn = new javax.swing.JButton(); | |||||
cancelBtn = new javax.swing.JButton(); | |||||
nameTxtField = new javax.swing.JTextField(); | |||||
limitTxtField = new javax.swing.JTextField(); | |||||
errorLbl = new javax.swing.JLabel(); | |||||
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); | |||||
title.setFont(new java.awt.Font("Lucida Grande", 0, 18)); // NOI18N | |||||
title.setText("New User"); | |||||
nameLbl.setText("Name :"); | |||||
limitLbl.setText("Limit :"); | |||||
createBtn.setText("Create user"); | |||||
createBtn.addActionListener(new java.awt.event.ActionListener() { | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||||
createBtnActionPerformed(evt); | |||||
} | |||||
}); | |||||
cancelBtn.setText("Cancel"); | |||||
cancelBtn.addActionListener(new java.awt.event.ActionListener() { | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||||
cancelBtnActionPerformed(evt); | |||||
} | |||||
}); | |||||
errorLbl.setVisible(false); | |||||
errorLbl.setText("LIMIT MUST BE NUMERICAL!"); | |||||
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(createBtn) | |||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE) | |||||
.addComponent(cancelBtn)) | |||||
.addGroup(layout.createSequentialGroup() | |||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||||
.addComponent(title) | |||||
.addComponent(errorLbl)) | |||||
.addGap(0, 0, Short.MAX_VALUE)) | |||||
.addGroup(layout.createSequentialGroup() | |||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||||
.addComponent(limitLbl) | |||||
.addComponent(nameLbl)) | |||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||||
.addComponent(nameTxtField) | |||||
.addComponent(limitTxtField)))) | |||||
.addContainerGap()) | |||||
); | |||||
layout.setVerticalGroup( | |||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||||
.addGroup(layout.createSequentialGroup() | |||||
.addContainerGap() | |||||
.addComponent(title) | |||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |||||
.addComponent(errorLbl) | |||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||||
.addComponent(nameLbl) | |||||
.addComponent(nameTxtField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |||||
.addGap(18, 18, 18) | |||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||||
.addComponent(limitLbl) | |||||
.addComponent(limitTxtField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 12, Short.MAX_VALUE) | |||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |||||
.addComponent(createBtn) | |||||
.addComponent(cancelBtn)) | |||||
.addContainerGap()) | |||||
); | |||||
pack(); | |||||
}// </editor-fold>//GEN-END:initComponents | |||||
private void createBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createBtnActionPerformed | |||||
try | |||||
{ | |||||
limit = Integer.parseInt(limitTxtField.getText()); | |||||
name = nameTxtField.getText(); | |||||
doClose(1); | |||||
} | |||||
catch (Exception e) | |||||
{ | |||||
errorLbl.setVisible(true); | |||||
} | |||||
}//GEN-LAST:event_createBtnActionPerformed | |||||
private void cancelBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelBtnActionPerformed | |||||
doClose(-1); | |||||
}//GEN-LAST:event_cancelBtnActionPerformed | |||||
private void doClose(int retStatus) { | |||||
returnStatus = retStatus; | |||||
setVisible(false); | |||||
dispose(); | |||||
} | |||||
/** | |||||
* @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(NewUserDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |||||
} catch (InstantiationException ex) { | |||||
java.util.logging.Logger.getLogger(NewUserDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |||||
} catch (IllegalAccessException ex) { | |||||
java.util.logging.Logger.getLogger(NewUserDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |||||
} catch (javax.swing.UnsupportedLookAndFeelException ex) { | |||||
java.util.logging.Logger.getLogger(NewUserDialog.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() { | |||||
NewUserDialog dialog = new NewUserDialog(new javax.swing.JFrame(), true); | |||||
dialog.addWindowListener(new java.awt.event.WindowAdapter() { | |||||
@Override | |||||
public void windowClosing(java.awt.event.WindowEvent e) { | |||||
System.exit(0); | |||||
} | |||||
}); | |||||
dialog.setVisible(true); | |||||
} | |||||
}); | |||||
} | |||||
// Variables declaration - do not modify//GEN-BEGIN:variables | |||||
private javax.swing.JButton cancelBtn; | |||||
private javax.swing.JButton createBtn; | |||||
private javax.swing.JLabel errorLbl; | |||||
private javax.swing.JLabel limitLbl; | |||||
private javax.swing.JTextField limitTxtField; | |||||
private javax.swing.JLabel nameLbl; | |||||
private javax.swing.JTextField nameTxtField; | |||||
private javax.swing.JLabel title; | |||||
// End of variables declaration//GEN-END:variables | |||||
private int returnStatus = -1; | |||||
private String name; | |||||
private int limit; | |||||
} |
@@ -1,7 +1,7 @@ | |||||
package libsys; | package libsys; | ||||
/* | /* | ||||
* Written by : Bin Hong Lee | * Written by : Bin Hong Lee | ||||
* Last edited : 5/28/2017 | |||||
* Last edited : 5/30/2017 | |||||
*/ | */ | ||||
import java.util.List; | import java.util.List; | ||||
@@ -20,6 +20,7 @@ class UserFactory | |||||
{ | { | ||||
private List<User> users = new ArrayList<User>(); | private List<User> users = new ArrayList<User>(); | ||||
private int id; | private int id; | ||||
private String userFilename; | |||||
public UserFactory() | public UserFactory() | ||||
{ | { | ||||
@@ -57,10 +58,11 @@ class UserFactory | |||||
System.out.println("Exception importing from json: " + ex.getMessage()); | System.out.println("Exception importing from json: " + ex.getMessage()); | ||||
} | } | ||||
this.userFilename = userFilename; | |||||
id = getUser(users.size()-1).getId() + 1; | id = getUser(users.size()-1).getId() + 1; | ||||
} | } | ||||
public void toJsonFile(String userFilename) | |||||
public void toJsonFile() | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
@@ -85,12 +87,18 @@ class UserFactory | |||||
} | } | ||||
} | } | ||||
public void setUserFileName(String userFilename) | |||||
{ | |||||
this.userFilename = userFilename; | |||||
} | |||||
public User newUser(String name, int limit) | public User newUser(String name, int limit) | ||||
{ | { | ||||
User temp = new User(name, id, limit); | User temp = new User(name, id, limit); | ||||
users.add(temp); | users.add(temp); | ||||
id++; | id++; | ||||
toJsonFile(); | |||||
return temp; | return temp; | ||||
} | } | ||||
@@ -136,5 +144,7 @@ class UserFactory | |||||
users.set(i, newUser); | users.set(i, newUser); | ||||
} | } | ||||
} | } | ||||
toJsonFile(); | |||||
} | } | ||||
} | } |
@@ -1,12 +0,0 @@ | |||||
{ | |||||
"0": { | |||||
"Limit": 2, | |||||
"Books": [], | |||||
"Name": "FirstName LastName" | |||||
}, | |||||
"1": { | |||||
"Limit": 100, | |||||
"Books": [0], | |||||
"Name": "John Doe" | |||||
} | |||||
} |