Revision 1178 org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/RasterExtension.java

View differences:

RasterExtension.java
21 21
*/
22 22
package org.gvsig.raster.tools.app.basic;
23 23

  
24
import java.awt.Component;
25 24
import java.util.ArrayList;
26 25
import java.util.prefs.Preferences;
27 26

  
28
import javax.swing.JOptionPane;
29

  
30 27
import org.gvsig.andami.IconThemeHelper;
31 28
import org.gvsig.andami.PluginServices;
32 29
import org.gvsig.andami.plugins.Extension;
......
36 33
import org.gvsig.app.ApplicationManager;
37 34
import org.gvsig.app.project.documents.view.ViewDocument;
38 35
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
36
import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction;
39 37
import org.gvsig.app.project.documents.view.toc.ITocItem;
40
import org.gvsig.app.project.documents.view.toolListeners.StatusBarListener;
41 38
import org.gvsig.fmap.dal.coverage.RasterLibrary;
42 39
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
43 40
import org.gvsig.fmap.mapcontext.MapContext;
44 41
import org.gvsig.fmap.mapcontext.layers.FLayer;
45 42
import org.gvsig.fmap.mapcontext.layers.FLayers;
46
import org.gvsig.fmap.mapcontrol.MapControl;
47
import org.gvsig.fmap.mapcontrol.tools.Behavior.Behavior;
48
import org.gvsig.fmap.mapcontrol.tools.Behavior.MouseMovementBehavior;
49
import org.gvsig.fmap.mapcontrol.tools.Behavior.PointBehavior;
50 43
import org.gvsig.raster.fmap.FmapRasterLibrary;
51 44
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster;
52 45
import org.gvsig.raster.fmap.layers.FLyrRaster;
......
63 56
import org.gvsig.raster.tools.app.basic.tool.filter.grayscale.GrayScaleManager;
64 57
import org.gvsig.raster.tools.app.basic.tool.filter.mask.MaskListManager;
65 58
import org.gvsig.raster.tools.app.basic.tool.filter.regionalpha.RegionAlphaListManager;
66
import org.gvsig.raster.tools.app.basic.tool.multiresolution.ResolutionLevelListener;
67 59
import org.gvsig.raster.tools.app.basic.tool.properties.RasterPropertiesTocMenuEntry;
68 60
import org.gvsig.raster.tools.app.basic.tool.properties.panel.EnhancedPanel;
69 61
import org.gvsig.raster.tools.app.basic.tool.properties.panel.GeneralPanel;
......
72 64
import org.gvsig.raster.tools.app.basic.tool.rasterresolution.ZoomPixelCursorTocMenuEntry;
73 65
import org.gvsig.raster.tools.app.basic.tool.saveas.SaveAsTocMenuEntry;
74 66
import org.gvsig.tools.ToolsLocator;
67
import org.gvsig.tools.extensionpoint.ExtensionBuilder;
75 68
import org.gvsig.tools.extensionpoint.ExtensionPoint;
76 69
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
77 70

  
......
98 91
	 * tenga
99 92
	 */
100 93
	public static boolean       askCoordinates = false;
94
	private ExtensionPoint      genericToolBarMenuExtensionPoint  = null;
101 95

  
102 96
	/*
103 97
	 * (non-Javadoc)
104 98
	 * @see com.iver.andami.plugins.IExtension#execute(java.lang.String)
105 99
	 */
106 100
	public void execute(String actionCommand) {
107
		if(actionCommand.compareTo("ZOOM_RES_LEVEL") == 0) {
108
			IWindow theView = PluginServices.getMDIManager().getActiveWindow();
109
			if(!(theView instanceof AbstractViewPanel)) {
110
				JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(), PluginServices.getText(this.getClass(), "window_not_valid"));
111
				return;
101
		//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que el actionCommand
102
		//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar la acci?n a
103
		//trav?s de este.
104
		ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(actionCommand).getBuilder();
105
		if(ext != null && ext instanceof AbstractTocContextMenuAction) {
106
			IWindow w = PluginServices.getMDIManager().getActiveWindow();
107
			if(w instanceof AbstractViewPanel) {
108
				FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers();
109
				FLayer[] actives = lyrs.getActives();
110
				((AbstractTocContextMenuAction)ext).execute(null, actives);
112 111
			}
113
			
114
			MapControl mapCtrl = ((AbstractViewPanel)theView).getMapControl();
115
			StatusBarListener sbl = new StatusBarListener(mapCtrl);
116
			ResolutionLevelListener rll = new ResolutionLevelListener();
117
			mapCtrl.addBehavior("zoomResolutionLevel", new Behavior[]{new PointBehavior(rll),
118
						new MouseMovementBehavior(sbl)});
119
			mapCtrl.setTool("zoomResolutionLevel");
120 112
		}
121 113
	}
122 114

  
......
484 476
	}
485 477
	
486 478
	public boolean isEnabled(String action) {
487
		return true;
479
		//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que el actionCommand
480
		//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar isEnable a
481
		//trav?s de este.
482
		ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(action).getBuilder();
483
		if(ext != null && ext instanceof AbstractTocContextMenuAction) {
484
			IWindow w = PluginServices.getMDIManager().getActiveWindow();
485
			if(w instanceof AbstractViewPanel) {
486
				FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers();
487
				FLayer[] actives = lyrs.getActives();
488
				return ((AbstractTocContextMenuAction)ext).isEnabled(null, actives);
489
			}
490
		}
491
		return false;
488 492
	}
489 493
	
490 494
	public boolean isVisible(String action) {
491
		return true;
495
		//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que el actionCommand
496
		//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar isVisible a
497
		//trav?s de este.
498
		ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(action).getBuilder();
499
		if(ext != null && ext instanceof AbstractTocContextMenuAction) {
500
			IWindow w = PluginServices.getMDIManager().getActiveWindow();
501
			if(w instanceof AbstractViewPanel) {
502
				FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers();
503
				FLayer[] actives = lyrs.getActives();
504
				return ((AbstractTocContextMenuAction)ext).isVisible(null, actives);
505
			}
506
		}
507
		return false;
492 508
	}
509
	
510
	public ExtensionPoint getGenericToolBarMenuExtensionPoint() {
511
		if(genericToolBarMenuExtensionPoint == null) {
512
			ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
513
			genericToolBarMenuExtensionPoint = extensionPoints.get("GenericToolBarMenu");
514
		}
515
		return genericToolBarMenuExtensionPoint;
516
	}
493 517
}

Also available in: Unified diff