Skip to content

Commit

Permalink
Merge pull request #337 from kerwin97/master
Browse files Browse the repository at this point in the history
reminders Window
  • Loading branch information
kerwin97 committed Nov 9, 2019
2 parents f8b34c9 + a8214bb commit 5f1b4b2
Show file tree
Hide file tree
Showing 6 changed files with 184 additions and 9 deletions.
Expand Up @@ -53,6 +53,7 @@ public CommandResult execute(Model model) throws CommandException {
if (accountStorage.getAccountsList().get().sameCredentials(account.getUsername(), account.getPassword())) {
model.isLoggedIn();
UiManager.startStudentProfile();
UiManager.startReminderWindow();
return new CommandResult(String.format(MESSAGE_SUCCESS, account));
} else {
throw new CommandException("Please login again.");
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/seedu/address/model/reminder/Reminder.java
Expand Up @@ -80,4 +80,16 @@ public String toString() {
.append(getTime());
return builder.toString();
}

/**
* Creates toString method to print Reminders on the RemindersWindow.
*/
public String toWindowString() {
final StringBuilder builder = new StringBuilder();
builder.append("Description: ")
.append(getDescription())
.append("Time: ")
.append(getTime());
return builder.toString();
}
}
4 changes: 2 additions & 2 deletions src/main/java/seedu/address/ui/MainWindow.java
Expand Up @@ -82,8 +82,8 @@ public MainWindow(Stage primaryStage, Logic logic) {
setAccelerators();

helpWindow = new HelpWindow();
this.isUnknown = false;
reminderWindow = new ReminderWindow();
this.unknown = false;
reminderWindow = new ReminderWindow(logic);
}

public Stage getPrimaryStage() {
Expand Down
125 changes: 119 additions & 6 deletions src/main/java/seedu/address/ui/ReminderWindow.java
Expand Up @@ -3,12 +3,31 @@
import java.util.logging.Logger;

import javafx.fxml.FXML;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.paint.CycleMethod;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.Stop;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import seedu.address.commons.core.LogsCenter;
import seedu.address.logic.Logic;
import seedu.address.model.reminder.Reminder;

/**
* Controller for a help page
Expand All @@ -27,21 +46,63 @@ public class ReminderWindow extends UiPart<Stage> {
@FXML
private Label reminder;

@FXML
private VBox vbox;

@FXML
private BorderPane border;

private Logic logic;

private ListView<Reminder> reminderListView;

/**
* Creates a new HelpWindow.
* Creates a new ReminderWindow.
*
* @param root Stage to use as the root of the HelpWindow.
*/
public ReminderWindow(Stage root) {
public ReminderWindow(Stage root, Logic logic) {
super(FXML, root);
reminder.setText(HELP_MESSAGE);
ListView<Reminder> reminderListView = new ListView<>();
HBox hbox = addHBox();
border.setTop(hbox);
border.setCenter(reminderListView);
reminderListView.setItems(logic.getFilteredReminderList());
reminderListView.setPrefWidth(700);
reminderListView.setCellFactory(listView -> new ReminderListViewCell());
border.isResizable();
border.setMargin(reminderListView, new Insets(5, 5, 5, 5));
}
//addStackPane(hbox);
// Add stack to HBox in top region
//border.setCenter(new GridPane());
//border.setRight(new FlowPane());
//hbox.getChildren().addAll(reminder);
//reminder.setText(HELP_MESSAGE);

/**
* Creates a new HelpWindow.
* Custom {@code ListCell} that displays the graphics of a {@code Person} using a {@code PersonCard}.
*/
public ReminderWindow() {
this(new Stage());
class ReminderListViewCell extends ListCell<Reminder> {

@Override
protected void updateItem(Reminder reminder, boolean empty) {
super.updateItem(reminder, empty);

if (empty || reminder == null) {
setText(null);
} else {
setText(reminder.toWindowString());

}
}
}

/**
* Creates a new ReminderWindow.
*/
public ReminderWindow(Logic logic) {
this(new Stage(), logic);
}

/**
Expand Down Expand Up @@ -99,4 +160,56 @@ private void copyUrl() {
url.putString(USERGUIDE_URL);
clipboard.setContent(url);
}

/**
* Creates a new HBox for the Title.
*/
public HBox addHBox() {
HBox hbox = new HBox();
hbox.setPadding(new Insets(15, 12, 15, 12));
hbox.setSpacing(10);
hbox.setStyle("-fx-background-color: #3EB9E4;");

Text title = new Text("Reminders");
title.setFont(Font.font("Verdana", FontWeight.BOLD, 20));

Button buttonCurrent = new Button("Current");
buttonCurrent.setPrefSize(100, 20);

Button buttonProjected = new Button("Projected");
buttonProjected.setPrefSize(100, 20);

hbox.getChildren().addAll(title);
hbox.setAlignment(Pos.CENTER);

return hbox;
}

/**
* Creates a new StackPane for the Title.
*/
public void addStackPane(HBox hb) {
StackPane stack = new StackPane();
Rectangle helpIcon = new Rectangle(30.0, 25.0);
helpIcon.setFill(new LinearGradient(0, 0, 0, 1, true, CycleMethod.NO_CYCLE,
new Stop[]{
new Stop(0, Color.web("#4977A3")),
new Stop(0.5, Color.web("#B0C6DA")),
new Stop(1, Color.web("#9CB6CF"))}));
helpIcon.setStroke(Color.web("#D0E6FA"));
helpIcon.setArcHeight(3.5);
helpIcon.setArcWidth(3.5);

Text helpText = new Text("?");
helpText.setFont(Font.font("Verdana", FontWeight.BOLD, 18));
helpText.setFill(Color.WHITE);
helpText.setStroke(Color.web("#7080A0"));

stack.getChildren().addAll(helpIcon, helpText);
stack.setAlignment(Pos.CENTER_RIGHT); // Right-justify nodes in stack
StackPane.setMargin(helpText, new Insets(0, 10, 0, 0)); // Center "?"

hb.getChildren().add(stack); // Add to HBox from Example 1-2
HBox.setHgrow(stack, Priority.ALWAYS); // Give stack any extra space
}
}
14 changes: 14 additions & 0 deletions src/main/java/seedu/address/ui/UiManager.java
Expand Up @@ -59,6 +59,20 @@ public void isAbleToLoginSuccessfully() {
loggedInSuccessful = true;
}

/**
* Starts the reminderWindow the first time opening Tutoraid.
*/
public static void startReminderWindow() {
logger.info("Changing to Student Profile...");

try {
mainWindow.handleReminderBox();
} catch (Throwable e) {
logger.severe(StringUtil.getDetails(e));
showFatalErrorDialogAndShutdown("Fatal error during initializing", e);
}
}

/**
* To change tab to earnings tab.
*/
Expand Down
37 changes: 36 additions & 1 deletion src/main/resources/view/ReminderWindow.fxml
Expand Up @@ -8,13 +8,19 @@
<?import javafx.scene.layout.HBox?>
<?import javafx.stage.Stage?>

<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.text.Text?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.VBox?>
<fx:root resizable="true" title="Reminders" type="javafx.stage.Stage" xmlns="http://javafx.com/javafx/11" xmlns:fx="http://javafx.com/fxml/1">
<icons>
<Image url="@/images/help_icon.png" />
</icons>
<scene>
<Scene>
<HBox alignment="CENTER">
<!-- <HBox alignment="CENTER">
<children>
<Label fx:id="reminder" text="Label">
<HBox.margin>
Expand All @@ -29,6 +35,35 @@
<Insets bottom="10.0" left="5.0" right="10.0" top="5.0" />
</padding>
</HBox>
<GridPane xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
<padding><Insets top="15" right="25" bottom="10" left="25"/></padding>
<Text text="Reminders"
GridPane.columnIndex="0" GridPane.rowIndex="0"
GridPane.columnSpan="2"/>
<Label fx:id="reminder" text="User Name:"
GridPane.columnIndex="0" GridPane.rowIndex="1"/>
<TextField
GridPane.columnIndex="1" GridPane.rowIndex="1"/>
<Label text="Password:"
GridPane.columnIndex="0" GridPane.rowIndex="2"/>
<PasswordField fx:id="passwordField"
GridPane.columnIndex="1" GridPane.rowIndex="2"/>
<HBox spacing="10" alignment="bottom_right"
GridPane.columnIndex="1" GridPane.rowIndex="4">
<Button text="Sign In"
/>
</HBox>
<Text fx:id="actiontarget"
GridPane.columnIndex="1" GridPane.rowIndex="6"/>
</GridPane> -->
<BorderPane xmlns:fx="http://javafx.com/fxml" fx:id="border">

</BorderPane>
</Scene>
</scene>
</fx:root>

0 comments on commit 5f1b4b2

Please sign in to comment.