summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteffen Ritter2018-06-15 11:59:45 +0200
committerSteffen Ritter2018-06-15 11:59:45 +0200
commit34a919c138ef29fa3a4f515d466a984e85e1ad1d (patch)
treeac645a5eb042c47fe21eb196c42dc14240c3e2d7
parentAdd support for LDAP lecture filters (diff)
downloadtutor-module-34a919c138ef29fa3a4f515d466a984e85e1ad1d.tar.gz
tutor-module-34a919c138ef29fa3a4f515d466a984e85e1ad1d.tar.xz
tutor-module-34a919c138ef29fa3a4f515d466a984e85e1ad1d.zip
[client] Add privacy notice window
-rwxr-xr-xdozentenmodul/src/main/java/org/openslx/dozmod/Config.java26
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java13
-rwxr-xr-x[-rw-r--r--]dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java70
-rwxr-xr-xdozentenmodul/src/main/java/org/openslx/dozmod/gui/window/GenericNoticeWindow.java82
-rwxr-xr-xdozentenmodul/src/main/java/org/openslx/dozmod/gui/window/PrivacyNoticeWindow.java109
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/DisclaimerWindowLayout.java91
-rwxr-xr-xdozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/GenericNoticeWindowLayout.java92
7 files changed, 333 insertions, 150 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/Config.java b/dozentenmodul/src/main/java/org/openslx/dozmod/Config.java
index 7a3db999..efa59fe2 100755
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/Config.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/Config.java
@@ -10,6 +10,7 @@ import java.util.Properties;
import org.apache.log4j.Logger;
import org.openslx.dozmod.gui.window.DisclaimerWindow;
+import org.openslx.dozmod.gui.window.PrivacyNoticeWindow;
import org.openslx.dozmod.util.OSHelper;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;
@@ -212,6 +213,31 @@ public class Config {
}
/**
+ * Returns the value of 'privacy.accepted_version'
+ *
+ * @return version of the privacy notice the user accepted, 0 otherwise.
+ */
+ public static int getPrivacyAgreement() {
+ int savedVersion = getInteger("privacy.accepted_version", 0);
+ // check if we have a saved version and if it is larger than
+ // the current version. If it is, reset it to 0.
+ if (savedVersion != 0 && Math.abs(savedVersion - PrivacyNoticeWindow.PRIVACY_VERSION) != 0) {
+ setPrivacyAgreement(0);
+ return 0;
+ }
+ return savedVersion;
+ }
+
+ /**
+ * Sets the value of 'privacy.accepted_version' to the given value
+ *
+ * @return true if it succeeded, false otherwise
+ */
+ public static void setPrivacyAgreement(int value) {
+ setInteger("privacy.accepted_version", value);
+ }
+
+ /**
* Returns the value of 'notice.virtualizer'
*
* @return value of 'notice.virtualizer' if set, false otherwise
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
index cc40bef6..ca188fc7 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
@@ -57,6 +57,7 @@ import org.openslx.dozmod.gui.window.ImageListWindow;
import org.openslx.dozmod.gui.window.LectureListWindow;
import org.openslx.dozmod.gui.window.LoginWindow;
import org.openslx.dozmod.gui.window.MainMenuWindow;
+import org.openslx.dozmod.gui.window.PrivacyNoticeWindow;
import org.openslx.dozmod.gui.window.VirtualizerNoticeWindow;
import org.openslx.dozmod.state.UploadWizardState;
import org.openslx.dozmod.thrift.GuiErrorCallback;
@@ -291,6 +292,9 @@ public abstract class MainWindow {
if (DisclaimerWindow.shouldBeShown()) {
DisclaimerWindow.open(mainWindow);
}
+ if (PrivacyNoticeWindow.shouldBeShown()) {
+ PrivacyNoticeWindow.open(mainWindow);
+ }
}
/**
@@ -427,10 +431,12 @@ public abstract class MainWindow {
menuBar.add(cascadeAboutMenu);
JMenuItem disclaimerItem = new JMenuItem("Nutzungsvereinbarung");
+ JMenuItem privacyNoticeItem = new JMenuItem("Datenschutzerklärung");
JMenuItem virtualizerNoticeItem = new JMenuItem("Virtualisierer");
JMenuItem wikiItem = new JMenuItem("www.bwlehrpool.de");
JMenuItem updateCheckItem = new JMenuItem("Software-Aktualisierung");
cascadeAboutMenu.add(disclaimerItem);
+ cascadeAboutMenu.add(privacyNoticeItem);
cascadeAboutMenu.add(virtualizerNoticeItem);
cascadeAboutMenu.addSeparator();
cascadeAboutMenu.add(wikiItem);
@@ -497,6 +503,13 @@ public abstract class MainWindow {
}
});
+ privacyNoticeItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ PrivacyNoticeWindow.open(mainWindow);
+ }
+ });
+
virtualizerNoticeItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
index ea44ef8d..cc763152 100644..100755
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
@@ -3,45 +3,36 @@ package org.openslx.dozmod.gui.window;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import javax.swing.JFrame;
-
-import org.apache.log4j.Logger;
import org.openslx.dozmod.Config;
-import org.openslx.dozmod.gui.Gui;
-import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.gui.helper.UiFeedback;
-import org.openslx.dozmod.gui.window.layout.DisclaimerWindowLayout;
/**
* Window for showing the disclaimer.
*/
@SuppressWarnings("serial")
-public class DisclaimerWindow extends DisclaimerWindowLayout implements UiFeedback {
+public class DisclaimerWindow extends GenericNoticeWindow implements UiFeedback {
/**
* Use a version number for the disclaimer. Whenever we add/change
* something, this will be increased
*/
public static final int DISCLAIMER_VERSION = 1;
+ protected String notice = "bwLehrpool-Suite (Dozentenmodul)\nCopyright © 2016 Universität Freiburg\n\n"
+ + "Die Verwendung dieses Programms ist nur in Abstimmung mit der jeweils beteiligten Hochschulinstitution zulässig und unterliegt deren Bestimmungen und Einschränkungen. Im Rahmen des bwLehrpool-Systems erstellte und bereitgestellte Virtuelle Maschinen, die unfrei lizensierte Software enthalten, dürfen nur mit Erlaubnis bzw. Lizenzierung der betreffenden Rechteinhaber eingesetzt und weitergegeben werden.\n\n"
+ + "Insbesondere wird ausdrücklich darauf hingewiesen, dass die Verantwortung in Bezug auf eventuell notwendige Lizenzierung sämtlicher Software innerhalb einer Virtuellen Maschine, regelmäßiger Aktualisierung und rechtzeitigen Einspielens von Sicherheitsupdates ausschließlich beim erstellenden Personal liegt.\n\n\n"
+ + "Lizenzierung des Programms\n\n"
+ + "Dieses Programm ist freie Software. Es kann unter den Bedingungen der GNU General Public License (GPL) Version 2 verändert und weitergegeben werden. Der vollständige Text der GNU General Public Licence der Version 2 (GPL2) kann hier http://www.gnu.org/licenses/old-licenses/gpl-2.0.html eingesehen werden.\n\n"
+ + "Es wird, soweit gesetzlich zulässig, keinerlei Gewährleistung für dieses Programm, weder ausdrücklich noch implizit, geleistet. Der Urheberrechtsinhaber stellt das Programm „wie es ist“ zur Verfügung. Es werden einschließlich Marktreife oder Verwendbarkeit für einen bestimmten Zweck keinerlei Eigenschaften zugesichert."
+ + "Das volle Risiko bezüglich Qualität, Leistungsfähigkeit oder jeglicher allgemeiner oder spezieller Schäden, Schäden durch Nebenwirkungen oder Folgeschäden, die aus Benutzung oder Unbenutzbarkeit des Programms folgen (einschließlich Datenverlusten oder fehlerhafter Verarbeitung von Daten)liegt auf Seiten des Anwenders / der Anwenderin.\n\n";
final DisclaimerWindow me = this;
- private final static Logger LOGGER = Logger.getLogger(DisclaimerWindow.class);
-
public DisclaimerWindow(Frame modalParent) {
- super(modalParent);
- setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+ super(modalParent, shouldBeShown());
- // agree box toggles the "Continue" button
- chkAgreeBox.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- btnContinue.setEnabled(chkAgreeBox.isSelected());
- }
- });
+ // Set the actual text
+ setNoticeText(notice);
// function for continue button
btnContinue.addActionListener(new ActionListener() {
@@ -52,18 +43,6 @@ public class DisclaimerWindow extends DisclaimerWindowLayout implements UiFeedba
me.dispose();
}
});
-
- addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosing(WindowEvent e) {
- closeWindow();
- }
- });
- if (!shouldBeShown()) {
- chkAgreeBox.setVisible(false);
- btnContinue.setText("Schließen");
- btnContinue.setEnabled(true);
- }
}
public static boolean shouldBeShown() {
@@ -74,31 +53,4 @@ public class DisclaimerWindow extends DisclaimerWindowLayout implements UiFeedba
new DisclaimerWindow(modalParent).setVisible(true);
}
- @Override
- public boolean wantConfirmQuit() {
- return true;
- }
-
- @Override
- public void escapePressed() {
- closeWindow();
- }
-
- /**
- * Check, whether to ask for confirmation, when disclaimer hasn't been
- * accepted or just close.
- */
- private void closeWindow() {
- if (shouldBeShown()) {
- if (Gui.showMessageBox(me,
- "Wenn diesen rechtlichen Hinweis nicht akzeptieren, können Sie die Software nicht verwenden! "
- + "Sind Sie sicher, dass sie abbrechen wollen?", MessageType.QUESTION_YESNO,
- LOGGER, null)) {
- System.exit(ABORT);
- }
- } else {
- me.dispose();
- }
- }
-
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/GenericNoticeWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/GenericNoticeWindow.java
new file mode 100755
index 00000000..4660c8b6
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/GenericNoticeWindow.java
@@ -0,0 +1,82 @@
+package org.openslx.dozmod.gui.window;
+
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+
+import javax.swing.JFrame;
+
+import org.apache.log4j.Logger;
+import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.helper.MessageType;
+import org.openslx.dozmod.gui.helper.UiFeedback;
+import org.openslx.dozmod.gui.window.layout.GenericNoticeWindowLayout;
+
+/**
+ * Window for showing the notice.
+ */
+@SuppressWarnings("serial")
+public abstract class GenericNoticeWindow extends GenericNoticeWindowLayout implements UiFeedback {
+
+ final GenericNoticeWindow me = this;
+
+ private final static Logger LOGGER = Logger.getLogger(GenericNoticeWindow.class);
+ private boolean shouldBeShown = true;
+
+ public GenericNoticeWindow(Frame modalParent, boolean shouldBeShown) {
+ super(modalParent);
+ setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+
+ this.shouldBeShown = shouldBeShown;
+
+ // agree box toggles the "Continue" button
+ chkAgreeBox.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ btnContinue.setEnabled(chkAgreeBox.isSelected());
+ }
+ });
+
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ closeWindow();
+ }
+ });
+ if (!shouldBeShown) {
+ chkAgreeBox.setVisible(false);
+ btnContinue.setText("Schließen");
+ btnContinue.setEnabled(true);
+ }
+ }
+
+ @Override
+ public boolean wantConfirmQuit() {
+ return true;
+ }
+
+ @Override
+ public void escapePressed() {
+ closeWindow();
+ }
+
+ /**
+ * Check, whether to ask for confirmation, when notice hasn't been
+ * accepted or just close.
+ */
+ private void closeWindow() {
+ if (shouldBeShown) {
+ if (Gui.showMessageBox(me,
+ "Wenn diesen rechtlichen Hinweis nicht akzeptieren, können Sie die Software nicht verwenden! "
+ + "Sind Sie sicher, dass sie abbrechen wollen?", MessageType.QUESTION_YESNO,
+ LOGGER, null)) {
+ System.exit(ABORT);
+ }
+ } else {
+ me.dispose();
+ }
+ }
+
+}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/PrivacyNoticeWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/PrivacyNoticeWindow.java
new file mode 100755
index 00000000..9e6ffd7d
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/PrivacyNoticeWindow.java
@@ -0,0 +1,109 @@
+package org.openslx.dozmod.gui.window;
+
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import org.openslx.dozmod.Config;
+import org.openslx.dozmod.gui.helper.UiFeedback;
+
+/**
+ * Window for showing the privacy notice.
+ */
+@SuppressWarnings("serial")
+public class PrivacyNoticeWindow extends GenericNoticeWindow implements UiFeedback {
+
+ /**
+ * Use a version number for the privacy notice. Whenever we add/change
+ * something, this will be increased
+ */
+ public static final int PRIVACY_VERSION = 1;
+ protected String notice = "Datenschutz \n"
+ + "-----------------------------------------------------\n"
+ + "Wenn Sie sich an der bwLehrpool-Suite anmelden bzw. diese nutzen, werden "
+ + "verschiedene Informationen über Sie erfasst und gespeichert. Die "
+ + "nachfolgenden Punkte sollen Ihnen helfen zu verstehen, welche Daten zu "
+ + "welchem Zweck verwendet werden und wohin Sie sich bei Fragen wenden "
+ + "können.\n\n"
+ + "Was wird gesammelt?\n"
+ + "-----------------------------------------------------\n"
+ + "Beim Login werden Name, E-Mail, Hochschule sowie Zeitpunkt des letzten "
+ + "Logins gespeichert und einer eindeutigen Nutzer-ID zugeordnet. Dies "
+ + "umfasst auch Informationen darüber, wann Sie sich für die Nutzung "
+ + "erstmalig registriert haben. Außerdem werden Informationen über einige "
+ + "Ihrer Aktivitäten innerhalb der bwLehrpool-Suite erfasst "
+ + "(beispielsweise wenn Sie eine VM hochladen oder löschen).\n\n"
+ + "Wozu werden diese Daten gesammelt?\n"
+ + "-----------------------------------------------------\n"
+ + "Die Informationen sind notwendig, um VMs und Veranstaltungen Ihnen bzw. "
+ + "Ihren Kollegen eindeutig zuordnen und ggf. bei rechtlichen Verstößen "
+ + "eingreifen zu können.\n\n"
+ + "Wenn Sie VMs herunterladen (vom Satellitenserver oder öffentlichen "
+ + "Speicher), möchten Sie sicherlich wissen, von wem eine VM erstellt "
+ + "wurde und wen Sie ggf. kontaktieren können, falls die VM nicht wie "
+ + "erwartet funktioniert. \n\n"
+ + "Außerdem sind Nutzungsdaten für Diagnosezwecke wichtig, damit ein "
+ + "Administrator Ihnen helfen kann, falls Sie z.B. Ihre VM nicht mehr "
+ + "finden können und vermuten, dass diese von jemandem fälschlicherweise "
+ + "gelöscht wurde.\n\n"
+ + "Mit wem werden diese Daten geteilt?\n"
+ + "-----------------------------------------------------\n"
+ + "Die erhobenen Daten werden ausschließlich auf dem Satellitenserver "
+ + "gespeichert, mit dem Sie sich während des Logins verbunden haben. "
+ + "Dieser steht in der Regel unter der Kontrolle des Rechenzentrums Ihrer "
+ + "Hochschule.\n\n"
+ + "Bei der erstmaligen Nutzung der Suite wurden Sie aufgefordert, sich "
+ + "über ein Webportal zu registrieren. Dies ist notwendig, um Ihre "
+ + "Zustimmung zur Speicherung und Verarbeitung Ihrer Daten zum Zweck des "
+ + "hochschulübergreifenden VM-Austauschs einzuholen. Die dort angegebenen "
+ + "Informationen stehen unter der Verwaltung des bwLehrpool-Teams in "
+ + "Freiburg.\n\n"
+ + "Wenn Sie eine VM auf den öffentlichen Speicher hochladen, wird die VM "
+ + "sowie damit verknüpfte Metadaten (Name des Besitzers/Erstellers, "
+ + "Zeitpunkt der Erstellung und letzten Änderung) auf den zentralen Server "
+ + "des bwLehrpool-Teams in Freiburg übertragen. Auch Nutzer anderer an "
+ + "bwLehrpool teilnehmenden Hochschulen können nun Ihre VM sowie die damit "
+ + "verbundenen (Kontakt-)Daten einsehen.\n\n"
+ + "Wie lange werden Daten gespeichert?\n"
+ + "-----------------------------------------------------\n"
+ + "Informationen werden gespeichert, bis sie nicht mehr benötigt werden, "
+ + "um die notwendige Funktionalität bereitzustellen. Dies hängt auch von "
+ + "Faktoren wie der Art der Informationen, warum sie gesammelt und "
+ + "verarbeitet werden sowie den relevanten rechtlichen oder betrieblichen "
+ + "Speicherbedürfnissen ab.\n\n"
+ + "Wohin kann ich mich bei Fragen wenden?\n"
+ + "-----------------------------------------------------\n"
+ + "Kontaktieren Sie als erstes Ihr Rechenzentrum. In der Regel wird dort "
+ + "der Satellitenserver, mit dem sich Ihre bwLehrpool-Suite standardmäßig "
+ + "verbindet, betrieben. Falls Sie dort keinen Ansprechpartner finden, "
+ + "können Sie sich an das Entwickler-Team von bwLehrpool "
+ + "(bwlehrpool@hs-offenburg.de) wenden. \n\n";
+
+ final PrivacyNoticeWindow me = this;
+
+ public PrivacyNoticeWindow(Frame modalParent) {
+ super(modalParent, shouldBeShown());
+
+ // Set the actual text
+ setNoticeText(notice);
+
+ // function for continue button
+ btnContinue.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // save the agreement to config
+ Config.setPrivacyAgreement(PRIVACY_VERSION);
+ me.dispose();
+ }
+ });
+ }
+
+ public static boolean shouldBeShown() {
+ return Config.getPrivacyAgreement() < PRIVACY_VERSION;
+ }
+
+ public static void open(Frame modalParent) {
+ new PrivacyNoticeWindow(modalParent).setVisible(true);
+ }
+
+}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/DisclaimerWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/DisclaimerWindowLayout.java
deleted file mode 100644
index 225e4a7e..00000000
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/DisclaimerWindowLayout.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.openslx.dozmod.gui.window.layout;
-
-import java.awt.BorderLayout;
-import java.awt.Frame;
-
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JDialog;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-
-import org.openslx.dozmod.gui.Gui;
-import org.openslx.dozmod.gui.control.QLabel;
-import org.openslx.dozmod.gui.helper.GridManager;
-
-@SuppressWarnings("serial")
-public abstract class DisclaimerWindowLayout extends JDialog {
-
- protected String notice = "Bitte lesen und bestätigen Sie folgende rechtliche Hinweise:";
- protected String disclaimer = "bwLehrpool-Suite (Dozentenmodul)\nCopyright © 2016 Universität Freiburg\n\n"
- + "Die Verwendung dieses Programms ist nur in Abstimmung mit der jeweils beteiligten Hochschulinstitution zulässig und unterliegt deren Bestimmungen und Einschränkungen. Im Rahmen des bwLehrpool-Systems erstellte und bereitgestellte Virtuelle Maschinen, die unfrei lizensierte Software enthalten, dürfen nur mit Erlaubnis bzw. Lizenzierung der betreffenden Rechteinhaber eingesetzt und weitergegeben werden.\n\n"
- + "Insbesondere wird ausdrücklich darauf hingewiesen, dass die Verantwortung in Bezug auf eventuell notwendige Lizenzierung sämtlicher Software innerhalb einer Virtuellen Maschine, regelmäßiger Aktualisierung und rechtzeitigen Einspielens von Sicherheitsupdates ausschließlich beim erstellenden Personal liegt.\n\n\n"
- + "Lizenzierung des Programms\n\n"
- + "Dieses Programm ist freie Software. Es kann unter den Bedingungen der GNU General Public License (GPL) Version 2 verändert und weitergegeben werden. Der vollständige Text der GNU General Public Licence der Version 2 (GPL2) kann hier http://www.gnu.org/licenses/old-licenses/gpl-2.0.html eingesehen werden.\n\n"
- + "Es wird, soweit gesetzlich zulässig, keinerlei Gewährleistung für dieses Programm, weder ausdrücklich noch implizit, geleistet. Der Urheberrechtsinhaber stellt das Programm „wie es ist“ zur Verfügung. Es werden einschließlich Marktreife oder Verwendbarkeit für einen bestimmten Zweck keinerlei Eigenschaften zugesichert."
- + "Das volle Risiko bezüglich Qualität, Leistungsfähigkeit oder jeglicher allgemeiner oder spezieller Schäden, Schäden durch Nebenwirkungen oder Folgeschäden, die aus Benutzung oder Unbenutzbarkeit des Programms folgen (einschließlich Datenverlusten oder fehlerhafter Verarbeitung von Daten)liegt auf Seiten des Anwenders / der Anwenderin.\n\n";
-
- protected String checkboxText = "Ja, ich akzeptiere die Vereinbarung. Benachrichtigung nicht mehr anzeigen.";
-
- private static String title = "bwLehrpool-Suite";
- private static String noticeLabel = "Hinweis";
- private static String continueButtonLabel = "Weiter";
-
- // Buttons
- protected final JCheckBox chkAgreeBox;
- protected final JButton btnContinue;
-
- public DisclaimerWindowLayout(Frame modalParent) {
- super(modalParent, title, modalParent != null ? ModalityType.APPLICATION_MODAL
- : ModalityType.MODELESS);
- this.setLayout(new BorderLayout());
-
- // Panel used for creating border. We'll add everything into this.
- JPanel borderPanel = new JPanel();
- borderPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
- add(borderPanel);
-
- // information before the disclaimer
- QLabel noticePanel = new QLabel();
- noticePanel.setBorder(BorderFactory.createTitledBorder(noticeLabel));
- noticePanel.setText(notice);
-
- // the disclaimer text box with scrolling functionality
- JTextArea disclaimerText = new JTextArea(disclaimer, 30, 20);
- disclaimerText.setEditable(false);
- disclaimerText.setLineWrap(true);
- disclaimerText.setWrapStyleWord(true);
- JScrollPane disclaimerPanel = new JScrollPane(disclaimerText, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
- JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
-
- // checkbox for acknowledging the disclaimer
- JPanel buttonPanel = new JPanel();
- buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS));
- chkAgreeBox = new JCheckBox(checkboxText);
- buttonPanel.add(chkAgreeBox);
- // spacer
- buttonPanel.add(Box.createHorizontalGlue());
- // the continue button
- btnContinue = new JButton(continueButtonLabel);
- btnContinue.setEnabled(false);
- buttonPanel.add(btnContinue);
-
- // put everything together
- GridManager grid = new GridManager(borderPanel, 1);
- grid.add(noticePanel).fill(true, false).expand(true, false);
- grid.nextRow();
-
- grid.add(disclaimerPanel).fill(true, true).expand(true, true);
- grid.nextRow();
-
- grid.add(buttonPanel).fill(true, false).expand(true, false);
- grid.finish(false);
-
- pack();
- Gui.centerShellOverShell(modalParent, this);
- }
-}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/GenericNoticeWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/GenericNoticeWindowLayout.java
new file mode 100755
index 00000000..5b036892
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/GenericNoticeWindowLayout.java
@@ -0,0 +1,92 @@
+package org.openslx.dozmod.gui.window.layout;
+
+import java.awt.BorderLayout;
+import java.awt.Frame;
+
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.control.QLabel;
+import org.openslx.dozmod.gui.helper.GridManager;
+
+@SuppressWarnings("serial")
+public abstract class GenericNoticeWindowLayout extends JDialog {
+
+ protected String info = "Bitte lesen und bestätigen Sie folgende rechtliche Hinweise:";
+ protected JTextArea notice;
+
+ protected String checkboxText = "Ja, ich akzeptiere die Vereinbarung. Benachrichtigung nicht mehr anzeigen.";
+
+ private static String title = "bwLehrpool-Suite";
+ private static String noticeLabel = "Hinweis";
+ private static String continueButtonLabel = "Weiter";
+
+ // Buttons
+ protected final JCheckBox chkAgreeBox;
+ protected final JButton btnContinue;
+
+ public GenericNoticeWindowLayout(Frame modalParent) {
+ super(modalParent, title, modalParent != null ? ModalityType.APPLICATION_MODAL
+ : ModalityType.MODELESS);
+ this.setLayout(new BorderLayout());
+
+ // Panel used for creating border. We'll add everything into this.
+ JPanel borderPanel = new JPanel();
+ borderPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+ add(borderPanel);
+
+ // information before the notice
+ QLabel noticePanel = new QLabel();
+ noticePanel.setBorder(BorderFactory.createTitledBorder(noticeLabel));
+ noticePanel.setText(info);
+
+ // the disclaimer text box with scrolling functionality
+ notice = new JTextArea(30, 20);
+ notice.setEditable(false);
+ notice.setLineWrap(true);
+ notice.setWrapStyleWord(true);
+ JScrollPane disclaimerPanel = new JScrollPane(notice, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+
+ // checkbox for acknowledging the notice
+ JPanel buttonPanel = new JPanel();
+ buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS));
+ chkAgreeBox = new JCheckBox(checkboxText);
+ buttonPanel.add(chkAgreeBox);
+ // spacer
+ buttonPanel.add(Box.createHorizontalGlue());
+ // the continue button
+ btnContinue = new JButton(continueButtonLabel);
+ btnContinue.setEnabled(false);
+ buttonPanel.add(btnContinue);
+
+ // put everything together
+ GridManager grid = new GridManager(borderPanel, 1);
+ grid.add(noticePanel).fill(true, false).expand(true, false);
+ grid.nextRow();
+
+ grid.add(disclaimerPanel).fill(true, true).expand(true, true);
+ grid.nextRow();
+
+ grid.add(buttonPanel).fill(true, false).expand(true, false);
+ grid.finish(false);
+
+ pack();
+ Gui.centerShellOverShell(modalParent, this);
+ }
+
+ public void setNoticeText(String text) {
+ if (notice != null) {
+ notice.setText(text);
+ notice.setCaretPosition(0);
+ }
+ }
+}