/* SignalPlotPopupProvider.java created 2007-10-16 * */ package org.signalml.app.view.signal; import javax.swing.JCheckBoxMenuItem; import javax.swing.JPopupMenu; import org.signalml.app.action.signal.PreciseSelectionAction; import org.signalml.app.action.tag.EditTagAnnotationAction; import org.signalml.app.action.tag.RemoveTagAction; import org.signalml.app.action.tag.TagSelectionAction; import org.signalml.app.document.TagDocument; import org.signalml.app.view.tag.TagIconProducer; import org.signalml.app.view.tag.TagStyleMenu; import org.signalml.plugin.export.signal.SignalSelection; import org.signalml.plugin.impl.PluginAccessClass; /** SignalPlotPopupProvider * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class SignalPlotPopupProvider { private RemoveTagAction removeTagAction; private PreciseSelectionAction preciseSelectionAction; private TagSelectionAction tagSelectionAction; private EditTagAnnotationAction editTagAnnotationAction; private TagIconProducer tagIconProducer; private SignalPlot plot; private JPopupMenu plotPopupMenu; private JPopupMenu columnHeaderPopupMenu; private TagStyleMenu tagStyleMenu; public SignalPlotPopupProvider(SignalPlot plot) { this.plot = plot; } public JPopupMenu getPlotPopupMenu() { if (plotPopupMenu == null) { plotPopupMenu = new JPopupMenu(); tagStyleMenu = new TagStyleMenu(tagSelectionAction, tagIconProducer); plotPopupMenu.add(tagStyleMenu); plotPopupMenu.addSeparator(); plotPopupMenu.add(editTagAnnotationAction); plotPopupMenu.add(removeTagAction); plotPopupMenu.addSeparator(); plotPopupMenu.add(preciseSelectionAction); PluginAccessClass.getGUIImpl().addToSignalPlotPopupMenu(plotPopupMenu); } boolean tagStyleMenuEnabled = false; TagDocument tagDocument = plot.getDocument().getActiveTag(); if (tagDocument != null) { SignalSelection selection = plot.getView().getSignalSelection(plot); if (selection != null) { tagStyleMenu.setParameters(tagDocument.getTagSet(), selection.getType()); tagStyleMenuEnabled = true; } } tagStyleMenu.setEnabled(tagStyleMenuEnabled); return plotPopupMenu; } public JPopupMenu getColumnHeaderPopupMenu() { if (columnHeaderPopupMenu == null) { columnHeaderPopupMenu = new JPopupMenu(); columnHeaderPopupMenu.add(editTagAnnotationAction); columnHeaderPopupMenu.add(removeTagAction); columnHeaderPopupMenu.addSeparator(); JCheckBoxMenuItem compactMenuItem = new JCheckBoxMenuItem(plot.getSignalPlotColumnHeader().getSetCompactAction()); columnHeaderPopupMenu.add(compactMenuItem); PluginAccessClass.getGUIImpl().addToColumnHeaderPopupMenu(columnHeaderPopupMenu); } return columnHeaderPopupMenu; } public TagIconProducer getTagIconProducer() { return tagIconProducer; } public void setTagIconProducer(TagIconProducer tagIconProducer) { this.tagIconProducer = tagIconProducer; } public RemoveTagAction getRemoveTagAction() { return removeTagAction; } public void setRemoveTagAction(RemoveTagAction removeTagAction) { this.removeTagAction = removeTagAction; } public PreciseSelectionAction getPreciseSelectionAction() { return preciseSelectionAction; } public void setPreciseSelectionAction(PreciseSelectionAction preciseSelectionAction) { this.preciseSelectionAction = preciseSelectionAction; } public TagSelectionAction getTagSelectionAction() { return tagSelectionAction; } public void setTagSelectionAction(TagSelectionAction tagSelectionAction) { this.tagSelectionAction = tagSelectionAction; } public EditTagAnnotationAction getEditTagAnnotationAction() { return editTagAnnotationAction; } public void setEditTagAnnotationAction(EditTagAnnotationAction editTagAnnotationAction) { this.editTagAnnotationAction = editTagAnnotationAction; } }