Hi everyone
I would like to display the domain coded value of a field : do you know how to do ?
What I did below works fine but only displays the raw value, not the domain coded value one :
ServiceFeatureTable sFT= new ServiceFeatureTable(props.getProperty("URL"));
FeatureLayer sFL= new FeatureLayer(sFT);
...
final ListenableFuture<FeatureQueryResult> selectFuture = sFT.queryFeaturesAsync(queryParams, ServiceFeatureTable.QueryFeatureFields.LOAD_ALL);
selectFuture.addDoneListener(new Runnable() {
@Override
public void run() {
try {
Callout fenetre = mapView.getCallout();
fenetre.setStyle(props.getProperty("callOutCSS"));
fenetre.setTitle("Informations\n");
FeatureQueryResult result = selectFuture.get();
Iterator<Feature> iterator = result.iterator();
Feature feature;
String attrContenu;
attrContenu = "";
while (iterator.hasNext()) {
feature = iterator.next();
Map<String, Object> attr = feature.getAttributes();
Set<String> keys = attr.keySet();
for(int i = 0; i < champsDOPC.length; i++) {
for (String key : keys) {
Object value = attr.get(key);
if (champsDOPC.equalsIgnoreCase(key)) {
if (!(value == null))
attrContenu += key + " : " + value + "\n";
}
}
}
}
if (!fenetre.isVisible()) {
fenetre.setDetail(attrContenu);
fenetre.showCalloutAt(curMapPoint, dureeCallOut);
} else
fenetre.dismiss();
} catch (Exception ex) {
//System.out.printf(ex.printStackTrace());
}
}
});
Have a nice day
Hi All
I did a cast change from class Domain to CodedValueDomain and it works now :
...
while (iterator.hasNext()) {
feature = iterator.next();
Map<String, Object> attr = feature.getAttributes();
Set<String> keys = attr.keySet();
for(int i = 0; i < champsDOPC.length; i++) {
for (String key : keys) {
if (champsDOPC.equalsIgnoreCase(key)) {
Object value = attr.get(key);
if (!(value == null)) {
Domain pDom = compaDOPCMoyen.getField(key).getDomain();
if (!(pDom == null)) {
CodedValueDomain pCVC = (CodedValueDomain)pDom;
List<CodedValue> pListe = pCVC.getCodedValues();
String sValue;
sValue = "";
for(int j= 0; j < pListe.size(); j++) {
if (value.toString().equalsIgnoreCase(pListe.get(j).getCode().toString())) {
sValue = pListe.get(j).getName();
break;
}
}
attrContenu += key + " : " + sValue + "\n";
} else {
attrContenu += key + " : " + value + "\n";
}
}
}
}
}
}
...
Have a nice day