/*
* GeoSolutions map - Digital field mapping on Android based devices
* Copyright (C) 2013 GeoSolutions (www.geo-solutions.it)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package it.geosolutions.android.map.activities;
import it.geosolutions.android.map.fragment.featureinfo.FeatureInfoLayerListFragment;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
/**
* Class that checks about shape of selection and instance a fragment to show
* results of spatialite query.
* @author Lorenzo Natali (www.geo-solutions.it)
*/
public class GetFeatureInfoLayerListActivity extends SherlockFragmentActivity {
public static final int BBOX_REQUEST = 10;
public static final int CIRCLE_REQUEST = 20;
public static final int POLYGON_REQUEST = 30;
public static final String RESULT_FEATURE_EXTRA = "FEATURE";
public static final String LAYER_FEATURE_EXTRA = "LAYER";
FeatureInfoLayerListFragment mTaskFragment;
ArrayList<String> emptyLayers=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
requestWindowFeature(Window.FEATURE_PROGRESS);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
FragmentManager fm = getSupportFragmentManager();
// During initial setup, plug in the details fragment.
mTaskFragment = (FeatureInfoLayerListFragment) fm.findFragmentByTag("featureInfoLayerList");
if(mTaskFragment == null){
mTaskFragment = new FeatureInfoLayerListFragment();
//TODO add empty layers to the view
mTaskFragment.setArguments(getIntent().getExtras());
//TODO add missing layers
fm.beginTransaction().add(android.R.id.content,mTaskFragment, "featureInfoLayerList").commit();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
setResult(RESULT_CANCELED);
finish();
break;
}
return false;
}
/* (non-Javadoc)
* @see android.support.v4.app.FragmentActivity#onActivityResult(int, int, android.content.Intent)
*/
@Override
protected void onActivityResult(int request_code, int result_code, Intent result) {
// TODO Auto-generated method stub
super.onActivityResult(request_code, result_code, result);
if(request_code==GetFeatureInfoAttributeActivity.GET_ITEM){
if(result_code==RESULT_OK){
setResult(Activity.RESULT_OK,result);
finish();
}
}
//from this we can get the emptyLayers and provide them to the fragment view
if(result_code==RESULT_CANCELED){
if(result!=null && result.getExtras()!=null){
String emptyLayer = result.getExtras().getString("emptyLayer");
if(emptyLayer!=null){
if(!this.emptyLayers.contains(emptyLayer)){
this.emptyLayers.add(emptyLayer);
}
}
}
}
}
}