/*
Copyright (C) 2001, 2008 United States Government
as represented by the Administrator of the
National Aeronautics and Space Administration.
All Rights Reserved.
*/
package gov.nasa.worldwind.examples;
import gov.nasa.worldwind.WorldWindow;
import gov.nasa.worldwind.layers.LayerList;
import gov.nasa.worldwind.layers.placename.PlaceNameService;
import gov.nasa.worldwind.layers.placename.PlaceNameLayer;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.*;
import java.util.List;
/**
* @author jparsons
* @version $Id$
*/
public class PlaceNamesPanel extends JPanel implements ItemListener
{
List<PlaceNameService> nameServices;
PlaceNameLayer nameLayer;
WorldWindow wwd;
ArrayList<JCheckBox> cbList = new ArrayList<JCheckBox>();
public PlaceNamesPanel(WorldWindow wwd)
{
super(new BorderLayout());
this.wwd=wwd;
LayerList layers = this.wwd.getModel().getLayers();
for (Object layer : layers)
{
if (layer instanceof PlaceNameLayer)
{
nameLayer = (PlaceNameLayer) layer;
break;
}
}
if (nameLayer !=null)
{
nameServices = nameLayer.getPlaceNameServiceSet().getServices();
this.makePanel();
}
}
private void makePanel()
{
JPanel namesPanel = new JPanel(new GridLayout(0, 1, 0, 0));
namesPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
JPanel comboPanel = new JPanel(new GridLayout(0, 2, 0, 0));
for (PlaceNameService s: nameServices)
{
JCheckBox cb=new JCheckBox(s.getDataset(),true);
cb.addItemListener(this);
comboPanel.add(cb);
cbList.add(cb);
}
namesPanel.add(comboPanel);
this.add(namesPanel, BorderLayout.CENTER);
}
public void itemStateChanged(ItemEvent e)
{
for (PlaceNameService s: nameServices)
{
if (s.getDataset().equalsIgnoreCase(((JCheckBox)e.getSource()).getText()))
{
s.setEnabled(!s.isEnabled());
break;
}
}
update();
}
// Update worldwind
private void update()
{
wwd.redraw();
}
}