summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/BwIdmLinkWindow.java
blob: fef7e6164de5ad7a37bdee1913c2a3f8e38dbc9d (plain) (tree)
1
2
3
4
5
6





                                      









                                 
                                   

                                                 
                                          
                                                
                                                  
                                                       



                                                                             
                                                                    
 




                                                                          


                                   


                                                            
                                                   
                                                                                   
                                                                                                              
 
                                                








                                                                                    
                                                                                                                             
                                                                                                                           



                                                                                                          
                                                                                           


                                                                    
                                                                                    






                                                                                                            
                                                                                       
                                            








                                                                                                             
                                                                                          







                                                                    




                                                                           
                                                                 





                                                                          
           


                                                       
                                                                  











                                          
package org.openslx.dozmod.gui.window;

import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;

import org.openslx.dozmod.Branding;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.gui.helper.I18n;
import org.openslx.dozmod.gui.helper.UiFeedback;
import org.openslx.dozmod.util.DesktopEnvironment;
import org.openslx.dozmod.util.DesktopEnvironment.Link;

/**
 * Class for showing window with button to open registration page in browser.
 */
public class BwIdmLinkWindow extends JDialog implements UiFeedback {

	/**
	 * Version for serialization.
	 */
	private static final long serialVersionUID = 2120246234601011414L;

	protected JButton btnLink;
	protected JButton OkButton;

	/**
	 * Don't use this, use static function open instead!
	 */
	public BwIdmLinkWindow(Frame modalParent) {
		super(modalParent, I18n.WINDOW.getString("BwIdmLink.Dialog.title"),
				modalParent != null ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS);

		final BwIdmLinkWindow me = this;
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

		// panel for the border.
		JPanel contentPanel = new JPanel();
		contentPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
		add(contentPanel);
		GridManager grid = new GridManager(contentPanel, 1);

		// infotext
		JLabel infoLabel = new JLabel(I18n.WINDOW.getString("BwIdmLink.Label.info.text", Branding.getServiceName()));
		infoLabel.setBorder(BorderFactory.createTitledBorder(I18n.WINDOW.getString("BwIdmLink.Label.info.title")));
		grid.add(infoLabel).fill(true, true).expand(true, true).anchor(GridBagConstraints.CENTER);
		grid.nextRow();

		// button for opening the link
		btnLink = new JButton(I18n.WINDOW.getString("BwIdmLink.Button.link.text"));
		btnLink.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				DesktopEnvironment.openWebpage(Link.REGISTER_BWIDM);
			}
		});

		grid.add(btnLink).anchor(GridBagConstraints.CENTER).fill(false, false).expand(false, false);
		grid.nextRow();

		// text area for copying the link if needed.
		JTextArea linkText = new JTextArea(Link.REGISTER_BWIDM.uri.toString());
		linkText.setEditable(false);
		grid.add(linkText).anchor(GridBagConstraints.CENTER).fill(false, false).expand(false, false);
		grid.nextRow();

		// Ok button on the bottom
		JPanel bottomPane = new JPanel();
		bottomPane.setLayout(new BoxLayout(bottomPane, BoxLayout.LINE_AXIS));
		bottomPane.add(Box.createHorizontalGlue());

		// close/ok button
		OkButton = new JButton(I18n.WINDOW.getString("BwIdmLink.Button.ok.text"));
		OkButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				me.dispose();
			}
		});
		bottomPane.add(OkButton);

		grid.add(bottomPane).fill(true, false).expand(true, false);
		grid.nextRow();
		grid.finish(false);

		// Scale window with font
		setMinimumSize(Gui.getScaledDimension(500, 250));
		setPreferredSize(getMinimumSize());
		setLocationRelativeTo(modalParent);
	}

	/**
	 * Open a new window for showing the registration page in browser.
	 * 
	 * @param modalParent the parent of the window.
	 */
	public static void open(Frame modalParent) {
		new BwIdmLinkWindow(modalParent).setVisible(true);
	}

	@Override
	public boolean wantConfirmQuit() {
		return false;
	}

	@Override
	public void escapePressed() {
		dispose();
	}
}