diff options
author | Simon Rettberg | 2015-07-31 18:10:15 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-07-31 18:10:15 +0200 |
commit | a0c4a9c2c971a098550225a0401ae1838a0869d0 (patch) | |
tree | 1a04c19fc1c7957dbafd047106c8eb5e79752c10 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout | |
parent | [client] Mostly finished Wizard implementation (diff) | |
parent | [client] ImageDetailsWindow pretty much done (diff) | |
download | tutor-module-a0c4a9c2c971a098550225a0401ae1838a0869d0.tar.gz tutor-module-a0c4a9c2c971a098550225a0401ae1838a0869d0.tar.xz tutor-module-a0c4a9c2c971a098550225a0401ae1838a0869d0.zip |
Merge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1
Conflicts:
dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java | 115 |
1 files changed, 66 insertions, 49 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java index 1d41a739..abc5d9a8 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java @@ -1,17 +1,24 @@ package org.openslx.dozmod.gui.window.layout; import java.awt.BorderLayout; +import java.awt.Component; import java.awt.Font; import java.awt.Frame; +import java.awt.GridBagLayout; +import javax.swing.BorderFactory; +import javax.swing.Box; import javax.swing.BoxLayout; +import javax.swing.DefaultListCellRenderer; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; +import javax.swing.JList; import javax.swing.JPanel; +import javax.swing.JTextArea; import javax.swing.JTextField; import org.openslx.bwlp.thrift.iface.OperatingSystem; @@ -19,14 +26,15 @@ import org.openslx.bwlp.thrift.iface.ShareMode; import org.openslx.dozmod.gui.control.PersonLabel; import org.openslx.dozmod.gui.helper.GridPos; +@SuppressWarnings("serial") public abstract class ImageDetailsWindowLayout extends JDialog { - protected final JTextField txtTitle; - protected final JTextField txtDescription; + protected final JLabel txtTitle; + protected final JTextArea txtDescription; - protected final JLabel lblOwner; + protected final PersonLabel lblOwner; protected final JLabel lblCreateTime; - protected final JLabel lblUpdater; + protected final PersonLabel lblUpdater; protected final JLabel lblUpdateTime; protected final JComboBox<OperatingSystem> cboOperatingSystem; @@ -41,75 +49,84 @@ public abstract class ImageDetailsWindowLayout extends JDialog { public ImageDetailsWindowLayout(Frame modalParent) { super(modalParent, "der mit dem blub", ModalityType.APPLICATION_MODAL); - setResizable(false); + setResizable(true); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); setLayout(new BorderLayout()); - - // label panel on the west side of the borderlayout - JPanel labelPanel = new JPanel(); - labelPanel.setLayout(new BoxLayout(labelPanel, BoxLayout.PAGE_AXIS)); - labelPanel.add(new JLabel("Name")); - labelPanel.add(new JLabel("Beschreibung")); - labelPanel.add(new JLabel("Besitzer")); - labelPanel.add(new JLabel("Erstellt")); - labelPanel.add(new JLabel("Geändert durch")); - labelPanel.add(new JLabel("Änderungszeitpunkt")); - labelPanel.add(new JLabel("Betriebssystem")); - labelPanel.add(new JLabel("Virtualizer")); - labelPanel.add(new JLabel("Tags")); - labelPanel.add(new JLabel("Freigabemodus")); - labelPanel.add(new JLabel("Vorlage")); - add(labelPanel, BorderLayout.WEST); - - // content panel on the center of the borderlayout (to auto grab space) - JPanel contentPanel = new JPanel(); - contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.PAGE_AXIS)); - // name - txtTitle = new JTextField(); + + // use panel to put every info related widget in it + // then we will set the panel in BorderLayout.CENTER + JPanel infoPanel = new JPanel(); + infoPanel.setLayout(new GridBagLayout()); + infoPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + // -- name -- + txtTitle = new JLabel(); txtTitle.setFont(txtTitle.getFont().deriveFont(Font.BOLD, txtTitle.getFont().getSize2D() * 2)); - contentPanel.add(txtTitle); + infoPanel.add(txtTitle, GridPos.get(0, 0, 2, 1, true, false)); + // description - txtDescription = new JTextField(); - contentPanel.add(txtDescription); + txtDescription = new JTextArea(); + infoPanel.add(new JLabel("Beschreibung"), GridPos.get(0, 1, false, false)); + infoPanel.add(txtDescription, GridPos.get(1, 1, true, false)); + // owner - lblOwner = new JLabel(); - contentPanel.add(lblOwner); + lblOwner = new PersonLabel(); + infoPanel.add(new JLabel("Besitzer"), GridPos.get(0, 2, false, false)); + infoPanel.add(lblOwner, GridPos.get(1, 2, true, false)); // creation time lblCreateTime = new JLabel(); - contentPanel.add(lblCreateTime); + infoPanel.add(new JLabel("Erstellt"), GridPos.get(0, 3, false, false)); + infoPanel.add(lblCreateTime, GridPos.get(1, 3, true, false)); // last updater - lblUpdater = new JLabel(); - contentPanel.add(lblUpdater); + lblUpdater = new PersonLabel(); + infoPanel.add(new JLabel("Geändert durch"), GridPos.get(0, 4, false, false)); + infoPanel.add(lblUpdater, GridPos.get(1, 4, true, false)); // last updated lblUpdateTime = new JLabel(); - contentPanel.add(lblUpdateTime); + infoPanel.add(new JLabel("Änderungszeitpunkt"), GridPos.get(0, 5, false, false)); + infoPanel.add(lblUpdateTime, GridPos.get(1, 5, true, false)); // os - cboOperatingSystem = new JComboBox<OperatingSystem>(); - contentPanel.add(cboOperatingSystem); + cboOperatingSystem = new JComboBox<>(); + cboOperatingSystem.setEditable(false); + cboOperatingSystem.setRenderer(new DefaultListCellRenderer() { + @Override + public Component getListCellRendererComponent(JList<?> list, Object value, int index, + boolean isSelected, boolean cellHasFocus) { + if (value instanceof OperatingSystem) { + OperatingSystem org = (OperatingSystem) value; + setText(org.getOsName()); + } + return this; + } + }); + infoPanel.add(new JLabel("Betriebssystem"), GridPos.get(0, 6, false, false)); + infoPanel.add(cboOperatingSystem, GridPos.get(1, 6, true, false)); // virtualizer lblVirtualizer = new JLabel(); - contentPanel.add(lblVirtualizer); + infoPanel.add(new JLabel("Virtualizer"), GridPos.get(0, 7, false, false)); + infoPanel.add(lblVirtualizer, GridPos.get(1, 7, true, false)); // tags txtTags = new JTextField(); - contentPanel.add(txtTags); + infoPanel.add(new JLabel("Tags"), GridPos.get(0, 8, false, false)); + infoPanel.add(txtTags, GridPos.get(1, 8, true, false)); // share mode cboShareMode = new JComboBox<ShareMode>(); - contentPanel.add(cboShareMode); + infoPanel.add(new JLabel("Freigabemodus"), GridPos.get(0, 9, false, false)); + infoPanel.add(cboShareMode, GridPos.get(1, 9, true, false)); // template btnIsTemplate = new JCheckBox(); - contentPanel.add(btnIsTemplate); - // finally add the content panel to the main frame - add(contentPanel, BorderLayout.CENTER); + infoPanel.add(new JLabel("Vorlage"), GridPos.get(0, 10, false, false)); + infoPanel.add(btnIsTemplate, GridPos.get(1, 10, true, false)); + // finally add the infoPanel itself to the main view + add(infoPanel, BorderLayout.CENTER); // button panel on the bottom JPanel buttonPanel = new JPanel(); - buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.PAGE_AXIS)); - btnSaveChanges = new JButton(); - btnClose = new JButton(); + buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); + btnSaveChanges = new JButton("Speichern"); + btnClose = new JButton("Schließen"); buttonPanel.add(btnSaveChanges); + buttonPanel.add(Box.createGlue()); buttonPanel.add(btnClose); add(buttonPanel, BorderLayout.SOUTH); - validate(); - pack(); } } |