blob: efa000bad3987f2048f02d1bec82d3ba987d8c3e (
plain) (
tree)
|
|
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 {
/**
* Use a version number for the disclaimer. Whenever we add/change something, this will be increased
*/
private static final int DISCLAIMER_VERSION = 1;
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);
// function for continue button
btnContinue.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// save the agreement to config
Config.setDisclaimerAgreement(DISCLAIMER_VERSION);
me.dispose();
}
});
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
closeWindow();
}
});
}
public static boolean shouldBeShown() {
return Config.getDisclaimerAgreement() < DISCLAIMER_VERSION;
}
public static void open(Frame modalParent) {
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();
}
}
}
|