/*
* uDig - User Friendly Desktop Internet GIS client
* http://udig.refractions.net
* (C) 2012, Refractions Research Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* (http://www.eclipse.org/legal/epl-v10.html), and the Refractions BSD
* License v1.0 (http://udig.refractions.net/files/bsd3-v10.html).
*/
package org.locationtech.udig.tutorials.featureeditor;
import java.util.Arrays;
import org.locationtech.udig.feature.editor.field.AttributeField;
import org.locationtech.udig.feature.editor.field.ComboAttributeField2;
import org.locationtech.udig.feature.editor.field.FeaturePanel;
import org.locationtech.udig.feature.editor.field.IntegerAttributeField;
import org.locationtech.udig.feature.editor.field.StringAttributeField;
import org.locationtech.udig.project.ui.IFeatureSite;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.PartInitException;
/**
* Country Feature Panel used to show the use of AttributeFields.
*
* @since 1.2.0
*/
public class CountryFeaturePanel3 extends FeaturePanel {
private static final String CURR_TYPE = "CURR_TYPE";
/** Attribute name for attribute GMI_CNTRY */
public final static String GMI_CNTRY = "GMI_CNTRY";
/** Attribute name for attribute REGION */
public final static String COLOR_MAP = "COLOR_MAP";
/** Attribute name for attribute NAME */
public final static String CNTRY_NAME = "CNTRY_NAME";
public final static Object[] COLOR_MAP_OPTS = new Object[]{"1", "2", "3", "4", "5", "6", "7",
"8"};
private StringAttributeField currType;
private StringAttributeField currCode;
/**
* Step 0 - Default constructor.
*/
public CountryFeaturePanel3() {
}
/**
* Step 1 - init using the editor site and memento holding any information from last time
*/
@Override
public void init( IFeatureSite site, IMemento memento ) throws PartInitException {
super.init(site, memento);
}
@Override
public void createFieldEditors() {
StringAttributeField field = addField(new StringAttributeField("SQKM", "Area (square km)",
getParent()));
field.getLabelControl(getParent()).setToolTipText("Area km");
field = addField(new StringAttributeField("SQMI", "Square Miles:", getParent()));
field.getLabelControl(getParent()).setToolTipText("Area miles");
ComboAttributeField2 combo = addField(new ComboAttributeField2(COLOR_MAP, "Color Map",
Arrays.asList(COLOR_MAP_OPTS), getParent()));
ComboViewer viewer = combo.getViewer();
viewer.setLabelProvider(new LabelProvider(){
@Override
public String getText( Object element ) {
return "Color " + element;
}
});
}
@Override
public void propertyChange( PropertyChangeEvent event ) {
super.propertyChange(event);
if (event.getProperty().equals(AttributeField.IS_VALID)) {
// a field has told us it is valid/invalid
//
AttributeField field = (AttributeField) event.getSource();
String name = field.getAttributeName();
boolean isValid = (Boolean) event.getNewValue();
if (CURR_TYPE.equals( name )) {
// if the curr_type field is not valid; disable currency code
currCode.setEnabled(isValid);
}
}
}
@Override
public String getDescription() {
return "Details on the selected country.";
}
@Override
public String getName() {
return "Country2";
}
@Override
public String getTitle() {
return "Country Statis";
}
}