package com.vividsolutions.jump.workbench.ui.plugin.test;
import java.awt.Color;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jump.workbench.model.Layer;
import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn;
import com.vividsolutions.jump.workbench.plugin.PlugInContext;
import com.vividsolutions.jump.workbench.ui.renderer.style.BasicStyle;
import com.vividsolutions.jump.workbench.ui.renderer.style.ColorScheme;
import com.vividsolutions.jump.workbench.ui.renderer.style.ColorThemingStyle;
public class TestColorThemingPlugIn extends AbstractPlugIn {
public void initialize(PlugInContext context) throws Exception {
context.getFeatureInstaller().addMainMenuItemWithJava14Fix(
this,
new String[] { "Tools", "Test" },
getName(),
false,
null,
null);
randomTrianglesPlugIn.setCities(cities);
}
private List cities =
Arrays.asList(
new String[] {
"Alabama",
"Alaska",
"Arizona",
"Arkansas",
"California",
"Colorado",
"Connecticut",
"Delaware",
"Florida",
"Georgia",
"Hawaii" });
private RandomTrianglesPlugIn randomTrianglesPlugIn =
new RandomTrianglesPlugIn();
public boolean execute(PlugInContext context) throws Exception {
ArrayList names = new ArrayList();
names.addAll(ColorScheme.discreteColorSchemeNames());
names.addAll(ColorScheme.rangeColorSchemeNames());
Collections.reverse(names);
for (Iterator i = names.iterator(); i.hasNext();) {
String colorScheme = (String) i.next();
execute(context, colorScheme);
}
return true;
}
private void execute(PlugInContext context, String colorSchemeName)
throws ParseException, IOException {
randomTrianglesPlugIn.execute(context, 500);
Layer layer = context.getLayerManager().getLayer("Random Triangles");
ColorScheme colorScheme = ColorScheme.create(colorSchemeName);
layer.setName("(" + colorScheme.getColors().size() + ") " + colorSchemeName);
Map attributeToStyleMap = new HashMap();
for (Iterator i = cities.iterator(); i.hasNext(); ) {
String city = (String) i.next();
attributeToStyleMap.put(city, new BasicStyle(colorScheme.next()));
}
layer.getBasicStyle().setEnabled(false);
ColorThemingStyle themeStyle = new ColorThemingStyle("City", attributeToStyleMap, new BasicStyle(Color.gray));
themeStyle.setEnabled(true);
layer.addStyle(themeStyle);
layer.setVisible(false);
}
}