@Override
	public List<Bid> displayBid(List<Bid> listBid, List<Offer> listOffer) {
		List<Bid> visibleBids = new ArrayList<Bid>();
		
		// iterate through offers to find bids matching our buyer
		for (Offer offer : listOffer) {
			if(offer.getBuyer().equals(this)){
				Bid b = offer.getBid();
				if(b.getBidState().equals(BidState.CANCELED)) {
					visibleBids.add(b);
				}
			}
		}

		// get the published bids
        for (Bid bid : listBid) {
            if(bid.getBidState().equals(BidState.PUBLISHED))
            {
                visibleBids.add(bid);
            }
        }
        
        // debug display (optional)
        for (Bid bid : visibleBids) {
			System.out.println("Product description : " + bid.getProduct().getDescription());
			System.out.println("Product price : " + bid.getPrice());
			System.out.println("Bid end the : " + bid.getEndDate());
			if(bid.getPrice() >= bid.getReservePrice())
				System.out.println("Reserve price has been reached");
        }
        return visibleBids;
	}