From 11d616f5b0d31ce4e169f2847d224049ffcbcf8b Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 25 May 2011 17:33:50 +0200 Subject: Started implementation of settings panel git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@276 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/view/impl/SettingsPanel.java | 109 +++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 src/jrummikub/view/impl/SettingsPanel.java (limited to 'src/jrummikub/view/impl/SettingsPanel.java') diff --git a/src/jrummikub/view/impl/SettingsPanel.java b/src/jrummikub/view/impl/SettingsPanel.java new file mode 100644 index 0000000..9aba78c --- /dev/null +++ b/src/jrummikub/view/impl/SettingsPanel.java @@ -0,0 +1,109 @@ +package jrummikub.view.impl; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.util.LinkedList; + +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTabbedPane; +import javax.swing.JTextField; +import javax.swing.border.CompoundBorder; +import javax.swing.border.EmptyBorder; +import javax.swing.border.LineBorder; + +@SuppressWarnings("serial") +class SettingsPanel extends JPanel { + private JPanel playerSetupPanel; + private JPanel playerSettingsViewport; + private JPanel ruleSetupPanel; + + private LinkedList playerSettingsPanels = new LinkedList(); + + private void addPlayerSettings() { + PlayerSettingsPanel panel = new PlayerSettingsPanel(); + playerSettingsPanels.add(panel); + playerSettingsViewport.add(panel, + playerSettingsViewport.getComponentCount() - 1); + } + + private void createPlayerSetupPanel() { + playerSetupPanel = new JPanel(); + playerSetupPanel.setLayout(new BorderLayout()); + + playerSettingsViewport = new JPanel(); + playerSettingsViewport.setLayout(new BoxLayout(playerSettingsViewport, + BoxLayout.Y_AXIS)); + + JScrollPane scrollPane = new JScrollPane(playerSettingsViewport, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + playerSetupPanel.add(scrollPane); + + playerSettingsViewport.add(new JButton("Neuer Spieler")); + + addPlayerSettings(); + addPlayerSettings(); + } + + private void createRuleSetupPanel() { + ruleSetupPanel = new JPanel(); + } + + SettingsPanel() { + setLayout(new BorderLayout()); + + final JTabbedPane tabbedPane = new JTabbedPane(); + + createPlayerSetupPanel(); + tabbedPane.addTab("Spieler", playerSetupPanel); + + createRuleSetupPanel(); + tabbedPane.addTab("Regeln", ruleSetupPanel); + + add(tabbedPane); + + JButton startButton = new JButton("Spiel starten"); + add(startButton, BorderLayout.SOUTH); + + setBorder(new CompoundBorder(new LineBorder(Color.BLACK), new EmptyBorder( + 10, 10, 10, 10))); + + addComponentListener(new ComponentAdapter() { + @Override + public void componentResized(ComponentEvent e) { + // Insets insets = getInsets(); + // int x = insets.left, y = insets.top, width = getWidth() - insets.left + // - insets.right, height = getHeight() - insets.top - insets.bottom; + + // tabbedPane.setBounds(x, y, width, height); + } + }); + } + + private static class PlayerSettingsPanel extends JPanel { + PlayerSettingsPanel() { + setLayout(new BorderLayout()); + + add(new JButton(ImageUtil.createColorIcon(Color.RED, 16)), + BorderLayout.WEST); + add(new JTextField()); + add(new JButton("\u2716"), BorderLayout.EAST); + } + + @Override + public Dimension getPreferredSize() { + return getComponent(1).getPreferredSize(); + } + + @Override + public Dimension getMaximumSize() { + return new Dimension(Integer.MAX_VALUE, getPreferredSize().height); + } + } +} -- cgit v1.2.3