diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-08-09 04:26:17 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-08-09 04:26:17 +0000 |
commit | 71946bc3b406beb3d1fb9b447204e4236d645c43 (patch) | |
tree | cdf9958b411887bead2263ea8ef0bdfc8eae6319 /libjava/javax/swing/plaf/basic/BasicListUI.java | |
parent | 0fc014c9ce8232f14be66144bf5a4c08a3e5ffe7 (diff) | |
download | ppe42-gcc-71946bc3b406beb3d1fb9b447204e4236d645c43.tar.gz ppe42-gcc-71946bc3b406beb3d1fb9b447204e4236d645c43.zip |
AWT/Swing merge from GNU Classpath.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56147 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/javax/swing/plaf/basic/BasicListUI.java')
-rw-r--r-- | libjava/javax/swing/plaf/basic/BasicListUI.java | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/libjava/javax/swing/plaf/basic/BasicListUI.java b/libjava/javax/swing/plaf/basic/BasicListUI.java new file mode 100644 index 00000000000..abac5045031 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI.java @@ -0,0 +1,132 @@ +package javax.swing.plaf.basic; + +import javax.swing.plaf.*; +import javax.swing.*; +import java.awt.*; + + +public class BasicListUI extends ListUI +{ + int gap_between_cells; + Color textColor, disabledTextColor, pressedBackgroundColor, normalBackgroundColor; + + + public static ComponentUI createUI(final JComponent c) + { + return new BasicButtonUI(); + } + + + public void installUI(final JComponent c) + { + super.installUI(c); + + textColor = new Color(0,0,0); + disabledTextColor = new Color(130, 130, 130); + pressedBackgroundColor = new Color(150,150,150); + normalBackgroundColor = new Color(192,192,192); + } + + public Dimension getPreferredSize(JComponent c) + { + JList l = (JList) c; + + System.out.println("XXXXXXXXXXXXXXXxx getPreferredSize------------> " + l); + + + int rows = l.getVisibleRowCount(); + + ListCellRenderer render = l.getCellRenderer(); + + int width = 200; + int height = rows * 16; + + if (l.getModel().getSize() == 0) + { + return new Dimension(width, height); + } + + System.out.println("BASIC_LIST_UI ====-> " + l.getModel().getElementAt(0)); + + Component elt = render.getListCellRendererComponent(l, + l.getModel().getElementAt(0), + 0, + false, + false); + Dimension a = elt.getPreferredSize(); + if (a == null) + { + return new Dimension(width, height); + } + + return new Dimension(a.width, + a.height * rows); + } + + public void paintBackground(Graphics g, + JComponent c) + { + Dimension size = getPreferredSize(c); + + g.setColor(normalBackgroundColor); + g.fillRect(0,0,size.width, size.height); + } + + public void paint(Graphics g, + JComponent c) + { + JList l = (JList) c; + + int rows = l.getVisibleRowCount(); + + ListCellRenderer render = l.getCellRenderer(); + + System.out.println("RENDER-JLIST: " + rows + ", " + l.getModel().getSize()); + + paintBackground(g, c); + + if (l.getModel().getSize() == 0) + return; + + // use element 0 to figure out how big we are: + Component elt = render.getListCellRendererComponent(l, + l.getModel().getElementAt(0), + 0, + false, + false); + Dimension dim = elt.getPreferredSize(); + + Rectangle a = new Rectangle(0, + 0, + dim.width, + dim.height); + + for (int i=0;i<l.getModel().getSize();i++) + { + boolean is_sel = false; + boolean has_focus = false; + + Component comp = render.getListCellRendererComponent(l, + l.getModel().getElementAt(i), + i, + is_sel, + has_focus); + + //System.out.println("AAAAA=> " + a + ", " + comp + ", index = " + i); + + comp.setBounds(a); + + comp.paint(g); + + a.y += dim.height + gap_between_cells; + } + } +} + + + + + + + + |