package com.vistatec.ocelot.plugins;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
/**
* FREME menu displayed in the Ocelot menu bar only if the FREME pluign is
* installed.
*/
public class FremeMenu extends JMenu {
/** The serial version UID. */
private static final long serialVersionUID = -5852190101662320008L;
public static final int CONFIG_MENU = 0;
public static final int FILTER_MENU = 1;
public static final int ENRICH_MENU = 2;
/** The entity service menu item. */
private FremeEServiceMenuItem mnuEEntityService;
/** The link service menu item. */
private FremeEServiceMenuItem mnuELinkService;
//
/** The terminology service menu item. */
private FremeEServiceMenuItem mnuETerminologyService;
/** The link service menu item. */
private FremeEServiceMenuItem mnuETranslationService;
// /** The Entity Categories Filter menu item. */
// private FremeMenuItem mnuViewCatFilter;
/** The configure pipeline menu item. */
private FremeMenuItem mnuConfigPipeline;
/** The Enrich menu item. */
private FremeMenuItem mnuEnrich;
/**
* Constructor.
*
* @param itemListener
* the item listener.
* @param actionListener
* the action listener.
*/
public FremeMenu(final ItemListener itemListener,
final ActionListener actionListener) {
super("Freme e-Services");
init(itemListener, actionListener);
}
/**
* Initializes the menu.
*
* @param itemListener
* the item listener
* @param actionListener
* the action listener
*/
private void init(final ItemListener itemListener,
ActionListener actionListener) {
mnuEEntityService = new FremeEServiceMenuItem("e-Entity",
FremePlugin.EENTITY_SERVICE);
mnuEEntityService.setSelected(true);
mnuEEntityService.addItemListener(itemListener);
add(mnuEEntityService);
mnuELinkService = new FremeEServiceMenuItem("e-Link",
FremePlugin.ELINK_SERVICE);
mnuELinkService.setSelected(true);
mnuELinkService.addItemListener(itemListener);
add(mnuELinkService);
mnuETerminologyService = new FremeEServiceMenuItem("e-Terminology",
FremePlugin.ETERMINOLOGY);
mnuETerminologyService.setSelected(true);
mnuETerminologyService.addItemListener(itemListener);
add(mnuETerminologyService);
mnuETranslationService = new FremeEServiceMenuItem("e-Translation",
FremePlugin.ETRANSLATION);
mnuETranslationService.setSelected(true);
mnuETranslationService.addItemListener(itemListener);
add(mnuETranslationService);
// mnuViewCatFilter = new FremeMenuItem("Entity Categories Filter", FILTER_MENU);
// mnuViewCatFilter.addActionListener(actionListener);
// add(mnuViewCatFilter);
mnuEnrich = new FremeMenuItem("Enrich Segments", ENRICH_MENU);
mnuEnrich.addActionListener(actionListener);
add(mnuEnrich);
mnuConfigPipeline = new FremeMenuItem("Freme Pipeline Configuration", CONFIG_MENU);
mnuConfigPipeline.addActionListener(actionListener);
add(mnuConfigPipeline);
}
public void setEnrichMenuEnabled(boolean enabled){
mnuEnrich.setEnabled(enabled);
}
}
class FremeMenuItem extends JMenuItem {
private static final long serialVersionUID = 2853253514750283163L;
private int mnuType;
public FremeMenuItem(String text, int mnuType) {
super(text);
this.mnuType = mnuType;
}
public int getMenuType(){
return mnuType;
}
}
/**
* Check box menu item for FREME services.
*/
class FremeEServiceMenuItem extends JCheckBoxMenuItem {
/** The serial version UID. */
private static final long serialVersionUID = 7464098022306114511L;
/** The service type. */
private int serviceType;
/**
* Constructor.
*
* @param text
* the text
* @param serviceType
* the service type
*/
public FremeEServiceMenuItem(final String text, final int serviceType) {
super(text);
this.serviceType = serviceType;
}
/**
* Gets the service type.
*
* @return the service type.
*/
public int getServiceType() {
return serviceType;
}
}