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









                                             
                                            


                             



                                
                                 
















                                                                         

                                         











                                                                                                                        

                                                
                                                                                                  
                                                                                                                        
                                             
 

                                                 
                                                                                
                                                                       
                                                                        



                                                      
                                               

                                                                                 







                                                  
                
                                    
                                                
                                                                                        

                                                                     

                                                                                                                                                    




                                                                                



                                                  
                                                    
                                                   


                                                                                       
                                          
                                         


                                                                    
                                                                           


                                                                    
                                                                            












                                                                           
package org.openslx.dozmod.gui.window.layout;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Frame;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.DefaultBoundedRangeModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSlider;

import org.openslx.dozmod.Config;
import org.openslx.dozmod.gui.helper.GridManager;

@SuppressWarnings("serial")
public class ConfigWindowLayout extends JDialog {
	
	private static String title = "bwLehrpool Suite - Konfiguration";

	protected JRadioButton btnProxyNone;
	protected JRadioButton btnProxyAuto;
	protected JRadioButton btnProxySocks;
	protected JRadioButton btnProxyHttp;
	protected JCheckBox btnSendMeMail;
	protected JSlider btnFontSize;

	protected JButton btnSave;
	protected JButton btnClose;

	protected ButtonGroup radioGroup;

	public ConfigWindowLayout(Frame modalParent) {
		super(modalParent, title, modalParent != null ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS);

		// regular layout as a helper for the whole page
		setLayout(new BorderLayout());
		setMinimumSize(new Dimension(500, 300));
		
		// Panel to add everything into, needed for the border.
		JPanel contentPanel = new JPanel();
		add(contentPanel, BorderLayout.CENTER);

		// -- one panel per option for borders --
		// mail config panel
		JPanel mailPanel = new JPanel();
		mailPanel.setBorder(BorderFactory.createTitledBorder("eMail-Benachrichtigungen"));
		btnSendMeMail = new JCheckBox("Über Image- und Veranstaltungsänderungen per eMail informiert werden");
		mailPanel.add(btnSendMeMail);

		// proxy config panel
		JPanel proxyPanel = new JPanel();
		proxyPanel.setBorder(BorderFactory.createTitledBorder("Proxy"));
		GridManager proxyGrid = new GridManager(proxyPanel, 2);
		proxyGrid.skip(2).fill(true, false).expand(true, false);
		proxyGrid.nextRow();

		// radio button for proxy mode
		JPanel radioGroupPanel = new JPanel();
		radioGroup = new ButtonGroup();
		btnProxyNone = new JRadioButton("Keinen Proxy verwenden");
		btnProxyAuto = new JRadioButton("Automatisch nach Proxy suchen");
		radioGroup.add(btnProxyNone);
		radioGroup.add(btnProxyAuto);

		radioGroupPanel.add(btnProxyNone);
		radioGroupPanel.add(btnProxyAuto);
		proxyGrid.add(radioGroupPanel, 2);
		proxyGrid.nextRow();
		proxyGrid.finish(false);
		
		// font config panel
		JPanel fontPanel = new JPanel();
		fontPanel.setBorder(BorderFactory.createTitledBorder("Schriftgröße"));
		GridManager fontGrid = new GridManager(fontPanel, 1);
		btnFontSize = new JSlider(JSlider.HORIZONTAL);
		btnFontSize.setModel(new DefaultBoundedRangeModel(100, Config.FONT_SCALING_STEP, Config.FONT_SCALING_MIN, Config.FONT_SCALING_MAX));
		btnFontSize.setMinorTickSpacing(Config.FONT_SCALING_STEP);
		btnFontSize.setMajorTickSpacing(25);
		btnFontSize.setSnapToTicks(true);
		btnFontSize.setPaintTicks(true);
		btnFontSize.setPaintLabels(true);
		fontGrid.add(btnFontSize).fill(true, false).expand(true, false);
		fontGrid.nextRow();

		// bottom button panel
		JPanel buttonPanel = new JPanel();
		btnClose = new JButton("Abbrechen");
		btnSave = new JButton("Speichern");
		buttonPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
		buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS));
		buttonPanel.add(Box.createGlue());
		buttonPanel.add(btnClose);
		buttonPanel.add(btnSave);

		// Start the grid stuff
		GridManager grid = new GridManager(contentPanel, 1);
		grid.add(mailPanel).fill(true, false).expand(false, false);
		grid.nextRow();
		grid.add(Box.createRigidArea(new Dimension(0, 10)));
		grid.nextRow();
		grid.add(proxyPanel).fill(true, false).expand(false, false);
		grid.nextRow();
		grid.add(Box.createRigidArea(new Dimension(0, 10)));
		grid.nextRow();
		grid.add(fontPanel).fill(true, false).expand(false, false);
		grid.nextRow();
		grid.finish(true);
		
		add(buttonPanel, BorderLayout.PAGE_END);
		pack();

		
	}
}