layermenu.java

来自「world wind java sdk 源码」· Java 代码 · 共 99 行

JAVA
99
字号
/*Copyright (C) 2001, 2007 United States Governmentas represented by the Administrator of theNational Aeronautics and Space Administration.All Rights Reserved.*/package gov.nasa.worldwind.applications.sar;import gov.nasa.worldwind.WorldWindow;import gov.nasa.worldwind.layers.*;import gov.nasa.worldwind.layers.Earth.*;import gov.nasa.worldwind.render.*;import javax.swing.*;import java.awt.event.*;/** * @author tag * @version $Id: LayerMenu.java 8949 2009-02-21 01:31:30Z jparsons $ */public class LayerMenu extends JMenu{    private WorldWindow wwd;    public LayerMenu()    {        super("Layers");    }    public WorldWindow getWwd()    {        return wwd;    }    public void setWwd(WorldWindow wwd)    {        this.wwd = wwd;        for (Layer layer : this.wwd.getModel().getLayers())        {            if (isLayerMenuItem(layer))            {                JCheckBoxMenuItem mi = new JCheckBoxMenuItem(new LayerVisibilityAction(this.wwd, layer, this));                mi.setState(layer.isEnabled());                this.add(mi);            }        }    }    private boolean isLayerMenuItem(Layer layer)    {        if (layer instanceof RenderableLayer)    //detect surface image layers        {            Iterable<Renderable> iter = ((RenderableLayer)layer).getRenderables();            for (Renderable rend: iter)            {                if (rend instanceof SurfaceImage)                    return true;            }            return false;        }        return ((layer instanceof TiledImageLayer)            && !(layer instanceof BMNGWMSLayer));    }    private static class LayerVisibilityAction extends AbstractAction    {        private final Layer layer;        private final WorldWindow wwd;        private final LayerMenu menu;        public LayerVisibilityAction(WorldWindow wwd, Layer layer, LayerMenu menu)        {            super(layer.getName());            this.layer = layer;            this.wwd = wwd;            this.menu = menu;        }        public void actionPerformed(ActionEvent actionEvent)        {            layer.setEnabled(((JCheckBoxMenuItem) actionEvent.getSource()).getState());            if (layer instanceof BMNGOneImage) //toggle other BMNG layers            {                for (Layer lyr : this.wwd.getModel().getLayers())                {                    if (lyr instanceof BMNGWMSLayer)                        lyr.setEnabled(((JCheckBoxMenuItem) actionEvent.getSource()).getState());                }            }            menu.doClick(0); // keep layer menu open            this.wwd.redraw();        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?