From: Frederick W. <fre...@us...> - 2012-01-11 18:57:30
|
rails/ui/swing/MessagePanel.java | 15 ++++++++------- rails/ui/swing/ORPanel.java | 2 ++ rails/ui/swing/ORWindow.java | 11 ++++++++++- rails/ui/swing/hexmap/HexMap.java | 2 +- 4 files changed, 21 insertions(+), 9 deletions(-) New commits: commit 268fbf6844786c9c36948a55566123b7159c1d1e Author: Frederick Weld <fre...@gm...> Date: Wed Jan 11 19:19:41 2012 +0100 Prohibited resizing of OR's message panel (and ORPanel to some extent) Frequent resizing by the message panel and the OR panel caused the map panel to being resized - which was not desirable in case of activated auto-zoom. Message Panel is now fixed to the height of two lines. The additional vertical scrollbar allows for text containing more than two lines. ORPanel used to resize itself for each set-revenue step as the size of the revenue input box did not match the one of the revenue read-only field. These sizes are now aligned. (ORPanel still resizes if companies are added/removed from the list.) diff --git a/rails/ui/swing/MessagePanel.java b/rails/ui/swing/MessagePanel.java index 04f1add..6e8e1fc 100644 --- a/rails/ui/swing/MessagePanel.java +++ b/rails/ui/swing/MessagePanel.java @@ -8,9 +8,14 @@ import java.util.ArrayList; import java.util.List; import javax.swing.*; +import javax.swing.border.EmptyBorder; public class MessagePanel extends JPanel { private static final long serialVersionUID = 1L; + + //the height of this panel (fixed because scroll bar is used) + public static final int fixedHeight = 45; + public static final int scrollUnit = 8; private JLabel message; @@ -25,14 +30,14 @@ public class MessagePanel extends JPanel { super(); setBackground(background); - setLines(1); - setBorder(BorderFactory.createLoweredBevelBorder()); - + setBorder(new EmptyBorder(0,0,0,0)); + message = new JLabel(""); message.setBackground(background); message.setVerticalAlignment(SwingConstants.CENTER); message.setHorizontalAlignment(SwingConstants.CENTER); message.setOpaque(true); + add(message); message.setVisible(true); setVisible(true); @@ -101,8 +106,4 @@ public class MessagePanel extends JPanel { updateMessageText(); } - public void setLines(int numberOfLines) { - setSize(1000, numberOfLines * 12); - } - } diff --git a/rails/ui/swing/ORPanel.java b/rails/ui/swing/ORPanel.java index aeb19e7..e8f8254 100644 --- a/rails/ui/swing/ORPanel.java +++ b/rails/ui/swing/ORPanel.java @@ -541,6 +541,8 @@ implements ActionListener, KeyListener, RevenueListener { f = revenue[i] = new Field(c.getLastRevenueModel()); addField(f, revXOffset, revYOffset + i, 1, 1, 0, visible); f = revenueSelect[i] = new Spinner(0, 0, 0, 10); + //zero-border so that size matches revenue field (thus, averting or panel resize) + f.setBorder(new javax.swing.border.EmptyBorder(0,0,0,0)); addField(f, revXOffset, revYOffset + i, 1, 1, 0, false); // deactived below, as this caused problems by gridpanel rowvisibility function -- sfy // revenue[i].addDependent(revenueSelect[i]); diff --git a/rails/ui/swing/ORWindow.java b/rails/ui/swing/ORWindow.java index c290ac2..dcef993 100644 --- a/rails/ui/swing/ORWindow.java +++ b/rails/ui/swing/ORWindow.java @@ -2,13 +2,17 @@ package rails.ui.swing; import java.awt.BorderLayout; +import java.awt.Dimension; import java.awt.Rectangle; import java.awt.event.*; import java.util.ArrayList; import java.util.List; +import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.border.EmptyBorder; import org.apache.log4j.Logger; @@ -61,7 +65,12 @@ public class ORWindow extends JFrame implements ActionPerformer { getContentPane().setLayout(new BorderLayout()); messagePanel = new MessagePanel(); - getContentPane().add(messagePanel, BorderLayout.NORTH); + JScrollPane slider = new JScrollPane(messagePanel); + slider.setBorder(BorderFactory.createLoweredBevelBorder()); + slider.getVerticalScrollBar().setUnitIncrement(MessagePanel.scrollUnit); + slider.setPreferredSize(new Dimension(100,MessagePanel.fixedHeight)); + + getContentPane().add(slider, BorderLayout.NORTH); mapPanel = new MapPanel(gameUIManager); getContentPane().add(mapPanel, BorderLayout.CENTER); commit a0e77366eec4ee4652011cb0e06722878d3c1c57 Author: Frederick Weld <fre...@gm...> Date: Wed Jan 11 16:28:59 2012 +0100 Fixed bug in dirty region determination for train routes Bug could have caused the glitches (off-screen painting) observed before. diff --git a/rails/ui/swing/hexmap/HexMap.java b/rails/ui/swing/hexmap/HexMap.java index e862f6d..6029c93 100644 --- a/rails/ui/swing/hexmap/HexMap.java +++ b/rails/ui/swing/hexmap/HexMap.java @@ -155,7 +155,7 @@ public abstract class HexMap implements MouseListener, pathRect.x - margin, pathRect.y - margin, pathRect.width + margin * 2, - pathRect.y + margin * 2); + pathRect.height + margin * 2); if (r == null) { r = pathMarginRect; } else { |