Skip to content

Commit

Permalink
Merge pull request #95 from iMarbles/dev
Browse files Browse the repository at this point in the history
Manage Command part 1
  • Loading branch information
Kratious committed Oct 15, 2018
2 parents 6fbc4ec + 65658a5 commit e652609
Show file tree
Hide file tree
Showing 7 changed files with 115 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
* Represents a selection change in the Event List Panel
*/
public class ContextChangeEvent extends BaseEvent {


private final String contextId;

public ContextChangeEvent(String contextId) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package seedu.address.commons.events.ui;

import seedu.address.commons.core.index.Index;
import seedu.address.commons.events.BaseEvent;

/**
* Indicates a request to jump to the list of persons
*/
public class RecordChangeEvent extends BaseEvent {

public final int targetIndex;

public RecordChangeEvent(Index targetIndex) {
this.targetIndex = targetIndex.getZeroBased();
}

@Override
public String toString() {
return getClass().getSimpleName();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import seedu.address.commons.core.Messages;
import seedu.address.commons.core.index.Index;
import seedu.address.commons.events.ui.ContextChangeEvent;
import seedu.address.commons.events.ui.RecordChangeEvent;
import seedu.address.logic.CommandHistory;
import seedu.address.logic.commands.exceptions.CommandException;
import seedu.address.model.Model;
Expand Down Expand Up @@ -46,7 +47,7 @@ public CommandResult execute(Model model, CommandHistory history) throws Command
model.switchToRecordContext();

// TO_UPDATE
// EventsCenter.getInstance().post(new JumpToListRequestEvent(targetIndex));
EventsCenter.getInstance().post(new RecordChangeEvent(targetIndex));
EventsCenter.getInstance().post(new ContextChangeEvent(model.getContextId()));
return new CommandResult(String.format(MESSAGE_MANAGE_EVENT_SUCCESS, targetIndex.getOneBased()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,14 @@ public Command parseCommand(String userInput, String contextId) throws ParseExce

// Execute commands for records
if (contextId.equals(Context.RECORD_CONTEXT_ID)) {
// TO_UPDATE: Change find and list to the one specific for volunteers
switch (commandWord) {
case FindCommand.COMMAND_WORD:
return new FindCommandParser().parse(arguments);

case ListCommand.COMMAND_WORD:
return new ListCommand();

default:
throw new ParseException(MESSAGE_UNKNOWN_COMMAND);
}
Expand Down
18 changes: 13 additions & 5 deletions src/main/java/seedu/address/ui/MainWindow.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public class MainWindow extends UiPart<Stage> {
private BrowserPanel browserPanel;
private PersonListPanel personListPanel;
private EventListPanel eventListPanel;
private RecordEventPanel recordEventPanel;
private Config config;
private UserPrefs prefs;
private HelpWindow helpWindow;
Expand Down Expand Up @@ -93,6 +94,7 @@ private void setAccelerators() {

/**
* Sets the accelerator of a MenuItem.
*
* @param keyCombination the KeyCombination value of the accelerator
*/
private void setAccelerator(MenuItem menuItem, KeyCombination keyCombination) {
Expand Down Expand Up @@ -131,6 +133,8 @@ void fillInnerParts() {
personListPanel = new PersonListPanel(logic.getFilteredPersonList());
eventListPanel = new EventListPanel(logic.getFilteredEventList());

recordEventPanel = new RecordEventPanel();

listPanelPlaceholder.getChildren().add(personListPanel.getRoot());

ResultDisplay resultDisplay = new ResultDisplay();
Expand Down Expand Up @@ -192,17 +196,21 @@ void show() {
* Replaces the ListPanel with the appropriate context.
*/
@FXML
private void handleContextChange(String contextId) {
private void handleContextChange(ContextChangeEvent contextChangeEvent) {
String contextId = contextChangeEvent.getNewContext();
listPanelPlaceholder.getChildren().clear();
browserPlaceholder.getChildren().clear();

if (contextId.equals(EVENT_CONTEXT_ID)) {
listPanelPlaceholder.getChildren().clear();
listPanelPlaceholder.getChildren().add(eventListPanel.getRoot());
browserPlaceholder.getChildren().add(browserPanel.getRoot());
} else if (contextId.equals(VOLUNTEER_CONTEXT_ID)) {
listPanelPlaceholder.getChildren().clear();
listPanelPlaceholder.getChildren().add(personListPanel.getRoot());
browserPlaceholder.getChildren().add(browserPanel.getRoot());
} else if (contextId.equals(RECORD_CONTEXT_ID)) {
// TO_UPDATE: Shows all available volunteers for event
listPanelPlaceholder.getChildren().clear();
listPanelPlaceholder.getChildren().add(personListPanel.getRoot());
browserPlaceholder.getChildren().add(recordEventPanel.getRoot());
}
}

Expand Down Expand Up @@ -230,7 +238,7 @@ void releaseResources() {
@Subscribe
private void handleContextChangeEvent(ContextChangeEvent event) {
logger.info(event.getNewContext());
handleContextChange(event.getNewContext());
handleContextChange(event);
}

@Subscribe
Expand Down
40 changes: 40 additions & 0 deletions src/main/java/seedu/address/ui/RecordEventPanel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package seedu.address.ui;

import java.util.logging.Logger;

import com.google.common.eventbus.Subscribe;

import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.TableView;
import javafx.scene.layout.Region;
import seedu.address.commons.core.LogsCenter;
import seedu.address.commons.events.ui.RecordChangeEvent;

/**
* Panel containing the list of persons.
*/
public class RecordEventPanel extends UiPart<Region> {
private static final String FXML = "RecordEventPanel.fxml";
private final Logger logger = LogsCenter.getLogger(RecordEventPanel.class);

@FXML
private Label eventNameLabel;
@FXML
private Label numOfVolunteersLabel;
@FXML
private TableView volunteerRecordTableView;

public RecordEventPanel() {
super(FXML);
registerAsAnEventHandler(this);
}

@Subscribe
private void handleRecordChangeEvent(RecordChangeEvent event) {
logger.info(LogsCenter.getEventHandlingLogMessage(event));
eventNameLabel.setText("EVENT!");
numOfVolunteersLabel.setText("0");
}

}
31 changes: 31 additions & 0 deletions src/main/resources/view/RecordEventPanel.fxml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>

<VBox xmlns="http://javafx.com/javafx/8.0.121" xmlns:fx="http://javafx.com/fxml/1">
<VBox alignment="CENTER_LEFT">
<Label fx:id="eventNameLabel" text="Event Name">
</Label>
</VBox>
<HBox alignment="CENTER_LEFT">
<Label>Total Number of Volunteers:</Label>
<Label fx:id="numOfVolunteersLabel">0</Label>
</HBox>
<VBox VBox.vgrow="ALWAYS">
<TableView fx:id="volunteerRecordTableView" prefWidth="900" VBox.vgrow="ALWAYS">
<columns>
<TableColumn prefWidth="50" text="#"/>
<TableColumn prefWidth="450" text="Name"/>
<TableColumn prefWidth="300" text="Contact Number"/>
<TableColumn prefWidth="100" text="Hours"/>
</columns>
<columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY"/>
</columnResizePolicy>
</TableView>
</VBox>
</VBox>

0 comments on commit e652609

Please sign in to comment.