package gui.image;
import gui.intro.About_GUI;
import gui.intro.Login_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.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
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 server.generated.Server.Client;
import thrift.ThriftConnection;
import util.GuiOrganizer;
import util.OpenLinks;
import models.Image;
import models.Links;
import javax.swing.JComboBox;
import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import javax.swing.JCheckBox;
@SuppressWarnings("serial")
public class EditImageTechnisch_GUI extends JFrame {
/**
* Logger instance for this class.
*/
private final static Logger LOGGER = Logger.getLogger(EditImageTechnisch_GUI.class);
private final JPanel contentPanel = new JPanel();
String[] result;
JSpinner spinnerCPU;
JSpinner spinnerRam;
private JCheckBox chckbxIsLicensed;
private JCheckBox chckbxIsInternetBlocked;
private final ButtonGroup buttonGrouplicense = new ButtonGroup();
private final ButtonGroup buttonGroupInternet = new ButtonGroup();
private final ButtonGroup buttonGroupVorlage = new ButtonGroup();
JComboBox comboBox;
ThriftConnection con = new ThriftConnection();
Client client = models.Client.clientcon.getClient();
private static final String HELP_MESSAGE = "
" +
"Bearbeiten Sie hier die technischen Angaben zu Ihrem Image, die Sie beim Erzeugen des Images hinterlegt haben.
" +
"Wenn sich die technischen Anforderungen an Ihr Image geändert haben, müssen Sie es nicht erneut hochladen,
" +
"sondern können die Angaben direkt hier korrigieren. Die Daten werden dann für Ihr Image übernommen." +
"
";
/**
* Create the dialog.
*/
public EditImageTechnisch_GUI() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
// Beendet die Anwendung bei Klick auf das X
System.exit(0);
}
});
// Verhindert das Vergrößern des Fensters
setResizable(false);
try {
// setzt das Look & Feel
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException | UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Setzt den Titel des Fensters
setTitle("bwLehrpool Suite - Image bearbeiten");
// Zentriert das Fenster
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, 532);
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, 25, 557, 167);
contentPanel.add(panel_1);
panel_1.setLayout(null);
JLabel lblNewLabel_2 = new JLabel(
"Image enthält lizenzpflichtige Software:");
lblNewLabel_2.setBounds(10, 58, 250, 20);
panel_1.add(lblNewLabel_2);
chckbxIsLicensed = new JCheckBox("");
chckbxIsLicensed.setBounds(266, 57, 97, 23);
panel_1.add(chckbxIsLicensed);
chckbxIsInternetBlocked = new JCheckBox("");
chckbxIsInternetBlocked.setBounds(266, 85, 97, 23);
panel_1.add(chckbxIsInternetBlocked);
//rdbtnlicenseJa = new JRadioButton("Ja");
//rdbtnlicenseJa.setSelected(true);
//buttonGrouplicense.add(rdbtnlicenseJa);
//rdbtnlicenseJa.setBounds(266, 76, 109, 23);
//panel_1.add(rdbtnlicenseJa);
//rdbtnlicenseNein = new JRadioButton("Nein");
//buttonGrouplicense.add(rdbtnlicenseNein);
//rdbtnlicenseNein.setBounds(377, 76, 53, 23);
//panel_1.add(rdbtnlicenseNein);
JLabel lblInternetIstInnerhalb = new JLabel(
"Internet ist innerhalb des Images gesperrt:");
lblInternetIstInnerhalb.setBounds(10, 86, 250, 20);
panel_1.add(lblInternetIstInnerhalb);
/*rdbtnInternetJa = new JRadioButton("Ja");
buttonGroupInternet.add(rdbtnInternetJa);
rdbtnInternetJa.setBounds(266, 104, 109, 23);
panel_1.add(rdbtnInternetJa);
rdbtnInternetNein = new JRadioButton("Nein");
rdbtnInternetNein.setSelected(true);
buttonGroupInternet.add(rdbtnInternetNein);
rdbtnInternetNein.setBounds(377, 104, 53, 23);
panel_1.add(rdbtnInternetNein);
*/
JLabel label = new JLabel("Lizenzserver eintragen:");
label.setBounds(10, 115, 250, 20);
panel_1.add(label);
JButton button = new JButton("Server-Adresse...");
button.setEnabled(false);
button.setBounds(266, 114, 157, 23);
panel_1.add(button);
//radioButtonVorlageJa = new JRadioButton("Ja");
//buttonGroupVorlage.add(radioButtonVorlageJa);
//radioButtonVorlageJa.setBounds(266, 50, 41, 23);
//panel_1.add(radioButtonVorlageJa);
//radioButtonVorlageNein = new JRadioButton("Nein");
//radioButtonVorlageNein.setSelected(true);
//buttonGroupVorlage.add(radioButtonVorlageNein);
//radioButtonVorlageNein.setBounds(377, 50, 46, 23);
//panel_1.add(radioButtonVorlageNein);
JLabel lblBetriebssystem = new JLabel("Betriebssystem:");
lblBetriebssystem.setBounds(10, 26, 250, 20);
panel_1.add(lblBetriebssystem);
comboBox = new JComboBox();
try {
List os=client.getAllOS();
for(int i=0;i");
label_1.setBounds(69, 0, 13, 14);
contentPanel.add(label_1);
JLabel lblVlimage = new JLabel("Image");
lblVlimage.setForeground(Color.BLUE);
lblVlimage.setBounds(81, 0, 45, 14);
contentPanel.add(lblVlimage);
JLabel label_2 = new JLabel(">");
label_2.setBounds(133, 0, 13, 14);
contentPanel.add(label_2);
JLabel lblNewLabel_1 = new JLabel("Neu");
lblNewLabel_1.setBounds(146, 0, 46, 14);
contentPanel.add(lblNewLabel_1);
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, 203, 557, 329);
contentPanel.add(panel_2);
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, 43, 537, 55);
panel_2.add(txtrHinweisSolltenSie);
JLabel lblNewLabel_3 = new JLabel(
"Wie viel Arbeitsspeicher empfehlen Sie für das Image:");
lblNewLabel_3.setBounds(10, 109, 280, 20);
panel_2.add(lblNewLabel_3);
JLabel lblMindestens = new JLabel("mindestens");
lblMindestens.setBounds(315, 109, 60, 20);
panel_2.add(lblMindestens);
spinnerRam = new JSpinner();
spinnerRam.setModel(new SpinnerNumberModel(1, 1, 8, 1));
spinnerRam.setBounds(385, 106, 29, 20);
spinnerRam.setValue(Image.image.getRam());
panel_2.add(spinnerRam);
JLabel lblGbyte = new JLabel("GByte");
lblGbyte.setBounds(424, 109, 46, 20);
panel_2.add(lblGbyte);
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(20, 129, 280, 55);
panel_2.add(txtrBeispielWindows);
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(20, 244, 280, 55);
panel_2.add(txtrBeispielWindows_1);
JLabel lblWieVieleCpus = new JLabel(
"Wie viele CPUs empfehlen Sie für das Image:");
lblWieVieleCpus.setBounds(10, 219, 280, 20);
panel_2.add(lblWieVieleCpus);
JLabel label_3 = new JLabel("mindestens");
label_3.setBounds(315, 219, 60, 20);
panel_2.add(label_3);
spinnerCPU = new JSpinner();
spinnerCPU.setModel(new SpinnerNumberModel(1, 1, 4, 1));
spinnerCPU.setBounds(385, 216, 29, 20);
spinnerCPU.setValue(Image.image.getCpu());
panel_2.add(spinnerCPU);
JLabel lblKerne = new JLabel("Kerne");
lblKerne.setBounds(424, 219, 46, 20);
panel_2.add(lblKerne);
{
JPanel buttonPane = new JPanel();
buttonPane.setBounds(0, 640, 597, 33);
buttonPane.setBackground(SystemColor.menu);
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane);
{
JButton okButton = new JButton("Zurück");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Setzt die Imagewerte in das Model
Image.image.setCpu(Integer.valueOf(
spinnerCPU.getValue().toString()).intValue());
Image.image.setRam(Integer.valueOf(
spinnerRam.getValue().toString()).intValue());
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);
}
Image.image.setOS(comboBox.getSelectedItem().toString());
// oeffnet das vorherige Fenster
EditImageAllgemein_GUI ei = new EditImageAllgemein_GUI();
ei.setVisible(true);
dispose();
}
});
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Weiter");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Image.image.setCpu(Integer.valueOf(
spinnerCPU.getValue().toString()).intValue());
Image.image.setRam(Integer.valueOf(
spinnerRam.getValue().toString()).intValue());
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);
}
Image.image.setOS(comboBox.getSelectedItem().toString());
LOGGER.info("OS: " + Image.image.getOS() +
", Vorlage: " + Image.image.isVorlage() +
", Lizenzpflichtig: " + Image.image.isLicensed() +
", Internetsperre: " + Image.image.isInternet() +
", CPU: " + Image.image.getCpu() +
", RAM: " + Image.image.getRam());
// oeffnet das naechste Fenster
PermissionEditImage_GUI ea=new PermissionEditImage_GUI();
ea.setVisible(true);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
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 mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About_GUI ab = new About_GUI();
ab.setVisible(true);
}
});
mnNewMenu_1.add(mntmAbout);
JMenu mnNewMenu_Info = new JMenu("Info");
mnNewMenu_Info.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
JOptionPane.showMessageDialog(null, HELP_MESSAGE, "Hilfe zu dieser Oberfläche", JOptionPane.INFORMATION_MESSAGE);
}
});
menuBar.add(mnNewMenu_Info);
}
}