blob: fdf1d68b2dd7cc493707e4a1fa254f16ef8512fb [file] [log] [blame]
/*
* @(#)$RCSfile: MItem.java,v $ $Revision: 1.1 $ $Date: 2000/04/20 17:52:32 $
*
* (C) Copyright IBM Corp. 1998-1999. All Rights Reserved.
*
* The program is provided "as is" without any warranty express or
* implied, including the warranty of non-infringement and the implied
* warranties of merchantibility and fitness for a particular purpose.
* IBM will not be liable for any damages suffered by you as a result
* of using the Program. In no event will IBM be liable for any
* special, indirect or consequential damages or lost profits even if
* IBM has been advised of the possibility of their occurrence. IBM
* will not be liable for any third party claims against you.
*/
package com.ibm.richtext.uiimpl;
import java.util.Vector;
import java.util.EventObject;
import com.ibm.richtext.uiimpl.resources.MenuData;
public abstract class MItem {
static final String COPYRIGHT =
"(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved";
private Vector fListeners = new Vector(2);
private EventObject fEvent = new EventObject(this);
public abstract void setEnabled(boolean enabled);
public abstract void setState(boolean checked);
public final void addListener(EventListener listener) {
fListeners.addElement(listener);
}
public final void removeListener(EventListener listener) {
fListeners.removeElement(listener);
}
protected void handleSelected() {
int length = fListeners.size();
for (int i=0; i < length; i++) {
EventListener l = (EventListener) fListeners.elementAt(i);
l.eventOccurred(fEvent);
}
}
// factory stuff
/**
* Clients should synchronize on LOCK while setting and using
* global factory.
*/
public static final Object LOCK = new Object();
public static interface ItemFactory {
public MItem createItem(MenuData menuData);
public MItem createCheckboxItem(MenuData menuData);
public void createSeparator();
}
private static ItemFactory fgFactory;
public static MItem createItem(MenuData menuData) {
return fgFactory.createItem(menuData);
}
public static MItem createCheckboxItem(MenuData menuData) {
return fgFactory.createCheckboxItem(menuData);
}
public static void setItemFactory(ItemFactory factory) {
fgFactory = factory;
}
public static ItemFactory getItemFactory() {
return fgFactory;
}
}