@@ -0,0 +1,2674 @@
+package seedu.address.ui;%0A%0Aimport java.util.logging.Logger;%0A%0Aimport javafx.application.Platform;%0Aimport javafx.collections.ObservableList;%0Aimport javafx.fxml.FXML;%0Aimport javafx.scene.control.ListCell;%0Aimport javafx.scene.control.ListView;%0Aimport javafx.scene.control.SplitPane;%0Aimport javafx.scene.layout.AnchorPane;%0Aimport javafx.scene.layout.Region;%0Aimport seedu.address.commons.core.LogsCenter;%0Aimport seedu.address.commons.events.ui.TaskPanelSelectionChangedEvent;%0Aimport seedu.address.commons.util.FxViewUtil;%0Aimport seedu.address.model.task.ReadOnlyTask;%0A%0A/**%0A * Panel containing the list of tasks.%0A */%0Apublic class TaskListPanel extends UiPart%3CRegion%3E %7B%0A    private final Logger logger = LogsCenter.getLogger(TaskListPanel.class);%0A    private static final String FXML = %22TaskListPanel.fxml%22;%0A%0A    @FXML%0A    private ListView%3CReadOnlyTask%3E taskListView;%0A%0A    public TaskListPanel(AnchorPane taskListPlaceholder, ObservableList%3CReadOnlyTask%3E taskList) %7B%0A        super(FXML);%0A        setConnections(taskList);%0A        addToPlaceholder(taskListPlaceholder);%0A    %7D%0A%0A    private void setConnections(ObservableList%3CReadOnlyTask%3E taskList) %7B%0A        taskListView.setItems(taskList);%0A        taskListView.setCellFactory(listView -%3E new TaskListViewCell());%0A        setEventHandlerForSelectionChangeEvent();%0A    %7D%0A%0A    private void addToPlaceholder(AnchorPane placeHolderPane) %7B%0A        SplitPane.setResizableWithParent(placeHolderPane, false);%0A        FxViewUtil.applyAnchorBoundaryParameters(getRoot(), 0.0, 0.0, 0.0, 0.0);%0A        placeHolderPane.getChildren().add(getRoot());%0A    %7D%0A%0A    private void setEventHandlerForSelectionChangeEvent() %7B%0A        taskListView.getSelectionModel().selectedItemProperty()%0A                .addListener((observable, oldValue, newValue) -%3E %7B%0A                    if (newValue != null) %7B%0A                        logger.fine(%22Selection in task list panel changed to : '%22 + newValue + %22'%22);%0A                        raise(new TaskPanelSelectionChangedEvent(newValue));%0A                    %7D%0A                %7D);%0A    %7D%0A%0A    public void scrollTo(int index) %7B%0A        Platform.runLater(() -%3E %7B%0A            taskListView.scrollTo(index);%0A            taskListView.getSelectionModel().clearAndSelect(index);%0A        %7D);%0A    %7D%0A%0A    class TaskListViewCell extends ListCell%3CReadOnlyTask%3E %7B%0A%0A        @Override%0A        protected void updateItem(ReadOnlyTask task, boolean empty) %7B%0A            super.updateItem(task, empty);%0A%0A            if (empty %7C%7C task == null) %7B%0A                setGraphic(null);%0A                setText(null);%0A            %7D else %7B%0A                setGraphic(new TaskCard(task, getIndex() + 1).getRoot());%0A            %7D%0A        %7D%0A    %7D%0A%0A%7D%0A

Add TaskListPanel class