package uni.projecte.maps; import uni.projecte.R; import uni.projecte.controler.MapConfigControler; import uni.projecte.controler.ProjectConfigControler; import android.app.Dialog; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageButton; import android.widget.LinearLayout; public class MarkerConfigurationDialog extends Dialog{ public static final int UPDATE_PROJECT_MARKER=1; public static final int UPDATE_CITATION_MARKER=2; private Context mContext ; private LinearLayout ll; private long id; private String marker_id; private int mode; //private ProjectConfigControler projCnf; private MapConfigControler mapConfig; private Handler handler; private String[] idOfButtons = { "marker_bubble","marker_butterfly", "marker_snake", "marker_bee", "marker_turtle", "marker_algae", "marker_spider", "marker_clear", "marker_birds", "marker_plant", "marker_fungus", "marker_mammal" }; public MarkerConfigurationDialog(Context context,long id, Handler updateMarkers,int mode) { super(context); mContext=context; this.id=id; this.handler=updateMarkers; this.mode=mode; } @Override protected void onCreate(final Bundle savedInstanceState){ super.onCreate(savedInstanceState); mapConfig = new MapConfigControler(mContext); ll=(LinearLayout) LayoutInflater.from(mContext).inflate(R.layout.map_change_marker, null); setContentView(ll); bindOnClickEvents(); loadSelectedMarker(); if(!marker_id.equals("marker")) setSelectedMarker(); } private void loadSelectedMarker() { if(mode == UPDATE_CITATION_MARKER) marker_id=mapConfig.getCitationMapMarker(id); else marker_id=mapConfig.getProjectMapMarker(id); } private void bindOnClickEvents() { Resources mRes = mContext.getResources(); for (int pos = 0; pos < idOfButtons.length; pos++) { Integer btnId = mRes.getIdentifier(idOfButtons[pos], "id",mContext.getPackageName()); ImageButton ib = (ImageButton) ll.findViewById(btnId); ib.setTag(idOfButtons[pos]); ib.setOnClickListener(markerClick); } } private void setSelectedMarker(){ Resources mRes = mContext.getResources(); ImageButton ib=(ImageButton)ll.findViewById(R.id.ibMarkerChosen); int resID = mRes.getIdentifier(marker_id, "drawable", mContext.getPackageName()); ib.setBackgroundResource(resID); updateMarkerId(); } private void updateMarkerId() { if(mode == UPDATE_CITATION_MARKER) mapConfig.setCitationMapMarker(id,marker_id); else mapConfig.setProjectMapMarker(id,marker_id); } public android.view.View.OnClickListener markerClick = new android.view.View.OnClickListener() { public void onClick(View v) { marker_id=(String)v.getTag(); setSelectedMarker(); if(handler!=null){ Message msg = Message.obtain(); msg.what = 0; msg.obj = marker_id; handler.sendMessage(msg); } } }; }