/* * Created on 18.01.2006 for PIROL * * SVN header information: * $Author: LBST-PF-3\orahn $ * $Rev: 2446 $ * $Date: 2006-09-12 12:57:25 +0000 (Di, 12 Sep 2006) $ * $Id: RasterImageContextMenu.java 2446 2006-09-12 12:57:25Z LBST-PF-3\orahn $ */ package org.openjump.core.ui.plugin.layer.pirolraster; import javax.swing.ImageIcon; import javax.swing.JCheckBoxMenuItem; import javax.swing.MenuElement; import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuListener; import org.openjump.core.rasterimage.RasterImageLayer; import com.vividsolutions.jump.workbench.model.Layerable; import com.vividsolutions.jump.workbench.plugin.PlugInContext; import com.vividsolutions.jump.workbench.ui.GUIUtil; import com.vividsolutions.jump.workbench.ui.LayerNamePanel; import com.vividsolutions.jump.workbench.ui.LayerNamePanelProxy; import com.vividsolutions.jump.workbench.ui.TitledPopupMenu; import com.vividsolutions.jump.workbench.ui.WorkbenchFrame; import com.vividsolutions.jump.workbench.ui.plugin.FeatureInstaller; import com.vividsolutions.jump.workbench.ui.plugin.MoveLayerablePlugIn; /** * TODO: comment class * * @author Ole Rahn * <br> * <br>FH Osnabrück - University of Applied Sciences Osnabrück, * <br>Project: PIROL (2006), * <br>Subproject: Daten- und Wissensmanagement * * @version $Rev: 2446 $ * [sstein] - 22.Feb.2009 - modified to work in OpenJUMP */ public class RasterImageContextMenu extends TitledPopupMenu { private static final long serialVersionUID = -8757500299734680615L; /** singleton */ private static RasterImageContextMenu contextMenu = null; /** * use this method to get an instance of the context menu. * The menu will be instantiated when this method is called the first time. *@return an instance of the context menu */ public static RasterImageContextMenu getInstance(PlugInContext context){ if (contextMenu==null){ contextMenu = new RasterImageContextMenu(context); } return contextMenu; } /** * @see #getInstance(PlugInContext) */ private RasterImageContextMenu(PlugInContext context) { super(); FeatureInstaller featureInstaller = context.getFeatureInstaller(); final WorkbenchFrame wbFrame = context.getWorkbenchFrame(); this.addPopupMenuListener(new PopupMenuListener() { public void popupMenuWillBecomeVisible(PopupMenuEvent e) { LayerNamePanel panel = ((LayerNamePanelProxy) wbFrame.getActiveInternalFrame()) .getLayerNamePanel(); setTitle(((Layerable) panel.selectedNodes(RasterImageLayer.class).iterator().next()).getName()); } public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { } public void popupMenuCanceled(PopupMenuEvent e) { } }); ToggleRasterImageVisibility toggleRasterImageVisibility = new ToggleRasterImageVisibility(context.getWorkbenchContext()); this.addPopupMenuListener(toggleRasterImageVisibility); featureInstaller.addPopupMenuItem(this, toggleRasterImageVisibility, toggleRasterImageVisibility.getName(), true, null, null); MenuElement[] elements = this.getSubElements(); JCheckBoxMenuItem menuItem = null; for (int i=0; i<elements.length; i++){ if ( JCheckBoxMenuItem.class.isInstance(elements[i]) ){ if ( ((JCheckBoxMenuItem)elements[i]).getText().startsWith(toggleRasterImageVisibility.getName()) ){ ((JCheckBoxMenuItem)elements[i]).setSelected(true); menuItem = (JCheckBoxMenuItem)elements[i]; } } } toggleRasterImageVisibility.setMenuItem(menuItem); this.addSeparator(); // =================== ChangeRasterImagePropertiesPlugIn changeRasterImagePropertiesPlugIn = new ChangeRasterImagePropertiesPlugIn(); featureInstaller.addPopupMenuItem(this, changeRasterImagePropertiesPlugIn, changeRasterImagePropertiesPlugIn.getName() + "...", false, null, null); ExtractSelectedPartOfImage extractPartPlugIn = new ExtractSelectedPartOfImage(); featureInstaller.addPopupMenuItem(this, extractPartPlugIn, extractPartPlugIn.getName() + "...", false, //GUIUtil.toSmallIcon((ImageIcon) extractPartPlugIn.getIcon()), null, ExtractSelectedPartOfImage.createEnableCheck(context.getWorkbenchContext())); SaveRasterImageAsImagePlugIn saveRasterImageAsImagePlugIn = new SaveRasterImageAsImagePlugIn(); featureInstaller.addPopupMenuItem(this, saveRasterImageAsImagePlugIn, saveRasterImageAsImagePlugIn.getName() + "...",false, null,SaveRasterImageAsImagePlugIn.createEnableCheck(context.getWorkbenchContext())); this.addSeparator(); // =================== ZoomToRasterImagePlugIn zoomToRasterImagePlugIn = new ZoomToRasterImagePlugIn(); featureInstaller.addPopupMenuItem(this, zoomToRasterImagePlugIn, zoomToRasterImagePlugIn.getName(),false, null,null); this.addSeparator(); // =================== WarpImageToFencePlugIn warpImageToFencePlugIn = new WarpImageToFencePlugIn(); featureInstaller.addPopupMenuItem(this, warpImageToFencePlugIn, warpImageToFencePlugIn.getName() + "...",false, null,WarpImageToFencePlugIn.createEnableCheck(context.getWorkbenchContext())); ExportEnvelopeAsGeometryPlugIn exportEnvelopeAsGeometryPlugIn = new ExportEnvelopeAsGeometryPlugIn(); featureInstaller.addPopupMenuItem(this, exportEnvelopeAsGeometryPlugIn, exportEnvelopeAsGeometryPlugIn.getName(),false, null,null); this.addSeparator(); // =================== MoveLayerablePlugIn moveUpPlugIn = MoveLayerablePlugIn.UP; featureInstaller.addPopupMenuItem(this, moveUpPlugIn, moveUpPlugIn.getName() + "...", false, null, moveUpPlugIn.createEnableCheck(context.getWorkbenchContext())); MoveLayerablePlugIn moveDownPlugIn = MoveLayerablePlugIn.DOWN; featureInstaller.addPopupMenuItem(this, moveDownPlugIn, moveDownPlugIn.getName() + "...", false, null, moveDownPlugIn.createEnableCheck(context.getWorkbenchContext())); this.addSeparator(); // =================== CutSelectedRasterImageLayersPlugIn cutSelectedRasterImageLayersPlugIn = new CutSelectedRasterImageLayersPlugIn(); featureInstaller.addPopupMenuItem(this, cutSelectedRasterImageLayersPlugIn, cutSelectedRasterImageLayersPlugIn.getName(), false, null, cutSelectedRasterImageLayersPlugIn.createEnableCheck(context.getWorkbenchContext())); CopySelectedRasterImageLayersPlugIn copySelectedRasterImageLayersPlugIn = new CopySelectedRasterImageLayersPlugIn(); featureInstaller.addPopupMenuItem(this, copySelectedRasterImageLayersPlugIn, copySelectedRasterImageLayersPlugIn.getName(), false, null, copySelectedRasterImageLayersPlugIn.createEnableCheck(context.getWorkbenchContext())); PasteRasterImageLayersPlugIn pasteRasterImageLayersPlugIn = new PasteRasterImageLayersPlugIn(); featureInstaller.addPopupMenuItem(this, pasteRasterImageLayersPlugIn, pasteRasterImageLayersPlugIn.getName(), false, null, pasteRasterImageLayersPlugIn.createEnableCheck(context.getWorkbenchContext())); RemoveSelectedRasterImageLayersPlugIn removeSelectedLayersPlugIn = new RemoveSelectedRasterImageLayersPlugIn(); featureInstaller.addPopupMenuItem(this, removeSelectedLayersPlugIn, removeSelectedLayersPlugIn.getName(), false, null, removeSelectedLayersPlugIn.createEnableCheck(context.getWorkbenchContext())); } }