📄 colorcomboboxmodel.java
字号:
/**
* ========================================
* JFreeReport : a free Java report library
* ========================================
*
* Project Info: http://www.jfree.org/jfreereport/index.html
* Project Lead: Thomas Morgner (taquera@sherito.org);
*
* (C) Copyright 2000-2003, by Simba Management Limited and Contributors.
*
* This library is free software; you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Foundation;
* either version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA.
*
* ------------------------------
* ColorComboBoxModel.java
* ------------------------------
* (C)opyright 2003, by Thomas Morgner and Contributors.
*
* Original Author: Thomas Morgner;
* Contributor(s): David Gilbert (for Simba Management Limited);
*
* $Id: ColorComboBoxModel.java,v 1.2 2004/04/20 18:54:42 taqua Exp $
*
* Changes
* -------------------------
* 25.10.2003 : Initial version
*
*/
package org.jfree.designer.propertyeditors;
import java.awt.Color;
import javax.swing.DefaultComboBoxModel;
public final class ColorComboBoxModel
extends DefaultComboBoxModel
{
public static final class ColorCarrier
{
private final Color color;
private final String name;
private final boolean predefined;
protected ColorCarrier (final Color color, final String name,
final boolean predefined)
{
this.color = color;
this.name = name;
this.predefined = predefined;
}
public final Color getColor ()
{
return color;
}
public final String getName ()
{
return name;
}
public final boolean isPredefined ()
{
return predefined;
}
public final boolean equals (final Object o)
{
if (this == o)
{
return true;
}
if (!(o instanceof ColorCarrier))
{
return false;
}
final ColorCarrier colorCarrier = (ColorCarrier) o;
if (!color.equals(colorCarrier.color))
{
return false;
}
return true;
}
public final int hashCode ()
{
return color.hashCode();
}
}
private ColorCarrier customColor;
/**
* Constructs an empty DefaultComboBoxModel object.
*/
public ColorComboBoxModel ()
{
addElement(new ColorCarrier(Color.black, "black", true));
addElement(new ColorCarrier(Color.blue, "blue", true));
addElement(new ColorCarrier(Color.cyan, "cyan", true));
addElement(new ColorCarrier(Color.darkGray, "dark gray", true));
addElement(new ColorCarrier(Color.gray, "gray", true));
addElement(new ColorCarrier(Color.green, "green", true));
addElement(new ColorCarrier(Color.lightGray, "light gray", true));
addElement(new ColorCarrier(Color.magenta, "magenta", true));
addElement(new ColorCarrier(Color.orange, "orange", true));
addElement(new ColorCarrier(Color.pink, "pink", true));
addElement(new ColorCarrier(Color.red, "red", true));
addElement(new ColorCarrier(Color.white, "white", true));
addElement(new ColorCarrier(Color.yellow, "yellow", true));
}
public final void setCustomColor (final Color color)
{
if (color == null)
{
if (customColor != null)
{
removeElement(customColor);
}
customColor = null;
setSelectedItem(null);
return;
}
final int index = indexOf(color);
if (index != -1)
{
if (customColor != null)
{
removeElement(customColor);
}
customColor = null;
setSelectedItem(getElementAt(index));
return;
}
customColor = new ColorCarrier(color, encodeColor(color), false);
setSelectedItem(customColor);
}
public final Color getSelectedColor ()
{
final ColorCarrier cc = (ColorCarrier) getSelectedItem();
if (cc == null)
{
return null;
}
return cc.getColor();
}
public final String encodeColor (final Color c)
{
// no defined constant color, so this must be a user defined color
final String color = Integer.toHexString(c.getRGB() & 0x00ffffff);
final StringBuffer retval = new StringBuffer(7);
retval.append("#");
final int fillUp = 6 - color.length();
for (int i = 0; i < fillUp; i++)
{
retval.append("0");
}
retval.append(color);
return retval.toString();
}
public final int indexOf (final Color color)
{
for (int i = 0; i < getSize(); i++)
{
final ColorCarrier cc = (ColorCarrier) getElementAt(i);
if (cc.getColor().equals(color))
{
return i;
}
}
return -1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -