com.jidesoft.swing.DefaultSelectable Maven / Gradle / Ivy
/*
* @(#)InstallData.java 4/22/2005
*
* Copyright 2002 - 2005 JIDE Software Inc. All rights reserved.
*/
package com.jidesoft.swing;
/**
* The element used by CheckBoxList's ListModel. In order to allow check box in JList without messing up when list model
* changes, we use this class to store the object itself and a boolean to indicated if the row is selected.
*/
public class DefaultSelectable implements Selectable {
protected Object _object;
protected boolean _selected = false;
protected boolean _enabled = true;
/**
* Creates CheckBoxListElement with an actual object. In the case of CheckBoxList, instead of add the object
* directly to ListModel, you should wrap it in CheckBoxListElement and add CheckBoxListElement into ListModel.
*
* @param object the actual object
*/
public DefaultSelectable(Object object) {
_object = object;
}
/**
* Sets the actual element.
*
* @param object
*/
public void setObject(Object object) {
_object = object;
}
/**
* Gets the actual element.
*
* @return the actual element.
*/
public Object getObject() {
return _object;
}
/**
* Sets it as selected.
*
* @param selected
*/
public void setSelected(boolean selected) {
_selected = selected;
}
/**
* Inverts the selection status.
*/
public void invertSelected() {
setSelected(!_selected);
}
/**
* Gets the selected status.
*
* @return true if it is selected. Otherwise, false.
*/
public boolean isSelected() {
return _selected;
}
/**
* Enabled selection change. Enabled false doesn't mean selected is false. If it is selected before,
* setEnable(false) won't make selected become false. In the other word, setEnabled won't change the the value of
* isSelected().
*
* @param enabled
*/
public void setEnabled(boolean enabled) {
_enabled = enabled;
}
/**
* Checks if selection change is allowed.
*
* @return true if selection change is allowed.
*/
public boolean isEnabled() {
return _enabled;
}
/**
* Overrides to consider the hash code of the object only. From outside point of view, this class should behave just
* like object itself. That's why we override hashCode.
*
* @return the hash code.
*/
@Override
public int hashCode() {
return (_object != null ? _object.hashCode() : 0);
}
/**
* Overrides to consider the toString() of object only. From outside point of view, this class should behave just
* like object itself. That's why we override toString.
*
* @return toString() of object.
*/
@Override
public String toString() {
return (_object != null ? _object.toString() : "");
}
@Override
public boolean equals(Object obj) {
if (obj instanceof DefaultSelectable) {
if (getObject() == null && ((DefaultSelectable) obj).getObject() == null) {
return true;
}
else if (getObject() == null && ((DefaultSelectable) obj).getObject() != null) {
return false;
}
return getObject().equals(((DefaultSelectable) obj).getObject());
}
else if (obj == null && getObject() == null) {
return true;
}
else {
return false;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy