blob: c4d8ebdba52f7dbce99823e67427776f6835d73d [file] [log] [blame]
/*
* (C) Copyright IBM Corp. 1998-2004. 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.awt.Window;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import com.ibm.richtext.textpanel.MTextPanel;
import com.ibm.richtext.uiimpl.resources.MenuData;
public final class DialogItem extends CommandMenuItem {
static final String COPYRIGHT =
"(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved";
public static abstract class DialogFactory {
public abstract Window createDialog(MTextPanel textPanel);
}
private DialogFactory fDialogFactory;
private Window fDialog = null;
public DialogItem(MenuData menuData,
DialogFactory dialogFactory) {
super(menuData, true);
fDialogFactory = dialogFactory;
}
protected void textPanelChanged() {
// do nothing
}
protected boolean isEnabled() {
// should never get called...
return true;
}
public boolean respondsToEventType(int type) {
return false;
}
protected void performAction() {
if (fDialog == null) {
MTextPanel panel = getTextPanel();
if (panel != null) {
fDialog = fDialogFactory.createDialog(panel);
fDialog.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
fDialog = null;
}
});
}
}
fDialog.show();
}
}