DB server side improved some problems when showing bookings remain
authorcamjan <jcampos004@ikasle.ehu.es>
Wed, 20 May 2015 22:55:11 +0000 (00:55 +0200)
committercamjan <jcampos004@ikasle.ehu.es>
Wed, 20 May 2015 22:55:11 +0000 (00:55 +0200)
ruralHouses client/src/gui/ModifyOfferGUI.java
ruralHouses client/src/gui/listOfBookingRequestsGUI.java
ruralHouses client/src/gui/listOfOffers.java
ruralHouses/src/businessLogic/LoginManager.java
ruralHouses/src/dataAccess/DB4oManager.java
ruralHousesDB/src/dataAccess/DB4oManager.java [new file with mode: 0644]
ruralHousesDB/src/dataAccess/DB4oServerManager.java
ruralHousesDB/src/domain/Account.java

index 3e7a6c6..1f082d0 100644 (file)
@@ -151,7 +151,6 @@ public class ModifyOfferGUI extends JFrame {
                                try {
                                        vo = om.getRuralHouseOffers((RuralHouse) jComboBox1.getSelectedItem());
                                } catch (RemoteException e) {
-                                       // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                                comboBox_o.removeAllItems();
index ba96f0d..aab2736 100644 (file)
@@ -62,10 +62,8 @@ public class listOfBookingRequestsGUI extends JFrame {
                setContentPane(contentPane);
                contentPane.setLayout(null);
 
-               BookingInterface bm = null;
-               
                try {
-                       bm = (BookingInterface) Naming
+                       bookM = (BookingInterface) Naming
                                        .lookup(___IntNames.BookingManager);
 
                } catch (Exception e1) {
@@ -73,11 +71,11 @@ public class listOfBookingRequestsGUI extends JFrame {
                                        + e1.toString());
                }
                try {
-                       this.bookings = bm.getOffersbookings(this.off);
+                       this.bookings = bookM.getOffersbookings(this.off);
                } catch (RemoteException e1) {
                        e1.printStackTrace();
                }
-               
+
                JLabel lblNewLabel = new JLabel();
                lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 27));
                lblNewLabel.setBounds(23, 41, 536, 33);
@@ -101,17 +99,11 @@ public class listOfBookingRequestsGUI extends JFrame {
 
                table.setModel(tableModel);
 
+               JButton btnDenyAddition = new JButton("Deny Booking");
                JButton btnNewButton = new JButton("Confirm Booking");
                btnNewButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
-                               try {
-                                       bookM = (BookingInterface) Naming
-                                                       .lookup(___IntNames.BookingManager);
-                               } catch (Exception e1) {
-                                       System.out
-                                                       .println("Error accessing remote authentication: "
-                                                                       + e1.toString());
-                               }
+
                                if (table.getRowCount() != 0 && table.getSelectedRow() != -1) {
                                        if (table.getRowCount() != 0
                                                        && table.getSelectedRow() != -1) {
@@ -121,8 +113,19 @@ public class listOfBookingRequestsGUI extends JFrame {
                                                } catch (RemoteException e1) {
                                                        e1.printStackTrace();
                                                }
-                                               contentPane.setVisible(false);
-
+                                               int rows = table.getModel().getRowCount(); 
+                                               for(int i = rows - 1; i >=0; i--){
+                                                       ((DefaultTableModel) table.getModel()).removeRow(i);
+                                               }
+                                               Vector<Object> row = new Vector<Object>();
+                                               row.add(book.getBookNumber());
+                                               row.add(book.getBookDate());
+                                               row.add(book.getClient().getName());
+                                               row.add(book.getClient().getMailAccount());
+                                               row.add(book.getClient().getTelephone());
+                                               tableModel.addRow(row);
+                                               btnNewButton.setEnabled(false);
+                                               btnDenyAddition.setEnabled(false);
                                        }
 
                                }
@@ -131,17 +134,9 @@ public class listOfBookingRequestsGUI extends JFrame {
                btnNewButton.setBounds(33, 396, 169, 25);
                contentPane.add(btnNewButton);
 
-               JButton btnDenyAddition = new JButton("Deny Booking");
                btnDenyAddition.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent arg0) {
-                               try {
-                                       bookM = (BookingInterface) Naming
-                                                       .lookup(___IntNames.BookingManager);
-                               } catch (Exception e1) {
-                                       System.out
-                                                       .println("Error accessing remote authentication: "
-                                                                       + e1.toString());
-                               }
+
                                if (table.getRowCount() != 0 && table.getSelectedRow() != -1) {
                                        Booking book = bookings.get(table.getSelectedRow());
                                        try {
@@ -166,7 +161,7 @@ public class listOfBookingRequestsGUI extends JFrame {
                                btnNewButton.setEnabled(false);
                        }
                }
-               
+
                btnDenyAddition.setBounds(390, 395, 169, 25);
                contentPane.add(btnDenyAddition);
 
index 7d61def..4d065bb 100644 (file)
@@ -6,6 +6,8 @@ import java.awt.Font;
 import java.awt.Rectangle;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.rmi.Naming;
+import java.rmi.RemoteException;
 import java.util.Enumeration;
 import java.util.Vector;
 
@@ -18,6 +20,10 @@ import javax.swing.border.EmptyBorder;
 import javax.swing.table.DefaultTableCellRenderer;
 import javax.swing.table.DefaultTableModel;
 
+import common.HouseInterface;
+import common.OfferInterface;
+
+import configuration.___IntNames;
 import domain.Offer;
 import domain.Owner;
 import domain.RuralHouse;
@@ -56,8 +62,23 @@ public class listOfOffers extends JFrame {
                setContentPane(contentPane);
                contentPane.setLayout(null);
                this.offers = new Vector<Offer>();
-               for (RuralHouse rh: this.owner.getRuralHouses()){
-                       this.offers.addAll(rh.getAllOffers());
+               HouseInterface hm = null;
+               try {
+                       hm = (HouseInterface) Naming
+                                       .lookup(___IntNames.HouseManager);
+               } catch (Exception e1) {
+                       System.out.println("Error accessing remote authentication: "
+                                       + e1.toString());
+               }
+               Vector<RuralHouse> Hlist = null;
+               try {
+                       Hlist = hm.getHouses(owner, null, null, 0, 0, 0, 0, 0);
+               } catch (RemoteException e1) {
+                       e1.printStackTrace();
+               }
+               for (RuralHouse rh: Hlist){
+                       for(Offer of : rh.getAllOffers())
+                       this.offers.add(of);
                }
                JLabel lblNewLabel = new JLabel();
                lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 27));
@@ -85,13 +106,12 @@ public class listOfOffers extends JFrame {
                tableModel = new DefaultTableModel(null, new String[] { "Offer #",
                                "FirstDay", "LastDay", "Price" ,"RuralHouse"});
 
-               // Maybe there is a better way to avoid interaction.
-               // table.setEnabled(false);
                table.setModel(tableModel);
                table.addMouseListener( new MouseAdapter(){                     
                        @Override
                        public void mouseClicked(MouseEvent arg0) {
                                int row = table.getSelectedRow();
+                               System.out.println(row);
                                listOfBookingRequestsGUI feat = new listOfBookingRequestsGUI(offers.get(row));
                                feat.setVisible(true);
                        }
index f3c4600..97dd009 100644 (file)
@@ -1,6 +1,5 @@
 package businessLogic;
 
-
 import java.rmi.RemoteException;
 import java.rmi.server.UnicastRemoteObject;
 import java.util.Vector;
@@ -10,7 +9,6 @@ import common.LoginInterface;
 import dataAccess.DB4oManager;
 import domain.Account;
 
-
 public class LoginManager extends UnicastRemoteObject implements LoginInterface {
 
        /**
@@ -19,7 +17,7 @@ public class LoginManager extends UnicastRemoteObject implements LoginInterface
        private static final long serialVersionUID = 1L;
        DB4oManager dbMngr;
 
-       public LoginManager() throws RemoteException  {
+       public LoginManager() throws RemoteException {
                super();
                try {
                        dbMngr = DB4oManager.getInstance();
@@ -30,18 +28,21 @@ public class LoginManager extends UnicastRemoteObject implements LoginInterface
 
        @Override
        public Account checkCredentials(String usr, String pwd) {
-               Account ac = new Account(SecurityManager.getInstance().calculateHash(usr));
+               Account ac = new Account(SecurityManager.getInstance().calculateHash(
+                               usr));
                try {
                        Vector<Account> account = dbMngr.getAccount(ac);
-                       if (SecurityManager.getInstance().isExpectedPassword(pwd.toCharArray(), account
-                                       .get(0).getSalt(), account.get(0).getPassword())) {
-                               
+                       if (account.isEmpty())
+                               return null;
+                       if (SecurityManager.getInstance().isExpectedPassword(
+                                       pwd.toCharArray(), account.get(0).getSalt(),
+                                       account.get(0).getPassword())) {
+
                                return account.get(0);
                        }
                        return null;
 
                } catch (Exception e) {
-                       // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                return null;
index fa85cfa..403c916 100644 (file)
@@ -103,18 +103,23 @@ public class DB4oManager {
                configurationCS.common().activationDepth(c.getActivationDepth());
                configurationCS.common().updateDepth(c.getUpdateDepth());
                configurationCS.common().objectClass(Owner.class).cascadeOnDelete(true);
-               configurationCS.common().objectClass(Booking.class).cascadeOnDelete(true);
+               configurationCS.common().objectClass(Booking.class)
+                               .cascadeOnDelete(true);
                configurationCS.common().objectClass(RuralHouse.class)
                                .cascadeOnDelete(true);
-               configurationCS.common().objectClass(Account.class).cascadeOnDelete(true);
+               configurationCS.common().objectClass(Account.class)
+                               .cascadeOnDelete(true);
                configurationCS.common().objectClass(Offer.class).cascadeOnDelete(true);
                configurationCS.common().objectClass(Owner.class).cascadeOnUpdate(true);
-               configurationCS.common().objectClass(Booking.class).cascadeOnUpdate(true);
+               configurationCS.common().objectClass(Booking.class)
+                               .cascadeOnUpdate(true);
                configurationCS.common().objectClass(RuralHouse.class)
                                .cascadeOnUpdate(true);
-               configurationCS.common().objectClass(Account.class).cascadeOnUpdate(true);
+               configurationCS.common().objectClass(Account.class)
+                               .cascadeOnUpdate(true);
                configurationCS.common().objectClass(Offer.class).cascadeOnUpdate(true);
-               configurationCS.common().objectClass(Account.class).cascadeOnUpdate(true);
+               configurationCS.common().objectClass(Account.class)
+                               .cascadeOnUpdate(true);
                db = Db4oClientServer.openClient(configurationCS, c.getDatabaseNode(),
                                c.getDatabasePort(), c.getUser(), c.getPassword());
 
@@ -345,7 +350,8 @@ public class DB4oManager {
                        RuralHouse rh = (RuralHouse) result.next();
 
                        Offer offer;
-                       offer = (Offer)db.queryByExample(new Offer(0, rh, firstDate, lastDate, 0)).get(0);
+                       offer = (Offer) db.queryByExample(
+                                       new Offer(0, rh, firstDate, lastDate, 0)).get(0);
 
                        if (offer != null) {
                                offer.createBooking(theDB4oManagerAux.bookingNumber++, cl);
@@ -392,8 +398,6 @@ public class DB4oManager {
                }
        }
 
-
-
        public boolean existsOverlappingOffer(RuralHouse rh, Date firstDay,
                        Date lastDay) throws RemoteException, OverlappingOfferExists {
 
@@ -625,7 +629,7 @@ public class DB4oManager {
                        openSDB();
                else
                        openDB();
-       
+
                try {
                        Offer of = (Offer) db.queryByExample(
                                        new Offer(0, o.getRuralHouse(), null, null, 0)).get(0);
diff --git a/ruralHousesDB/src/dataAccess/DB4oManager.java b/ruralHousesDB/src/dataAccess/DB4oManager.java
new file mode 100644 (file)
index 0000000..1c6bdba
--- /dev/null
@@ -0,0 +1,17 @@
+package dataAccess;
+
+
+public class DB4oManager {
+       
+
+       class DB4oManagerAux {
+               int bookingNumber;
+               int offerNumber;
+
+               DB4oManagerAux(int bookingNumber, int offerNumber) {
+                       this.bookingNumber = bookingNumber;
+                       this.offerNumber = offerNumber;
+               }
+       }
+
+}
index ea75334..adf3dca 100644 (file)
@@ -99,13 +99,18 @@ public class DB4oServerManager extends JDialog {
                        configurationCS.common().activationDepth(c.getActivationDepth());
                        configurationCS.common().updateDepth(c.getUpdateDepth());
                        configurationCS.common().objectClass(Owner.class).cascadeOnDelete(true);
+                       configurationCS.common().objectClass(Booking.class).cascadeOnDelete(true);
+                       configurationCS.common().objectClass(RuralHouse.class)
+                                       .cascadeOnDelete(true);
+                       configurationCS.common().objectClass(Account.class).cascadeOnDelete(true);
+                       configurationCS.common().objectClass(Offer.class).cascadeOnDelete(true);
+                       configurationCS.common().objectClass(Owner.class).cascadeOnUpdate(true);
                        configurationCS.common().objectClass(Booking.class).cascadeOnUpdate(true);
                        configurationCS.common().objectClass(RuralHouse.class)
                                        .cascadeOnUpdate(true);
                        configurationCS.common().objectClass(Account.class).cascadeOnUpdate(true);
                        configurationCS.common().objectClass(Offer.class).cascadeOnUpdate(true);
                        configurationCS.common().objectClass(Account.class).cascadeOnUpdate(true);
-
                        server = Db4oClientServer.openServer(configurationCS,
                                                                                                 c.getDb4oFilename(),c.getDatabasePort());
                        
index f401391..385edee 100644 (file)
@@ -3,39 +3,34 @@ package domain;
 import java.io.Serializable;
 import java.util.Arrays;
 
-
 public class Account implements Serializable {
 
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
-       
 
        private byte[] username;
        private byte[] password;
        private byte[] salt;
 
-
        private Owner owner;
        private boolean admin = false;
 
-       public Account(byte[] usr){
-       
-               
+       public Account(byte[] usr) {
+
        }
-       public Account(String usr, String pass, boolean isAdmin) {
-               
 
+       public Account(Owner own) {
        }
 
-       public Account(String usr, String pass, Owner ow) {
-               
+       public Account(String usr, String pass, boolean isAdmin) {
 
        }
 
+       public Account(String usr, String pass, Owner ow) {
 
-       
+       }
 
        public byte[] getUsername() {
                return username;
@@ -53,7 +48,6 @@ public class Account implements Serializable {
                return admin;
        }
 
-       
        public void setAdmin(boolean admin) {
                this.admin = admin;
        }
@@ -65,7 +59,6 @@ public class Account implements Serializable {
        public void setSalt(byte[] salt) {
                this.salt = salt;
        }
-       
 
        @Override
        public boolean equals(Object obj) {