display the domain coded value of a field

437
1
08-02-2018 01:23 AM
AntonFuchs
New Contributor

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

Tags (1)
0 Kudos
1 Reply
AntonFuchs
New Contributor

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

0 Kudos