diff options
author | Simon Rettberg | 2023-02-23 15:44:18 +0100 |
---|---|---|
committer | Simon Rettberg | 2023-02-23 15:44:18 +0100 |
commit | 998df88dac37f5932fa7dd40877c947bf234806a (patch) | |
tree | 509c761e377605d8d4fa9b8c68ea6e88eae13d35 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java | |
parent | [client] Use branded updateserver url for download link (diff) | |
download | tutor-module-998df88dac37f5932fa7dd40877c947bf234806a.tar.gz tutor-module-998df88dac37f5932fa7dd40877c947bf234806a.tar.xz tutor-module-998df88dac37f5932fa7dd40877c947bf234806a.zip |
[client] Add authentication via external browser
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java | 64 |
1 files changed, 48 insertions, 16 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java index 55b525d9..c65e7a53 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LoginWindowLayout.java @@ -56,7 +56,7 @@ public abstract class LoginWindowLayout extends JDialog { protected LOGIN_TYPE loginType = null; // login type panel - protected final JRadioButton[] rdoLoginType = new JRadioButton[3]; + protected final JRadioButton[] rdoLoginType = new JRadioButton[4]; // login form panel protected final JComboBox<Organization> cboOrganization; @@ -68,7 +68,14 @@ public abstract class LoginWindowLayout extends JDialog { protected final JPanel pnlLoginType; protected final JPanel pnlLoginForm; protected final JPanel pnlAdvanced; - + + protected final JTextField txtUrl; + protected final QLabel lblError; + + protected final QLabel lblOrganization; + protected final QLabel lblUsername; + protected final QLabel lblPassword; + // advanced panel protected final JButton btnSettings; protected final JButton btnLogDir; @@ -90,13 +97,18 @@ public abstract class LoginWindowLayout extends JDialog { grid.add(new QLabel(getScaledLogo()), 2); grid.nextRow(); - rdoLoginType[0] = new JRadioButton( - I18n.WINDOW_LAYOUT.getString("Login.RadioButton.loginType.text.0", Branding.getMasterServerIdm())); - rdoLoginType[1] = new JRadioButton(I18n.WINDOW_LAYOUT.getString("Login.RadioButton.loginType.text.1")); - rdoLoginType[2] = new JRadioButton(I18n.WINDOW_LAYOUT.getString("Login.RadioButton.loginType.text.2")); + rdoLoginType[0] = new JRadioButton(I18n.WINDOW_LAYOUT.getString("Login.RadioButton.loginType.text.0", + Branding.getMasterServerIdm())); + rdoLoginType[1] = new JRadioButton( + I18n.WINDOW_LAYOUT.getString("Login.RadioButton.loginType.text.1")); + rdoLoginType[2] = new JRadioButton( + I18n.WINDOW_LAYOUT.getString("Login.RadioButton.loginType.text.2")); + rdoLoginType[3] = new JRadioButton(I18n.WINDOW_LAYOUT.getString("Login.RadioButton.loginType.text.3", + Branding.getMasterServerIdm())); btnSettings = new JButton(I18n.WINDOW_LAYOUT.getString("Login.Button.settings.text")); btnLogDir = new JButton(I18n.WINDOW_LAYOUT.getString("Login.Button.logDir.text")); + lblOrganization = new QLabel(I18n.WINDOW_LAYOUT.getString("Login.Label.organization.text")); cboOrganization = new ComboBox<Organization>(new ComboBoxRenderer<Organization>() { @Override public String renderItem(Organization item) { @@ -110,8 +122,17 @@ public abstract class LoginWindowLayout extends JDialog { return I18n.WINDOW_LAYOUT.getString("Login.ComboBox.organization.emptyText"); } }, Organization.class); + lblUsername = new QLabel(I18n.WINDOW_LAYOUT.getString("Login.Label.username.text")); txtUsername = new JTextField(); + lblPassword = new QLabel(I18n.WINDOW_LAYOUT.getString("Login.Label.password.text")); txtPassword = new JPasswordField(); + // Browser + txtUrl = new JTextField(); + txtUrl.setEditable(false); + lblError = new QLabel(); + txtUrl.setVisible(false); + lblError.setVisible(false); + // btnLogin = new JButton(I18n.WINDOW_LAYOUT.getString("Login.Button.login.text")); chkSaveUsername = new JCheckBox(I18n.WINDOW_LAYOUT.getString("Login.CheckBox.saveUsername.text")); btnOpenRegistration = new JButton(I18n.WINDOW_LAYOUT.getString("Login.Button.openRegistration.text")); @@ -119,12 +140,12 @@ public abstract class LoginWindowLayout extends JDialog { pnlLoginType = makeLoginTypePanel(); grid.add(pnlLoginType).expand(0.25, 1).fill(true, true); pnlLoginForm = makeLoginFormPanel(); - grid.add(pnlLoginForm,1,2).expand(0.75, 1).fill(true, true); + grid.add(pnlLoginForm, 1, 2).expand(0.75, 1).fill(true, true); grid.nextRow(); - + pnlAdvanced = makeAdvancedPanel(); grid.add(pnlAdvanced).expand(true, true).fill(true, true); - + grid.nextRow(); pnlActivity = new JPanel(); pnlActivity.setLayout(new BoxLayout(pnlActivity, BoxLayout.PAGE_AXIS)); @@ -144,26 +165,36 @@ public abstract class LoginWindowLayout extends JDialog { I18n.WINDOW_LAYOUT.getString("Login.TitledBorder.loginFormPanel.title"))); GridManager grid = new GridManager(loginFormPanel, 4); - grid.add(new QLabel(I18n.WINDOW_LAYOUT.getString("Login.Label.organization.text"))); + grid.add(lblOrganization); grid.add(cboOrganization, 3).expand(true, false).fill(true, false); grid.nextRow(); // label + field for username - grid.add(new QLabel(I18n.WINDOW_LAYOUT.getString("Login.Label.username.text"))); + grid.add(lblUsername); grid.add(txtUsername, 3).expand(true, false).fill(true, false); grid.nextRow(); // label + field for password - grid.add(new QLabel(I18n.WINDOW_LAYOUT.getString("Login.Label.password.text"))); + grid.add(lblPassword); grid.add(txtPassword, 3).expand(true, false).fill(true, false); grid.nextRow(); + // --- Browser-based login + + grid.add(txtUrl, 4).expand(true, false).fill(true, false); + grid.nextRow(); + grid.add(lblError, 4).expand(true, false).fill(true, false); + grid.nextRow(); + + grid.add(Box.createVerticalGlue(), 4).expand(false, true); + grid.nextRow(); + grid.add(Box.createGlue()); grid.add(chkSaveUsername).expand(true, false); grid.add(btnOpenRegistration); grid.add(btnLogin); grid.nextRow(); - grid.finish(true); + grid.finish(false); return loginFormPanel; } @@ -180,7 +211,7 @@ public abstract class LoginWindowLayout extends JDialog { return loginTypePanel; } - + private JPanel makeAdvancedPanel() { JPanel p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.LINE_AXIS)); @@ -208,8 +239,9 @@ public abstract class LoginWindowLayout extends JDialog { } else { scaling = scaleY / 2; } - image = new ImageIcon(image.getImage().getScaledInstance((int) (image.getIconWidth() * scaling), - (int) (image.getIconHeight() * scaling), 0)); + image = new ImageIcon(image.getImage() + .getScaledInstance((int) (image.getIconWidth() * scaling), + (int) (image.getIconHeight() * scaling), 0)); return image; } catch (Exception e) { LOGGER.warn("Cannot load image", e); |