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;
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;
private Owner owner;
private String district;
private HouseFeatures features;
- public Vector<Offer> offers;
- public boolean isAccepted;
+ private Vector<Offer> offers;
+ private boolean isAccepted;
public RuralHouse() {
super();
}
+ public boolean isAccepted() {
+ return isAccepted;
+ }
+
+ public void setAccepted(boolean isAccepted) {
+ this.isAccepted = isAccepted;
+ }
+
}
jTextField3.setBounds(new Rectangle(180, 140, 115, 25));
jTextField3.setEditable(false);
- jTextField3.setText(Float.toString(book.getPrice()) + " �");
+ jTextField3.setText(Float.toString(book.getPrice()) + "\80");
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) + "\80");
this.getContentPane().add(jTextField4, null);
this.getContentPane().add(jTextField3, null);
this.getContentPane().add(jLabel5, null);
comboBox_1 = new JComboBox<Offer>();
comboBox_1.setBounds(101, 76, 314, 20);
- Vector<Offer> vo = ((RuralHouse) comboBox.getSelectedItem()).offers;
+ Vector<Offer> vo = ((RuralHouse) comboBox.getSelectedItem()).getAllOffers();
comboBox_1.removeAllItems();
for (Offer of : vo) {
comboBox_1.addItem(of);
@Override
public void itemStateChanged(ItemEvent arg0) {
- Vector<Offer> vo = ((RuralHouse) comboBox.getSelectedItem()).offers;
+ Vector<Offer> vo = ((RuralHouse) comboBox.getSelectedItem()).getAllOffers();
comboBox_1.removeAllItems();
for (Offer of : vo) {
comboBox_1.addItem(of);
--- /dev/null
+package gui;
+
+public class DeleteOwnerGUI {
+
+}
private JTable table;
private DefaultTableModel tableModel;
private RuralHouse rh;
+ private Vector<Offer> offers= new Vector<Offer>();
private JTextField telIn;
private int row;
private JLabel labelPhone;
while (rhs.hasMoreElements()) {
Offer of = rhs.nextElement();
if (of.getBookings() == null
- || of.isBooked()) {
+ || !of.isBooked()) {
+ offers.add(of);
Vector<Object> row = new Vector<Object>();
row.add(of.getOfferNumber());
row.add(of.getFirstDay());
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();
@Override
public void itemStateChanged(ItemEvent arg0) {
- Vector<Offer> vo = ((RuralHouse) jComboBox1.getSelectedItem()).offers;
+ Vector<Offer> vo = ((RuralHouse) jComboBox1.getSelectedItem()).getAllOffers();
comboBox_o.removeAllItems();
- if (!((RuralHouse) jComboBox1.getSelectedItem()).offers
+ if (!((RuralHouse) jComboBox1.getSelectedItem()).getAllOffers()
.isEmpty()) {
jCalendar1.setEnabled(true);
jCalendar2.setEnabled(true);
* 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());
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");
}
}
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.Date;
import java.util.Enumeration;
import java.util.Vector;
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 common.OfferInterface;
+import configuration.___IntNames;
import domain.Booking;
import domain.Offer;
private JPanel contentPane;
private JTable table;
private Offer off;
- private BookingInterface bookM =null;
+ private BookingInterface bookM = null;
private DefaultTableModel tableModel;
private Vector<Booking> bookings = new Vector<Booking>();
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);
};
};
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);
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();
}
+ bookings.remove(book);
}
}
});
btnDenyAddition.setBounds(390, 395, 169, 25);
contentPane.add(btnDenyAddition);
-
+
Enumeration<Booking> en = this.bookings.elements();
Booking book;
while (en.hasMoreElements()) {
row.add(book.getClient().getTelephone());
tableModel.addRow(row);
}
+ table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public int daysBetween(Date d1, Date d2) {
+ return (int) ((d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24));
+ }
+ @Override
+ public Component getTableCellRendererComponent(JTable table,
+ Object value, boolean isSelected, boolean hasFocus,
+ int row, int col) {
+
+ super.getTableCellRendererComponent(table, value, isSelected,
+ hasFocus, row, col);
+
+ Date bookDay = (Date) table.getModel().getValueAt(row, 1);
+ Date currentDay = new java.util.Date(System.currentTimeMillis());
+
+ if (daysBetween(bookDay, currentDay) > 3) {
+ setBackground(Color.RED);
+ setForeground(Color.BLACK);
+ } else {
+ setBackground(Color.GREEN);
+ setForeground(Color.BLACK);
+ }
+
+ return this;
+ }
+ });
}
+
}
row.add(of.getPrice());
row.add(of.getRuralHouse().getHouseName());
tableModel.addRow(row);
-
}
}
*/
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());
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();
+ }
+
}
}
});
<db4oFilename>db/casas.db4o</db4oFilename>
<dataBaseOpenMode>initialize</dataBaseOpenMode>
<activationDepth>10</activationDepth>
- <updateDepth>8</updateDepth>
+ <updateDepth>10</updateDepth>
<databasePort>8100</databasePort>
<user>softEng</user>
<password>i4softwEngin2matx</password>
import java.util.Date;
import java.util.Vector;
+import javax.mail.MessagingException;
+
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
-import common.BookingInterface;
+import common.BookingInterface;
import dataAccess.DB4oManager;
import domain.Booking;
import domain.Client;
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();
- }*/
+ }
}
/**
public void deleteOffer(RuralHouse rh, Offer o) throws RemoteException, Exception{
- rh.offers.removeElement(o);
+ rh.getAllOffers().removeElement(o);
dbMngr.deleteOffer( o);
}
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;
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);
+ configuration.common().objectClass(Offer.class)
+ .cascadeOnUpdate(true);
configuration.common().objectClass(Account.class).cascadeOnUpdate(true);
db = Db4oEmbedded.openFile(configuration, c.getDb4oFilename());
}
try {
ObjectSet<Offer> 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();
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
try {
ObjectSet<Offer> 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) {
openDB();
try {
ObjectSet<Booking> result = db.queryByExample(b);
- ObjectSet<Client> result2 = db.queryByExample(b.getClient());
- db.delete(result.get(0));
- db.delete(result2.get(0));
+ result.get(0).getOffer().getBookings().remove(b);
+ db.store(result.get(0).getOffer());
db.commit();
} catch (Exception e) {
e.printStackTrace();
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;
private Owner owner;
private String district;
private HouseFeatures features;
- public Vector<Offer> offers;
- public boolean isAccepted;
+ private Vector<Offer> offers;
+ private boolean isAccepted;
public RuralHouse() {
super();
}
+ public boolean isAccepted() {
+ return isAccepted;
+ }
+
+ public void setAccepted(boolean isAccepted) {
+ this.isAccepted = isAccepted;
+ }
+
}