From 915bf9c68c728d4a3fed8a82ebc01c8b28591adb Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 15 Oct 2019 15:14:34 +0200 Subject: [client] LoginWindow: Show same update notification as in main window --- .../java/org/openslx/dozmod/gui/activity/UpdatePanel.java | 6 +++++- .../java/org/openslx/dozmod/gui/window/LoginWindow.java | 13 +++++-------- .../openslx/dozmod/gui/window/layout/LoginWindowLayout.java | 12 +++++++++--- .../main/java/org/openslx/dozmod/util/ClientVersion.java | 6 ++++-- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UpdatePanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UpdatePanel.java index 46290a83..41b53302 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UpdatePanel.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UpdatePanel.java @@ -31,8 +31,11 @@ public class UpdatePanel extends ActivityPanel implements ActionListener { } public UpdatePanel(final String newVersion) { + this(newVersion, true); + } + + public UpdatePanel(final String newVersion, boolean allowClose) { super(); - setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); // Header: Neue Version verfügbar: [Button] header = new JPanel(); @@ -56,6 +59,7 @@ public class UpdatePanel extends ActivityPanel implements ActionListener { CheckUpdateWindow.open(SwingUtilities.getWindowAncestor(UpdatePanel.this)); } }); + btnClose.setEnabled(allowClose); } @Override diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java index 6d9d4de4..a6601ea7 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java @@ -152,6 +152,7 @@ public class LoginWindow extends LoginWindowLayout { @Override public void run() { populateIdpCombo(orgs); + LoginWindow.this.validate(); LoginWindow.this.pack(); enableLogin(true); } @@ -199,13 +200,6 @@ public class LoginWindow extends LoginWindowLayout { DesktopEnvironment.openLocal(new File(Config.getPath())); } }); - - btnUpdateCheck.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - CheckUpdateWindow.open(SwingUtilities.getWindowAncestor(btnUpdateCheck)); - } - }); txtUsername.getDocument().addDocumentListener(new TextChangeListener() { @Override @@ -240,7 +234,10 @@ public class LoginWindow extends LoginWindowLayout { Gui.asyncExec(new Runnable() { @Override public void run() { - btnUpdateCheck.setText("!! UPDATE !!"); + pnlActivity.add(new UpdatePanel(ClientVersion.getRemoteRevision(), false)); + pnlActivity.setVisible(true); + LoginWindow.this.validate(); + LoginWindow.this.pack(); } }); } 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 e5970b9f..0264da11 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 @@ -14,6 +14,7 @@ import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; +import javax.swing.JSeparator; import javax.swing.JTextField; import javax.swing.border.TitledBorder; @@ -70,7 +71,7 @@ public abstract class LoginWindowLayout extends JDialog { // advanced panel protected final JButton btnSettings; protected final JButton btnLogDir; - protected final JButton btnUpdateCheck; + protected final JPanel pnlActivity; /** * Create a new login composite @@ -92,7 +93,6 @@ public abstract class LoginWindowLayout extends JDialog { rdoLoginType[2] = new JRadioButton("Direkter Zugang zum Satelliten"); btnSettings = new JButton("Einstellungen"); btnLogDir = new JButton("Logverzeichnis"); - btnUpdateCheck = new JButton("Update"); cboOrganization = new ComboBox<>(new ComboBoxRenderer() { @Override @@ -121,6 +121,13 @@ public abstract class LoginWindowLayout extends JDialog { pnlAdvanced = makeAdvancedPanel(); grid.add(pnlAdvanced).expand(true, true).fill(true, true); + + grid.nextRow(); + pnlActivity = new JPanel(); + pnlActivity.setLayout(new BoxLayout(pnlActivity, BoxLayout.PAGE_AXIS)); + pnlActivity.setVisible(false); + pnlActivity.add(new JSeparator()); + grid.add(pnlActivity, 2).expand(true, false).fill(true, true); grid.finish(false); @@ -175,7 +182,6 @@ public abstract class LoginWindowLayout extends JDialog { p.setBorder(new TitledBorder(ADVANCED_LABEL)); p.add(btnSettings); p.add(btnLogDir); - p.add(btnUpdateCheck); return p; } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ClientVersion.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ClientVersion.java index 365d1796..e7eb31c3 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ClientVersion.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ClientVersion.java @@ -186,10 +186,12 @@ public class ClientVersion { if (remoteThread == null) return; try { - remoteThread.join(); + remoteThread.join(5000); } catch (InterruptedException e) { } - remoteThread = null; + if (!remoteThread.isAlive()) { + remoteThread = null; + } } /** -- cgit v1.2.3-55-g7522