OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [javax/] [swing/] [plaf/] [basic/] [BasicComboBoxRenderer.java] - Blame information for rev 772

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 772 jeremybenn
/* BasicComboBoxRenderer.java --
2
   Copyright (C) 2004, 2005  Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
 
39
package javax.swing.plaf.basic;
40
 
41
import java.awt.Component;
42
import java.awt.Dimension;
43
import java.io.Serializable;
44
 
45
import javax.swing.Icon;
46
import javax.swing.JComboBox;
47
import javax.swing.JLabel;
48
import javax.swing.JList;
49
import javax.swing.ListCellRenderer;
50
import javax.swing.border.Border;
51
import javax.swing.border.EmptyBorder;
52
 
53
/**
54
 * A renderer for a {@link JComboBox}.
55
 *
56
 * @author Olga Rodimina
57
 */
58
public class BasicComboBoxRenderer
59
  extends JLabel
60
  implements ListCellRenderer, Serializable
61
{
62
  /**
63
   * A shared border instance for all renderers.
64
   */
65
  protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
66
 
67
  /**
68
   * Creates a new <code>BasicComboBoxRenderer</code> object.
69
   */
70
  public BasicComboBoxRenderer()
71
  {
72
    setOpaque(true);
73
    setBorder(noFocusBorder);
74
  }
75
 
76
  /**
77
   * Returns preferredSize of the renderer
78
   *
79
   * @return preferredSize of the renderer
80
   */
81
  public Dimension getPreferredSize()
82
  {
83
    if (this.getText() != null && ! this.getText().equals(""))
84
      return super.getPreferredSize();
85
    else
86
      {
87
        // If the combo box option's text is empty or null, it won't size
88
        // properly (ie, it'll be way too short)... so we throw in a dummy
89
        // space to trick the superclass's sizing methods.
90
        String oldText = this.getText();
91
        this.setText(" ");
92
        Dimension d = super.getPreferredSize();
93
        this.setText(oldText);
94
        return d;
95
      }
96
  }
97
 
98
  /**
99
   * Returns a component that has been configured to display the given
100
   * <code>value</code>.
101
   *
102
   * @param list List of items for which to the background and foreground
103
   *        colors
104
   * @param value object that should be rendered in the cell
105
   * @param index index of the cell in the list of items.
106
   * @param isSelected draw cell highlighted if isSelected is true
107
   * @param cellHasFocus draw focus rectangle around cell if the cell has
108
   *        focus
109
   *
110
   * @return Component that will be used to draw the desired cell.
111
   */
112
  public Component getListCellRendererComponent(JList list, Object value,
113
                                                int index, boolean isSelected,
114
                                                boolean cellHasFocus)
115
  {
116
    if (isSelected)
117
      {
118
        setBackground(list.getSelectionBackground());
119
        setForeground(list.getSelectionForeground());
120
      }
121
    else
122
      {
123
        setBackground(list.getBackground());
124
        setForeground(list.getForeground());
125
      }
126
    setFont(list.getFont());
127
 
128
    if (value instanceof Icon)
129
      setIcon((Icon) value);
130
    else
131
      setText(value == null ? "" : value.toString());
132
 
133
    return this;
134
  }
135
 
136
  /**
137
   * A subclass of {@link BasicComboBoxRenderer} that implements the
138
   * {@link javax.swing.plaf.UIResource} interface.
139
   */
140
  public static class UIResource extends BasicComboBoxRenderer
141
    implements javax.swing.plaf.UIResource
142
  {
143
    /**
144
     * Creates a new <code>UIResource</code> object.
145
     */
146
    public UIResource()
147
    {
148
      // Nothing to do here.
149
    }
150
  }
151
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.