Java Code Examples for com.nextgis.maplib.datasource.Field

The following examples show how to use com.nextgis.maplib.datasource.Field. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: android_maplibui   Author: nextgis   File: Coordinates.java    License: GNU Lesser General Public License v3.0 6 votes vote down vote up
@Override
public void init(JSONObject element,
                 List<Field> fields,
                 Bundle savedState,
                 Cursor featureCursor,
                 SharedPreferences preferences,
                 Map<String, Map<String, String>> translations) throws JSONException{
    JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
    mFieldName = attributes.getString(JSON_FIELD_NAME_KEY);
    mHidden = attributes.optBoolean(JSON_HIDDEN_KEY);

    // TODO crs, format
    String value;
    if (ControlHelper.hasKey(savedState, mFieldName))
        value = savedState.getString(ControlHelper.getSavedStateKey(mFieldName));
    else
        value = getFormattedValue();

    setText(value);
    setSingleLine(true);
    setEnabled(false);
}
 
Example #2
Source Project: android_maplibui   Author: nextgis   File: Tabs.java    License: GNU Lesser General Public License v3.0 6 votes vote down vote up
protected void addToLayout(IFormControl control, JSONObject element, List<Field> fields, Bundle savedState, Cursor featureCursor, LinearLayout layout)
        throws JSONException {
    if (null != control) {
        appendData(mLayer, mPreferences, mTable, mRow, control, element);

        if (control instanceof PhotoGallery) {
            if (savedState != null)
                savedState.putBoolean("<tabs&", true);
        }
        control.init(element, fields, savedState, featureCursor, mSharedPreferences, mTranslations);
        control.addToLayout(layout);
        if (mIsViewOnly)
            control.setEnabled(false);

        String fieldName = control.getFieldName();
        if (null != fieldName)
            mFields.put(fieldName, control);
        if (control instanceof Tabs) {
            Tabs tabs = (Tabs) control;
            mFields.putAll(tabs.getFields());
        }
    }
}
 
Example #3
Source Project: android_maplibui   Author: nextgis   File: Averaging.java    License: GNU Lesser General Public License v3.0 6 votes vote down vote up
@Override
public void init(JSONObject element, List<Field> fields, Bundle savedState,
                 Cursor featureCursor, SharedPreferences preferences,
                 Map<String, Map<String, String>> translations) throws JSONException {

    JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
    mFieldName = attributes.getString(JSON_FIELD_NAME_KEY);
    mMeasures = attributes.getLong(MEASUREMENT_COUNT);

    if (null != featureCursor) { // feature exists
        int column = featureCursor.getColumnIndex(mFieldName);
        if (column >= 0)
            mValue = featureCursor.getDouble(column);
    } else if (ControlHelper.hasKey(savedState, mFieldName)) {
        mValue = savedState.getDouble(ControlHelper.getSavedStateKey(mFieldName));
    } else {    // new feature
        mValue = 0.0;
    }

    setEnabled(false);
    setValue();
    Button average = findViewById(R.id.average);
    average.setOnClickListener(this);
}
 
Example #4
protected void addToLayout(IFormControl control, JSONObject element, List<Field> fields, Bundle savedState,
                           Cursor featureCursor, LinearLayout layout) throws JSONException {
    if (null != control) {
        appendData(mLayer, mPreferences, mTable, mRow, control, element);

        control.init(element, fields, savedState, featureCursor, mSharedPreferences, mTranslations);
        control.addToLayout(layout);
        if (mIsViewOnly)
            control.setEnabled(false);

        String fieldName = control.getFieldName();
        if (null != fieldName)
            mFields.put(fieldName, control);
        if (control instanceof Tabs) {
            Tabs tabs = (Tabs) control;
            mFields.putAll(tabs.getFields());
        }
    }
}
 
Example #5
protected Object putFieldValue(ContentValues values, Field field) {
    Object value = super.putFieldValue(values, field);
    IFormControl control = (IFormControl) mFields.get(field.getName());
    if (null == control)
        return null;

    if (null != value) {
        if (value instanceof DoubleComboboxValue) {
            DoubleComboboxValue dcValue = (DoubleComboboxValue) value;
            values.put(dcValue.mFieldName, dcValue.mValue);
            values.put(dcValue.mSubFieldName, dcValue.mSubValue);
        }
    }

    return value;
}
 
Example #6
private void fillFields() {
    mFieldNames = new ArrayList<>();
    mFieldAliases = new ArrayList<>();
    mFieldNames.add(FIELD_ID);
    mFieldAliases.add(FIELD_ID + " - " + LayerUtil.typeToString(getContext(), GeoConstants.FTInteger));

    int fieldsCount = mVectorLayer.getFields().size();
    String labelField = mVectorLayer.getPreferences().getString(SettingsConstantsUI.KEY_PREF_LAYER_LABEL, Constants.FIELD_ID);

    for (int i = 0; i < fieldsCount; i++) {
        Field field = mVectorLayer.getFields().get(i);
        String fieldInfo = field.getAlias() + " - " + LayerUtil.typeToString(getContext(), field.getType());
        if (field.getName().equals(labelField))
            mDefault = i + 1;

        mFieldNames.add(field.getName());
        mFieldAliases.add(fieldInfo);
    }
}
 
Example #7
Source Project: android_maplib   Author: nextgis   File: NGWUtil.java    License: GNU Lesser General Public License v3.0 6 votes vote down vote up
public static List<Field> getFieldsFromJson(JSONArray fieldsJSONArray)
        throws JSONException
{
    List<Field> fields = new LinkedList<>();
    for (int i = 0; i < fieldsJSONArray.length(); i++) {
        JSONObject fieldJSONObject = fieldsJSONArray.getJSONObject(i);
        String type = fieldJSONObject.getString("datatype");
        String alias = fieldJSONObject.getString("display_name");
        String name = fieldJSONObject.getString("keyname");

        int nType = LayerUtil.stringToType(type);
        if (Constants.NOT_FOUND != nType) {
            fields.add(new Field(nType, name, alias));
        }
    }
    return fields;
}
 
Example #8
Source Project: android_gisapp   Author: nextgis   File: CreateVectorLayerActivity.java    License: GNU General Public License v3.0 6 votes vote down vote up
private boolean createNewLayer() {
    MainApplication app = (MainApplication) getApplication();
    int geomType = getResources().getIntArray(R.array.geom_types)[mSpLayerType.getSelectedItemPosition()];
    List<Field> fields = mFieldAdapter.getFields();
    if (fields.size() == 0)
        fields.add(new Field(GeoConstants.FTString, "description", getString(R.string.default_field_name)));
    else
        for (int i = 0; i < fields.size(); i++)
            fields.get(i).setName("field_" + (i + 1));

    VectorLayer layer = app.createEmptyVectorLayer(mEtLayerName.getText().toString().trim(), null, geomType, fields);

    SimpleFeatureRenderer sfr = (SimpleFeatureRenderer) layer.getRenderer();
    if (null != sfr) {
        Style style = sfr.getStyle();
        if (null != style) {
            Random rnd = new Random(System.currentTimeMillis());
            style.setColor(Color.rgb(rnd.nextInt(255), rnd.nextInt(255), rnd.nextInt(255)));
        }
    }

    MapBase map = app.getMap();
    map.addLayer(layer);
    return map.save();
}
 
Example #9
Source Project: android_gisapp   Author: nextgis   File: CreateVectorLayerActivity.java    License: GNU General Public License v3.0 6 votes vote down vote up
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if (view == null) {
        LayoutInflater inflater = LayoutInflater.from(CreateVectorLayerActivity.this);
        view = inflater.inflate(R.layout.item_field, parent, false);
    }

    final Field field = mFields.get(position);
    TextView fieldName = (TextView) view.findViewById(R.id.tv_field_name);
    TextView fieldType = (TextView) view.findViewById(R.id.tv_field_type);
    fieldName.setText(field.getAlias());
    fieldType.setText(LayerUtil.typeToString(CreateVectorLayerActivity.this, field.getType()));

    view.findViewById(R.id.ib_remove_field).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mFields.remove(field);
            notifyDataSetChanged();
        }
    });

    return view;
}
 
Example #10
Source Project: android_maplibui   Author: nextgis   File: Counter.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void init(JSONObject element,
                 List<Field> fields,
                 Bundle savedState,
                 Cursor featureCursor,
                 SharedPreferences preferences,
                 Map<String, Map<String, String>> translations) throws JSONException{

    JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
    mFieldName = attributes.getString(JSON_FIELD_NAME_KEY);
    mIsShowLast = true;

    String value = null;
    if (null != featureCursor) { // feature exists
        int column = featureCursor.getColumnIndex(mFieldName);
        if (column >= 0)
            value = featureCursor.getString(column);
    } else if (ControlHelper.hasKey(savedState, mFieldName)) {
        mIncremented = savedState.getLong(ControlHelper.getSavedStateKey(mFieldName));
        value = getNewValue(attributes);
    } else {    // new feature
        String last = preferences.getString(mFieldName, null);
        if (last == null)
            mIncremented = attributes.getInt(JSON_INIT_VALUE_KEY);
        else {
            int inc = attributes.getInt(INCREMENT);
            mIncremented = Long.valueOf(last) + inc;
        }
        value = getNewValue(attributes);
    }

    setEnabled(false);
    setText(value);
    setSingleLine(true);
}
 
Example #11
Source Project: android_maplibui   Author: nextgis   File: Checkbox.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void init(JSONObject element,
                 List<Field> fields,
                 Bundle savedState,
                 Cursor featureCursor,
                 SharedPreferences preferences,
                 Map<String, Map<String, String>> translations) throws JSONException {

    JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
    mFieldName = attributes.getString(JSON_FIELD_NAME_KEY);
    mIsShowLast = ControlHelper.isSaveLastValue(attributes);

    Boolean value = null;
    if (ControlHelper.hasKey(savedState, mFieldName))
        value = savedState.getBoolean(ControlHelper.getSavedStateKey(mFieldName));
    else if (null != featureCursor) {
        int column = featureCursor.getColumnIndex(mFieldName);

        if (column >= 0)
            value = featureCursor.getInt(column) != 0;
    } else {
        value = attributes.getBoolean(JSON_INIT_VALUE_KEY);

        if (mIsShowLast)
            value = preferences.getBoolean(mFieldName, value);
    }

    if (value == null)
        value = false;

    setChecked(value);
    setText(ControlHelper.translate(attributes.getString(JSON_TEXT_KEY), translations));
    setEnabled(ControlHelper.isEnabled(fields, mFieldName));
}
 
Example #12
Source Project: android_maplibui   Author: nextgis   File: Distance.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void init(JSONObject element, List<Field> fields, Bundle savedState,
                 Cursor featureCursor, SharedPreferences preferences,
                 Map<String, Map<String, String>> translations) throws JSONException {
    JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
    mFieldName = attributes.getString(JSON_FIELD_NAME_KEY);
    mHidden = attributes.optBoolean(JSON_HIDDEN_KEY);

    String value;
    if (null != featureCursor) { // feature exists
        int column = featureCursor.getColumnIndex(mFieldName);
        if (column >= 0)
            mValue = featureCursor.getDouble(column);
        value = getFormattedValue();
    } else if (ControlHelper.hasKey(savedState, mFieldName))
        value = savedState.getString(ControlHelper.getSavedStateKey(mFieldName));
    else {
        calculate(false);
        value = getFormattedValue();
    }

    ((AppCompatEditText) findViewById(R.id.distance)).setText(value);
    findViewById(R.id.refresh).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            calculate(true);
            ((AppCompatEditText) findViewById(R.id.distance)).setText(getFormattedValue());
        }
    });
}
 
Example #13
Source Project: android_maplibui   Author: nextgis   File: TextLabel.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void init(JSONObject element, List<Field> fields, Bundle savedState,
                 Cursor featureCursor, SharedPreferences preferences,
                 Map<String, Map<String, String>> translations) throws JSONException {
    JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
    setText(ControlHelper.translate(attributes.getString(JSON_TEXT_KEY), translations));
}
 
Example #14
Source Project: android_maplibui   Author: nextgis   File: TextEdit.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void init(Field field,
                 Bundle savedState,
                 Cursor featureCursor){
    ControlHelper.setClearAction(this);

    mFieldName = field.getName();
    String text = "";

    if (ControlHelper.hasKey(savedState, mFieldName))
        text = savedState.getString(ControlHelper.getSavedStateKey(mFieldName));
    else if (null != featureCursor) {
        int column = featureCursor.getColumnIndex(mFieldName);
        if (column >= 0)
            text = featureCursor.getString(column);
    }

    setText(text);

    switch (field.getType()) {

        case GeoConstants.FTString:
            break;

        case GeoConstants.FTInteger:
            setSingleLine(true);
            setInputType(InputType.TYPE_CLASS_NUMBER);
            break;

        case GeoConstants.FTReal:
            setSingleLine(true);
            setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
            break;
    }
}
 
Example #15
Source Project: android_maplibui   Author: nextgis   File: LayerFillService.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public boolean execute(IProgressor progressor) {
    try {
        VectorLayer vectorLayer = (VectorLayer) mLayer;
        if (null == vectorLayer)
            return false;
        File meta = new File(mPath.getParentFile(), NGFP_META);

        if (meta.exists()) {
            String jsonText = FileUtil.readFromFile(meta);
            JSONObject metaJson = new JSONObject(jsonText);
            //read fields
            List<Field> fields = NGWUtil.getFieldsFromJson(metaJson.getJSONArray(NGWUtil.NGWKEY_FIELDS));
            //read geometry type
            String geomTypeString = metaJson.getString("geometry_type");
            int geomType = GeoGeometryFactory.typeFromString(geomTypeString);
            vectorLayer.create(geomType, fields);

            if (GeoJSONUtil.isGeoJsonHasFeatures(mPath)) {
                //read SRS -- not need as we will be fill layer with 3857
                JSONObject srs = metaJson.getJSONObject(NGWUtil.NGWKEY_SRS);
                int nSRS = srs.getInt(NGWUtil.NGWKEY_ID);
                vectorLayer.fillFromGeoJson(mPath, nSRS, progressor);
            }
        } else
            vectorLayer.createFromGeoJson(mPath, progressor); // should never get there
    } catch (IOException | JSONException | SQLiteException | NGException | ClassCastException e) {
        e.printStackTrace();
        setError(e, progressor);
        notifyError(mProgressMessage);
        return false;
    }

    if (mDeletePath)
        FileUtil.deleteRecursive(mPath);

    return true;
}
 
Example #16
protected void fillTabControls(
        LinearLayout layout,
        Bundle savedState,
        JSONArray elements)
        throws JSONException {

    Cursor featureCursor = getFeatureCursor();
    List<Field> fields = mLayer.getFields();
    for (int i = 0; i < elements.length(); i++) {
        IFormControl control;
        JSONObject element = elements.getJSONObject(i);
        String type = element.optString(JSON_TYPE_KEY);
        if (type.equals(JSON_COORDINATES_VALUE)) {
            JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
            String fieldY = attributes.optString(JSON_FIELD_NAME_KEY + "_lat");
            attributes.put(JSON_FIELD_NAME_KEY, fieldY);
            element.put(JSON_TYPE_KEY, type + "_lat");
            control = getControl(this, element, mLayer, mFeatureId, mGeometry, mIsViewOnly);
            addToLayout(control, element, fields, savedState, featureCursor, layout);

            attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
            String fieldX = attributes.optString(JSON_FIELD_NAME_KEY + "_long");
            attributes.put(JSON_FIELD_NAME_KEY, fieldX);
            element.put(JSON_TYPE_KEY, type + "_lon");
        }

        control = getControl(this, element, mLayer, mFeatureId, mGeometry, mIsViewOnly);
        if (type.equals(JSON_TABS_KEY))
            ((Tabs) control).init(mLayer, mFeatureId, mGeometry, mTable, mRow, mSharedPreferences,
                                  mPreferences, getSupportFragmentManager(), mIsViewOnly);

        addToLayout(control, element, fields, savedState, featureCursor, layout);
    }

    if (null != featureCursor) {
        featureCursor.close();
    }

    layout.requestLayout();
}
 
Example #17
@Override
protected boolean saveFeature() {
    boolean success = super.saveFeature();
    if (success)
        for (Field field : mLayer.getFields())
            saveLastValue(field);

    return success;
}
 
Example #18
Source Project: android_maplibui   Author: nextgis   File: ModifyAttributesActivity.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
protected Object putFieldValue(
        ContentValues values,
        Field field)
{
    String fieldName = field.getName();
    IControl control = mFields.get(fieldName);

    if (null == control) {
        return null;
    }

    Object value = control.getValue();
    fieldName = "'" + fieldName + "'";

    if (null != value) {
        Log.d(TAG, "field: " + field.getName() + " value: " + value.toString());

        if (value instanceof Long) {
            values.put(fieldName, (Long) value);
        } else if (value instanceof Integer) {
            values.put(fieldName, (Integer) value);
        } else if (value instanceof String) {
            values.put(fieldName, (String) value);
        } else if (value instanceof Double) {
            values.put(fieldName, (Double) value);
        } else if (value instanceof Float) {
            values.put(fieldName, (Float) value);
        }
    }

    return value;
}
 
Example #19
Source Project: android_maplibui   Author: nextgis   File: ControlHelper.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
public static boolean isEnabled(
        List<Field> fields,
        String fieldName)
{
    for (Field field : fields) {
        if (field.getName().equals(fieldName)) {
            return true;
        }
    }

    return false;
}
 
Example #20
Source Project: android_maplib   Author: nextgis   File: NGWVectorLayer.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void create(
        int geometryType,
        List<Field> fields)
        throws SQLiteException
{
    if (mNgwVersionMajor < Constants.NGW_v3 && geometryType < 4
            && mNGWLayerType == Connection.NGWResourceTypeVectorLayer) {
        // to multi
        geometryType += 3;
    }

    super.create(geometryType, fields);
    FeatureChanges.initialize(getChangeTableName());
}
 
Example #21
Source Project: android_maplib   Author: nextgis   File: VectorLayer.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public JSONObject toJSON()
        throws JSONException
{
    JSONObject rootConfig = super.toJSON();
    rootConfig.put(JSON_GEOMETRY_TYPE_KEY, mGeometryType);
    rootConfig.put(JSON_EDITABLE_KEY, mIsEditable);

    if (null != mFields) {
        JSONArray fields = new JSONArray();
        for (Field field : mFields.values()) {
            JSONObject fieldJsonObject = field.toJSON();
            fields.put(fieldJsonObject);
        }
        rootConfig.put(JSON_FIELDS_KEY, fields);
    }

    if (null != mRenderer && mRenderer instanceof IJSONStore) {
        IJSONStore jsonStore = (IJSONStore) mRenderer;
        rootConfig.put(Constants.JSON_RENDERERPROPS_KEY, jsonStore.toJSON());
    }

    if (mExtents.isInit()) {
        rootConfig.put(Constants.JSON_BBOX_MAXX_KEY, mExtents.getMaxX());
        rootConfig.put(Constants.JSON_BBOX_MINX_KEY, mExtents.getMinX());
        rootConfig.put(Constants.JSON_BBOX_MAXY_KEY, mExtents.getMaxY());
        rootConfig.put(Constants.JSON_BBOX_MINY_KEY, mExtents.getMinY());
    }

    if (!mIsCacheRebuilding) {
        mCache.save(new File(mPath, RTREE));
        if (DEBUG_MODE)
            Log.d(Constants.TAG, "mCache: saving toJSON");
    }

    return rootConfig;
}
 
Example #22
Source Project: android_maplib   Author: nextgis   File: VectorLayer.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void fromJSON(JSONObject jsonObject)
        throws JSONException, SQLiteException
{
    super.fromJSON(jsonObject);
    mGeometryType = jsonObject.getInt(JSON_GEOMETRY_TYPE_KEY);
    mIsEditable = jsonObject.optBoolean(JSON_EDITABLE_KEY, true);

    if (jsonObject.has(JSON_FIELDS_KEY)) {
        mFields = new HashMap<>();
        JSONArray fields = jsonObject.getJSONArray(JSON_FIELDS_KEY);
        for (int i = 0; i < fields.length(); i++) {
            Field field = new Field();
            field.fromJSON(fields.getJSONObject(i));
            mFields.put(field.getName(), field);
        }
    }

    if (jsonObject.has(Constants.JSON_BBOX_MAXX_KEY)) {
        mExtents.setMaxX(jsonObject.getDouble(Constants.JSON_BBOX_MAXX_KEY));
    }
    if (jsonObject.has(Constants.JSON_BBOX_MAXY_KEY)) {
        mExtents.setMaxY(jsonObject.getDouble(Constants.JSON_BBOX_MAXY_KEY));
    }
    if (jsonObject.has(Constants.JSON_BBOX_MINX_KEY)) {
        mExtents.setMinX(jsonObject.getDouble(Constants.JSON_BBOX_MINX_KEY));
    }
    if (jsonObject.has(Constants.JSON_BBOX_MINY_KEY)) {
        mExtents.setMinY(jsonObject.getDouble(Constants.JSON_BBOX_MINY_KEY));
    }

    reloadCache();

    if (jsonObject.has(Constants.JSON_RENDERERPROPS_KEY)) {
        setRenderer(jsonObject.getJSONObject(Constants.JSON_RENDERERPROPS_KEY));
    } else {
        setDefaultRenderer();
    }
}
 
Example #23
Source Project: android_maplib   Author: nextgis   File: VectorLayer.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
public List<Field> getFields()
{
    if (null == mFields) {
        return new ArrayList<>();
    }
    return new LinkedList<>(mFields.values());
}
 
Example #24
Source Project: android_maplib   Author: nextgis   File: NGWUtil.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
public static Feature readNGWFeature(
        JsonReader reader,
        List<Field> fields,
        int nSRS)
        throws IOException, IllegalStateException, NumberFormatException, OutOfMemoryError
{
    final Feature feature = new Feature(Constants.NOT_FOUND, fields);

    reader.beginObject();
    while (reader.hasNext()) {
        String name = reader.nextName();
        if (name.equals(NGWUtil.NGWKEY_ID)) {
            feature.setId(reader.nextLong());
        } else if (name.equals(NGWUtil.NGWKEY_GEOM)) {
            String wkt = reader.nextString();
            GeoGeometry geom = GeoGeometryFactory.fromWKT(wkt, nSRS);
            geom.setCRS(nSRS);
            if (nSRS != GeoConstants.CRS_WEB_MERCATOR) {
                geom.project(GeoConstants.CRS_WEB_MERCATOR);
            }
            feature.setGeometry(geom);
        } else if (name.equals(NGWUtil.NGWKEY_FIELDS)) {
            readNGWFeatureFields(feature, reader, fields);
        } else if (name.equals(NGWUtil.NGWKEY_EXTENSIONS)) {
            if (reader.peek() != JsonToken.NULL) {
                readNGWFeatureAttachments(feature, reader);
            }
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();
    return feature;
}
 
Example #25
Source Project: android_gisapp   Author: nextgis   File: MainApplication.java    License: GNU General Public License v3.0 5 votes vote down vote up
public VectorLayer createEmptyVectorLayer(
        String layerName,
        String layerPath,
        int layerType,
        List<Field> fields)
{
    VectorLayerUI vectorLayer = new VectorLayerUI(this, mMap.createLayerStorage(layerPath));
    vectorLayer.setName(layerName);
    vectorLayer.setVisible(true);
    vectorLayer.setMinZoom(GeoConstants.DEFAULT_MIN_ZOOM);
    vectorLayer.setMaxZoom(GeoConstants.DEFAULT_MAX_ZOOM);

    vectorLayer.create(layerType, fields);
    return vectorLayer;
}
 
Example #26
Source Project: android_gisapp   Author: nextgis   File: CreateVectorLayerActivity.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Override
public void OnFieldChosen(String alias, int type) {
    if (TextUtils.isEmpty(alias))
        Toast.makeText(this, R.string.empty_name, Toast.LENGTH_SHORT).show();
    else if (mFieldAdapter.containsField(alias))
        Toast.makeText(this, R.string.same_field_name, Toast.LENGTH_LONG).show();
    else
        mFieldAdapter.addField(new Field(type, null, alias));
}
 
Example #27
Source Project: android_gisapp   Author: nextgis   File: CreateVectorLayerActivity.java    License: GNU General Public License v3.0 5 votes vote down vote up
public boolean containsField(String fieldName) {
    for (Field field : mFields)
        if (field.getAlias().equalsIgnoreCase(fieldName))
            return true;

    return false;
}
 
Example #28
Source Project: android_maplibui   Author: nextgis   File: Combobox.java    License: GNU Lesser General Public License v3.0 4 votes vote down vote up
@Override
public void init(JSONObject element,
                 List<Field> fields,
                 Bundle savedState,
                 Cursor featureCursor,
                 SharedPreferences preferences,
                 Map<String, Map<String, String>> translations) throws JSONException{

    JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
    mFieldName = attributes.getString(JSON_FIELD_NAME_KEY);
    mIsShowLast = ControlHelper.isSaveLastValue(attributes);
    setEnabled(ControlHelper.isEnabled(fields, mFieldName));

    String lastValue = null;
    if (ControlHelper.hasKey(savedState, mFieldName))
        lastValue = savedState.getString(ControlHelper.getSavedStateKey(mFieldName));
    else if (null != featureCursor) {
            int column = featureCursor.getColumnIndex(mFieldName);
            if (column >= 0)
                lastValue = featureCursor.getString(column);
    } else if (mIsShowLast)
        lastValue = preferences.getString(mFieldName, null);

    int defaultPosition = 0;
    int lastValuePosition = -1;
    mAliasValueMap = new HashMap<>();

    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>(getContext(), R.layout.formtemplate_spinner);
    setAdapter(spinnerArrayAdapter);

    if (attributes.has(ConstantsUI.JSON_NGW_ID_KEY) && attributes.getLong(ConstantsUI.JSON_NGW_ID_KEY) != -1) {
        MapContentProviderHelper map = (MapContentProviderHelper) MapBase.getInstance();
        if (null == map)
            throw new IllegalArgumentException("The map should extends MapContentProviderHelper or inherited");

        String account = element.optString(SyncStateContract.Columns.ACCOUNT_NAME);
        long id = attributes.optLong(JSON_NGW_ID_KEY, -1);
        for (int i = 0; i < map.getLayerCount(); i++) {
            if (map.getLayer(i) instanceof NGWLookupTable) {
                NGWLookupTable table = (NGWLookupTable) map.getLayer(i);
                if (table.getRemoteId() != id || !table.getAccountName().equals(account))
                    continue;

                int j = 0;
                for (Map.Entry<String, String> entry : table.getData().entrySet()) {
                    mAliasValueMap.put(entry.getValue(), entry.getKey());

                    if (null != lastValue && lastValue.equals(entry.getKey()))
                        lastValuePosition = j;

                    spinnerArrayAdapter.add(entry.getValue());
                    j++;
                }

                break;
            }
        }
    } else {
        JSONArray values = attributes.optJSONArray(JSON_VALUES_KEY);
        if (values != null) {
            for (int j = 0; j < values.length(); j++) {
                JSONObject keyValue = values.getJSONObject(j);
                String value = keyValue.getString(JSON_VALUE_NAME_KEY);
                String value_alias = keyValue.getString(JSON_VALUE_ALIAS_KEY);

                if (keyValue.has(JSON_DEFAULT_KEY) && keyValue.getBoolean(JSON_DEFAULT_KEY))
                    defaultPosition = j;

                if (null != lastValue && lastValue.equals(value))
                    lastValuePosition = j;

                mAliasValueMap.put(value_alias, value);
                spinnerArrayAdapter.add(value_alias);
            }
        }
    }

    setSelection(lastValuePosition >= 0 ? lastValuePosition : defaultPosition);

    // The drop down view
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    float minHeight = TypedValue.applyDimension(
            TypedValue.COMPLEX_UNIT_DIP, 14, getResources().getDisplayMetrics());
    setPadding(0, (int) minHeight, 0, (int) minHeight);
}
 
Example #29
Source Project: android_maplibui   Author: nextgis   File: RadioGroup.java    License: GNU Lesser General Public License v3.0 4 votes vote down vote up
@Override
public void init(JSONObject element,
                 List<Field> fields,
                 Bundle savedState,
                 Cursor featureCursor,
                 SharedPreferences preferences,
                 Map<String, Map<String, String>> translations) throws JSONException{

    JSONObject attributes = element.getJSONObject(JSON_ATTRIBUTES_KEY);
    mFieldName = attributes.getString(JSON_FIELD_NAME_KEY);
    mIsShowLast = ControlHelper.isSaveLastValue(attributes);
    boolean isEnabled = ControlHelper.isEnabled(fields, mFieldName);
    setEnabled(isEnabled);

    String lastValue = null;
    if (ControlHelper.hasKey(savedState, mFieldName))
        lastValue = savedState.getString(ControlHelper.getSavedStateKey(mFieldName));
    else if (null != featureCursor) { // feature exists
        int column = featureCursor.getColumnIndex(mFieldName);
        if (column >= 0)
            lastValue = featureCursor.getString(column);
    } else if (mIsShowLast)
        lastValue = preferences.getString(mFieldName, null);

    JSONArray values = attributes.getJSONArray(JSON_VALUES_KEY);
    int position = Constants.NOT_FOUND;
    mAliasValueMap = new HashMap<>();

    for (int j = 0; j < values.length(); j++) {
        JSONObject keyValue = values.getJSONObject(j);
        String value = keyValue.getString(JSON_VALUE_NAME_KEY);
        String value_alias = keyValue.getString(JSON_VALUE_ALIAS_KEY);

        if (lastValue == null && keyValue.has(JSON_DEFAULT_KEY) && keyValue.getBoolean(JSON_DEFAULT_KEY)) {
            position = j;
        }

        if (lastValue != null && lastValue.equals(value)) { // if modify data
            position = j;
        }

        mAliasValueMap.put(value_alias, value);
        AppCompatRadioButton radioButton = new AppCompatRadioButton(getContext());
        radioButton.setText(value_alias);
        radioButton.setEnabled(isEnabled);
        addView(radioButton);
    }

    if (getChildAt(position) != null)
        check(getChildAt(position).getId());
    setOrientation(RadioGroup.VERTICAL);
}
 
Example #30
Source Project: android_maplibui   Author: nextgis   File: Sign.java    License: GNU Lesser General Public License v3.0 4 votes vote down vote up
@Override
public void init(JSONObject element, List<Field> fields, Bundle savedState,
                 Cursor featureCursor, SharedPreferences lastValue,
                 Map<String, Map<String, String>> translations) {
    init();
}