com.jidesoft.swing.DefaultSplitButtonModel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jide-oss Show documentation
Show all versions of jide-oss Show documentation
JIDE Common Layer (Professional Swing Components)
/*
* @(#)DefaultSplitButtonModel.java 2/17/2005
*
* Copyright 2002 - 2005 JIDE Software Inc. All rights reserved.
*/
package com.jidesoft.swing;
import javax.swing.*;
import java.awt.event.ItemEvent;
/**
*/
public class DefaultSplitButtonModel extends DefaultButtonModel implements SplitButtonModel {
/**
* Indicates that the button part of the split button has been selected.
*/
public static final int BUTTON_SELECTED = 1 << 6;
/**
* Indicates that the button part of the split button is enabled or disabled.
*/
public static final int BUTTON_ENABLED = 1 << 7;
/**
* Indicates that the button part of the split button is rollover.
*/
public static final int BUTTON_ROLLOVER = 1 << 8;
public DefaultSplitButtonModel() {
setButtonEnabled(true);
}
/**
* Selects or deselects the button part of the JideSplitButton.
*
* @param b true selects the button, false deselects the button
*/
public void setButtonSelected(boolean b) {
if (this.isButtonSelected() == b) {
return;
}
if (b) {
stateMask |= BUTTON_SELECTED;
}
else {
stateMask &= ~BUTTON_SELECTED;
}
fireItemStateChanged(new ItemEvent(this,
ItemEvent.ITEM_STATE_CHANGED,
this,
b ? ItemEvent.SELECTED : ItemEvent.DESELECTED));
fireStateChanged();
}
/**
* Indicates if the button part of the JideSplitButton has been selected.
*
* @return true if the button is selected
*/
public boolean isButtonSelected() {
return (stateMask & BUTTON_SELECTED) != 0;
}
/**
* Selects or deselects the button part of the JideSplitButton.
*
* @param b true selects the button, false deselects the button
*/
public void setButtonEnabled(boolean b) {
if (this.isButtonEnabled() == b) {
return;
}
if (b) {
stateMask |= BUTTON_ENABLED;
}
else {
stateMask &= ~BUTTON_ENABLED;
}
fireStateChanged();
}
/**
* Indicates if the button part of the JideSplitButton has been enabled.
*
* @return true if the button is enabled
*/
public boolean isButtonEnabled() {
return (stateMask & BUTTON_ENABLED) != 0;
}
/**
* Sets the button part of the JideSplitButton as rollover.
*
* @param b true set the button as rollover, false set the button as not rollover
*/
public void setButtonRollover(boolean b) {
if (this.isButtonRollover() == b) {
return;
}
if (b) {
stateMask |= BUTTON_ROLLOVER;
}
else {
stateMask &= ~BUTTON_ROLLOVER;
}
fireStateChanged();
}
/**
* Indicates if the button part of the JideSplitButton is rollover.
*
* @return true if the button is rollover
*/
public boolean isButtonRollover() {
return (stateMask & BUTTON_ROLLOVER) != 0;
}
@Override
public void setRollover(boolean b) {
super.setRollover(b);
if (!b) {
setButtonRollover(false);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy