Advertisement
shadowsofme

Saving Method

Mar 16th, 2015
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.62 KB | None | 0 0
  1. package package1;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import java.io.*;
  6. import java.lang.reflect.*;
  7. import java.text.DateFormat;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. import java.util.*;
  11.  
  12. import javax.swing.*;
  13. import javax.swing.event.*;
  14. import javax.swing.table.AbstractTableModel;
  15.  
  16. import java.awt.image.*;
  17.  
  18. import javax.imageio.*;
  19.  
  20. public class SiteModel extends AbstractTableModel{
  21.  
  22.     private ArrayList<Site> listSite;
  23.     private String[] columnNames = { "Name Reserving", "Checked in", "Est. Days Staying", "Site #", "Tent/RV info"};
  24.  
  25.     public SiteModel() {
  26.         super();
  27.         listSite = new ArrayList<Site>();
  28.     }
  29.  
  30.     public void removeSite(int i) {    
  31.         listSite.remove(i);
  32.         fireTableRowsDeleted(0, listSite.size());
  33.     }
  34.  
  35.     public void addSite (Site s) {
  36.         listSite.add(s);
  37.         fireTableRowsInserted(0, listSite.size());
  38.     }
  39.  
  40.     public Site getSite (int i) {
  41.         return listSite.get(i);
  42.     }
  43.  
  44.     public Object getElementAt(int i) {
  45.         return getSite(i);
  46.     }
  47.  
  48.     public int getSize() {
  49.         //return 10;
  50.         return listSite.size();
  51.     }
  52.    
  53.     public void loadDatabase(String fileName){
  54.         try {
  55.             FileInputStream fis = new FileInputStream(fileName);
  56.             ObjectInputStream is = new ObjectInputStream(fis);
  57.  
  58.             ArrayList<Site> readObject = (ArrayList<Site>) is.readObject();
  59.             listSite = readObject;
  60.             fireTableRowsInserted(listSite.size()-1, listSite.size()-1);
  61.             JOptionPane.showMessageDialog (
  62.                     null, "Database loaded from C://" + fileName + ".txt",
  63.                     "File Loaded",
  64.                     JOptionPane.INFORMATION_MESSAGE);
  65.             is.close();
  66.         } catch (Exception ex) {
  67.             ex.printStackTrace();
  68.         }
  69.        
  70.     }
  71.    
  72.     public void saveDatabase(String fileName){
  73.         try {
  74.             FileOutputStream fos = new FileOutputStream(fileName);
  75.             ObjectOutputStream os = new ObjectOutputStream(fos);
  76.             os.writeObject(listSite);
  77.             JOptionPane.showMessageDialog (
  78.                     null, "Database saved to C://" + fileName + ".txt",
  79.                     "File Saved",
  80.                     JOptionPane.INFORMATION_MESSAGE);
  81.             os.close();
  82.         } catch (IOException ex) {
  83.             ex.printStackTrace();
  84.         }
  85.     }
  86.  
  87.     public boolean saveText(String fileName){
  88.         if (fileName.equals("")) {
  89.             return false;
  90.         }
  91.  
  92.         try {
  93.             PrintWriter out = new PrintWriter(new BufferedWriter(
  94.                     new FileWriter(fileName)));
  95.             out.println(listSite.size());
  96.             for (int i = 0; i < listSite.size(); i++) {
  97.                 Site site = listSite.get(i);
  98.                 if (site instanceof Tent)
  99.                     out.println("Tent");
  100.                 else
  101.                     out.println("RV");
  102.                
  103.                 out.println(site.getName());
  104.                 GregorianCalendar gc = site.getCheckIn();  
  105.                 int year = gc.get(Calendar.YEAR);
  106.                 int day = gc.get(Calendar.DAY_OF_MONTH);
  107.                 int month = gc.get(Calendar.MONTH);
  108.                        
  109.                 out.println(year);
  110.                 out.println(day);
  111.                 out.println(month);
  112.                                
  113.                 out.println(site.getStay());
  114.                 out.println(site.getSite());
  115.                 if (site instanceof Tent)
  116.                     out.println(((Tent) site).getTenters()+" Tenters");
  117.                 else
  118.                     out.println(((RV) site).getPower()+" Amps needed");
  119.  
  120.             }
  121.             JOptionPane.showMessageDialog (
  122.                     null, "Database saved to C://" + fileName + ".txt",
  123.                     "File Saved",
  124.                     JOptionPane.INFORMATION_MESSAGE);
  125.             out.close();
  126.             return true;
  127.         } catch (IOException ex) {
  128.             return false;
  129.         }
  130.        
  131.     }
  132.    
  133.     public void loadText(String fileName) throws ParseException{
  134.         listSite.clear();
  135.         fireTableRowsInserted(listSite.size()-1, listSite.size()-1);
  136.  
  137.         try {
  138.             Scanner scanner = new Scanner(new File(fileName));
  139.            
  140.             int count = Integer.parseInt(scanner.nextLine().trim());
  141.             for (int i = 0; i < count; i++) {
  142.                 String type = scanner.nextLine().trim();
  143.                 String name = scanner.nextLine().trim();
  144.                
  145.                 GregorianCalendar checkIn = null;
  146.                
  147.                 String yearS = scanner.nextLine().trim();
  148.                 String dayS = scanner.nextLine().trim();
  149.                 String monthS = scanner.nextLine().trim();
  150.                
  151.                 int yearI = Integer.parseInt(yearS);
  152.                 int dayI = Integer.parseInt(dayS);
  153.                 int monthI = Integer.parseInt(monthS);
  154.                
  155.                 checkIn = new GregorianCalendar(yearI, monthI, dayI);
  156.                
  157.                 int daysStaying = Integer.parseInt(scanner.nextLine().trim());
  158.                 int siteNum = Integer.parseInt(scanner.nextLine().trim());             
  159.  
  160.                 if (type.contains("Tent")) {
  161.                     Tent t;
  162.                     int numOfTenters = Integer.parseInt(scanner.nextLine().replaceAll("[^0-9.]", "").trim());
  163.                     t = new Tent(numOfTenters, name, checkIn, daysStaying, siteNum);
  164.  
  165.                     listSite.add(t);
  166.                     fireTableRowsInserted(listSite.size()-1, listSite.size()-1);
  167.  
  168.                 } else {
  169.                     RV r;
  170.                     int power = Integer.parseInt(scanner.nextLine().replaceAll("[^0-9.]", "").trim());
  171.                     r = new RV(power, name, checkIn, daysStaying, siteNum);
  172.  
  173.                     listSite.add(r);
  174.                     fireTableRowsInserted(listSite.size()-1, listSite.size()-1);
  175.                 }
  176.             }
  177.             JOptionPane.showMessageDialog (
  178.                     null, "Database loaded from C://" + fileName + ".txt",
  179.                     "File Loaded",
  180.                     JOptionPane.INFORMATION_MESSAGE);
  181.             scanner.close();
  182.         } catch (Exception ex) {
  183.             ex.printStackTrace();
  184.         }
  185.        
  186.     }
  187.  
  188.     public Object getValueAt(int row, int col) {
  189.         Site s = listSite.get(row);
  190.         switch (col) {
  191.         case 0: return s.getName();
  192.         case 1: return convertDateToString(s.getCheckIn());
  193.         case 2: return s.getStay();
  194.         case 3: return s.getSite();
  195.         case 4: if (s instanceof Tent){
  196.             String tentReturn = ((Tent) s).getTenters() + " Tenters";
  197.             return tentReturn;
  198.         }else {
  199.             String RVreturn = ((RV) s).getPower() + " Amps Needed";
  200.             return RVreturn;
  201.         }
  202.         }
  203.         return null;
  204.     }
  205.  
  206.     private String convertDateToString(GregorianCalendar g) {
  207.         int year = g.get(Calendar.YEAR);
  208.         int day = g.get(Calendar.DAY_OF_MONTH);
  209.         int monthNum = g.get(Calendar.MONTH)+1;
  210.         String monthName;
  211.  
  212.         if (monthNum == 1){
  213.             monthName = "January";
  214.         }else if (monthNum == 2){
  215.             monthName = "February";
  216.         }else if (monthNum == 3){
  217.             monthName = "March";
  218.         }else if (monthNum == 4){
  219.             monthName = "April";
  220.         }else if (monthNum == 5){
  221.             monthName = "May";
  222.         }else if (monthNum == 6){
  223.             monthName = "June";
  224.         }else if (monthNum == 7){
  225.             monthName = "July";
  226.         }else if (monthNum == 8){
  227.             monthName = "August";
  228.         }else if (monthNum == 9){
  229.             monthName = "September";
  230.         }else if (monthNum == 10){
  231.             monthName = "October";
  232.         }else if (monthNum == 11){
  233.             monthName = "November";
  234.         }else if (monthNum == 12){
  235.             monthName = "December";
  236.         }else {
  237.             monthName = "???";
  238.         }
  239.  
  240.         String summary = "" + monthName + " " + day + ", " + year;
  241.  
  242.         return summary;
  243.     }
  244.  
  245.     public String getColumnName(int col) {
  246.         return columnNames[col];
  247.     }
  248.  
  249.     public int getColumnCount() {
  250.         return columnNames.length;
  251.     }
  252.  
  253.     public int getRowCount() {
  254.         return listSite.size();
  255.     }
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement