diff --git a/src/view/EventDetailsBasicView.java b/src/view/EventDetailsBasicView.java index 439f1f8..43e155c 100644 --- a/src/view/EventDetailsBasicView.java +++ b/src/view/EventDetailsBasicView.java @@ -1,81 +1,45 @@ -package view; - -import entity.Events.Event; -import interface_adapter.get_event_details.GetEventDetailsController; -import interface_adapter.get_event_details.GetEventDetailsState; -import interface_adapter.get_event_details.GetEventDetailsViewModel; -import interface_adapter.join_event.JoinEventController; -import interface_adapter.join_event.JoinEventState; -import use_case.get_event_details.GetEventDetailsInteractor; - -import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; - -public class EventDetailsBasicView extends JPanel implements ActionListener, PropertyChangeListener { - public final String viewName = "event details"; - - private final GetEventDetailsViewModel getEventDetailsViewModel; - private final GetEventDetailsController getEventDetailsController; - private final JoinEventController joinEventController; - - //TODO private final GoBackController goBackController; --> the constructor will need to change too. - - private final JButton join; - private final JButton back; - private final Event event; - - public EventDetailsBasicView(GetEventDetailsViewModel viewModel, - GetEventDetailsController controller, - JoinEventController joinEventController, - Event event) { - this.getEventDetailsViewModel = viewModel; - this.getEventDetailsController = controller; - this.joinEventController = joinEventController; - this.event = event; // Not sure if we should store the event whose details is displayed here. - - getEventDetailsViewModel.addPropertyChangeListener(this); - - JLabel title = new JLabel("View event details"); - JPanel eventDetails = new JPanel(); - - join = new JButton("Join"); - back = new JButton("back"); - JPanel buttons = new JPanel(); - buttons.add(join); - buttons.add(back); - - this.add(buttons); - - join.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (e.getSource().equals(join)) { - // TODO: need to figure out where to obtain user - // joinEventController.execute(event, user); - } - - } - }); - - back.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (e.getSource().equals(back)) { - // TODO: Add GoBack controller after the use case is implemented - // goBackController.execute(); - } - } - }); - } - - -// // Another constructor that has no attributes just for testing out the view -// public EventDetailsBasicView() { +//package view; +// +//import entity.Events.Event; +//import interface_adapter.get_event_details.GetEventDetailsController; +//import interface_adapter.get_event_details.GetEventDetailsState; +//import interface_adapter.get_event_details.GetEventDetailsViewModel; +//import interface_adapter.join_event.JoinEventController; +//import interface_adapter.join_event.JoinEventState; +//import use_case.get_event_details.GetEventDetailsInteractor; +// +//import javax.swing.*; +//import java.awt.event.ActionEvent; +//import java.awt.event.ActionListener; +//import java.beans.PropertyChangeEvent; +//import java.beans.PropertyChangeListener; +// +//public class EventDetailsBasicView extends JPanel implements ActionListener, PropertyChangeListener { +// public final String viewName = "event details"; +// +// private final GetEventDetailsViewModel getEventDetailsViewModel; +// private final GetEventDetailsController getEventDetailsController; +// private final JoinEventController joinEventController; +// +// //TODO private final GoBackController goBackController; --> the constructor will need to change too. +// +// private final JButton join; +// private final JButton back; +// private final Event event; +// +// public EventDetailsBasicView(GetEventDetailsViewModel viewModel, +// GetEventDetailsController controller, +// JoinEventController joinEventController, +// Event event) { +// this.getEventDetailsViewModel = viewModel; +// this.getEventDetailsController = controller; +// this.joinEventController = joinEventController; +// this.event = event; // Not sure if we should store the event whose details is displayed here. +// +// getEventDetailsViewModel.addPropertyChangeListener(this); // // JLabel title = new JLabel("View event details"); +// JPanel eventDetails = new JPanel(); // // join = new JButton("Join"); // back = new JButton("back"); @@ -88,8 +52,9 @@ public void actionPerformed(ActionEvent e) { // join.addActionListener(new ActionListener() { // @Override // public void actionPerformed(ActionEvent e) { -// if (e.getSource().equals(join)){ -// System.out.println("Join");; +// if (e.getSource().equals(join)) { +// // TODO: need to figure out where to obtain user +// // joinEventController.execute(event, user); // } // // } @@ -99,39 +64,74 @@ public void actionPerformed(ActionEvent e) { // @Override // public void actionPerformed(ActionEvent e) { // if (e.getSource().equals(back)) { -// System.out.println("Go back"); +// // TODO: Add GoBack controller after the use case is implemented +// // goBackController.execute(); // } // } // }); // } // - @Override - public void actionPerformed(ActionEvent e) { - ; - } - - @Override - public void propertyChange(PropertyChangeEvent evt) { - if (evt.getPropertyName().equals("state")) { - GetEventDetailsState state = (GetEventDetailsState) evt.getNewValue(); - JOptionPane.showMessageDialog(this, new String[] {state.getEventName(), state.getEventAddress(), - state.getEventDate(), state.getEventDescription(), state.getEventCapacity()}); - } else if (evt.getPropertyName().equals("join event")) { // The change is caused by a user made a JoinEvent action - JoinEventState state = (JoinEventState) evt.getNewValue(); - if (state.isSuccess()) { - JOptionPane.showMessageDialog(this, "You have successfully joined this event!"); - } else { - JOptionPane.showMessageDialog(this, state.getError()); - } - } - - } -// -// public static void main(String[] args) { -// EventDetailsBasicView view = new EventDetailsBasicView(); -// JFrame frame = new JFrame(); -// frame.setSize(400,300); -// frame.add(view); -// frame.setVisible(true); +// +//// // Another constructor that has no attributes just for testing out the view +//// public EventDetailsBasicView() { +//// +//// JLabel title = new JLabel("View event details"); +//// +//// join = new JButton("Join"); +//// back = new JButton("back"); +//// JPanel buttons = new JPanel(); +//// buttons.add(join); +//// buttons.add(back); +//// +//// this.add(buttons); +//// +//// join.addActionListener(new ActionListener() { +//// @Override +//// public void actionPerformed(ActionEvent e) { +//// if (e.getSource().equals(join)){ +//// System.out.println("Join");; +//// } +//// +//// } +//// }); +//// +//// back.addActionListener(new ActionListener() { +//// @Override +//// public void actionPerformed(ActionEvent e) { +//// if (e.getSource().equals(back)) { +//// System.out.println("Go back"); +//// } +//// } +//// }); +//// } +//// +// @Override +// public void actionPerformed(ActionEvent e) { +// ; +// } +// +// @Override +// public void propertyChange(PropertyChangeEvent evt) { +// if (evt.getPropertyName().equals("state")) { +// GetEventDetailsState state = (GetEventDetailsState) evt.getNewValue(); +// JOptionPane.showMessageDialog(this, new String[] {state.getEventName(), state.getEventAddress(), +// state.getEventDate(), state.getEventDescription(), state.getEventCapacity()}); +// } else if (evt.getPropertyName().equals("join event")) { // The change is caused by a user made a JoinEvent action +// JoinEventState state = (JoinEventState) evt.getNewValue(); +// if (state.isSuccess()) { +// JOptionPane.showMessageDialog(this, "You have successfully joined this event!"); +// } else { +// JOptionPane.showMessageDialog(this, state.getError()); +// } +// } +// // } -} +//// +//// public static void main(String[] args) { +//// EventDetailsBasicView view = new EventDetailsBasicView(); +//// JFrame frame = new JFrame(); +//// frame.setSize(400,300); +//// frame.add(view); +//// frame.setVisible(true); +//// } +//} diff --git a/src/view/EventLabelRenderer.java b/src/view/EventLabelRenderer.java index 6d42791..9c2a94f 100644 --- a/src/view/EventLabelRenderer.java +++ b/src/view/EventLabelRenderer.java @@ -1,36 +1,36 @@ -package view; - -import javax.swing.*; -import java.awt.*; - -public class EventLabelRenderer extends JLabel implements javax.swing.ListCellRenderer { - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - - this.setText((String) value); - this.setSize(1000, 100); - //this.setEnabled(true); - return this; - //return new JTextField(String.valueOf(value)); - - //Set the icon and text. If icon was null, say so. -// ImageIcon icon = images[selectedIndex]; -// String pet = petStrings[selectedIndex]; -// setIcon(icon); -// if (icon != null) { -// setText(pet); -// setFont(list.getFont()); +//package view; +// +//import javax.swing.*; +//import java.awt.*; +// +//public class EventLabelRenderer extends JLabel implements javax.swing.ListCellRenderer { +// @Override +// public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { +// +// if (isSelected) { +// setBackground(list.getSelectionBackground()); +// setForeground(list.getSelectionForeground()); // } else { -// setUhOhText(pet + " (no image available)", -// list.getFont()); +// setBackground(list.getBackground()); +// setForeground(list.getForeground()); // } - } -} +// +// this.setText((String) value); +// this.setSize(1000, 100); +// //this.setEnabled(true); +// return this; +// //return new JTextField(String.valueOf(value)); +// +// //Set the icon and text. If icon was null, say so. +//// ImageIcon icon = images[selectedIndex]; +//// String pet = petStrings[selectedIndex]; +//// setIcon(icon); +//// if (icon != null) { +//// setText(pet); +//// setFont(list.getFont()); +//// } else { +//// setUhOhText(pet + " (no image available)", +//// list.getFont()); +//// } +// } +//} diff --git a/src/view/EventLoader.java b/src/view/EventLoader.java index 21a2925..410096e 100644 --- a/src/view/EventLoader.java +++ b/src/view/EventLoader.java @@ -1,153 +1,153 @@ -package view; - -import entity.Events.CommonEvent; -import entity.Events.Event; -import entity.Location.CommonLocationFactory; -import entity.Location.Location; -import entity.Location.LocationFactory; - -import javax.swing.*; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Vector; - -public class EventLoader extends JPanel { - public final String viewName = "events returned by search"; - - //public final SearchNearbyBasicView searchNearbyBasicView; - final JButton viewEventDetails; - JList eventList; - ArrayList eventArrayList; - private final PropertyChangeSupport observable = new PropertyChangeSupport(this); - - public EventLoader(JFrame searchNearbyBasicView) { - observable.addPropertyChangeListener("View event details", (PropertyChangeListener) searchNearbyBasicView); //The view now observes changes from this event loader - - JLabel title = new JLabel("Here are the events within 2KM from you."); - title.setAlignmentX(Component.CENTER_ALIGNMENT); - - eventList = new JList(); - eventList.addListSelectionListener(new ListSelectionListener() { - @Override - public void valueChanged(ListSelectionEvent e) { - System.out.println(eventList.getSelectedIndex()); - } - }); - eventList.setSize(200,200); - eventList.setListData(new String[]{"test content"}); - - viewEventDetails = new JButton("View event details"); - JPanel buttonPanel = new JPanel(); - buttonPanel.add(viewEventDetails); - buttonPanel.setAlignmentX(Component.BOTTOM_ALIGNMENT); - - viewEventDetails.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (e.getSource().equals(viewEventDetails) && eventList.getSelectedIndex() != -1) { - System.out.println("View event details with event name " + eventArrayList.get(eventList.getSelectedIndex()).getEventName()); - firePropertyChange("View event details", null, eventArrayList.get(eventList.getSelectedIndex())); - } else { - System.out.println("Please select an event first."); - } - } - }); - - this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - this.add(title, BorderLayout.NORTH); - this.add(eventList, BorderLayout.CENTER); - this.add(buttonPanel, BorderLayout.SOUTH); - - } - - /** - * The below class is for testing, it does not have SearchNearbyBasicView as an observer. - */ - public EventLoader() { - JLabel title = new JLabel("Here are the events within 2KM from you."); - title.setAlignmentX(Component.CENTER_ALIGNMENT); - - eventList = new JList(); - eventList.addListSelectionListener(new ListSelectionListener() { - @Override - public void valueChanged(ListSelectionEvent e) { - System.out.println(eventList.getSelectedIndex()); - } - }); - eventList.setSize(200,200); - eventList.setListData(new String[]{"test content"}); - - viewEventDetails = new JButton("View event details"); - JPanel buttonPanel = new JPanel(); - buttonPanel.add(viewEventDetails); - buttonPanel.setAlignmentX(Component.BOTTOM_ALIGNMENT); - - viewEventDetails.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (e.getSource().equals(viewEventDetails) && eventList.getSelectedIndex() != -1) { - System.out.println("View event details with event name " + eventArrayList.get(eventList.getSelectedIndex()).getEventName()); - firePropertyChange("View event details", null, eventArrayList.get(eventList.getSelectedIndex())); // Notify observer to give details of the selected event - } else { - System.out.println("Please select an event first."); - } - } - }); - - this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - this.add(title, BorderLayout.NORTH); - this.add(eventList, BorderLayout.CENTER); - this.add(buttonPanel, BorderLayout.SOUTH); - - } - - public static void main(String[] args) { - JFrame frame = new JFrame("Event loader"); - EventLoader eventLoader = new EventLoader(); - frame.getContentPane().add(eventLoader, BorderLayout.CENTER); - frame.setSize(400, 300); - frame.setLocationRelativeTo(null); - frame.setVisible(true); - try { - LocationFactory factory = new CommonLocationFactory(); - Location location = factory.makeLocation("(43.665510,-79.387280)"); // Home, within 2KM - Location location2 = factory.makeLocation("(43.645531,-79.380348)"); // Union Station (3KM) - Event event = new CommonEvent(1, "badminton", "owner", location, new ArrayList<>(), - new ArrayList<>(), LocalDateTime.now(), "type", "description", false, - 10); // This event should be returned - Event event2 = new CommonEvent(2, "group trip", "owner", location2, new ArrayList<>(), - new ArrayList<>(), LocalDateTime.now(), "type", "description", false, 10); - - ArrayList eventArrayList = new ArrayList<>(); - eventArrayList.add(event); - eventArrayList.add(event2); - - eventLoader.load(eventArrayList); - } catch (Exception e) { - throw new RuntimeException(e); - } - - } - - public void load(ArrayList eventsFound) { - this.eventArrayList = eventsFound; - ArrayList strEventList = new ArrayList<>(); - //eventList.setCellRenderer(new EventLabelRenderer()); TODO: If there's more time, use a customized CellRenderer to display the content nicer. - - - for (Event event: eventsFound) { - String str = event.getEventName() + "\n" + "Location: " + event.getLocation().getAddress() + "\n" + "Time: " + event.getTime().toString(); - // System.out.println(str); - strEventList.add(str); - } - eventList.setListData(strEventList.toArray()); - - } - } +//package view; +// +//import entity.Events.CommonEvent; +//import entity.Events.Event; +//import entity.Location.CommonLocationFactory; +//import entity.Location.Location; +//import entity.Location.LocationFactory; +// +//import javax.swing.*; +//import javax.swing.event.ListSelectionEvent; +//import javax.swing.event.ListSelectionListener; +//import java.awt.*; +//import java.awt.event.ActionEvent; +//import java.awt.event.ActionListener; +//import java.beans.PropertyChangeListener; +//import java.beans.PropertyChangeSupport; +//import java.time.LocalDateTime; +//import java.util.ArrayList; +//import java.util.Vector; +// +//public class EventLoader extends JPanel { +// public final String viewName = "events returned by search"; +// +// //public final SearchNearbyBasicView searchNearbyBasicView; +// final JButton viewEventDetails; +// JList eventList; +// ArrayList eventArrayList; +// private final PropertyChangeSupport observable = new PropertyChangeSupport(this); +// +// public EventLoader(JFrame searchNearbyBasicView) { +// observable.addPropertyChangeListener("View event details", (PropertyChangeListener) searchNearbyBasicView); //The view now observes changes from this event loader +// +// JLabel title = new JLabel("Here are the events within 2KM from you."); +// title.setAlignmentX(Component.CENTER_ALIGNMENT); +// +// eventList = new JList(); +// eventList.addListSelectionListener(new ListSelectionListener() { +// @Override +// public void valueChanged(ListSelectionEvent e) { +// System.out.println(eventList.getSelectedIndex()); +// } +// }); +// eventList.setSize(200,200); +// eventList.setListData(new String[]{"test content"}); +// +// viewEventDetails = new JButton("View event details"); +// JPanel buttonPanel = new JPanel(); +// buttonPanel.add(viewEventDetails); +// buttonPanel.setAlignmentX(Component.BOTTOM_ALIGNMENT); +// +// viewEventDetails.addActionListener(new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// if (e.getSource().equals(viewEventDetails) && eventList.getSelectedIndex() != -1) { +// System.out.println("View event details with event name " + eventArrayList.get(eventList.getSelectedIndex()).getEventName()); +// firePropertyChange("View event details", null, eventArrayList.get(eventList.getSelectedIndex())); +// } else { +// System.out.println("Please select an event first."); +// } +// } +// }); +// +// this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); +// this.add(title, BorderLayout.NORTH); +// this.add(eventList, BorderLayout.CENTER); +// this.add(buttonPanel, BorderLayout.SOUTH); +// +// } +// +// /** +// * The below class is for testing, it does not have SearchNearbyBasicView as an observer. +// */ +// public EventLoader() { +// JLabel title = new JLabel("Here are the events within 2KM from you."); +// title.setAlignmentX(Component.CENTER_ALIGNMENT); +// +// eventList = new JList(); +// eventList.addListSelectionListener(new ListSelectionListener() { +// @Override +// public void valueChanged(ListSelectionEvent e) { +// System.out.println(eventList.getSelectedIndex()); +// } +// }); +// eventList.setSize(200,200); +// eventList.setListData(new String[]{"test content"}); +// +// viewEventDetails = new JButton("View event details"); +// JPanel buttonPanel = new JPanel(); +// buttonPanel.add(viewEventDetails); +// buttonPanel.setAlignmentX(Component.BOTTOM_ALIGNMENT); +// +// viewEventDetails.addActionListener(new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// if (e.getSource().equals(viewEventDetails) && eventList.getSelectedIndex() != -1) { +// System.out.println("View event details with event name " + eventArrayList.get(eventList.getSelectedIndex()).getEventName()); +// firePropertyChange("View event details", null, eventArrayList.get(eventList.getSelectedIndex())); // Notify observer to give details of the selected event +// } else { +// System.out.println("Please select an event first."); +// } +// } +// }); +// +// this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); +// this.add(title, BorderLayout.NORTH); +// this.add(eventList, BorderLayout.CENTER); +// this.add(buttonPanel, BorderLayout.SOUTH); +// +// } +// +// public static void main(String[] args) { +// JFrame frame = new JFrame("Event loader"); +// EventLoader eventLoader = new EventLoader(); +// frame.getContentPane().add(eventLoader, BorderLayout.CENTER); +// frame.setSize(400, 300); +// frame.setLocationRelativeTo(null); +// frame.setVisible(true); +// try { +// LocationFactory factory = new CommonLocationFactory(); +// Location location = factory.makeLocation("(43.665510,-79.387280)"); // Home, within 2KM +// Location location2 = factory.makeLocation("(43.645531,-79.380348)"); // Union Station (3KM) +// Event event = new CommonEvent(1, "badminton", "owner", location, new ArrayList<>(), +// new ArrayList<>(), LocalDateTime.now(), "type", "description", false, +// 10); // This event should be returned +// Event event2 = new CommonEvent(2, "group trip", "owner", location2, new ArrayList<>(), +// new ArrayList<>(), LocalDateTime.now(), "type", "description", false, 10); +// +// ArrayList eventArrayList = new ArrayList<>(); +// eventArrayList.add(event); +// eventArrayList.add(event2); +// +// eventLoader.load(eventArrayList); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// +// } +// +// public void load(ArrayList eventsFound) { +// this.eventArrayList = eventsFound; +// ArrayList strEventList = new ArrayList<>(); +// //eventList.setCellRenderer(new EventLabelRenderer()); TODO: If there's more time, use a customized CellRenderer to display the content nicer. +// +// +// for (Event event: eventsFound) { +// String str = event.getEventName() + "\n" + "Location: " + event.getLocation().getAddress() + "\n" + "Time: " + event.getTime().toString(); +// // System.out.println(str); +// strEventList.add(str); +// } +// eventList.setListData(strEventList.toArray()); +// +// } +// } diff --git a/src/view/SearchNearbyBasicView.java b/src/view/SearchNearbyBasicView.java index ac3a01f..19ac9a8 100644 --- a/src/view/SearchNearbyBasicView.java +++ b/src/view/SearchNearbyBasicView.java @@ -1,145 +1,145 @@ -package view; - -import data_access.InMemoryEventsDataAccessObject; -import entity.Events.Event; -import entity.Location.CommonLocationFactory; -import data_access.CoordinatesFromIP; -import entity.Location.Location; -import interface_adapter.ViewManagerModel; -import interface_adapter.join_event.JoinEventController; -import interface_adapter.join_event.JoinEventPresenter; -import interface_adapter.search_nearby.SearchNearbyController; -import interface_adapter.search_nearby.SearchNearbyPresenter; -import interface_adapter.search_nearby.SearchNearbyState; -import interface_adapter.search_nearby.SearchNearbyViewModel; -import use_case.join_event.JoinEventOutputBoundary; -import use_case.search_nearby.SearchNearbyInteractor; -import use_case.search_nearby.SearchNearbyOutputBoundary; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.IOException; -import java.util.ArrayList; - -public class SearchNearbyBasicView extends JFrame implements ActionListener, PropertyChangeListener { - - public final String viewName = "search nearby"; - private final SearchNearbyViewModel searchNearbyViewModel; - - private final SearchNearbyController searchNearbyController; - - // private final GoBackController TODO: GoBack should be implemented as a use case - private final JoinEventController joinEventController; - private EventLoader eventLoader = new EventLoader(this); // This JPane will give the View event details and a list of events searched - - final JButton back; // This button will - - final JButton search; // This button will trigger the program to search again. - public SearchNearbyBasicView(SearchNearbyViewModel searchNearbyViewModel, SearchNearbyController searchNearbyController, - JoinEventController joinEventController) { - this.searchNearbyViewModel = searchNearbyViewModel; - this.searchNearbyController = searchNearbyController; - //TODO BackButtonController should be added to here - - this.joinEventController = joinEventController; - - eventLoader.setVisible(false); - - this.searchNearbyViewModel.addPropertyChangeListener(this); - - JLabel title = new JLabel("Search nearby event"); - title.setAlignmentX(Component.CENTER_ALIGNMENT); - - JPanel buttons = new JPanel(); - back = new JButton("Back"); - search = new JButton("Search"); - - buttons.add(back); - buttons.add(search); - - back.addActionListener( - new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (e.getSource().equals(back)) { - // TODO: Back use case is required - } - } - } - ); - - search.addActionListener( - new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - try { - String[] coordinates = CoordinatesFromIP.getCoordinates(); - CommonLocationFactory locationFactory = new CommonLocationFactory(); - Location location = locationFactory.makeLocation("("+coordinates+")"); - searchNearbyController.execute(location); - } catch (IOException ex) { - throw new RuntimeException("Failed to obtain user's coordinate."); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - - } - } - ); - - this.add(title); - this.add(buttons); - - } - @Override - public void actionPerformed(ActionEvent e) { - ; // NO need to do anything since we have specific ActionListeners for each button. - } - - @Override - public void propertyChange(PropertyChangeEvent evt) { - if (evt.getPropertyName().equals("state")) { - SearchNearbyState state = (SearchNearbyState) evt.getNewValue(); - if (state.getNoEventsFound()) { - JOptionPane.showMessageDialog(this, "No events are found within 2KM from you."); - - } else { - ArrayList eventsFound = state.getEventsSearched(); - /** - * Swing tutorial on Oracle - * JList: Writing a Custom Cell Renderer - * Display as a single string first - * Make View has EventSearched JPanel that displays JList of events, and JButton ViewDetails, set invisible - * populateJlist(Arraylist of Event) - * have a class A that extends JPanel that has .populateJlist() - * have an instance of A (itself a JPanel), when it's called to popualteJlist, it becomes a JList - * with ViewDetails button and Jlist loaded with events. Set it visible. - */ - eventLoader.load(eventsFound); - eventLoader.setVisible(true); - } - } else if (evt.getPropertyName().equals("View event details")) { //When an event is selected to view the details - // TODO: add event detail controller - // eventDetailController.execute(evt.getNewValue()); // Execute EventDetails use case - - } - - } - - public static void main(String[] args) { - SearchNearbyViewModel viewModel = new SearchNearbyViewModel(); - ViewManagerModel viewManagerModel = new ViewManagerModel(); - InMemoryEventsDataAccessObject inMemoryEventsDataAccessObject = new InMemoryEventsDataAccessObject(); - SearchNearbyOutputBoundary presenter = new SearchNearbyPresenter(viewModel, viewManagerModel); - SearchNearbyInteractor interactor = new SearchNearbyInteractor(inMemoryEventsDataAccessObject, presenter); - SearchNearbyController searchNearbyController = new SearchNearbyController(interactor); - - // JoinEventOutputBoundary presenter2 = new JoinEventPresenter(); - - // SearchNearbyView view = new SearchNearbyView(viewModel, searchNearbyController, joinEventController); - } -} +//package view; +// +//import data_access.InMemoryEventsDataAccessObject; +//import entity.Events.Event; +//import entity.Location.CommonLocationFactory; +//import data_access.CoordinatesFromIP; +//import entity.Location.Location; +//import interface_adapter.ViewManagerModel; +//import interface_adapter.join_event.JoinEventController; +//import interface_adapter.join_event.JoinEventPresenter; +//import interface_adapter.search_nearby.SearchNearbyController; +//import interface_adapter.search_nearby.SearchNearbyPresenter; +//import interface_adapter.search_nearby.SearchNearbyState; +//import interface_adapter.search_nearby.SearchNearbyViewModel; +//import use_case.join_event.JoinEventOutputBoundary; +//import use_case.search_nearby.SearchNearbyInteractor; +//import use_case.search_nearby.SearchNearbyOutputBoundary; +// +//import javax.swing.*; +//import java.awt.*; +//import java.awt.event.ActionEvent; +//import java.awt.event.ActionListener; +//import java.beans.PropertyChangeEvent; +//import java.beans.PropertyChangeListener; +//import java.io.IOException; +//import java.util.ArrayList; +// +//public class SearchNearbyBasicView extends JFrame implements ActionListener, PropertyChangeListener { +// +// public final String viewName = "search nearby"; +// private final SearchNearbyViewModel searchNearbyViewModel; +// +// private final SearchNearbyController searchNearbyController; +// +// // private final GoBackController TODO: GoBack should be implemented as a use case +// private final JoinEventController joinEventController; +// private EventLoader eventLoader = new EventLoader(this); // This JPane will give the View event details and a list of events searched +// +// final JButton back; // This button will +// +// final JButton search; // This button will trigger the program to search again. +// public SearchNearbyBasicView(SearchNearbyViewModel searchNearbyViewModel, SearchNearbyController searchNearbyController, +// JoinEventController joinEventController) { +// this.searchNearbyViewModel = searchNearbyViewModel; +// this.searchNearbyController = searchNearbyController; +// //TODO BackButtonController should be added to here +// +// this.joinEventController = joinEventController; +// +// eventLoader.setVisible(false); +// +// this.searchNearbyViewModel.addPropertyChangeListener(this); +// +// JLabel title = new JLabel("Search nearby event"); +// title.setAlignmentX(Component.CENTER_ALIGNMENT); +// +// JPanel buttons = new JPanel(); +// back = new JButton("Back"); +// search = new JButton("Search"); +// +// buttons.add(back); +// buttons.add(search); +// +// back.addActionListener( +// new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// if (e.getSource().equals(back)) { +// // TODO: Back use case is required +// } +// } +// } +// ); +// +// search.addActionListener( +// new ActionListener() { +// @Override +// public void actionPerformed(ActionEvent e) { +// try { +// String[] coordinates = CoordinatesFromIP.getCoordinates(); +// CommonLocationFactory locationFactory = new CommonLocationFactory(); +// Location location = locationFactory.makeLocation("("+coordinates+")"); +// searchNearbyController.execute(location); +// } catch (IOException ex) { +// throw new RuntimeException("Failed to obtain user's coordinate."); +// } catch (Exception ex) { +// throw new RuntimeException(ex); +// } +// +// } +// } +// ); +// +// this.add(title); +// this.add(buttons); +// +// } +// @Override +// public void actionPerformed(ActionEvent e) { +// ; // NO need to do anything since we have specific ActionListeners for each button. +// } +// +// @Override +// public void propertyChange(PropertyChangeEvent evt) { +// if (evt.getPropertyName().equals("state")) { +// SearchNearbyState state = (SearchNearbyState) evt.getNewValue(); +// if (state.getNoEventsFound()) { +// JOptionPane.showMessageDialog(this, "No events are found within 2KM from you."); +// +// } else { +// ArrayList eventsFound = state.getEventsSearched(); +// /** +// * Swing tutorial on Oracle +// * JList: Writing a Custom Cell Renderer +// * Display as a single string first +// * Make View has EventSearched JPanel that displays JList of events, and JButton ViewDetails, set invisible +// * populateJlist(Arraylist of Event) +// * have a class A that extends JPanel that has .populateJlist() +// * have an instance of A (itself a JPanel), when it's called to popualteJlist, it becomes a JList +// * with ViewDetails button and Jlist loaded with events. Set it visible. +// */ +// eventLoader.load(eventsFound); +// eventLoader.setVisible(true); +// } +// } else if (evt.getPropertyName().equals("View event details")) { //When an event is selected to view the details +// // TODO: add event detail controller +// // eventDetailController.execute(evt.getNewValue()); // Execute EventDetails use case +// +// } +// +// } +// +// public static void main(String[] args) { +// SearchNearbyViewModel viewModel = new SearchNearbyViewModel(); +// ViewManagerModel viewManagerModel = new ViewManagerModel(); +// InMemoryEventsDataAccessObject inMemoryEventsDataAccessObject = new InMemoryEventsDataAccessObject(); +// SearchNearbyOutputBoundary presenter = new SearchNearbyPresenter(viewModel, viewManagerModel); +// SearchNearbyInteractor interactor = new SearchNearbyInteractor(inMemoryEventsDataAccessObject, presenter); +// SearchNearbyController searchNearbyController = new SearchNearbyController(interactor); +// +// // JoinEventOutputBoundary presenter2 = new JoinEventPresenter(); +// +// // SearchNearbyView view = new SearchNearbyView(viewModel, searchNearbyController, joinEventController); +// } +//} diff --git a/test/view/HomeViewTest.java b/test/view/HomeViewTest.java new file mode 100644 index 0000000..1aa0956 --- /dev/null +++ b/test/view/HomeViewTest.java @@ -0,0 +1,2 @@ +package view;public class HomeViewTest { +} diff --git a/test/view/LoginViewTest.java b/test/view/LoginViewTest.java new file mode 100644 index 0000000..ab4c326 --- /dev/null +++ b/test/view/LoginViewTest.java @@ -0,0 +1,2 @@ +package view;public class LoginViewTest { +} diff --git a/test/view/MyEventsViewTest.java b/test/view/MyEventsViewTest.java new file mode 100644 index 0000000..d8ee766 --- /dev/null +++ b/test/view/MyEventsViewTest.java @@ -0,0 +1,2 @@ +package view;public class MyEventsViewTest { +} diff --git a/test/view/SignupViewTest.java b/test/view/SignupViewTest.java new file mode 100644 index 0000000..ecea7dd --- /dev/null +++ b/test/view/SignupViewTest.java @@ -0,0 +1,5 @@ +package view; +import + +public class SignupViewTest { +}