From 26bd482eac2c1fe522ffcd623128b81c4cff079c Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Mon, 5 Nov 2018 18:59:25 +0100 Subject: [PATCH] Remove dependency to JavaFX from the server code The sites had a direct depedency to JavaFX, which prevents the server to be started with openjdk. The affected code is no located in ConfigUI, so that the no direct dependency exists. --- src/main/java/ctbrec/Settings.java | 2 + src/main/java/ctbrec/sites/ConfigUI.java | 7 +++ src/main/java/ctbrec/sites/Site.java | 3 +- src/main/java/ctbrec/sites/cam4/Cam4.java | 40 ++------------ .../java/ctbrec/sites/cam4/Cam4ConfigUI.java | 48 +++++++++++++++++ .../java/ctbrec/sites/camsoda/Camsoda.java | 50 +++-------------- .../ctbrec/sites/camsoda/CamsodaConfigUI.java | 54 +++++++++++++++++++ .../ctbrec/sites/chaturbate/Chaturbate.java | 40 ++------------ .../sites/chaturbate/ChaturbateConfigUi.java | 48 +++++++++++++++++ .../java/ctbrec/sites/mfc/MyFreeCams.java | 40 ++------------ .../ctbrec/sites/mfc/MyFreeCamsConfigUI.java | 54 +++++++++++++++++++ src/main/java/ctbrec/ui/SettingsTab.java | 5 +- 12 files changed, 234 insertions(+), 157 deletions(-) create mode 100644 src/main/java/ctbrec/sites/ConfigUI.java create mode 100644 src/main/java/ctbrec/sites/cam4/Cam4ConfigUI.java create mode 100644 src/main/java/ctbrec/sites/camsoda/CamsodaConfigUI.java create mode 100644 src/main/java/ctbrec/sites/chaturbate/ChaturbateConfigUi.java create mode 100644 src/main/java/ctbrec/sites/mfc/MyFreeCamsConfigUI.java diff --git a/src/main/java/ctbrec/Settings.java b/src/main/java/ctbrec/Settings.java index a8809ddf..96e878bc 100644 --- a/src/main/java/ctbrec/Settings.java +++ b/src/main/java/ctbrec/Settings.java @@ -22,6 +22,8 @@ public class Settings { public String mediaPlayer = "/usr/bin/mpv"; public String username = ""; // chaturbate username TODO maybe rename this onetime public String password = ""; // chaturbate password TODO maybe rename this onetime + public String bongaUsername = ""; + public String bongaPassword = ""; public String mfcUsername = ""; public String mfcPassword = ""; public String camsodaUsername = ""; diff --git a/src/main/java/ctbrec/sites/ConfigUI.java b/src/main/java/ctbrec/sites/ConfigUI.java new file mode 100644 index 00000000..33d97ec8 --- /dev/null +++ b/src/main/java/ctbrec/sites/ConfigUI.java @@ -0,0 +1,7 @@ +package ctbrec.sites; + +import javafx.scene.Parent; + +public interface ConfigUI { + public Parent createConfigPanel(); +} diff --git a/src/main/java/ctbrec/sites/Site.java b/src/main/java/ctbrec/sites/Site.java index 411be906..29a0e226 100644 --- a/src/main/java/ctbrec/sites/Site.java +++ b/src/main/java/ctbrec/sites/Site.java @@ -6,7 +6,6 @@ import ctbrec.Model; import ctbrec.io.HttpClient; import ctbrec.recorder.Recorder; import ctbrec.ui.TabProvider; -import javafx.scene.Node; public interface Site { public String getName(); @@ -24,7 +23,7 @@ public interface Site { public boolean supportsTips(); public boolean supportsFollow(); public boolean isSiteForModel(Model m); - public Node getConfigurationGui(); + public ConfigUI getConfigurationGui(); public boolean credentialsAvailable(); public void setEnabled(boolean enabled); public boolean isEnabled(); diff --git a/src/main/java/ctbrec/sites/cam4/Cam4.java b/src/main/java/ctbrec/sites/cam4/Cam4.java index 5d791883..7533f96e 100644 --- a/src/main/java/ctbrec/sites/cam4/Cam4.java +++ b/src/main/java/ctbrec/sites/cam4/Cam4.java @@ -9,17 +9,8 @@ import ctbrec.Model; import ctbrec.io.HttpClient; import ctbrec.recorder.Recorder; import ctbrec.sites.AbstractSite; -import ctbrec.ui.DesktopIntergation; -import ctbrec.ui.SettingsTab; +import ctbrec.sites.ConfigUI; import ctbrec.ui.TabProvider; -import javafx.geometry.Insets; -import javafx.scene.Node; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.control.PasswordField; -import javafx.scene.control.TextField; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Priority; public class Cam4 extends AbstractSite { @@ -124,32 +115,7 @@ public class Cam4 extends AbstractSite { } @Override - public Node getConfigurationGui() { - GridPane layout = SettingsTab.createGridLayout(); - layout.add(new Label("Cam4 User"), 0, 0); - TextField username = new TextField(Config.getInstance().getSettings().cam4Username); - username.focusedProperty().addListener((e) -> Config.getInstance().getSettings().cam4Username = username.getText()); - GridPane.setFillWidth(username, true); - GridPane.setHgrow(username, Priority.ALWAYS); - GridPane.setColumnSpan(username, 2); - layout.add(username, 1, 0); - - layout.add(new Label("Cam4 Password"), 0, 1); - PasswordField password = new PasswordField(); - password.setText(Config.getInstance().getSettings().cam4Password); - password.focusedProperty().addListener((e) -> Config.getInstance().getSettings().cam4Password = password.getText()); - GridPane.setFillWidth(password, true); - GridPane.setHgrow(password, Priority.ALWAYS); - GridPane.setColumnSpan(password, 2); - layout.add(password, 1, 1); - - Button createAccount = new Button("Create new Account"); - createAccount.setOnAction((e) -> DesktopIntergation.open(Cam4.AFFILIATE_LINK)); - layout.add(createAccount, 1, 2); - GridPane.setColumnSpan(createAccount, 2); - GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - return layout; + public ConfigUI getConfigurationGui() { + return new Cam4ConfigUI(); } } diff --git a/src/main/java/ctbrec/sites/cam4/Cam4ConfigUI.java b/src/main/java/ctbrec/sites/cam4/Cam4ConfigUI.java new file mode 100644 index 00000000..4c1bef12 --- /dev/null +++ b/src/main/java/ctbrec/sites/cam4/Cam4ConfigUI.java @@ -0,0 +1,48 @@ +package ctbrec.sites.cam4; + +import ctbrec.Config; +import ctbrec.sites.ConfigUI; +import ctbrec.ui.DesktopIntergation; +import ctbrec.ui.SettingsTab; +import javafx.geometry.Insets; +import javafx.scene.Parent; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.Priority; + +public class Cam4ConfigUI implements ConfigUI { + + @Override + public Parent createConfigPanel() { + GridPane layout = SettingsTab.createGridLayout(); + layout.add(new Label("Cam4 User"), 0, 0); + TextField username = new TextField(Config.getInstance().getSettings().cam4Username); + username.focusedProperty().addListener((e) -> Config.getInstance().getSettings().cam4Username = username.getText()); + GridPane.setFillWidth(username, true); + GridPane.setHgrow(username, Priority.ALWAYS); + GridPane.setColumnSpan(username, 2); + layout.add(username, 1, 0); + + layout.add(new Label("Cam4 Password"), 0, 1); + PasswordField password = new PasswordField(); + password.setText(Config.getInstance().getSettings().cam4Password); + password.focusedProperty().addListener((e) -> Config.getInstance().getSettings().cam4Password = password.getText()); + GridPane.setFillWidth(password, true); + GridPane.setHgrow(password, Priority.ALWAYS); + GridPane.setColumnSpan(password, 2); + layout.add(password, 1, 1); + + Button createAccount = new Button("Create new Account"); + createAccount.setOnAction((e) -> DesktopIntergation.open(Cam4.AFFILIATE_LINK)); + layout.add(createAccount, 1, 2); + GridPane.setColumnSpan(createAccount, 2); + GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + return layout; + } + +} diff --git a/src/main/java/ctbrec/sites/camsoda/Camsoda.java b/src/main/java/ctbrec/sites/camsoda/Camsoda.java index 3cf7f937..c405b336 100644 --- a/src/main/java/ctbrec/sites/camsoda/Camsoda.java +++ b/src/main/java/ctbrec/sites/camsoda/Camsoda.java @@ -9,17 +9,8 @@ import ctbrec.Model; import ctbrec.io.HttpClient; import ctbrec.recorder.Recorder; import ctbrec.sites.AbstractSite; -import ctbrec.ui.DesktopIntergation; -import ctbrec.ui.SettingsTab; +import ctbrec.sites.ConfigUI; import ctbrec.ui.TabProvider; -import javafx.geometry.Insets; -import javafx.scene.Node; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.control.PasswordField; -import javafx.scene.control.TextField; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Priority; import okhttp3.Request; import okhttp3.Response; @@ -44,6 +35,11 @@ public class Camsoda extends AbstractSite { return BASE_URI; } + @Override + public String getBuyTokensLink() { + return BASE_URI; + } + @Override public void setRecorder(Recorder recorder) { this.recorder = recorder; @@ -87,11 +83,6 @@ public class Camsoda extends AbstractSite { throw new RuntimeException("Tokens not found in response"); } - @Override - public String getBuyTokensLink() { - return getBaseUrl(); - } - @Override public void login() throws IOException { if(credentialsAvailable()) { @@ -140,32 +131,7 @@ public class Camsoda extends AbstractSite { } @Override - public Node getConfigurationGui() { - GridPane layout = SettingsTab.createGridLayout(); - layout.add(new Label("CamSoda User"), 0, 0); - TextField username = new TextField(Config.getInstance().getSettings().camsodaUsername); - username.focusedProperty().addListener((e) -> Config.getInstance().getSettings().camsodaUsername = username.getText()); - GridPane.setFillWidth(username, true); - GridPane.setHgrow(username, Priority.ALWAYS); - GridPane.setColumnSpan(username, 2); - layout.add(username, 1, 0); - - layout.add(new Label("CamSoda Password"), 0, 1); - PasswordField password = new PasswordField(); - password.setText(Config.getInstance().getSettings().camsodaPassword); - password.focusedProperty().addListener((e) -> Config.getInstance().getSettings().camsodaPassword = password.getText()); - GridPane.setFillWidth(password, true); - GridPane.setHgrow(password, Priority.ALWAYS); - GridPane.setColumnSpan(password, 2); - layout.add(password, 1, 1); - - Button createAccount = new Button("Create new Account"); - createAccount.setOnAction((e) -> DesktopIntergation.open(getAffiliateLink())); - layout.add(createAccount, 1, 2); - GridPane.setColumnSpan(createAccount, 2); - GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - return layout; + public ConfigUI getConfigurationGui() { + return new CamsodaConfigUI(this); } } diff --git a/src/main/java/ctbrec/sites/camsoda/CamsodaConfigUI.java b/src/main/java/ctbrec/sites/camsoda/CamsodaConfigUI.java new file mode 100644 index 00000000..056ecd86 --- /dev/null +++ b/src/main/java/ctbrec/sites/camsoda/CamsodaConfigUI.java @@ -0,0 +1,54 @@ +package ctbrec.sites.camsoda; + +import ctbrec.Config; +import ctbrec.sites.ConfigUI; +import ctbrec.ui.DesktopIntergation; +import ctbrec.ui.SettingsTab; +import javafx.geometry.Insets; +import javafx.scene.Parent; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.Priority; + +public class CamsodaConfigUI implements ConfigUI { + + private Camsoda camsoda; + + public CamsodaConfigUI(Camsoda camsoda) { + this.camsoda = camsoda; + } + + @Override + public Parent createConfigPanel() { + GridPane layout = SettingsTab.createGridLayout(); + layout.add(new Label("CamSoda User"), 0, 0); + TextField username = new TextField(Config.getInstance().getSettings().camsodaUsername); + username.focusedProperty().addListener((e) -> Config.getInstance().getSettings().camsodaUsername = username.getText()); + GridPane.setFillWidth(username, true); + GridPane.setHgrow(username, Priority.ALWAYS); + GridPane.setColumnSpan(username, 2); + layout.add(username, 1, 0); + + layout.add(new Label("CamSoda Password"), 0, 1); + PasswordField password = new PasswordField(); + password.setText(Config.getInstance().getSettings().camsodaPassword); + password.focusedProperty().addListener((e) -> Config.getInstance().getSettings().camsodaPassword = password.getText()); + GridPane.setFillWidth(password, true); + GridPane.setHgrow(password, Priority.ALWAYS); + GridPane.setColumnSpan(password, 2); + layout.add(password, 1, 1); + + Button createAccount = new Button("Create new Account"); + createAccount.setOnAction((e) -> DesktopIntergation.open(camsoda.getAffiliateLink())); + layout.add(createAccount, 1, 2); + GridPane.setColumnSpan(createAccount, 2); + GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + return layout; + } + +} diff --git a/src/main/java/ctbrec/sites/chaturbate/Chaturbate.java b/src/main/java/ctbrec/sites/chaturbate/Chaturbate.java index 984e8c69..d06b37b4 100644 --- a/src/main/java/ctbrec/sites/chaturbate/Chaturbate.java +++ b/src/main/java/ctbrec/sites/chaturbate/Chaturbate.java @@ -29,18 +29,9 @@ import ctbrec.Model; import ctbrec.io.HttpClient; import ctbrec.recorder.Recorder; import ctbrec.sites.AbstractSite; -import ctbrec.ui.DesktopIntergation; +import ctbrec.sites.ConfigUI; import ctbrec.ui.HtmlParser; -import ctbrec.ui.SettingsTab; import ctbrec.ui.TabProvider; -import javafx.geometry.Insets; -import javafx.scene.Node; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.control.PasswordField; -import javafx.scene.control.TextField; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Priority; import okhttp3.FormBody; import okhttp3.Request; import okhttp3.RequestBody; @@ -316,33 +307,8 @@ public class Chaturbate extends AbstractSite { } @Override - public Node getConfigurationGui() { - GridPane layout = SettingsTab.createGridLayout(); - layout.add(new Label("Chaturbate User"), 0, 0); - TextField username = new TextField(Config.getInstance().getSettings().username); - username.focusedProperty().addListener((e) -> Config.getInstance().getSettings().username = username.getText()); - GridPane.setFillWidth(username, true); - GridPane.setHgrow(username, Priority.ALWAYS); - GridPane.setColumnSpan(username, 2); - layout.add(username, 1, 0); - - layout.add(new Label("Chaturbate Password"), 0, 1); - PasswordField password = new PasswordField(); - password.setText(Config.getInstance().getSettings().password); - password.focusedProperty().addListener((e) -> Config.getInstance().getSettings().password = password.getText()); - GridPane.setFillWidth(password, true); - GridPane.setHgrow(password, Priority.ALWAYS); - GridPane.setColumnSpan(password, 2); - layout.add(password, 1, 1); - - Button createAccount = new Button("Create new Account"); - createAccount.setOnAction((e) -> DesktopIntergation.open(Chaturbate.REGISTRATION_LINK)); - layout.add(createAccount, 1, 2); - GridPane.setColumnSpan(createAccount, 2); - GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - return layout; + public ConfigUI getConfigurationGui() { + return new ChaturbateConfigUi(); } @Override diff --git a/src/main/java/ctbrec/sites/chaturbate/ChaturbateConfigUi.java b/src/main/java/ctbrec/sites/chaturbate/ChaturbateConfigUi.java new file mode 100644 index 00000000..b215b879 --- /dev/null +++ b/src/main/java/ctbrec/sites/chaturbate/ChaturbateConfigUi.java @@ -0,0 +1,48 @@ +package ctbrec.sites.chaturbate; + +import ctbrec.Config; +import ctbrec.sites.ConfigUI; +import ctbrec.ui.DesktopIntergation; +import ctbrec.ui.SettingsTab; +import javafx.geometry.Insets; +import javafx.scene.Parent; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.Priority; + +public class ChaturbateConfigUi implements ConfigUI { + @Override + public Parent createConfigPanel() { + GridPane layout = SettingsTab.createGridLayout(); + + layout.add(new Label("Chaturbate User"), 0, 0); + TextField username = new TextField(Config.getInstance().getSettings().username); + username.focusedProperty().addListener((e) -> Config.getInstance().getSettings().username = username.getText()); + GridPane.setFillWidth(username, true); + GridPane.setHgrow(username, Priority.ALWAYS); + GridPane.setColumnSpan(username, 2); + layout.add(username, 1, 0); + + layout.add(new Label("Chaturbate Password"), 0, 1); + PasswordField password = new PasswordField(); + password.setText(Config.getInstance().getSettings().password); + password.focusedProperty().addListener((e) -> Config.getInstance().getSettings().password = password.getText()); + GridPane.setFillWidth(password, true); + GridPane.setHgrow(password, Priority.ALWAYS); + GridPane.setColumnSpan(password, 2); + layout.add(password, 1, 1); + + Button createAccount = new Button("Create new Account"); + createAccount.setOnAction((e) -> DesktopIntergation.open(Chaturbate.REGISTRATION_LINK)); + layout.add(createAccount, 1, 2); + GridPane.setColumnSpan(createAccount, 2); + GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + + return layout; + } +} diff --git a/src/main/java/ctbrec/sites/mfc/MyFreeCams.java b/src/main/java/ctbrec/sites/mfc/MyFreeCams.java index c06c1218..1d857810 100644 --- a/src/main/java/ctbrec/sites/mfc/MyFreeCams.java +++ b/src/main/java/ctbrec/sites/mfc/MyFreeCams.java @@ -8,18 +8,9 @@ import ctbrec.Config; import ctbrec.Model; import ctbrec.recorder.Recorder; import ctbrec.sites.AbstractSite; -import ctbrec.ui.DesktopIntergation; +import ctbrec.sites.ConfigUI; import ctbrec.ui.HtmlParser; -import ctbrec.ui.SettingsTab; import ctbrec.ui.TabProvider; -import javafx.geometry.Insets; -import javafx.scene.Node; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.control.PasswordField; -import javafx.scene.control.TextField; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Priority; import okhttp3.Request; import okhttp3.Response; @@ -129,33 +120,8 @@ public class MyFreeCams extends AbstractSite { } @Override - public Node getConfigurationGui() { - GridPane layout = SettingsTab.createGridLayout(); - layout.add(new Label("MyFreeCams User"), 0, 0); - TextField username = new TextField(Config.getInstance().getSettings().mfcUsername); - username.focusedProperty().addListener((e) -> Config.getInstance().getSettings().mfcUsername = username.getText()); - GridPane.setFillWidth(username, true); - GridPane.setHgrow(username, Priority.ALWAYS); - GridPane.setColumnSpan(username, 2); - layout.add(username, 1, 0); - - layout.add(new Label("MyFreeCams Password"), 0, 1); - PasswordField password = new PasswordField(); - password.setText(Config.getInstance().getSettings().mfcPassword); - password.focusedProperty().addListener((e) -> Config.getInstance().getSettings().mfcPassword = password.getText()); - GridPane.setFillWidth(password, true); - GridPane.setHgrow(password, Priority.ALWAYS); - GridPane.setColumnSpan(password, 2); - layout.add(password, 1, 1); - - Button createAccount = new Button("Create new Account"); - createAccount.setOnAction((e) -> DesktopIntergation.open(getAffiliateLink())); - layout.add(createAccount, 1, 2); - GridPane.setColumnSpan(createAccount, 2); - GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); - return layout; + public ConfigUI getConfigurationGui() { + return new MyFreeCamsConfigUI(this); } @Override diff --git a/src/main/java/ctbrec/sites/mfc/MyFreeCamsConfigUI.java b/src/main/java/ctbrec/sites/mfc/MyFreeCamsConfigUI.java new file mode 100644 index 00000000..1190f061 --- /dev/null +++ b/src/main/java/ctbrec/sites/mfc/MyFreeCamsConfigUI.java @@ -0,0 +1,54 @@ +package ctbrec.sites.mfc; + +import ctbrec.Config; +import ctbrec.sites.ConfigUI; +import ctbrec.ui.DesktopIntergation; +import ctbrec.ui.SettingsTab; +import javafx.geometry.Insets; +import javafx.scene.Parent; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.Priority; + +public class MyFreeCamsConfigUI implements ConfigUI { + + private MyFreeCams myFreeCams; + + public MyFreeCamsConfigUI(MyFreeCams myFreeCams) { + this.myFreeCams = myFreeCams; + } + + @Override + public Parent createConfigPanel() { + GridPane layout = SettingsTab.createGridLayout(); + layout.add(new Label("MyFreeCams User"), 0, 0); + TextField username = new TextField(Config.getInstance().getSettings().mfcUsername); + username.focusedProperty().addListener((e) -> Config.getInstance().getSettings().mfcUsername = username.getText()); + GridPane.setFillWidth(username, true); + GridPane.setHgrow(username, Priority.ALWAYS); + GridPane.setColumnSpan(username, 2); + layout.add(username, 1, 0); + + layout.add(new Label("MyFreeCams Password"), 0, 1); + PasswordField password = new PasswordField(); + password.setText(Config.getInstance().getSettings().mfcPassword); + password.focusedProperty().addListener((e) -> Config.getInstance().getSettings().mfcPassword = password.getText()); + GridPane.setFillWidth(password, true); + GridPane.setHgrow(password, Priority.ALWAYS); + GridPane.setColumnSpan(password, 2); + layout.add(password, 1, 1); + + Button createAccount = new Button("Create new Account"); + createAccount.setOnAction((e) -> DesktopIntergation.open(myFreeCams.getAffiliateLink())); + layout.add(createAccount, 1, 2); + GridPane.setColumnSpan(createAccount, 2); + GridPane.setMargin(username, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + GridPane.setMargin(password, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + GridPane.setMargin(createAccount, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); + return layout; + } + +} diff --git a/src/main/java/ctbrec/ui/SettingsTab.java b/src/main/java/ctbrec/ui/SettingsTab.java index f0066613..6b8dc752 100644 --- a/src/main/java/ctbrec/ui/SettingsTab.java +++ b/src/main/java/ctbrec/ui/SettingsTab.java @@ -14,6 +14,7 @@ import com.sun.javafx.collections.ObservableListWrapper; import ctbrec.Config; import ctbrec.Hmac; import ctbrec.Settings; +import ctbrec.sites.ConfigUI; import ctbrec.sites.Site; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; @@ -119,9 +120,9 @@ public class SettingsTab extends Tab implements TabSelectionListener { rightSide.getChildren().add(credentialsAccordion); for (int i = 0; i < sites.size(); i++) { Site site = sites.get(i); - Node siteConfig = site.getConfigurationGui(); + ConfigUI siteConfig = site.getConfigurationGui(); if(siteConfig != null) { - TitledPane pane = new TitledPane(site.getName(), siteConfig); + TitledPane pane = new TitledPane(site.getName(), siteConfig.createConfigPanel()); credentialsAccordion.getPanes().add(pane); } }