/**
* Created on Jul 22, 2008
*
* Copyright 2008 Vuze, Inc. All rights reserved.
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License only.
*
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.aelitis.azureus.ui.swt.toolbar;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.aelitis.azureus.ui.swt.skin.SWTSkinButtonUtility;
import com.aelitis.azureus.ui.swt.skin.SWTSkinObjectText;
/**
* @author TuxPaper
* @created Jul 22, 2008
*
*/
public class ToolBarItem
{
String imageID;
String id;
private SWTSkinButtonUtility skinButton;
private SWTSkinObjectText skinTitle;
boolean enabled = true;
private String textID;
private String tooltipID;
private List listeners = Collections.EMPTY_LIST;
private boolean alwaysAvailable = false;
/**
* @param id
* @param image
*/
public ToolBarItem(String id, String imageid) {
super();
this.id = id;
imageID = imageid;
}
public ToolBarItem(String id, String imageid, String textID) {
super();
this.id = id;
imageID = imageid;
this.textID = textID;
this.tooltipID = textID + ".tooltip";
}
public void triggerToolBarItem() {
Object[] array = listeners.toArray();
for (int i = 0; i < array.length; i++) {
ToolBarItemListener l = (ToolBarItemListener) array[i];
l.pressed(this);
}
}
public String getId() {
return id;
}
public void setSkinButton(SWTSkinButtonUtility btn) {
this.skinButton = btn;
}
public SWTSkinButtonUtility getSkinButton() {
return skinButton;
}
public void setSkinTitle( SWTSkinObjectText s ){
skinTitle = s;
}
public boolean isEnabled() {
if (skinButton != null) {
return !skinButton.isDisabled();
}
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
if (skinButton != null) {
skinButton.setDisabled(!enabled);
}
}
public String getImageID() {
return imageID;
}
public void setImageID(String imageID) {
this.imageID = imageID;
if (skinButton != null) {
skinButton.setImage(imageID);
}
}
/**
* @param textID the textID to set
*/
public void setTextID(String textID) {
this.textID = textID;
if (skinTitle != null) {
skinTitle.setTextID(textID);
}
}
/**
* @return the textID
*/
public String getTextID() {
return textID;
}
/**
* @return
*
* @since 3.1.1.1
*/
public boolean triggerToolBarItemHold() {
Object[] array = listeners.toArray();
for (int i = 0; i < array.length; i++) {
ToolBarItemListener l = (ToolBarItemListener) array[i];
if (l.held(this)) {
return true;
}
}
return false;
}
public String getTooltipID() {
return tooltipID;
}
public void setTooltipID(String tooltipID) {
this.tooltipID = tooltipID;
}
public void addListener(ToolBarItemListener l) {
synchronized (ToolBarItem.class) {
if (listeners == Collections.EMPTY_LIST) {
listeners = new ArrayList(1);
}
listeners.add(l);
}
}
public void removeListener(ToolBarItemListener l) {
synchronized (ToolBarItem.class) {
listeners.remove(l);
}
}
public void setAlwaysAvailable(boolean alwaysAvailable) {
this.alwaysAvailable = alwaysAvailable;
}
public boolean isAlwaysAvailable() {
return alwaysAvailable;
}
}