package ctbrec.ui.sites.camsoda; import java.util.List; import ctbrec.Config; import ctbrec.sites.camsoda.Camsoda; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; import ctbrec.ui.settings.Sites; import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; 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 extends AbstractConfigUI { private Camsoda camsoda; public CamsodaConfigUI(Camsoda camsoda) { this.camsoda = camsoda; } @Override public Parent createConfigPanel() { var layout = SettingsTab.createGridLayout(); var settings = Config.getInstance().getSettings(); var row = 0; var l = new Label("Active"); layout.add(l, 0, row); var enabled = new CheckBox(); enabled.setSelected(!settings.disabledSites.contains(camsoda.getName())); enabled.setOnAction(e -> { if(enabled.isSelected()) { settings.disabledSites.remove(camsoda.getName()); } else { settings.disabledSites.add(camsoda.getName()); } save(); }); GridPane.setMargin(enabled, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); layout.add(enabled, 1, row++); layout.add(new Label("CamSoda User"), 0, row); var username = new TextField(Config.getInstance().getSettings().camsodaUsername); username.textProperty().addListener((ob, o, n) -> { if(!n.equals(Config.getInstance().getSettings().camsodaUsername)) { Config.getInstance().getSettings().camsodaUsername = username.getText(); camsoda.getHttpClient().logout(); save(); } }); GridPane.setFillWidth(username, true); GridPane.setHgrow(username, Priority.ALWAYS); GridPane.setColumnSpan(username, 2); layout.add(username, 1, row++); layout.add(new Label("CamSoda Password"), 0, row); var password = new PasswordField(); password.setText(Config.getInstance().getSettings().camsodaPassword); password.textProperty().addListener((ob, o, n) -> { if(!n.equals(Config.getInstance().getSettings().camsodaPassword)) { Config.getInstance().getSettings().camsodaPassword = password.getText(); camsoda.getHttpClient().logout(); save(); } }); GridPane.setFillWidth(password, true); GridPane.setHgrow(password, Priority.ALWAYS); GridPane.setColumnSpan(password, 2); layout.add(password, 1, row++); Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); List tabs = TabUtils.getEnabledTabs(Sites.CAMSODA); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); checkboxGrid.setVgap(5); checkboxGrid.setPadding(new Insets(0, 0, 0, 7)); CheckBox female = new CheckBox("Girls"); female.setSelected(tabs.contains("f")); female.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "f", female.isSelected())); checkboxGrid.add(female, 0, 0); CheckBox male = new CheckBox("Guys"); male.setSelected(tabs.contains("m")); male.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "m", male.isSelected())); checkboxGrid.add(male, 1, 0); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("t")); trans.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "t", trans.isSelected())); checkboxGrid.add(trans, 2, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("c")); couples.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "c", couples.isSelected())); checkboxGrid.add(couples, 3, 0); CheckBox isNew = new CheckBox("New"); isNew.setSelected(tabs.contains("isNew")); isNew.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "isNew", isNew.isSelected())); checkboxGrid.add(isNew, 0, 1); CheckBox voyeur = new CheckBox("Voyeur"); voyeur.setSelected(tabs.contains("isVoyeur")); voyeur.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "isVoyeur", voyeur.isSelected())); checkboxGrid.add(voyeur, 1, 1); CheckBox all = new CheckBox("All"); all.setSelected(tabs.contains("all")); all.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "all", all.isSelected())); checkboxGrid.add(all, 2, 1); layout.add(checkboxGrid, 1, row, 4, 2); row += 2; var createAccount = new Button("Create new Account"); createAccount.setOnAction(e -> DesktopIntegration.open(camsoda.getAffiliateLink())); layout.add(createAccount, 1, row++); GridPane.setColumnSpan(createAccount, 2); var deleteCookies = new Button("Delete Cookies"); deleteCookies.setOnAction(e -> camsoda.getHttpClient().clearCookies()); layout.add(deleteCookies, 1, row); GridPane.setColumnSpan(deleteCookies, 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)); GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } }