root / src / com / rackspacecloud / android / AddNodeActivity.java @ b722cab3
History | View | Annotate | Download (4.6 kB)
1 | 96a8e632 | Adam Menz | package com.rackspacecloud.android; |
---|---|---|---|
2 | 96a8e632 | Adam Menz | |
3 | 96a8e632 | Adam Menz | import android.content.Intent; |
4 | 96a8e632 | Adam Menz | import android.os.Bundle; |
5 | b722cab3 | Adam Menz | import android.util.Log; |
6 | 96a8e632 | Adam Menz | import android.view.View; |
7 | 96a8e632 | Adam Menz | import android.view.View.OnClickListener; |
8 | 96a8e632 | Adam Menz | import android.view.Window; |
9 | 96a8e632 | Adam Menz | import android.widget.AdapterView; |
10 | 96a8e632 | Adam Menz | import android.widget.AdapterView.OnItemSelectedListener; |
11 | 96a8e632 | Adam Menz | import android.widget.ArrayAdapter; |
12 | 96a8e632 | Adam Menz | import android.widget.Button; |
13 | 96a8e632 | Adam Menz | import android.widget.Spinner; |
14 | 96a8e632 | Adam Menz | import android.widget.EditText; |
15 | b722cab3 | Adam Menz | import android.widget.TextView; |
16 | 96a8e632 | Adam Menz | |
17 | b722cab3 | Adam Menz | public class AddNodeActivity extends CloudActivity{ |
18 | 96a8e632 | Adam Menz | |
19 | 96a8e632 | Adam Menz | private final String[] CONDITIONS = {"Enabled", "Disabled", "Draining"}; |
20 | 96a8e632 | Adam Menz | private String[] ipAddresses; |
21 | b722cab3 | Adam Menz | private String name; |
22 | 96a8e632 | Adam Menz | private String selectedPort; |
23 | 96a8e632 | Adam Menz | private String selectedIp; |
24 | b722cab3 | Adam Menz | private String selectedWeight; |
25 | b722cab3 | Adam Menz | private boolean weighted; |
26 | 96a8e632 | Adam Menz | private String selectedCondition; |
27 | b722cab3 | Adam Menz | private Spinner conditionSpinner;
|
28 | b722cab3 | Adam Menz | private Spinner ipAddressSpinner;
|
29 | b722cab3 | Adam Menz | private EditText weightText;
|
30 | 96a8e632 | Adam Menz | |
31 | 96a8e632 | Adam Menz | public void onCreate(Bundle savedInstanceState) { |
32 | 96a8e632 | Adam Menz | super.onCreate(savedInstanceState);
|
33 | 96a8e632 | Adam Menz | requestWindowFeature(Window.FEATURE_NO_TITLE);
|
34 | 96a8e632 | Adam Menz | setContentView(R.layout.addnode); |
35 | 96a8e632 | Adam Menz | ipAddresses = (String[]) this.getIntent().getExtras().get("ipAddresses"); |
36 | b722cab3 | Adam Menz | name = (String) this.getIntent().getExtras().get("name"); |
37 | b722cab3 | Adam Menz | weighted = (Boolean) this.getIntent().getExtras().get("weighted"); |
38 | 96a8e632 | Adam Menz | restoreState(savedInstanceState); |
39 | b722cab3 | Adam Menz | } |
40 | b722cab3 | Adam Menz | |
41 | b722cab3 | Adam Menz | protected void restoreState(Bundle state) { |
42 | b722cab3 | Adam Menz | super.restoreState(state);
|
43 | b722cab3 | Adam Menz | setupInputs(); |
44 | b722cab3 | Adam Menz | } |
45 | b722cab3 | Adam Menz | |
46 | b722cab3 | Adam Menz | private void setupInputs(){ |
47 | b722cab3 | Adam Menz | |
48 | b722cab3 | Adam Menz | ((TextView)findViewById(R.id.node_name)).setText(name); |
49 | b722cab3 | Adam Menz | |
50 | b722cab3 | Adam Menz | weightText = (EditText) findViewById(R.id.node_weight_text); |
51 | b722cab3 | Adam Menz | |
52 | b722cab3 | Adam Menz | //if algorithm is not weighted then then node's weight will be null
|
53 | b722cab3 | Adam Menz | if(!weighted){
|
54 | b722cab3 | Adam Menz | TextView weightLabel = (TextView) findViewById(R.id.node_weight_label); |
55 | b722cab3 | Adam Menz | weightLabel.setVisibility(View.GONE);
|
56 | b722cab3 | Adam Menz | weightText.setVisibility(View.GONE);
|
57 | b722cab3 | Adam Menz | } |
58 | b722cab3 | Adam Menz | |
59 | 96a8e632 | Adam Menz | loadConditionSpinner(); |
60 | 96a8e632 | Adam Menz | loadIpSpinner(); |
61 | 96a8e632 | Adam Menz | setUpButton(); |
62 | 96a8e632 | Adam Menz | |
63 | 96a8e632 | Adam Menz | } |
64 | 96a8e632 | Adam Menz | |
65 | 96a8e632 | Adam Menz | private void setUpButton(){ |
66 | 96a8e632 | Adam Menz | Button submit = (Button) findViewById(R.id.add_node_button); |
67 | 96a8e632 | Adam Menz | submit.setOnClickListener(new OnClickListener() {
|
68 | 96a8e632 | Adam Menz | |
69 | 96a8e632 | Adam Menz | @Override
|
70 | 96a8e632 | Adam Menz | public void onClick(View v) { |
71 | 96a8e632 | Adam Menz | selectedPort = ((EditText)findViewById(R.id.node_port_text)).getText().toString(); |
72 | b722cab3 | Adam Menz | selectedWeight = weightText.getText().toString(); |
73 | 96a8e632 | Adam Menz | if(!validPort()){
|
74 | 96a8e632 | Adam Menz | showAlert("Error", "Must have a protocol port number that is between 1 and 65535."); |
75 | b722cab3 | Adam Menz | } else if(!(weightText.getVisibility() == View.GONE || (weightText.getVisibility() != View.GONE && validWeight(selectedWeight)))){ |
76 | b722cab3 | Adam Menz | showAlert("Error", "Weight must be between 1 and 100."); |
77 | 96a8e632 | Adam Menz | } |
78 | b722cab3 | Adam Menz | |
79 | 96a8e632 | Adam Menz | else{
|
80 | 96a8e632 | Adam Menz | Intent data = new Intent();
|
81 | 96a8e632 | Adam Menz | data.putExtra("nodeIp", selectedIp);
|
82 | 96a8e632 | Adam Menz | data.putExtra("nodePort", selectedPort);
|
83 | 96a8e632 | Adam Menz | data.putExtra("nodeCondition", selectedCondition);
|
84 | b722cab3 | Adam Menz | Log.d("info", "saving the weight as " + selectedWeight); |
85 | b722cab3 | Adam Menz | data.putExtra("nodeWeight", selectedWeight);
|
86 | 4f9d1a69 | Adam Menz | setResult(RESULT_OK, data); |
87 | 96a8e632 | Adam Menz | finish(); |
88 | 96a8e632 | Adam Menz | } |
89 | 96a8e632 | Adam Menz | |
90 | 96a8e632 | Adam Menz | } |
91 | 96a8e632 | Adam Menz | }); |
92 | 96a8e632 | Adam Menz | } |
93 | 96a8e632 | Adam Menz | |
94 | 96a8e632 | Adam Menz | public void onBackPressed(){ |
95 | 4f9d1a69 | Adam Menz | setResult(RESULT_CANCELED); |
96 | 96a8e632 | Adam Menz | finish(); |
97 | 96a8e632 | Adam Menz | } |
98 | 96a8e632 | Adam Menz | |
99 | 96a8e632 | Adam Menz | private void loadIpSpinner(){ |
100 | 96a8e632 | Adam Menz | ipAddressSpinner = (Spinner) findViewById(R.id.node_ip_spinner); |
101 | 96a8e632 | Adam Menz | ArrayAdapter<String> ipAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ipAddresses); |
102 | 96a8e632 | Adam Menz | ipAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
103 | 96a8e632 | Adam Menz | ipAddressSpinner.setAdapter(ipAdapter); |
104 | 96a8e632 | Adam Menz | |
105 | 96a8e632 | Adam Menz | ipAddressSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
|
106 | 96a8e632 | Adam Menz | |
107 | 96a8e632 | Adam Menz | @Override
|
108 | 96a8e632 | Adam Menz | public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { |
109 | 96a8e632 | Adam Menz | selectedIp = ipAddresses[pos]; |
110 | 96a8e632 | Adam Menz | } |
111 | 96a8e632 | Adam Menz | |
112 | 96a8e632 | Adam Menz | @Override
|
113 | 96a8e632 | Adam Menz | public void onNothingSelected(AdapterView<?> arg0) { |
114 | 96a8e632 | Adam Menz | |
115 | 96a8e632 | Adam Menz | } |
116 | 96a8e632 | Adam Menz | |
117 | 96a8e632 | Adam Menz | }); |
118 | 96a8e632 | Adam Menz | } |
119 | 96a8e632 | Adam Menz | |
120 | 96a8e632 | Adam Menz | private void loadConditionSpinner(){ |
121 | 96a8e632 | Adam Menz | conditionSpinner = (Spinner) findViewById(R.id.node_condition_spinner); |
122 | 96a8e632 | Adam Menz | |
123 | 96a8e632 | Adam Menz | ArrayAdapter<String> conditionAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, CONDITIONS); |
124 | 96a8e632 | Adam Menz | conditionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); |
125 | 96a8e632 | Adam Menz | conditionSpinner.setAdapter(conditionAdapter); |
126 | 96a8e632 | Adam Menz | |
127 | 96a8e632 | Adam Menz | conditionSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
|
128 | 96a8e632 | Adam Menz | |
129 | 96a8e632 | Adam Menz | @Override
|
130 | 96a8e632 | Adam Menz | public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { |
131 | 96a8e632 | Adam Menz | selectedCondition = CONDITIONS[pos]; |
132 | 96a8e632 | Adam Menz | } |
133 | 96a8e632 | Adam Menz | |
134 | 96a8e632 | Adam Menz | @Override
|
135 | 96a8e632 | Adam Menz | public void onNothingSelected(AdapterView<?> arg0) { |
136 | 96a8e632 | Adam Menz | |
137 | 96a8e632 | Adam Menz | } |
138 | 96a8e632 | Adam Menz | |
139 | 96a8e632 | Adam Menz | }); |
140 | 96a8e632 | Adam Menz | } |
141 | 96a8e632 | Adam Menz | |
142 | 96a8e632 | Adam Menz | private boolean validPort(){ |
143 | 96a8e632 | Adam Menz | return !selectedPort.equals("") && Integer.valueOf(selectedPort) > 0 && Integer.valueOf(selectedPort) < 65536; |
144 | 96a8e632 | Adam Menz | } |
145 | 96a8e632 | Adam Menz | |
146 | b722cab3 | Adam Menz | private Boolean validWeight(String weight){ |
147 | b722cab3 | Adam Menz | if(weight.equals("")){ |
148 | b722cab3 | Adam Menz | return false; |
149 | b722cab3 | Adam Menz | } |
150 | b722cab3 | Adam Menz | else{
|
151 | b722cab3 | Adam Menz | int w = Integer.valueOf(weight); |
152 | b722cab3 | Adam Menz | return w >= 1 && w <= 100 ; |
153 | b722cab3 | Adam Menz | } |
154 | 96a8e632 | Adam Menz | } |
155 | 96a8e632 | Adam Menz | |
156 | 96a8e632 | Adam Menz | } |