summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/gui/image/CreateImageTechnisch_GUI.java
blob: b862b2ce88cdab13acab3210ca6c666a70044573 (plain) (tree)
1
2
3
4
5
6
7
8
9
                  

 
                           

                               
                      
                           
                     
                            
                                  
                                     

                                   

                                    

                                   
                      
 
                               
                           
                             







                                
                            

                             
                                      



                                                   

                    
                    

                               
                         
                      


                                    

                           
                                                      




                                                         









                                                          

                                                                          
                                                                         

                                                            
        



                             
                                           














                                                                                               
                                                              



                                             







                                                              
                                                                                             







                                                                                       
                                                                                                       


                                                                      
                                                         







                                                                                                                                         
                                                    

                                          
        
                
                                                                                                        
                                                                    

                                                     

                                                                              
                                                                 

                                                 
                
                                                                                               
                                                         
                                           
                












                                                                    
                                                                                        
                                                                     
                                                      
                

                                                                            
                                                              
                                              
                
                                                                               
                                                           
                                             


















                                                                         
                









                                                                       
                












                                                                       
                

                                              
                                                                                                                                                  
                                                        
                                                     

                                          



                                                      




                                                                        






                                                                                                                           




                                                      
                
                                                                                                    


                                                            




                                                                        



                                                          


                                                                
                






                                                                                                                           
                                                                                                            





                                                                                  
                                                                                                                                                                                       


                                                                 
                                                              



                                                                   
                                                                                











                                                                       
                                                        










                                                         






                                                                               
                                                                              
                                                                                     

                                                                                    
                                                                                              







                                                                                       
                                                                                       






                                                                                       






                                                                                          

                                                                                                                                 
                                                                                                         
                                                                                                           



                                                                    


                                                                               

                         

                                                                                       
                                                                                    

                                                                                              







                                                                                       
                                                                                       






                                                                                       
                                                                                       






                                                                                      

                                                                                                                                 

                                                                                                                                                                                                                                                                                                                 
                                                                                                         




                                                                    


                                                                               












                                                          
                                



                                                         

                                                             
                                                                   
                                
                                                                 
                                









                                                                          

                         

                                         
 
                                                           

                                                              
                                                                   
 












                                                                           

                         

                                          








                                                                    

         
package gui.image;


import gui.intro.About_GUI;
import gui.intro.MainMenue_GUI;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSeparator;
import javax.swing.JSpinner;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.SpinnerNumberModel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;

import models.Image;
import models.Links;
import server.Server.Client;
import thrift.ThriftConnection;
import util.GuiOrganizer;
import util.OpenLinks;
import javax.swing.JComboBox;

import org.apache.thrift.TException;

@SuppressWarnings("serial")
public class CreateImageTechnisch_GUI extends JFrame {

	private final JPanel contentPanel = new JPanel();
	String[] result;
	JSpinner spinnerCPU;
	JSpinner spinnerRam;
	//JRadioButton rdbtnlicenseJa;
		//JRadioButton rdbtnlicenseNein;
		//JRadioButton rdbtnInternetJa;
		//JRadioButton rdbtnInternetNein;
		//JRadioButton radioButtonVorlageJa;
		//JRadioButton radioButtonVorlageNein;
		private JCheckBox chckbxIsTemplate;
		private JCheckBox chckbxIsLicensed;
		private JCheckBox chckbxIsInternetBlocked;
	JComboBox comboBox;
	private final ButtonGroup buttonGrouplicense = new ButtonGroup();
	private final ButtonGroup buttonGroupInternet = new ButtonGroup();
	private final ButtonGroup buttonGroupVorlage = new ButtonGroup();
	ThriftConnection con = new ThriftConnection();
	Client client = models.Client.clientcon.getClient();
	

	/**
	 * Create the dialog.
	 */
	public CreateImageTechnisch_GUI() {
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent arg0) {
				System.exit(0);
			}
		});
		setResizable(false);
		
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException | InstantiationException
				| IllegalAccessException | UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		setTitle("bwLehrpool Suite - Image erzeugen");

		setBounds(0, 0, 603, 722);
		GuiOrganizer.centerGUI(this);
		
		getContentPane().setLayout(null);
		{
			JPanel panel = new JPanel();
			panel.setBackground(SystemColor.menu);
			panel.setBounds(10, 11, 577, 57);
			getContentPane().add(panel);
			panel.setLayout(null);
			{
				JLabel lblNewLabel = new JLabel("Eingabe technischer Daten");
				lblNewLabel.setBounds(10, 11, 509, 22);
				panel.add(lblNewLabel);
				lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
			}
			
			JTextPane txtpnBitteWhlenSie = new JTextPane();
			txtpnBitteWhlenSie.setEditable(false);
			txtpnBitteWhlenSie.setBackground(SystemColor.menu);
			txtpnBitteWhlenSie.setText("Geben Sie hier bitte einige technische Daten ein");
			txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
			panel.add(txtpnBitteWhlenSie);
		}
		contentPanel.setBounds(10, 85, 577, 531);
		contentPanel.setBackground(SystemColor.menu);
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel);
		contentPanel.setLayout(null);
		
		JPanel panel_1 = new JPanel();
		panel_1.setBackground(SystemColor.menu);
		panel_1.setBorder(new TitledBorder(null, "Informationen zum Image", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_1.setBounds(10, 36, 557, 166);
		contentPanel.add(panel_1);
		panel_1.setLayout(null);
	
		
		JLabel lblInternetIstInnerhalb = new JLabel("Internet ist für dieses Image gesperrt:");
		lblInternetIstInnerhalb.setBounds(10, 106, 250, 20);
		panel_1.add(lblInternetIstInnerhalb);
		
		JButton btnInternetSettings = new JButton("Einstellungen...");
		btnInternetSettings.setEnabled(false);
		btnInternetSettings.setBounds(439, 105, 108, 23);
		panel_1.add(btnInternetSettings);
		
		
		JLabel lblNewLabel_2 = new JLabel("Image enthält lizenzpflichtige Software:");
		lblNewLabel_2.setBounds(10, 78, 250, 20);
		panel_1.add(lblNewLabel_2);
		
		chckbxIsTemplate = new JCheckBox("");
		chckbxIsTemplate.setBounds(266, 50, 97, 23);
		panel_1.add(chckbxIsTemplate);
		
		chckbxIsLicensed = new JCheckBox("");
		chckbxIsLicensed.setSelected(true);
		chckbxIsLicensed.setBounds(266, 76, 97, 23);
		panel_1.add(chckbxIsLicensed);
		
		chckbxIsInternetBlocked = new JCheckBox("");
		chckbxIsInternetBlocked.setBounds(266, 104, 97, 23);
		panel_1.add(chckbxIsInternetBlocked);
		
		JLabel lblLizenzserverEintragen = new JLabel("Lizenzserver eintragen:");
		lblLizenzserverEintragen.setBounds(10, 133, 250, 20);
		panel_1.add(lblLizenzserverEintragen);
		
		JButton btnLicenseServer = new JButton("Server-Adresse...");
		btnLicenseServer.setEnabled(false);
		btnLicenseServer.setBounds(266, 132, 157, 23);
		panel_1.add(btnLicenseServer);
		
		JLabel lblImageIstEine = new JLabel("Image ist eine Vorlage:");
		lblImageIstEine.setBounds(10, 52, 250, 20);
		panel_1.add(lblImageIstEine);

		
		JLabel lblBetriebssystem = new JLabel("Betriebssystem:");
		lblBetriebssystem.setBounds(10, 21, 250, 20);
		panel_1.add(lblBetriebssystem);
		
		if (Image.image.isVorlage() == true) {
			//radioButtonVorlageJa.setSelected(true);
			chckbxIsTemplate.setSelected(true);
		} else {
			//radioButtonVorlageNein.setSelected(true);
			chckbxIsTemplate.setSelected(false);
		}
		
		if(Image.image.isInternet() == true ){
			chckbxIsInternetBlocked.setSelected(true);
		} else {
			chckbxIsInternetBlocked.setSelected(false);
		}
		
		/* TODO deprecated, as checked is default in new image 
		if (Image.image.isLicensed() == true) {
			//rdbtnlicenseJa.setSelected(true);
			chckbxIsLicensed.setSelected(true);
			chckbxIsLicensed.isSelected();
		} else {
			//rdbtnlicenseNein.setSelected(true);
			chckbxIsLicensed.setSelected(false);
		}
		*/
		
		comboBox = new JComboBox();
		try {
			List<String> os=client.getAllOS();
			
			for(int i=0; i<os.size();i++){
				comboBox.addItem(os.get(i).toString());
			}
		} catch (TException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		comboBox.setBounds(270, 21, 277, 20);
		panel_1.add(comboBox);
		
		JPanel panel_2 = new JPanel();
		panel_2.setLayout(null);
		panel_2.setBorder(new TitledBorder(null, "Empfehlung bezüglich Ressourcen", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_2.setBackground(SystemColor.menu);
		panel_2.setBounds(10, 207, 557, 324);
		contentPanel.add(panel_2);
		
		JLabel lblGbyte = new JLabel("GByte");
		lblGbyte.setBounds(424, 91, 46, 20);
		panel_2.add(lblGbyte);
		
		spinnerCPU = new JSpinner();
		spinnerCPU.setModel(new SpinnerNumberModel(1, 1, 4, 1));
		spinnerCPU.setBounds(385, 188, 29, 20);
		panel_2.add(spinnerCPU);
		
		JTextArea txtrBeispielWindows = new JTextArea();
		txtrBeispielWindows.setText("Beispiel:\r\nWindows 7 32/64 Bit: 2 GByte\r\nLinux/Unix 32/64 Bit:  1 GByte");
		txtrBeispielWindows.setFont(new Font("Tahoma", Font.PLAIN, 11));
		txtrBeispielWindows.setBackground(SystemColor.menu);
		txtrBeispielWindows.setBounds(10, 122, 280, 55);
		panel_2.add(txtrBeispielWindows);
		
		
		
		JLabel lblKerne = new JLabel("Kerne");
		lblKerne.setBounds(424, 191, 46, 20);
		panel_2.add(lblKerne);
		
		JLabel lblWieVieleCpus = new JLabel("Wie viele CPUs empfehlen Sie für das Image:");
		lblWieVieleCpus.setBounds(10, 191, 280, 20);
		panel_2.add(lblWieVieleCpus);
		
		spinnerRam = new JSpinner();
		spinnerRam.setModel(new SpinnerNumberModel(1, 1, 8, 1));
		spinnerRam.setBounds(385, 88, 29, 20);
		panel_2.add(spinnerRam);
		
		JLabel label_3 = new JLabel("mindestens");
		label_3.setBounds(315, 191, 60, 20);
		panel_2.add(label_3);
		
		JLabel lblMindestens = new JLabel("mindestens");
		lblMindestens.setBounds(315, 91, 60, 20);
		panel_2.add(lblMindestens);
		
		JTextArea txtrBeispielWindows_1 = new JTextArea();
		txtrBeispielWindows_1.setText("Beispiel:\r\nWindows 7 32/64 Bit: 1 Kern\r\nLinux/Unix 32/64 Bit:  1 Kern");
		txtrBeispielWindows_1.setFont(new Font("Tahoma", Font.PLAIN, 11));
		txtrBeispielWindows_1.setBackground(SystemColor.menu);
		txtrBeispielWindows_1.setBounds(10, 222, 280, 55);
		panel_2.add(txtrBeispielWindows_1);
		
		JLabel lblNewLabel_3 = new JLabel("Wie viel Arbeitsspeicher empfehlen Sie für das Image:");
		lblNewLabel_3.setBounds(10, 91, 280, 20);
		panel_2.add(lblNewLabel_3);
		
		JTextArea txtrHinweisSolltenSie = new JTextArea();
		txtrHinweisSolltenSie.setBackground(SystemColor.menu);
		txtrHinweisSolltenSie.setFont(new Font("Tahoma", Font.PLAIN, 13));
		txtrHinweisSolltenSie.setText("Hinweis: Sollten Sie keine Software einsetzen, die viele Ressourcen benötigt,\r\nkönnen Sie sich an den Beispielwerten orientieren.");
		txtrHinweisSolltenSie.setBounds(10, 25, 537, 55);
		panel_2.add(txtrHinweisSolltenSie);
		
		JLabel lblHauptmen = new JLabel("Hauptmenü");
		lblHauptmen.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				
				CreateImageTechnisch_GUI.this.setVisible(false);
				MainMenue_GUI main=new MainMenue_GUI();
				main.setVisible(true);
			}
		});
		lblHauptmen.setForeground(Color.BLUE);
		lblHauptmen.setBounds(10, 11, 61, 14);
		contentPanel.add(lblHauptmen);
		
		JLabel label_1 = new JLabel(">");
		label_1.setBounds(69, 11, 13, 14);
		contentPanel.add(label_1);
		
		JLabel lblVlimage = new JLabel("Image");
		lblVlimage.setForeground(Color.BLUE);
		lblVlimage.setBounds(81, 11, 45, 14);
		contentPanel.add(lblVlimage);
		
		JLabel label_2 = new JLabel(">");
		label_2.setBounds(133, 11, 13, 14);
		contentPanel.add(label_2);
		
		JLabel lblNewLabel_1 = new JLabel("Neu");
		lblNewLabel_1.setBounds(146, 11, 46, 14);
		contentPanel.add(lblNewLabel_1);
		{
			JPanel buttonPane = new JPanel();
			buttonPane.setBounds(0, 640, 597, 33);
			buttonPane.setBackground(SystemColor.menu);
			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
			getContentPane().add(buttonPane);
			{
				JButton cancelButton = new JButton("Zurück");
				cancelButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
						if(chckbxIsInternetBlocked.isSelected()==true)
						{
							Image.image.setInternet(true);
						}
						else
						{
							Image.image.setInternet(false);
						}
						
						if(chckbxIsLicensed.isSelected()==true)
						{
							Image.image.setLicensed(true);
						}
						else
						{
							Image.image.setLicensed(false);
						}
						
						if(chckbxIsTemplate.isSelected() == true){
							Image.image.setVorlage(true);
						} else {
							Image.image.setVorlage(false);
						}
						
						Image.image.setCpu(Integer.valueOf(spinnerCPU.getValue().toString()).intValue());
						Image.image.setRam(Integer.valueOf(spinnerRam.getValue().toString()).intValue());
						Image.image.setOS(comboBox.getSelectedItem().toString());
						CreateImageAllgemein_GUI sr=new CreateImageAllgemein_GUI();
						sr.setVisible(true);
						dispose();
					}
				});
				cancelButton.setActionCommand("OK");
				buttonPane.add(cancelButton);
				//getRootPane().setDefaultButton(cancelButton);
			}
			{
				JButton continueButton = new JButton("Weiter");
				continueButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
						if(chckbxIsInternetBlocked.isSelected()==true)
						{
							Image.image.setInternet(true);
						}
						else
						{
							Image.image.setInternet(false);
						}
						
						if(chckbxIsLicensed.isSelected()==true)
						{
							Image.image.setLicensed(true);
						}
						else
						{
							Image.image.setLicensed(false);
						}
						if(chckbxIsTemplate.isSelected()==true)
						{
							Image.image.setVorlage(true);
						}
						else
						{
							Image.image.setVorlage(false);
						}
						Image.image.setCpu(Integer.valueOf(spinnerCPU.getValue().toString()).intValue());
						Image.image.setRam(Integer.valueOf(spinnerRam.getValue().toString()).intValue());
						Image.image.setOS(comboBox.getSelectedItem().toString());
						System.out.println("Betriebssystem: "+Image.image.getOS()+",  istVorlage: "+Image.image.isVorlage()+", Lizenzpflichtig: "+Image.image.isLicensed()+", Internetsperre: "+Image.image.isInternet()+", CPU: "+Image.image.getCpu()+",  RAM: "+Image.image.getRam());
						CreateImageFreigabe_GUI ea=new CreateImageFreigabe_GUI();
						ea.setVisible(true);
						dispose();
						
					}
				});
				continueButton.setActionCommand("Cancel");
				buttonPane.add(continueButton);
				getRootPane().setDefaultButton(continueButton);
			}
		}
		
		JSeparator separator = new JSeparator();
		separator.setBounds(0, 78, 597, 2);
		getContentPane().add(separator);
		
		JSeparator separator_1 = new JSeparator();
		separator_1.setBounds(0, 627, 597, 2);
		getContentPane().add(separator_1);
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
				
		JMenu mnNewMenu_1 = new JMenu("Hilfe");
		menuBar.add(mnNewMenu_1);
		
		JMenuItem mntmFaq = new JMenuItem("FAQ");
		mntmFaq.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent arg0) {
				
				OpenLinks open = new OpenLinks();
				
				URI windows;
				try {
					windows = new URI(Links.getFAQ());
					
					open.openWebpage(windows);
					
				} catch (URISyntaxException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		mnNewMenu_1.add(mntmFaq);
		

		JMenuItem mntmOtrs = new JMenuItem("OTRS");
		mntmOtrs.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent arg0) {

				OpenLinks open = new OpenLinks();
				
				URI windows;
				try {
					windows = new URI(Links.getOTRS());
					
					open.openWebpage(windows);
					
				} catch (URISyntaxException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
		});
		mnNewMenu_1.add(mntmOtrs);
		
		JMenuItem menuItem = new JMenuItem("About");
		menuItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				About_GUI ab = new About_GUI();
				ab.setVisible(true);
			}
		});
		mnNewMenu_1.add(menuItem);
		
	}
}