From 530ce820d5c3f2331033bc2e0bec446d6ac476ee Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Wed, 3 Oct 2018 13:37:08 +0200 Subject: [PATCH] Add radiobuttons to switch between online/offline models CTB seems to split up the followed tab between online and offline models. This change adds radiobuttons at the bottom of the followed tab to switch between online and offline models. --- src/main/java/ctbrec/ui/FollowedTab.java | 36 +++++++++++++++++++ src/main/java/ctbrec/ui/ThumbOverviewTab.java | 6 ++-- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/main/java/ctbrec/ui/FollowedTab.java b/src/main/java/ctbrec/ui/FollowedTab.java index 9578feb7..40dbe3d6 100644 --- a/src/main/java/ctbrec/ui/FollowedTab.java +++ b/src/main/java/ctbrec/ui/FollowedTab.java @@ -1,20 +1,56 @@ package ctbrec.ui; import javafx.concurrent.WorkerStateEvent; +import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Label; +import javafx.scene.control.RadioButton; +import javafx.scene.control.ToggleGroup; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; +import javafx.scene.layout.HBox; public class FollowedTab extends ThumbOverviewTab { private Label status; + private String onlineUrl; + private String offlineUrl; public FollowedTab(String title, String url) { super(title, url, true); + onlineUrl = url; + offlineUrl = url + "offline/"; + status = new Label("Logging in..."); grid.getChildren().add(status); } + @Override + void createGui() { + super.createGui(); + addOnlineOfflineSelector(); + } + + private void addOnlineOfflineSelector() { + ToggleGroup group = new ToggleGroup(); + RadioButton online = new RadioButton("online"); + online.setToggleGroup(group); + RadioButton offline = new RadioButton("offline"); + offline.setToggleGroup(group); + pagination.getChildren().add(online); + pagination.getChildren().add(offline); + HBox.setMargin(online, new Insets(5,5,5,40)); + HBox.setMargin(offline, new Insets(5,5,5,5)); + online.setSelected(true); + group.selectedToggleProperty().addListener((e) -> { + if(online.isSelected()) { + super.url = onlineUrl; + } else { + super.url = offlineUrl; + } + updateService.restart(); + }); + } + @Override protected void onSuccess() { grid.getChildren().remove(status); diff --git a/src/main/java/ctbrec/ui/ThumbOverviewTab.java b/src/main/java/ctbrec/ui/ThumbOverviewTab.java index 476693d0..e0c35536 100644 --- a/src/main/java/ctbrec/ui/ThumbOverviewTab.java +++ b/src/main/java/ctbrec/ui/ThumbOverviewTab.java @@ -78,6 +78,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { String url; boolean loginRequired; HttpClient client = HttpClient.getInstance(); + HBox pagination; int page = 1; TextField pageInput = new TextField(Integer.toString(page)); Button pagePrev = new Button("◀"); @@ -96,7 +97,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { initializeUpdateService(); } - private void createGui() { + void createGui() { grid.setPadding(new Insets(5)); grid.setHgap(5); grid.setVgap(5); @@ -108,6 +109,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { gridLock.lock(); try { filter(); + moveActiveRecordingsToFront(); } finally { gridLock.unlock(); } @@ -124,7 +126,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { scrollPane.setFitToWidth(true); BorderPane.setMargin(scrollPane, new Insets(5)); - HBox pagination = new HBox(5); + pagination = new HBox(5); pagination.getChildren().add(pagePrev); pagination.getChildren().add(pageNext); pagination.getChildren().add(pageInput);