admin completed
authorEneko Pinzolas Murua <kelossus@localhost.localdomain>
Wed, 15 Apr 2015 13:53:44 +0000 (15:53 +0200)
committerEneko Pinzolas Murua <kelossus@localhost.localdomain>
Wed, 15 Apr 2015 13:53:44 +0000 (15:53 +0200)
13 files changed:
ruralHouses/src/businessLogic/LoginManager.java
ruralHouses/src/businessLogic/LoginManagerInterface.java
ruralHouses/src/businessLogic/__ApplicationFacadeInterface.java [deleted file]
ruralHouses/src/businessLogic/__FacadeImplementation.java [deleted file]
ruralHouses/src/dataAccess/DB4oManager.java
ruralHouses/src/domain/Account.java
ruralHouses/src/domain/Administrator.java
ruralHouses/src/gui/AdminMenuGUI.java
ruralHouses/src/gui/LoginGUI.java
ruralHouses/src/gui/ModifyHouseGUI.java
ruralHouses/src/gui/StartWindow.java
ruralHouses/src/gui/listOfAdditionRequestsGUI.java
ruralHouses/src/gui/listOfRemovalRequestsGUI.java

index 72ce86b..b0aadd8 100644 (file)
@@ -22,13 +22,13 @@ public class LoginManager implements LoginManagerInterface {
        }
 
        @Override
        }
 
        @Override
-       public Owner checkCredentials(String usr, String pwd) {
+       public Account checkCredentials(String usr, String pwd) {
                try {
                        Vector<Account> account = dbMngr.getAccount(usr, pwd);
                        if (account.isEmpty())
                                return null;
                        else
                try {
                        Vector<Account> account = dbMngr.getAccount(usr, pwd);
                        if (account.isEmpty())
                                return null;
                        else
-                               return account.get(0).getOwner();
+                               return account.get(0);
 
                } catch (Exception e) {
                        // TODO Auto-generated catch block
 
                } catch (Exception e) {
                        // TODO Auto-generated catch block
@@ -36,5 +36,7 @@ public class LoginManager implements LoginManagerInterface {
                }
                return null;
        }
                }
                return null;
        }
+       
+
 
 }
 
 }
index b3362e0..682b500 100644 (file)
@@ -1,10 +1,12 @@
 package businessLogic;
 
 package businessLogic;
 
+import domain.Account;
 import domain.Owner;
 
 public interface LoginManagerInterface {
        
 import domain.Owner;
 
 public interface LoginManagerInterface {
        
-       public Owner checkCredentials(String usr, String pwd);
+       public Account checkCredentials(String usr, String pwd);
+
        
        
        
        
        
        
diff --git a/ruralHouses/src/businessLogic/__ApplicationFacadeInterface.java b/ruralHouses/src/businessLogic/__ApplicationFacadeInterface.java
deleted file mode 100644 (file)
index edea314..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-package businessLogic;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.sql.Date;
-import java.util.Vector;
-
-import domain.Booking;
-import domain.Offer;
-import domain.Owner;
-import domain.RuralHouse;
-import exceptions.OfferCanNotBeBooked;
-
-
-public interface __ApplicationFacadeInterface extends Remote {
-       
-
-       /**
-        * This method creates an offer with a house number, first day, last day and price
-        * 
-        * @param House
-        *            number, start day, last day and price
-        * @return None
-        */
-
-
-       Offer createOffer(RuralHouse ruralHouse, Date firstDay, Date lastDay,
-                       float price) throws RemoteException, Exception;
-
-       /**
-        * This method creates a book with a corresponding parameters
-        * 
-        * @param First
-        *            day, last day, house number and telephone
-        * @return a book
-        */
-       Booking createBooking(RuralHouse ruralHouse, Date firstDay, Date lastDay,
-                       String telephoneNumber) throws RemoteException,
-                       OfferCanNotBeBooked;
-
-       
-       /**
-        * This method retrieves the existing  owners 
-        * 
-        * @return a Set of owners
-        */
-       public Vector<Owner> getOwners() throws RemoteException,
-                       Exception;
-       
-       
-       
-       public void close() throws RemoteException;
-
-
-       
-}
\ No newline at end of file
diff --git a/ruralHouses/src/businessLogic/__FacadeImplementation.java b/ruralHouses/src/businessLogic/__FacadeImplementation.java
deleted file mode 100644 (file)
index 9f377d7..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-package businessLogic;
-
-import java.rmi.RemoteException;
-import java.rmi.server.UnicastRemoteObject;
-import java.sql.Date;
-import java.sql.SQLException;
-import java.util.Vector;
-
-import dataAccess.DB4oManager;
-import domain.Booking;
-import domain.Offer;
-import domain.Owner;
-import domain.RuralHouse;
-import exceptions.BadDates;
-import exceptions.DB4oManagerCreationException;
-import exceptions.OfferCanNotBeBooked;
-import exceptions.OverlappingOfferExists;
-
-
-public class __FacadeImplementation extends UnicastRemoteObject implements __ApplicationFacadeInterface {
-
-       /**
-        * 
-        */
-       private static final long serialVersionUID = 1L;
-
-       Vector<Owner> owners;
-       Vector<RuralHouse> ruralHouses;
-       DB4oManager dB4oManager;
-
-       public __FacadeImplementation() throws RemoteException, InstantiationException,
-                       IllegalAccessException, ClassNotFoundException, SQLException, DB4oManagerCreationException {
-               owners=null;
-               ruralHouses=null;
-               try{
-                       dB4oManager=DB4oManager.getInstance();
-               }
-               catch (com.db4o.ext.DatabaseFileLockedException e) {
-                       System.out.println("Error in FacadeImplementation: "+e.toString());
-                       throw e;
-               }
-               catch (Exception e) {
-                       System.out.println("Error in FacadeImplementation: "+e.toString());
-                       throw new DB4oManagerCreationException();
-               }
-       }
-       
-
-       /**
-        * This method creates an offer with a house number, first day, last day and price
-        * 
-        * @param House
-        *            number, start day, last day and price
-        * @return the created offer, or null, or an exception
-        */
-       public Offer createOffer(RuralHouse ruralHouse, Date firstDay, Date lastDay,
-                       float price) throws OverlappingOfferExists, BadDates, RemoteException, Exception {
-               if (firstDay.compareTo(lastDay)>=0) throw new BadDates();
-               ruralHouses=null;
-               owners=null;
-               boolean b = dB4oManager.existsOverlappingOffer(ruralHouse,firstDay,lastDay); // The ruralHouse object in the client may not be updated
-               if (!b) return dB4oManager.createOffer(ruralHouse,firstDay,lastDay,price);                      
-               return null;
-       }
-
-       /**
-        * This method creates a book with a corresponding parameters
-        * 
-        * @param First
-        *            day, last day, house number and telephone
-        * @return a book
-        */
-       public Booking createBooking(RuralHouse ruralHouse, Date firstDate, Date lastDate, String bookTelephoneNumber)
-                       throws OfferCanNotBeBooked {
-               ruralHouses=null;
-               owners=null;
-               return dB4oManager.createBooking(ruralHouse,firstDate,lastDate,bookTelephoneNumber);
-       }
-
-
-       /**
-        * This method existing  owners 
-        * 
-        */
-       public Vector<Owner> getOwners() throws RemoteException,
-                       Exception {
-               
-               if (owners!=null) { System.out.println("Owners obtained directly from business logic layer");
-                                                       return owners; }
-               else return owners=dB4oManager.getOwners();
-       }
-               
-       public Vector<RuralHouse> getAllRuralHouses() throws RemoteException,
-       Exception {
-               
-               if (ruralHouses!=null) { System.out.println("RuralHouses obtained directly from business logic layer");
-                                                                return ruralHouses; }
-               else return ruralHouses=dB4oManager.getAllRuralHouses();
-
-       }
-       
-       public void close() throws RemoteException{
-               dB4oManager.close();
-
-       }
-
-       }
-
index 6e24ece..cb923e1 100644 (file)
@@ -5,6 +5,8 @@ import java.io.File;
 //import java.util.Vector;
 import java.rmi.RemoteException;
 import java.util.Date;
 //import java.util.Vector;
 import java.rmi.RemoteException;
 import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.ListIterator;
 import java.util.Vector;
 
 import java.util.ListIterator;
 import java.util.Vector;
 
@@ -14,9 +16,11 @@ import com.db4o.ObjectSet;
 import com.db4o.config.EmbeddedConfiguration;
 import com.db4o.cs.Db4oClientServer;
 import com.db4o.cs.config.ClientConfiguration;
 import com.db4o.config.EmbeddedConfiguration;
 import com.db4o.cs.Db4oClientServer;
 import com.db4o.cs.config.ClientConfiguration;
+import com.db4o.query.Predicate;
 
 import configuration.ConfigXML;
 import domain.Account;
 
 import configuration.ConfigXML;
 import domain.Account;
+import domain.Administrator;
 import domain.Booking;
 import domain.HouseFeatures;
 import domain.Offer;
 import domain.Booking;
 import domain.HouseFeatures;
 import domain.Offer;
@@ -124,13 +128,16 @@ public class DB4oManager {
                        Account jonAcc = new Account("userJon", "passJon", jon);
                        Account alfredoAcc = new Account("userAlfredo", "passAlfredo",
                                        alfredo);
                        Account jonAcc = new Account("userJon", "passJon", jon);
                        Account alfredoAcc = new Account("userAlfredo", "passAlfredo",
                                        alfredo);
+                       Account admin = new Account("admin","admin", true);
+                       db.store(Administrator.giveAdmin());
                        db.store(jon);
                        db.store(alfredo);
                        db.store(jonAcc);
                        db.store(alfredoAcc);
                        db.store(jon);
                        db.store(alfredo);
                        db.store(jonAcc);
                        db.store(alfredoAcc);
+                       db.store(admin);
                        db.commit();
                } finally {
                        db.commit();
                } finally {
-                       db.close();
+                       db.close();     
                }
        }
 
                }
        }
 
@@ -230,6 +237,62 @@ public class DB4oManager {
                }
        }
 
                }
        }
 
+       
+       public LinkedList<RuralHouse>[] getAdminData(){
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
+               LinkedList<RuralHouse>[] ret =  new LinkedList[2];
+               
+               try {
+                       
+                       List<Administrator> admL = db.query(new Predicate<Administrator>(){
+                               public boolean match(Administrator admin){
+                                       return true;
+                               }
+                       });
+                       
+                       ret[0] = admL.get(0).getAddRequest();
+                       ret[1] = admL.get(0).getRemoveRequest();
+                       return ret;
+               }
+               finally {
+                       db.close();
+                       
+               }
+               
+       }
+       
+       public void storeAdmin() {
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();               
+               try {
+                       
+                       List<Administrator> admL = db.query(new Predicate<Administrator>(){
+                               public boolean match(Administrator admin){
+                                       return true;
+                               }
+                       });
+                       
+                       admL.get(0).setAddRequest(Administrator.getAddRequest());
+                       admL.get(0).setRemoveRequest(Administrator.getRemoveRequest());
+                       db.commit();
+                       
+               }
+               catch(Exception e){
+                       
+               }
+               finally {
+                       db.close();
+               }
+               
+               
+       }
+       
+       
        /**
         * This method creates a book with a corresponding parameters
         * 
        /**
         * This method creates a book with a corresponding parameters
         * 
@@ -247,6 +310,7 @@ public class DB4oManager {
                        openDB();
 
                Booking bok = null;
                        openDB();
 
                Booking bok = null;
+               
 
                try {
 
 
                try {
 
@@ -376,7 +440,7 @@ public class DB4oManager {
                        openDB();
 
                try {
                        openDB();
 
                try {
-                       Account proto = new Account(usr, pwd, new Owner(null, null));
+                       Account proto = new Account(usr, pwd, null);
                        ObjectSet<Account> result = db.queryByExample(proto);
                        Vector<Account> accounts = new Vector<Account>();
                        while (result.hasNext())
                        ObjectSet<Account> result = db.queryByExample(proto);
                        Vector<Account> accounts = new Vector<Account>();
                        while (result.hasNext())
@@ -501,4 +565,6 @@ public class DB4oManager {
                }
 
        }
                }
 
        }
+
+       
 }
 }
index 795f739..e0727a1 100644 (file)
@@ -5,9 +5,9 @@ public class Account {
        private String username = "";
        private String password = "";
        private Owner owner;
        private String username = "";
        private String password = "";
        private Owner owner;
-       private Administrator admin;
+       private boolean admin = false;
 
 
-       public Account(String usr, String pass, Administrator admin) {
+       public Account(String usr, String pass, boolean admin) {
                this.username = usr;
                this.password = pass;
                this.owner = null;
                this.username = usr;
                this.password = pass;
                this.owner = null;
@@ -19,7 +19,7 @@ public class Account {
                this.username = usr;
                this.password = pass;
                this.owner = ow;
                this.username = usr;
                this.password = pass;
                this.owner = ow;
-               this.admin = null;
+               this.admin = false;
 
        }
 
 
        }
 
@@ -35,11 +35,11 @@ public class Account {
                return owner;
        }
 
                return owner;
        }
 
-       public Administrator getAdmin() {
+       public boolean getAdmin() {
                return admin;
        }
 
                return admin;
        }
 
-       public void setAdmin(Administrator admin) {
+       public void setAdmin(boolean admin) {
                this.admin = admin;
        }
 
                this.admin = admin;
        }
 
index 15d5e48..6102430 100644 (file)
@@ -2,13 +2,42 @@ package domain;
 
 import java.util.LinkedList;
 
 
 import java.util.LinkedList;
 
+import dataAccess.DB4oManager;
+
 public class Administrator {
 
 public class Administrator {
 
-       private static LinkedList<RuralHouse> addRequest = new LinkedList<RuralHouse>();
-       private static LinkedList<RuralHouse> removeRequest = new LinkedList<RuralHouse>();
+       private static LinkedList<RuralHouse> addRequest;
+       private static LinkedList<RuralHouse> removeRequest;
        private Administrator(){
        private Administrator(){
+               addRequest = new LinkedList<RuralHouse>();
+               removeRequest  = new LinkedList<RuralHouse>();
        }
 
        }
 
+       public static Administrator giveAdmin(){
+               return new Administrator();
+       }
+       
+       public static void getInstance(){
+               try {
+                       DB4oManager db4o = DB4oManager.getInstance();
+                       LinkedList<RuralHouse>[] temp = db4o.getAdminData();
+                       addRequest = temp[0];
+                       removeRequest = temp[1];
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+               
+       }
+       
+       public static void saveInstance(){
+               try {
+                       DB4oManager.getInstance().storeAdmin();
+               } catch (Exception e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               }
+       }
+       
        public static LinkedList<RuralHouse> getAddRequest() {
                return addRequest;
        }
        public static LinkedList<RuralHouse> getAddRequest() {
                return addRequest;
        }
@@ -16,4 +45,12 @@ public class Administrator {
                return removeRequest;
        }
 
                return removeRequest;
        }
 
+       public static void setAddRequest(LinkedList<RuralHouse> addRequest) {
+               Administrator.addRequest = addRequest;
+       }
+
+       public static void setRemoveRequest(LinkedList<RuralHouse> removeRequest) {
+               Administrator.removeRequest = removeRequest;
+       }
+
 }
 }
index 5408e60..7062a21 100644 (file)
@@ -11,6 +11,8 @@ import javax.swing.JFrame;
 import javax.swing.JPanel;
 import javax.swing.border.EmptyBorder;
 
 import javax.swing.JPanel;
 import javax.swing.border.EmptyBorder;
 
+import domain.Administrator;
+
 public class AdminMenuGUI extends JFrame {
 
        /**
 public class AdminMenuGUI extends JFrame {
 
        /**
@@ -30,7 +32,7 @@ public class AdminMenuGUI extends JFrame {
        public AdminMenuGUI() {
                
                
        public AdminMenuGUI() {
                
                
-               
+               Administrator.getInstance();
                this.setTitle("Owner Menu");
                this.getContentPane().setLayout(null);
                setBounds(100, 100, 450, 473);
                this.setTitle("Owner Menu");
                this.getContentPane().setLayout(null);
                setBounds(100, 100, 450, 473);
index 7e8ec11..db04aff 100644 (file)
@@ -15,8 +15,12 @@ import javax.swing.SwingConstants;
 
 import businessLogic.LoginManager;
 import businessLogic.LoginManagerInterface;
 
 import businessLogic.LoginManager;
 import businessLogic.LoginManagerInterface;
+import domain.Account;
 import domain.Owner;
 
 import domain.Owner;
 
+import javax.swing.JRadioButton;
+import javax.swing.ButtonGroup;
+
 public class LoginGUI extends JFrame {
 
        private static final long serialVersionUID= 1L;
 public class LoginGUI extends JFrame {
 
        private static final long serialVersionUID= 1L;
@@ -25,7 +29,7 @@ public class LoginGUI extends JFrame {
        private JPasswordField passwordField;
        private LoginManagerInterface loginManager = new LoginManager();
        private JLabel loginFeedback;
        private JPasswordField passwordField;
        private LoginManagerInterface loginManager = new LoginManager();
        private JLabel loginFeedback;
-
+       private final ButtonGroup buttonGroup = new ButtonGroup();
        public LoginGUI() {
                super();
                initialize();
        public LoginGUI() {
                super();
                initialize();
@@ -80,19 +84,22 @@ public class LoginGUI extends JFrame {
        }
        
        private void jButton_ActionPerformed(ActionEvent e){
        }
        
        private void jButton_ActionPerformed(ActionEvent e){
-               Owner owner = loginManager.checkCredentials(usernameField.getText(),new String(passwordField.getPassword()));
-               if(owner==null){
-                       loginFeedback.setText("Incorrect username or password");
-               }else{
-                       
-                       
                        
                        
+               Account acc = loginManager.checkCredentials(usernameField.getText(),new String(passwordField.getPassword()));
+               if (acc.getAdmin()) {
+                       this.setVisible(false);
+                       Frame a = new AdminMenuGUI();
+                       a.setVisible(true);
+               } else {
+                       if(acc.getOwner()==null){
+                               loginFeedback.setText("Incorrect username or password");
+                       }else{
                                this.setVisible(false);
                                this.setVisible(false);
-                               Frame a = new OwnerMenuGUI(owner);
-                               a.setVisible(true);
-               }       
-
+                               Frame a = new OwnerMenuGUI(acc.getOwner());
+                               a.setVisible(true);             
+                       }
+               }
+               
        }
        }
-
 }  // @jve:decl-index=0:visual-constraint="222,33"
 
 }  // @jve:decl-index=0:visual-constraint="222,33"
 
index 34f94c2..29bc627 100644 (file)
@@ -111,6 +111,7 @@ public class ModifyHouseGUI extends JFrame {
                                
                                HouseManager hm = new HouseManager();
                                hm.removeHouse(rh, owner);
                                
                                HouseManager hm = new HouseManager();
                                hm.removeHouse(rh, owner);
+                               //TODO registernewhouse must check before if the house is created to delete it before creating it.
                                hm.registerNewHouse(rh.getHouseName(),
                                                owner,
                                                description_f.getText(),
                                hm.registerNewHouse(rh.getHouseName(),
                                                owner,
                                                description_f.getText(),
index 288b011..842b818 100644 (file)
@@ -17,6 +17,7 @@ import javax.swing.SwingConstants;
 import javax.swing.UIManager;
 
 import configuration.ConfigXML;
 import javax.swing.UIManager;
 
 import configuration.ConfigXML;
+import domain.Administrator;
 
 
 public class StartWindow extends JFrame {
 
 
 public class StartWindow extends JFrame {
@@ -94,6 +95,7 @@ public class StartWindow extends JFrame {
                addWindowListener(new WindowAdapter() {
                        @Override
                        public void windowClosing(WindowEvent e) {
                addWindowListener(new WindowAdapter() {
                        @Override
                        public void windowClosing(WindowEvent e) {
+
                                System.exit(1);
                        }
                });
                                System.exit(1);
                        }
                });
index f1c19cf..dd728fe 100644 (file)
@@ -19,6 +19,7 @@ import javax.swing.table.DefaultTableModel;
 import businessLogic.AdminManager;
 import businessLogic.HouseManager;
 import businessLogic.HouseManagerInterface;
 import businessLogic.AdminManager;
 import businessLogic.HouseManager;
 import businessLogic.HouseManagerInterface;
+import domain.Administrator;
 import domain.RuralHouse;
 
 public class listOfAdditionRequestsGUI extends JFrame {
 import domain.RuralHouse;
 
 public class listOfAdditionRequestsGUI extends JFrame {
@@ -86,6 +87,7 @@ public class listOfAdditionRequestsGUI extends JFrame {
                                        hm.registerNewHouse(rh);
                                        houses.remove(rh);
                                        am.removeHouseAdditionRequests(rh);
                                        hm.registerNewHouse(rh);
                                        houses.remove(rh);
                                        am.removeHouseAdditionRequests(rh);
+                                       Administrator.saveInstance();
                                }
                        }
                });
                                }
                        }
                });
index acad7bf..da70439 100644 (file)
@@ -19,6 +19,7 @@ import javax.swing.table.DefaultTableModel;
 import businessLogic.AdminManager;
 import businessLogic.HouseManager;
 import businessLogic.HouseManagerInterface;
 import businessLogic.AdminManager;
 import businessLogic.HouseManager;
 import businessLogic.HouseManagerInterface;
+import domain.Administrator;
 import domain.RuralHouse;
 
 public class listOfRemovalRequestsGUI extends JFrame {
 import domain.RuralHouse;
 
 public class listOfRemovalRequestsGUI extends JFrame {
@@ -87,6 +88,7 @@ public class listOfRemovalRequestsGUI extends JFrame {
                                        hm.removeHouse(rh, rh.getOwner());
                                        houses.remove(rh);
                                        am.removeHouseDeletionRequests(rh);
                                        hm.removeHouse(rh, rh.getOwner());
                                        houses.remove(rh);
                                        am.removeHouseDeletionRequests(rh);
+                                       Administrator.saveInstance();
                                }
                        }
                });
                                }
                        }
                });