package org.openslx.dozmod.gui.wizard.layout; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JEditorPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JButton; import javax.swing.text.StyledEditorKit; import java.awt.Dimension; import java.awt.GridLayout; import org.openslx.bwlp.thrift.iface.OperatingSystem; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.control.ComboBox; import org.openslx.dozmod.gui.control.ComboBox.ComboBoxRenderer; import org.openslx.dozmod.gui.control.QLabel; import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.WizardPage; import org.openslx.thrifthelper.Comparators; @SuppressWarnings("serial") public abstract class ImageMetaDataPageLayout extends WizardPage { protected final JComboBox cboOperatingSystem; protected final JEditorPane txtDescription; protected final JTextArea startCommand; protected final QLabel sCommandCaption; protected final JScrollPane startCommandPane; protected final JCheckBox chkLicenseRestricted; protected final JCheckBox chkIsTemplate; protected final JButton btnBold; protected final JButton btnItalic; protected final JButton btnUnderline; /** * wizard page for entering image data at creating or editing an image * * @param wizard */ public ImageMetaDataPageLayout(Wizard wizard) { super(wizard, "Metadaten"); setDescription("Geben Sie bitte einen aussagekräftigen Namen für die neue VM ein."); GridManager grid = new GridManager(this, 2, false); QLabel osCaption = new QLabel("Betriebssystem"); cboOperatingSystem = new ComboBox<>(Comparators.operatingSystem, new ComboBoxRenderer() { @Override public String renderItem(OperatingSystem item) { if (item == null) return null; return item.getOsName(); } }); cboOperatingSystem.setEditable(false); grid.add(osCaption); grid.add(cboOperatingSystem); sCommandCaption = new QLabel("Startbefehl"); startCommand = new JTextArea(1, 50); startCommand.setMinimumSize(Gui.getScaledDimension(0, 35)); startCommand.setLineWrap(true); startCommand.setWrapStyleWord(true); startCommandPane = new JScrollPane(startCommand, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); startCommandPane.setMinimumSize(startCommand.getMinimumSize()); grid.add(sCommandCaption); grid.add(startCommandPane).fill(true, false).expand(true, false); grid.nextRow(); // buttons for text editing JPanel editingPanel = new JPanel(); editingPanel.setLayout(new GridLayout(1, 3)); JPanel emptyPanel = new JPanel(); grid.add(emptyPanel); btnBold = new JButton(new StyledEditorKit.BoldAction()); btnBold.setIcon(Gui.getScaledIconResource("/img/bold.png", "B", 24, this)); btnBold.setText(""); btnItalic = new JButton(new StyledEditorKit.ItalicAction()); btnItalic.setIcon(Gui.getScaledIconResource("/img/italic.png", "B", 24, this)); btnItalic.setText(""); btnUnderline = new JButton(new StyledEditorKit.UnderlineAction()); btnUnderline.setIcon(Gui.getScaledIconResource("/img/underline.png", "B", 24, this)); btnUnderline.setText(""); editingPanel.add(btnBold); editingPanel.add(btnItalic); editingPanel.add(btnUnderline); grid.add(editingPanel); grid.nextRow(); // description QLabel descriptionCaption = new QLabel("Beschreibung"); txtDescription = new JEditorPane(); txtDescription.setContentType("text/html"); JScrollPane descPane = new JScrollPane(txtDescription, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); grid.add(descriptionCaption); grid.add(descPane).fill(true, true).expand(true, true); grid.nextRow(); chkLicenseRestricted = new JCheckBox("VM enthält lizenzpflichtige Software"); chkLicenseRestricted.setSelected(true); grid.add(chkLicenseRestricted, 2); grid.nextRow(); // -- end permissions group -- chkIsTemplate = new JCheckBox("Vorlage erstellen"); grid.add(chkIsTemplate, 2); grid.nextRow(); grid.finish(true); } public String getImageDescription() { return txtDescription.getText(); } }