diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-05-03 21:55:14 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-05-03 21:55:14 +0200 |
commit | a274c2b02ed0a5baa6da61d36f4d16e7b10d3dc1 (patch) | |
tree | 2b4ba53518d8e329fb4aa3fcdbe553a990560d5e /src/jrummikub/view/impl/TablePanel.java | |
parent | 51f70cafe316a1284db82a4cfb3c09cba8c12293 (diff) | |
download | JRummikub-a274c2b02ed0a5baa6da61d36f4d16e7b10d3dc1.tar JRummikub-a274c2b02ed0a5baa6da61d36f4d16e7b10d3dc1.zip |
Rescale collection; add bottom margin to table for collection
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@99 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/view/impl/TablePanel.java')
-rw-r--r-- | src/jrummikub/view/impl/TablePanel.java | 91 |
1 files changed, 48 insertions, 43 deletions
diff --git a/src/jrummikub/view/impl/TablePanel.java b/src/jrummikub/view/impl/TablePanel.java index dbe5496..abbb867 100644 --- a/src/jrummikub/view/impl/TablePanel.java +++ b/src/jrummikub/view/impl/TablePanel.java @@ -39,6 +39,7 @@ class TablePanel extends AbstractStonePanel implements ITablePanel { private final static float HORIZONTAL_MARGIN = 1.5f; private final static float VERTICAL_MARGIN = 1; private final static float CONNECTOR_WIDTH = 0.25f; + private final float COLLECTION_RATIO = 0.1f; private final int COLLECTION_GAP = 5; private JLabel leftPlayerLabel, topPlayerLabel, rightPlayerLabel; @@ -111,6 +112,46 @@ class TablePanel extends AbstractStonePanel implements ITablePanel { repaint(); } + /** + * Creates a new Table instance + */ + TablePanel() { + setLayout(null); + + leftPlayerLabel = new JLabel(); + leftPlayerLabel.setForeground(Color.WHITE); + leftPlayerLabel.setHorizontalAlignment(JLabel.LEFT); + leftPlayerLabel.setHorizontalTextPosition(JLabel.LEFT); + add(leftPlayerLabel); + + topPlayerLabel = new JLabel(); + topPlayerLabel.setHorizontalAlignment(JLabel.CENTER); + topPlayerLabel.setHorizontalTextPosition(JLabel.CENTER); + topPlayerLabel.setVerticalAlignment(JLabel.TOP); + topPlayerLabel.setVerticalTextPosition(JLabel.TOP); + topPlayerLabel.setForeground(Color.WHITE); + add(topPlayerLabel); + + rightPlayerLabel = new JLabel(); + rightPlayerLabel.setForeground(Color.WHITE); + rightPlayerLabel.setHorizontalAlignment(JLabel.RIGHT); + rightPlayerLabel.setHorizontalTextPosition(JLabel.RIGHT); + add(rightPlayerLabel); + + stoneCollection = new StoneCollectionPanel(); + add(stoneCollection); + + ComponentListener rescaleListener = new ComponentAdapter() { + @Override + public void componentResized(ComponentEvent e) { + rescale(); + } + }; + + addComponentListener(rescaleListener); + stoneCollection.addComponentListener(rescaleListener); + } + private Rectangle2D calculateTableExtent() { float minx = -MIN_VISIBLE_WIDTH / 2, maxx = MIN_VISIBLE_WIDTH / 2; float miny = -MIN_VISIBLE_HEIGHT / 2, maxy = MIN_VISIBLE_HEIGHT / 2; @@ -153,52 +194,14 @@ class TablePanel extends AbstractStonePanel implements ITablePanel { float widthScale = width / (float) extent.getWidth() * StonePainter.WIDTH_SCALE; - float heightScale = height / (float) extent.getHeight() - * StonePainter.HEIGHT_SCALE; + float heightScale = height * (1 - COLLECTION_RATIO) + / (float) extent.getHeight() * StonePainter.HEIGHT_SCALE; getStonePainter().setScale(Math.min(widthScale, heightScale)); - repaint(); - } - - /** - * Creates a new Table instance - */ - TablePanel() { - setLayout(null); - - leftPlayerLabel = new JLabel(); - leftPlayerLabel.setForeground(Color.WHITE); - leftPlayerLabel.setHorizontalAlignment(JLabel.LEFT); - leftPlayerLabel.setHorizontalTextPosition(JLabel.LEFT); - add(leftPlayerLabel); - - topPlayerLabel = new JLabel(); - topPlayerLabel.setHorizontalAlignment(JLabel.CENTER); - topPlayerLabel.setHorizontalTextPosition(JLabel.CENTER); - topPlayerLabel.setVerticalAlignment(JLabel.TOP); - topPlayerLabel.setVerticalTextPosition(JLabel.TOP); - topPlayerLabel.setForeground(Color.WHITE); - add(topPlayerLabel); - - rightPlayerLabel = new JLabel(); - rightPlayerLabel.setForeground(Color.WHITE); - rightPlayerLabel.setHorizontalAlignment(JLabel.RIGHT); - rightPlayerLabel.setHorizontalTextPosition(JLabel.RIGHT); - add(rightPlayerLabel); - - stoneCollection = new StoneCollectionPanel(); - add(stoneCollection); + stoneCollection.setStoneHeight((int) (height * COLLECTION_RATIO)); - ComponentListener rescaleListener = new ComponentAdapter() { - @Override - public void componentResized(ComponentEvent e) { - rescale(); - } - }; - - addComponentListener(rescaleListener); - stoneCollection.addComponentListener(rescaleListener); + repaint(); } protected boolean handleOtherClickEvent(Position pos) { @@ -235,7 +238,9 @@ class TablePanel extends AbstractStonePanel implements ITablePanel { Rectangle2D extent = calculateTableExtent(); return new Pair<Integer, Integer>((int) (width / 2 - extent.getCenterX() - * stoneWidth), (int) (height / 2 - extent.getCenterY() * stoneHeight)); + * stoneWidth), + (int) ((height * (1 - COLLECTION_RATIO)) / 2 - extent.getCenterY() + * stoneHeight)); } private void paintStoneSet(Graphics2D g, StoneSet stoneSet, Position pos) { |