From: camjan Date: Tue, 19 May 2015 23:23:13 +0000 (+0200) Subject: Merge branch 'master' of https://xp-dev.com/git/RRRRHHHH_Code X-Git-Url: https://xp-dev.com/git/RRRRHHHH_Code/commitdiff_plain/4bc36b7ddf2a9626f60c551cf999ec24052087cc?hp=c92b616b1406bb5ff52624836f0608e8c5062451 Merge branch 'master' of https://xp-dev.com/git/RRRRHHHH_Code Conflicts: ruralHouses client/src/gui/HouseFeaturesGUI.java ruralHouses client/src/gui/ModifyOfferGUI.java ruralHouses/src/domain/RuralHouse.java --- diff --git a/ruralHouses client/src/common/AccountInterface.java b/ruralHouses client/src/common/AccountInterface.java index 67e02d4..aee131c 100644 --- a/ruralHouses client/src/common/AccountInterface.java +++ b/ruralHouses client/src/common/AccountInterface.java @@ -3,12 +3,10 @@ package common; import java.rmi.Remote; import java.rmi.RemoteException; -import domain.Account; - public interface AccountInterface extends Remote{ public boolean addAccount(int index) throws RemoteException; - public boolean removeAccount(Account ac) throws RemoteException; + public boolean removeAccount(int index) throws RemoteException; } diff --git a/ruralHouses client/src/common/BookingInterface.java b/ruralHouses client/src/common/BookingInterface.java index 8262f30..8780f2f 100644 --- a/ruralHouses client/src/common/BookingInterface.java +++ b/ruralHouses client/src/common/BookingInterface.java @@ -16,7 +16,7 @@ public interface BookingInterface extends Remote { public int getNumber() throws RemoteException; - public void removeDenyBooking(Booking b) throws RemoteException; + public void denyBooking(Booking b) throws RemoteException; public void acceptBooking(Booking b) throws RemoteException; diff --git a/ruralHouses client/src/domain/Client.java b/ruralHouses client/src/domain/Client.java index 4dd9eb2..a4c0baf 100644 --- a/ruralHouses client/src/domain/Client.java +++ b/ruralHouses client/src/domain/Client.java @@ -1,7 +1,13 @@ package domain; -public class Client { +import java.io.Serializable; +public class Client implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 1L; private String name; private String mailAccount; private String telephone; diff --git a/ruralHouses client/src/domain/Owner.java b/ruralHouses client/src/domain/Owner.java index 550aceb..0c4fa4b 100644 --- a/ruralHouses client/src/domain/Owner.java +++ b/ruralHouses client/src/domain/Owner.java @@ -14,10 +14,6 @@ public class Owner implements Serializable { private String mailAccount = ""; private Vector ruralHouses; -// public Owner(String name) { -// this.name = name; -// ruralHouses = new Vector(); -// } public Owner(String name, String bankAccount,String mail) { this.bankAccount = bankAccount; diff --git a/ruralHouses client/src/domain/RuralHouse.java b/ruralHouses client/src/domain/RuralHouse.java index 4245458..d988b39 100644 --- a/ruralHouses client/src/domain/RuralHouse.java +++ b/ruralHouses client/src/domain/RuralHouse.java @@ -14,8 +14,8 @@ public class RuralHouse implements Serializable { private Owner owner; private String district; private HouseFeatures features; - public Vector offers; - public boolean isAccepted; + private Vector offers; + private boolean isAccepted; public RuralHouse() { super(); @@ -167,4 +167,12 @@ public class RuralHouse implements Serializable { } + public boolean isAccepted() { + return isAccepted; + } + + public void setAccepted(boolean isAccepted) { + this.isAccepted = isAccepted; + } + } diff --git a/ruralHouses client/src/gui/AdminMenuGUI.java b/ruralHouses client/src/gui/AdminMenuGUI.java index eef2ba4..24dcb27 100644 --- a/ruralHouses client/src/gui/AdminMenuGUI.java +++ b/ruralHouses client/src/gui/AdminMenuGUI.java @@ -4,8 +4,6 @@ import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.GroupLayout; -import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; @@ -29,12 +27,13 @@ public class AdminMenuGUI extends JFrame { this.setTitle("Administrator Menu"); this.getContentPane().setLayout(null); - setBounds(100, 100, 450, 473); + setBounds(100, 100, 450, 500); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); //TODO BOTH BUTTONS ARE TO MODIFY JButton btnAdd = new JButton("Add requests"); + btnAdd.setBounds(120, 67, 164, 81); btnAdd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Frame a = new listOfAdditionRequestsGUI(); @@ -43,6 +42,7 @@ public class AdminMenuGUI extends JFrame { }); JButton btnDel = new JButton("Delete Requests"); + btnDel.setBounds(120, 159, 164, 73); btnDel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Frame a = new listOfRemovalRequestsGUI(); @@ -51,34 +51,26 @@ public class AdminMenuGUI extends JFrame { }); JButton btnOwneraddition = new JButton("OwnerAddition"); + btnOwneraddition.setBounds(120, 243, 164, 73); btnOwneraddition.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Frame a = new listOfOwnerAddittionRequests(); a.setVisible(true); } }); - GroupLayout gl_contentPane = new GroupLayout(contentPane); - gl_contentPane.setHorizontalGroup( - gl_contentPane.createParallelGroup(Alignment.LEADING) - .addGroup(gl_contentPane.createSequentialGroup() - .addGap(115) - .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING, false) - .addComponent(btnOwneraddition, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnDel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE) - .addComponent(btnAdd, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE)) - .addContainerGap(145, Short.MAX_VALUE)) - ); - gl_contentPane.setVerticalGroup( - gl_contentPane.createParallelGroup(Alignment.LEADING) - .addGroup(gl_contentPane.createSequentialGroup() - .addGap(62) - .addComponent(btnAdd, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE) - .addGap(58) - .addComponent(btnDel, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE) - .addGap(52) - .addComponent(btnOwneraddition, GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE) - .addContainerGap()) - ); - contentPane.setLayout(gl_contentPane); + contentPane.setLayout(null); + contentPane.add(btnOwneraddition); + contentPane.add(btnDel); + contentPane.add(btnAdd); + + JButton btnOwnerDeletion = new JButton("Owner Deletion"); + btnOwnerDeletion.setBounds(120, 331, 164, 73); + btnOwnerDeletion.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + Frame a = new DeleteOwnerGUI(); + a.setVisible(true); + } + }); + contentPane.add(btnOwnerDeletion); } } diff --git a/ruralHouses client/src/gui/BookRuralHouseConfirmationWindow.java b/ruralHouses client/src/gui/BookRuralHouseConfirmationWindow.java index a268b46..a313f3f 100644 --- a/ruralHouses client/src/gui/BookRuralHouseConfirmationWindow.java +++ b/ruralHouses client/src/gui/BookRuralHouseConfirmationWindow.java @@ -79,10 +79,10 @@ public class BookRuralHouseConfirmationWindow extends JFrame { jTextField3.setBounds(new Rectangle(180, 140, 115, 25)); jTextField3.setEditable(false); - jTextField3.setText(Float.toString(book.getPrice()) + " �"); + jTextField3.setText(Float.toString(book.getPrice()) + "€"); jTextField4.setBounds(new Rectangle(180, 175, 115, 25)); jTextField4.setEditable(false); - jTextField4.setText(Float.toString(book.getPrice()*(float)0.2) + " �"); + jTextField4.setText(Float.toString(book.getPrice()*(float)0.2) + "€"); this.getContentPane().add(jTextField4, null); this.getContentPane().add(jTextField3, null); this.getContentPane().add(jLabel5, null); diff --git a/ruralHouses client/src/gui/DeleteOfferGUI.java b/ruralHouses client/src/gui/DeleteOfferGUI.java index d3a79e4..0ed19e8 100644 --- a/ruralHouses client/src/gui/DeleteOfferGUI.java +++ b/ruralHouses client/src/gui/DeleteOfferGUI.java @@ -50,7 +50,7 @@ public class DeleteOfferGUI extends JFrame { comboBox_1 = new JComboBox(); comboBox_1.setBounds(101, 76, 314, 20); - Vector vo = ((RuralHouse) comboBox.getSelectedItem()).offers; + Vector vo = ((RuralHouse) comboBox.getSelectedItem()).getAllOffers(); comboBox_1.removeAllItems(); for (Offer of : vo) { comboBox_1.addItem(of); @@ -68,7 +68,7 @@ public class DeleteOfferGUI extends JFrame { @Override public void itemStateChanged(ItemEvent arg0) { - Vector vo = ((RuralHouse) comboBox.getSelectedItem()).offers; + Vector vo = ((RuralHouse) comboBox.getSelectedItem()).getAllOffers(); comboBox_1.removeAllItems(); for (Offer of : vo) { comboBox_1.addItem(of); diff --git a/ruralHouses client/src/gui/DeleteOwnerGUI.java b/ruralHouses client/src/gui/DeleteOwnerGUI.java new file mode 100644 index 0000000..fb2fcdb --- /dev/null +++ b/ruralHouses client/src/gui/DeleteOwnerGUI.java @@ -0,0 +1,139 @@ +package gui; + +import java.awt.Font; +import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.rmi.Naming; +import java.rmi.RemoteException; +import java.util.Enumeration; +import java.util.Vector; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.border.EmptyBorder; +import javax.swing.table.DefaultTableModel; + +import common.AccountInterface; +import common.OwnerInterface; + +import configuration.___IntNames; +import domain.Owner; + +public class DeleteOwnerGUI extends JFrame { + + /** + * + */ + private static final long serialVersionUID = 1L; + private JPanel contentPane; + private JTable table; + + private DefaultTableModel tableModel; + private OwnerInterface Own = null; + private Vector owners = new Vector(); + + /** + * Create the frame. + */ + public DeleteOwnerGUI() { + setTitle("Current owners:"); + try { + init(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void init() throws Exception { + setBounds(100, 100, 600, 500); + contentPane = new JPanel(); + contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); + setContentPane(contentPane); + contentPane.setLayout(null); + try { + Own = (OwnerInterface) Naming + .lookup(___IntNames.OwnerManager); + } catch (Exception e1) { + System.out + .println("Error accessing remote authentication: " + + e1.toString()); + } + this.owners = Own.getOwners(); + JLabel lblNewLabel = new JLabel(); + lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 27)); + lblNewLabel.setBounds(23, 41, 536, 33); + contentPane.add(lblNewLabel); + if (this.owners.isEmpty()) + lblNewLabel + .setText("There are not owners in the system"); + else + lblNewLabel.setText("List of owners:"); + JScrollPane scrollPane = new JScrollPane(); + scrollPane.setBounds(new Rectangle(45, 305, 320, 116)); + scrollPane.setBounds(23, 113, 536, 271); + contentPane.add(scrollPane); + JLabel feedback = new JLabel(""); + feedback.setBounds(134, 447, 307, 14); + contentPane.add(feedback); + JButton btnNewButton = new JButton("Delete from the system"); + btnNewButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (table.getRowCount()!=0 && table.getSelectedRow() != -1) { + AccountInterface acm = null; + + try { + acm = (AccountInterface) Naming + .lookup(___IntNames.AccountManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } + + try { + if(acm.removeAccount(table.getSelectedRow())) + { + feedback.setText("Deleted from the system"); + } + } catch (RemoteException e1) { + e1.printStackTrace(); + } + + ((DefaultTableModel)table.getModel()).removeRow(table.getSelectedRow()); + } + } + }); + btnNewButton.setBounds(88, 396, 428, 40); + contentPane.add(btnNewButton); + table = new JTable() { + private static final long serialVersionUID = 1L; + + public boolean isCellEditable(int row, int column) { + return false; + }; + }; + + scrollPane.setViewportView(table); + tableModel = new DefaultTableModel(null, new String[] { + "Name", "E-mail", "Bank Account" }); + + table.setModel(tableModel); + + + Enumeration rhs = this.owners.elements(); + while (rhs.hasMoreElements()) { + Owner own = rhs.nextElement(); + Vector row = new Vector(); + row.add(own.getName()); + row.add(own.getMailAccount()); + row.add(own.getBankAccount()); + tableModel.addRow(row); + } + + + } +} diff --git a/ruralHouses client/src/gui/HouseFeaturesGUI.java b/ruralHouses client/src/gui/HouseFeaturesGUI.java index 327ee05..de173a5 100644 --- a/ruralHouses client/src/gui/HouseFeaturesGUI.java +++ b/ruralHouses client/src/gui/HouseFeaturesGUI.java @@ -55,6 +55,7 @@ public class HouseFeaturesGUI extends JFrame { private JTable table; private DefaultTableModel tableModel; private RuralHouse rh; + private Vector offers= new Vector(); private JTextField telIn; private int row; private JLabel labelPhone; @@ -237,7 +238,9 @@ public class HouseFeaturesGUI extends JFrame { Enumeration rhs = rh.getAllOffers().elements(); while (rhs.hasMoreElements()) { Offer of = rhs.nextElement(); - if (of.getBookings() != null) { + if (of.getBookings() == null + || !of.isBooked()) { + offers.add(of); Vector row = new Vector(); row.add(of.getOfferNumber()); row.add(of.getFirstDay()); @@ -299,8 +302,8 @@ public class HouseFeaturesGUI extends JFrame { if (table.getRowCount() != 0) { Client cl = new Client(nameField.getText(), mailField.getText(), telIn.getText()); - book = bookingM.createBooking(rh, rh.offers.get(row) - .getFirstDay(), rh.offers.get(row).getLastDay(),cl); + book = bookingM.createBooking(rh, offers.get(row) + .getFirstDay(), offers.get(row).getLastDay(),cl); } } catch (Exception e) { e.printStackTrace(); diff --git a/ruralHouses client/src/gui/ModifyHouseGUI.java b/ruralHouses client/src/gui/ModifyHouseGUI.java index 691b0ca..d5db84c 100644 --- a/ruralHouses client/src/gui/ModifyHouseGUI.java +++ b/ruralHouses client/src/gui/ModifyHouseGUI.java @@ -19,6 +19,7 @@ import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; import common.HouseInterface; + import configuration.___IntNames; import domain.Districs; import domain.HouseFeatures; diff --git a/ruralHouses client/src/gui/ModifyOfferGUI.java b/ruralHouses client/src/gui/ModifyOfferGUI.java index 9259130..14dd98d 100644 --- a/ruralHouses client/src/gui/ModifyOfferGUI.java +++ b/ruralHouses client/src/gui/ModifyOfferGUI.java @@ -26,9 +26,9 @@ import javax.swing.JLabel; import javax.swing.JTextField; import com.toedter.calendar.JCalendar; - import common.HouseInterface; import common.OfferInterface; + import configuration.___IntNames; import domain.Offer; import domain.Owner; @@ -75,7 +75,6 @@ public class ModifyOfferGUI extends JFrame { this.setSize(new Dimension(513, 433)); this.setTitle("Set availability"); -<<<<<<< HEAD try { om = (OfferInterface) Naming @@ -90,10 +89,7 @@ public class ModifyOfferGUI extends JFrame { Hlist = hm.getHouses(o, null, null, 0, 0, 0, 0, 0); } catch (RemoteException e1) { e1.printStackTrace(); - } -======= ->>>>>>> 25898b619dd708c9f15a44200b545cac11404b73 - + } jComboBox1 = new JComboBox(Hlist); comboBox_o = new JComboBox( @@ -148,6 +144,7 @@ public class ModifyOfferGUI extends JFrame { @Override public void itemStateChanged(ItemEvent arg0) { + Vector vo= null; try { vo = om.getRuralHouseOffers((RuralHouse) jComboBox1.getSelectedItem()); diff --git a/ruralHouses client/src/gui/OwnerRegistrationGUI.java b/ruralHouses client/src/gui/OwnerRegistrationGUI.java index 5a4ffe9..62395d5 100644 --- a/ruralHouses client/src/gui/OwnerRegistrationGUI.java +++ b/ruralHouses client/src/gui/OwnerRegistrationGUI.java @@ -41,10 +41,9 @@ public class OwnerRegistrationGUI extends JFrame { * Create the frame. */ public OwnerRegistrationGUI() { - + try { - am = (AdminInterface) Naming - .lookup(___IntNames.AdminManager); + am = (AdminInterface) Naming.lookup(___IntNames.AdminManager); } catch (Exception e1) { System.out.println("Error accessing remote authentication: " + e1.toString()); @@ -139,23 +138,32 @@ public class OwnerRegistrationGUI extends JFrame { private void jButton_ActionPerformed(ActionEvent e) { - Owner own = new Owner(this.nameField.getText(), - this.bank1Field.getText() + " " + this.bank2Field.getText() - + " " + this.bank3Field.getText() + " " - + this.bank4Field.getText(), this.emailField.getText()); - - - try { - if (this.am.addAccountRequest(this.userNameField.getText(), - this.passField.getText(), own)) { - this.am.saveInstance(); - this.feedback.setText("Request sended"); - } else { - this.feedback.setText("Can't send the request"); + if (!emailField + .getText() + .matches( + "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$") + || !this.nameField.getText().isEmpty()||this.bank1Field.getText().length()!=4 || this.bank2Field.getText().length()!=4 + ||this.bank3Field.getText().length()!=2 || this.bank4Field.getText().length()!=10) { + Owner own = new Owner(this.nameField.getText(), + this.bank1Field.getText() + " " + this.bank2Field.getText() + + " " + this.bank3Field.getText() + " " + + this.bank4Field.getText(), + this.emailField.getText()); + + try { + if (this.am.addAccountRequest(this.userNameField.getText(), + this.passField.getText(), own)) { + this.am.saveInstance(); + this.feedback.setText("Request sended"); + } else { + this.feedback.setText("Can't send the request"); + } + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); } - } catch (RemoteException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + } else { + this.feedback.setText("Bad formatted data"); } } diff --git a/ruralHouses client/src/gui/listOfAdditionRequestsGUI.java b/ruralHouses client/src/gui/listOfAdditionRequestsGUI.java index d112532..30e5e66 100644 --- a/ruralHouses client/src/gui/listOfAdditionRequestsGUI.java +++ b/ruralHouses client/src/gui/listOfAdditionRequestsGUI.java @@ -118,7 +118,6 @@ public class listOfAdditionRequestsGUI extends JFrame { } ((DefaultTableModel)table.getModel()).removeRow(houses.indexOf(rh)); - houses.remove(rh); } } }); diff --git a/ruralHouses client/src/gui/listOfBookingRequestsGUI.java b/ruralHouses client/src/gui/listOfBookingRequestsGUI.java index 982d7f2..f0cb7db 100644 --- a/ruralHouses client/src/gui/listOfBookingRequestsGUI.java +++ b/ruralHouses client/src/gui/listOfBookingRequestsGUI.java @@ -1,9 +1,12 @@ package gui; +import java.awt.Color; +import java.awt.Component; import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.rmi.Naming; import java.rmi.RemoteException; import java.util.Enumeration; import java.util.Vector; @@ -15,10 +18,12 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.EmptyBorder; +import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import common.BookingInterface; +import configuration.___IntNames; import domain.Booking; import domain.Offer; @@ -31,7 +36,7 @@ public class listOfBookingRequestsGUI extends JFrame { private JPanel contentPane; private JTable table; private Offer off; - private BookingInterface bookM =null; + private BookingInterface bookM = null; private DefaultTableModel tableModel; private Vector bookings = new Vector(); @@ -56,8 +61,8 @@ public class listOfBookingRequestsGUI extends JFrame { contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); - - this.bookings= this.off.getBookings(); + + this.bookings = this.off.getBookings(); JLabel lblNewLabel = new JLabel(); lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 27)); lblNewLabel.setBounds(23, 41, 536, 33); @@ -80,24 +85,34 @@ public class listOfBookingRequestsGUI extends JFrame { }; }; scrollPane.setViewportView(table); - tableModel = new DefaultTableModel(null, new String[] { - "Booking Number", "Booking Date","Name","E-mail", "Telephone" }); + tableModel = new DefaultTableModel(null, + new String[] { "Booking Number", "Booking Date", "Name", + "E-mail", "Telephone" }); - // Maybe there is a better way to avoid interaction. - // table.setEnabled(false); table.setModel(tableModel); 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) { + if (table.getRowCount() != 0 + && table.getSelectedRow() != -1) { Booking book = bookings.get(table.getSelectedRow()); try { bookM.acceptBooking(book); } catch (RemoteException e1) { e1.printStackTrace(); } + contentPane.setVisible(false); + } } @@ -109,20 +124,36 @@ public class listOfBookingRequestsGUI extends JFrame { 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 { - bookM.removeDenyBooking(book); + bookM.denyBooking(book); } catch (RemoteException e) { e.printStackTrace(); } + ((DefaultTableModel) table.getModel()).removeRow(table + .getSelectedRow()); } } }); + + if (this.bookings.get(0).getOffer().isBooked()) { + btnDenyAddition.setEnabled(false); + btnNewButton.setEnabled(false); + } + btnDenyAddition.setBounds(390, 395, 169, 25); contentPane.add(btnDenyAddition); - + Enumeration en = this.bookings.elements(); Booking book; while (en.hasMoreElements()) { @@ -135,6 +166,31 @@ public class listOfBookingRequestsGUI extends JFrame { row.add(book.getClient().getTelephone()); tableModel.addRow(row); } + table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, boolean isSelected, boolean hasFocus, + int row, int col) { + + super.getTableCellRendererComponent(table, value, isSelected, + hasFocus, row, col); + + if (!bookings.get(row).getOffer().isBooked()) { + setBackground(Color.RED); + setForeground(Color.BLACK); + } else { + setBackground(Color.GREEN); + setForeground(Color.BLACK); + } + return this; + } + }); } + } diff --git a/ruralHouses client/src/gui/listOfOffers.java b/ruralHouses client/src/gui/listOfOffers.java index 76006af..4651ff8 100644 --- a/ruralHouses client/src/gui/listOfOffers.java +++ b/ruralHouses client/src/gui/listOfOffers.java @@ -1,5 +1,7 @@ package gui; +import java.awt.Color; +import java.awt.Component; import java.awt.Font; import java.awt.Rectangle; import java.awt.event.MouseAdapter; @@ -13,6 +15,7 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.EmptyBorder; +import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import domain.Offer; @@ -100,8 +103,33 @@ public class listOfOffers extends JFrame { row.add(of.getPrice()); row.add(of.getRuralHouse().getHouseName()); tableModel.addRow(row); - } + + table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, boolean isSelected, boolean hasFocus, + int row, int col) { + + super.getTableCellRendererComponent(table, value, isSelected, + hasFocus, row, col); + + if (!offers.get(row).isBooked()) { + setBackground(Color.ORANGE); + setForeground(Color.BLACK); + } else { + setBackground(Color.GREEN); + setForeground(Color.BLACK); + } + + return this; + } + }); } } diff --git a/ruralHouses client/src/gui/listOfOwnerAddittionRequests.java b/ruralHouses client/src/gui/listOfOwnerAddittionRequests.java index 01aaf8f..d72bd98 100644 --- a/ruralHouses client/src/gui/listOfOwnerAddittionRequests.java +++ b/ruralHouses client/src/gui/listOfOwnerAddittionRequests.java @@ -117,7 +117,7 @@ public class listOfOwnerAddittionRequests extends JFrame { } catch (RemoteException e1) { e1.printStackTrace(); } - + ((DefaultTableModel)table.getModel()).removeRow(table.getSelectedRow()); } } diff --git a/ruralHouses client/src/gui/listOfRemovalRequestsGUI.java b/ruralHouses client/src/gui/listOfRemovalRequestsGUI.java index 62daded..071ee51 100644 --- a/ruralHouses client/src/gui/listOfRemovalRequestsGUI.java +++ b/ruralHouses client/src/gui/listOfRemovalRequestsGUI.java @@ -41,8 +41,7 @@ public class listOfRemovalRequestsGUI extends JFrame { */ public listOfRemovalRequestsGUI() { try { - am = (AdminInterface) Naming - .lookup(___IntNames.AdminManager); + am = (AdminInterface) Naming.lookup(___IntNames.AdminManager); } catch (Exception e1) { System.out.println("Error accessing remote authentication: " + e1.toString()); @@ -94,51 +93,50 @@ public class listOfRemovalRequestsGUI extends JFrame { btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { - HouseInterface hm= null; + HouseInterface hm = null; try { hm = (HouseInterface) Naming .lookup(___IntNames.HouseManager); } catch (Exception e1) { - System.out.println("Error accessing remote authentication: " - + e1.toString()); + System.out + .println("Error accessing remote authentication: " + + e1.toString()); } RuralHouse rh = houses.get(table.getSelectedRow()); - ((DefaultTableModel)table.getModel()).removeRow(houses.indexOf(rh)); - try { - hm.removeHouse(rh, rh.getOwner()); - am.removeHouseDeletionRequests(rh); - am.saveInstance(); - } catch (RemoteException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - houses.remove(rh); - - - + + try { + hm.removeHouse(rh, rh.getOwner()); + am.removeHouseDeletionRequests(rh); + am.saveInstance(); + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + ((DefaultTableModel) table.getModel()).removeRow(houses + .indexOf(rh)); + } } }); btnNewButton.setBounds(90, 396, 169, 25); contentPane.add(btnNewButton); - + JButton btnNewButton_1 = new JButton("Deny Deletion"); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { RuralHouse rh = houses.get(table.getSelectedRow()); - ((DefaultTableModel)table.getModel()).removeRow(houses.indexOf(rh)); - houses.remove(rh); - try { - am.removeHouseDeletionRequests(rh); - am.saveInstance(); - } catch (RemoteException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - - - + ((DefaultTableModel) table.getModel()).removeRow(houses + .indexOf(rh)); + houses.remove(rh); + try { + am.removeHouseDeletionRequests(rh); + am.saveInstance(); + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } } }); diff --git a/ruralHouses/config.xml b/ruralHouses/config.xml index 9099bad..0ce7502 100644 --- a/ruralHouses/config.xml +++ b/ruralHouses/config.xml @@ -10,7 +10,7 @@ db/casas.db4o initialize 10 - 8 + 10 8100 softEng i4softwEngin2matx diff --git a/ruralHouses/src/businessLogic/AccountManager.java b/ruralHouses/src/businessLogic/AccountManager.java index ae57126..626038f 100644 --- a/ruralHouses/src/businessLogic/AccountManager.java +++ b/ruralHouses/src/businessLogic/AccountManager.java @@ -43,9 +43,15 @@ public class AccountManager extends UnicastRemoteObject implements AccountInterf } - public boolean removeAccount(Account ac)throws RemoteException { - if(this.dbMngr.removeAccount(ac)) - return true; + public boolean removeAccount(int index)throws RemoteException { + OwnerManager own = new OwnerManager(); + try { + if(this.dbMngr.removeAccount(own.getOwners().get(index))) + return true; + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } return false; } diff --git a/ruralHouses/src/businessLogic/BookingManager.java b/ruralHouses/src/businessLogic/BookingManager.java index 601eb3a..f0d0a54 100644 --- a/ruralHouses/src/businessLogic/BookingManager.java +++ b/ruralHouses/src/businessLogic/BookingManager.java @@ -5,6 +5,8 @@ import java.rmi.server.UnicastRemoteObject; import java.util.Date; import java.util.Vector; +import javax.mail.MessagingException; + import com.db4o.ObjectContainer; import com.db4o.ObjectSet; import common.BookingInterface; @@ -71,25 +73,21 @@ public final class BookingManager extends UnicastRemoteObject implements Booking return theBookingManager; } - public void removeDenyBooking(Booking b) throws RemoteException{ - b.getOffer().getBookings().remove(b); + public void denyBooking(Booking b) throws RemoteException{ this.dbMngr.removeBooking(b); } public void acceptBooking(Booking b) throws RemoteException{ b.getOffer().setBooked(true); - for(Booking boo : b.getOffer().getBookings()){ - if(!boo.equals(b)) - b.getOffer().getBookings().remove(b); - } + b.getOffer().getBookings().clear(); + b.getOffer().getBookings().add(b); this.dbMngr.acceptBooking(b.getOffer()); - /*try { + try { MailManager.getInstance().Send(b.getClient().getMailAccount(), "Your booking has been accepted","Here should be the bill"); } catch (MessagingException e) { - // TODO Auto-generated catch block e.printStackTrace(); - }*/ + } } /** diff --git a/ruralHouses/src/businessLogic/OfferManager.java b/ruralHouses/src/businessLogic/OfferManager.java index cfe7276..12279a3 100644 --- a/ruralHouses/src/businessLogic/OfferManager.java +++ b/ruralHouses/src/businessLogic/OfferManager.java @@ -56,7 +56,7 @@ public final class OfferManager extends UnicastRemoteObject implements OfferInte public void deleteOffer(RuralHouse rh, Offer o) throws RemoteException, Exception{ - rh.offers.removeElement(o); + rh.getAllOffers().removeElement(o); dbMngr.deleteOffer( o); } diff --git a/ruralHouses/src/common/AccountInterface.java b/ruralHouses/src/common/AccountInterface.java index 67e02d4..aee131c 100644 --- a/ruralHouses/src/common/AccountInterface.java +++ b/ruralHouses/src/common/AccountInterface.java @@ -3,12 +3,10 @@ package common; import java.rmi.Remote; import java.rmi.RemoteException; -import domain.Account; - public interface AccountInterface extends Remote{ public boolean addAccount(int index) throws RemoteException; - public boolean removeAccount(Account ac) throws RemoteException; + public boolean removeAccount(int index) throws RemoteException; } diff --git a/ruralHouses/src/common/BookingInterface.java b/ruralHouses/src/common/BookingInterface.java index 8262f30..8780f2f 100644 --- a/ruralHouses/src/common/BookingInterface.java +++ b/ruralHouses/src/common/BookingInterface.java @@ -16,7 +16,7 @@ public interface BookingInterface extends Remote { public int getNumber() throws RemoteException; - public void removeDenyBooking(Booking b) throws RemoteException; + public void denyBooking(Booking b) throws RemoteException; public void acceptBooking(Booking b) throws RemoteException; diff --git a/ruralHouses/src/dataAccess/DB4oManager.java b/ruralHouses/src/dataAccess/DB4oManager.java index d8a59f2..0f17aeb 100644 --- a/ruralHouses/src/dataAccess/DB4oManager.java +++ b/ruralHouses/src/dataAccess/DB4oManager.java @@ -81,10 +81,13 @@ public class DB4oManager { configuration = Db4oEmbedded.newConfiguration(); configuration.common().activationDepth(c.getActivationDepth()); configuration.common().updateDepth(c.getUpdateDepth()); - configuration.common().objectClass(Owner.class).cascadeOnUpdate(true); configuration.common().objectClass(Owner.class).cascadeOnDelete(true); + configuration.common().objectClass(Booking.class).cascadeOnDelete(true); configuration.common().objectClass(RuralHouse.class) - .cascadeOnUpdate(true); + .cascadeOnDelete(true); + configuration.common().objectClass(Account.class) + .cascadeOnDelete(true); + configuration.common().objectClass(Offer.class).cascadeOnDelete(true); configuration.common().objectClass(Account.class).cascadeOnUpdate(true); db = Db4oEmbedded.openFile(configuration, c.getDb4oFilename()); } @@ -207,7 +210,7 @@ public class DB4oManager { try { ObjectSet of = db.queryByExample(offer); RuralHouse rh = of.get(0).getRuralHouse(); - System.out.println(rh.offers.remove(of.get(0))); + System.out.println(rh.getAllOffers().remove(of.get(0))); db.store(rh); db.commit(); @@ -552,20 +555,16 @@ public class DB4oManager { return false; } - // TODO remove account - - public boolean removeAccount(Account acc) { + public boolean removeAccount(Owner own) { if (c.isDatabaseLocal() == false) openSDB(); else openDB(); try { - ObjectSet result = db.queryByExample(new Account(acc - .getUsername())); + ObjectSet result = db.queryByExample(new Account(own)); if (!result.isEmpty()) { db.delete(result.get(0)); - ; db.commit(); return true; } @@ -577,10 +576,10 @@ public class DB4oManager { return false; } - // TODO this method should be improved. public void acceptBooking(Offer of) { - Offer off = new Offer(of.getOfferNumber(), of.getRuralHouse(), - of.getFirstDay(), of.getLastDay(), of.getPrice()); + Offer off = new Offer(of.getOfferNumber(), new RuralHouse(of + .getRuralHouse().getHouseName(), null, null, null, null), null, + null, 0); if (c.isDatabaseLocal() == false) openSDB(); else @@ -588,8 +587,12 @@ public class DB4oManager { try { ObjectSet result = db.queryByExample(off); - this.deleteOffer(result.get(0)); - db.store(of); + db.delete(result.get(0)); + RuralHouse rh = result.get(0).getRuralHouse(); + of.setRuralHouse(rh); + rh.getAllOffers().remove(result.get(0)); + rh.getAllOffers().add(of); + db.store(rh); db.close(); } catch (Exception e) { @@ -605,13 +608,12 @@ public class DB4oManager { openDB(); try { ObjectSet result = db.queryByExample(b); - ObjectSet result2 = db.queryByExample(b.getClient()); + result.get(0).getOffer().getBookings().remove(b); + db.store(result.get(0).getOffer()); db.delete(result.get(0)); - db.delete(result2.get(0)); db.commit(); } catch (Exception e) { e.printStackTrace(); - ; } finally { db.close(); } diff --git a/ruralHouses/src/domain/Account.java b/ruralHouses/src/domain/Account.java index ff19267..08e841c 100644 --- a/ruralHouses/src/domain/Account.java +++ b/ruralHouses/src/domain/Account.java @@ -28,6 +28,13 @@ public class Account implements Serializable { this.password = null; this.owner = null; + } + public Account(Owner own){ + this.username = null; + this.salt =null; + this.password = null; + this.owner = own; + } public Account(String usr, String pass, boolean isAdmin) { this.username = SecurityManager.getInstance().calculateHash(usr); diff --git a/ruralHouses/src/domain/Client.java b/ruralHouses/src/domain/Client.java index 4dd9eb2..28730df 100644 --- a/ruralHouses/src/domain/Client.java +++ b/ruralHouses/src/domain/Client.java @@ -1,7 +1,13 @@ package domain; -public class Client { +import java.io.Serializable; +public class Client implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 1L; private String name; private String mailAccount; private String telephone; diff --git a/ruralHouses/src/domain/RuralHouse.java b/ruralHouses/src/domain/RuralHouse.java index 07259c8..529f691 100644 --- a/ruralHouses/src/domain/RuralHouse.java +++ b/ruralHouses/src/domain/RuralHouse.java @@ -14,7 +14,9 @@ public class RuralHouse implements Serializable { private Owner owner; private String district; private HouseFeatures features; - public Vector offers; + private Vector offers; + private boolean isAccepted; + public RuralHouse() { super(); @@ -166,4 +168,12 @@ public class RuralHouse implements Serializable { } + public boolean isAccepted() { + return isAccepted; + } + + public void setAccepted(boolean isAccepted) { + this.isAccepted = isAccepted; + } + }