Revision 639ae8d6 src/com/rackspacecloud/android/AddLoadBalancerActivity.java

b/src/com/rackspacecloud/android/AddLoadBalancerActivity.java
1 1
package com.rackspacecloud.android;
2 2

  
3
import java.util.ArrayList;
4
import java.util.Arrays;
5
import java.util.Iterator;
6

  
7 3
import com.rackspace.cloud.loadbalancer.api.client.Algorithm;
8
import com.rackspace.cloud.loadbalancer.api.client.LoadBalancer;
9 4
import com.rackspace.cloud.loadbalancer.api.client.Protocol;
10
import com.rackspace.cloud.loadbalancer.api.client.ProtocolManager;
11
import com.rackspace.cloud.servers.api.client.Image;
12 5

  
13 6
import android.app.Activity;
14 7
import android.app.AlertDialog;
15
import android.content.Context;
16 8
import android.content.DialogInterface;
17
import android.os.AsyncTask;
9
import android.content.Intent;
18 10
import android.os.Bundle;
19
import android.util.Log;
20 11
import android.view.View;
12
import android.view.View.OnClickListener;
21 13
import android.widget.AdapterView;
22 14
import android.widget.AdapterView.OnItemSelectedListener;
23 15
import android.widget.ArrayAdapter;
16
import android.widget.Button;
24 17
import android.widget.EditText;
25 18
import android.widget.Spinner;
26 19

  
27 20
public class AddLoadBalancerActivity extends Activity implements OnItemSelectedListener {
28 21

  
22
	//TODO Shared Virtual IP (not in API though?)
23
	private static final String[] VIP_TYPES = {"Public", "ServiceNet"};
24
	private static final String[] REGIONS = {"ORD", "DFW"};
25
	
29 26
	private Protocol[] protocols;
30 27
	private Algorithm[] algorithms;
31
	private LoadBalancer loadBalancer;
32
	private Context context;
33 28
	private Spinner protocolSpinner;
34 29
	private Spinner algorithmSpinner;
30
	private Spinner vipSpinner;
31
	private Spinner regionSpinner;
35 32
	private EditText portText;
36 33
	private Protocol selectedProtocol;
34
	private Algorithm selectedAlgorithm;
35
	private String selectedVipType;
36
	private String selectedRegion;
37
	private String selectedName;
38
	private String selectedPort;
37 39

  
38 40
	@Override
39 41
	public void onCreate(Bundle savedInstanceState) {
......
43 45
	}
44 46

  
45 47
	private void restoreState(Bundle state) {
46
		context = getApplicationContext();
47 48
		portText = (EditText)findViewById(R.id.edit_port_text);
48 49
		loadProtocolSpinner();
49 50
		loadAlgorithmSpinner();
51
		loadVipSpinner();
52
		loadRegionSpinner();
53
		setUpButton();
50 54
	}
51 55

  
52 56
	public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
......
54 58
			selectedProtocol = protocols[position];
55 59
			portText.setText(protocols[position].getPort());
56 60
		} 
61
		else if (parent == algorithmSpinner){
62
			selectedAlgorithm = algorithms[position];
63
		}
64
		else if (parent == vipSpinner){
65
			selectedVipType = VIP_TYPES[position];
66
		}
67
		else if (parent == regionSpinner){
68
			selectedRegion = REGIONS[position];
69
		}
57 70
	}
58 71

  
59 72
	public void onNothingSelected(AdapterView<?> parent) {
60 73

  
61 74
	}
75
	
76
	private void setUpButton(){
77
		Button addNodes = (Button) findViewById(R.id.add_nodes_button);
78
		addNodes.setOnClickListener(new OnClickListener() {
79
			
80
			@Override
81
			public void onClick(View v) {
82
				selectedName = ((EditText)findViewById(R.id.edit_lb_name_text)).getText().toString();
83
				selectedPort = ((EditText)findViewById(R.id.edit_port_text)).getText().toString();
84
				if(!validName()){
85
					showAlert("Error", "Load balancer name cannot be blank.");
86
				}
87
				else if(!validPort()){
88
					showAlert("Error", "Must have a protocol port number that is between 1 and 65535.");
89
				}
90
				else{
91
					Intent viewIntent = new Intent(getApplicationContext(), AddNodesActivity.class);
92
					viewIntent.putExtra("name", selectedName);
93
					viewIntent.putExtra("protocol", selectedProtocol);
94
					viewIntent.putExtra("port", selectedPort);
95
					viewIntent.putExtra("vip", selectedVipType);
96
					viewIntent.putExtra("algorithm", selectedAlgorithm);
97
					viewIntent.putExtra("region", selectedRegion);
98
					startActivity(viewIntent);
99
				}
100
			}
101
		});
102
	}
103
	
104
	private boolean validName(){
105
		return !selectedName.equals("");
106
	}
107
	
108
	private boolean validPort(){
109
		return !selectedPort.equals("") && Integer.valueOf(selectedPort) > 0 && Integer.valueOf(selectedPort) < 65536;
110
	}
111
	
112
	private void loadRegionSpinner() {
113
		regionSpinner = (Spinner) findViewById(R.id.edit_region_spinner);
114
		regionSpinner.setOnItemSelectedListener(this);
115

  
116
		ArrayAdapter<String> regionAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, REGIONS);
117
		regionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
118
		regionSpinner.setAdapter(regionAdapter);
119
	}
120
	
121
	private void loadVipSpinner() {
122
		vipSpinner = (Spinner) findViewById(R.id.edit_vip_spinner);
123
		vipSpinner.setOnItemSelectedListener(this);
124

  
125
		ArrayAdapter<String> vipAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, VIP_TYPES);
126
		vipAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
127
		vipSpinner.setAdapter(vipAdapter);
128
	}
62 129

  
63 130
	private void loadProtocolSpinner() {
64 131
		protocolSpinner = (Spinner) findViewById(R.id.edit_protocol_spinner);

Also available in: Unified diff