summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/DisclaimerWindow.java
blob: efa000bad3987f2048f02d1bec82d3ba987d8c3e (plain) (tree)
1
2
3
4
5
6
7
8
9
                                      
 
                      

                                     

                                    
 
                          
 
                               
                                 


                                                 
                                                                   
 



                                     

                                                                                    



                                                                                                            
 

                                         
                                                                                      
 

                                                    
                                                                     

                                               
                                                                    
                                 
                                                                    
                                                               
                                                                                  
                                             

                         
 
                                                       




                                                                  
         
 


                                                                            
 

                                                                   

         















                                                                                                      

                                                                                                                                                 






                                                   
 
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();
		}
	}

}