/*
This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option) any
later version.
This program 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along
with this program; if not, see http://www.gnu.org/licenses or write to the Free
Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
package com.servoy.j2db.util.toolbar;
import java.awt.Dimension;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JButton;
import com.servoy.j2db.util.IProvideButtonModel;
/**
* <class description>
*
* @author jblok
*/
public class ToolbarButton extends JButton
{
public static final int PREF_HEIGHT = 22;
public ToolbarButton(Icon icon)
{
super(icon);
init(false);
}
public ToolbarButton(Action action)
{
this(action, false);
}
public ToolbarButton(Action action, boolean displayText)
{
super();
if (action instanceof IProvideButtonModel)
{
setModel(((IProvideButtonModel)action).getModel());
}
putClientProperty("hideActionText", displayText ? Boolean.FALSE : Boolean.TRUE); //$NON-NLS-1$
setAction(action);
Dimension d = getPreferredSize();
init(displayText);
if (displayText) setPreferredSize(new Dimension(d.width, PREF_HEIGHT));
setFocusable(false);
}
private void init(boolean displayText)
{
setPreferredSize(new Dimension(PREF_HEIGHT, PREF_HEIGHT));
if (!displayText) setText(null);
setMnemonic(0);
setOpaque(false);
setRequestFocusEnabled(false);
}
public ToolbarButton(String text, Icon ico)
{
super(text, ico);
Dimension d = getPreferredSize();
init(text != null);
if (text != null)
{
setPreferredSize(new Dimension(d.width, PREF_HEIGHT));
}
}
public ToolbarButton(String text)
{
super(text);
Dimension d = getPreferredSize();
init(true);
setPreferredSize(new Dimension(d.width, PREF_HEIGHT));
}
/*
* @see javax.swing.AbstractButton#getMnemonic()
*/
@Override
public int getMnemonic()
{
return 0;
}
// public ToolbarButton(Action action)
// {
// super();
// if (action instanceof IProvideButtonModel)
// {
// setModel(((IProvideButtonModel)action).getModel());
// }
// setPreferredSize(new Dimension(24,24));
// setAction(action);
// setText(null);
// setMnemonic(0);
// setOpaque(false);
// setRequestFocusEnabled(false);
// }
}