diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/StatusHeader.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/StatusHeader.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/StatusHeader.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/StatusHeader.java new file mode 100644 index 00000000..ae2e8adb --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/helper/StatusHeader.java @@ -0,0 +1,64 @@ +package org.openslx.dozmod.gui.helper; + +import org.openslx.dozmod.gui.Gui; +import org.openslx.dozmod.gui.control.QLabel; +import org.openslx.dozmod.util.ResourceLoader; + +import javax.swing.*; +import java.awt.*; + +/** + * StatusHeader can be used in GUI-Dialogs to inform a user about a current + * state of an Input. See {@link org.openslx.dozmod.gui.window.layout.ContainerBindMountWindowLayout} how to + * use it. + */ +public class StatusHeader extends JPanel { + + private final QLabel titleLabel; + private final QLabel messageLabel; + + + public StatusHeader(Container contentPane, String message) { + this(contentPane, "", message); + } + + public StatusHeader(Container contentPane, String title, String message) { + + this.setMinimumSize(Gui.getScaledDimension(0, 100)); + this.setOpaque(true); + this.setBackground(Color.WHITE); + this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); + this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + + titleLabel = new QLabel(title); + messageLabel = new QLabel(message); + titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD)); + titleLabel.setForeground(Color.BLACK); + messageLabel.setForeground(Color.BLACK); + messageLabel.setHorizontalTextPosition(SwingConstants.RIGHT); + + this.add(titleLabel); + this.add(messageLabel); + + JPanel headerWrapper = new JPanel(); + GridManager grid = new GridManager(headerWrapper, 1, false); + grid.add(this).expand(true, false).fill(true, false); + grid.add(new JSeparator()).expand(true, false).fill(true, false); + grid.finish(false); + contentPane.add(headerWrapper, BorderLayout.PAGE_START); + } + + + + public void updateHeader(String pageTitle, String pageDesc, Icon icon, Color color) { + titleLabel.setText(pageTitle); + messageLabel.setText(pageDesc); + messageLabel.setIcon(ResourceLoader.getScaledIcon(icon, messageLabel.getHeight(), messageLabel)); + messageLabel.setForeground(color); + messageLabel.validate(); + } + + public void updateStatus(String statusMessage) { + messageLabel.setText(statusMessage); + } +} |