Statistics
| Branch: | Revision:

root / src / com / rackspacecloud / android / AddNodeActivity.java @ 96a8e632

History | View | Annotate | Download (3.9 kB)

1 96a8e632 Adam Menz
package com.rackspacecloud.android;
2 96a8e632 Adam Menz
3 96a8e632 Adam Menz
import android.app.Activity;
4 96a8e632 Adam Menz
import android.app.AlertDialog;
5 96a8e632 Adam Menz
import android.content.Context;
6 96a8e632 Adam Menz
import android.content.DialogInterface;
7 96a8e632 Adam Menz
import android.content.Intent;
8 96a8e632 Adam Menz
import android.os.Bundle;
9 96a8e632 Adam Menz
import android.view.View;
10 96a8e632 Adam Menz
import android.view.View.OnClickListener;
11 96a8e632 Adam Menz
import android.view.Window;
12 96a8e632 Adam Menz
import android.widget.AdapterView;
13 96a8e632 Adam Menz
import android.widget.AdapterView.OnItemSelectedListener;
14 96a8e632 Adam Menz
import android.widget.ArrayAdapter;
15 96a8e632 Adam Menz
import android.widget.Button;
16 96a8e632 Adam Menz
import android.widget.Spinner;
17 96a8e632 Adam Menz
import android.widget.EditText;
18 96a8e632 Adam Menz
19 96a8e632 Adam Menz
public class AddNodeActivity extends Activity{
20 96a8e632 Adam Menz
21 96a8e632 Adam Menz
        private static final int NODE_ADDED_RESULT_CODE = 111;
22 96a8e632 Adam Menz
        private static final int CANCEL_RESULT_CODE = 112;
23 96a8e632 Adam Menz
        private final String[] CONDITIONS = {"Enabled", "Disabled", "Draining"};
24 96a8e632 Adam Menz
        private String[] ipAddresses;
25 96a8e632 Adam Menz
        private Spinner conditionSpinner;
26 96a8e632 Adam Menz
        private Spinner ipAddressSpinner;
27 96a8e632 Adam Menz
        private String selectedPort;
28 96a8e632 Adam Menz
        private String selectedIp;
29 96a8e632 Adam Menz
        private String selectedCondition;
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 96a8e632 Adam Menz
                restoreState(savedInstanceState);
37 96a8e632 Adam Menz
                loadConditionSpinner();
38 96a8e632 Adam Menz
                loadIpSpinner();
39 96a8e632 Adam Menz
                setUpButton();
40 96a8e632 Adam Menz
        } 
41 96a8e632 Adam Menz
        
42 96a8e632 Adam Menz
        private void restoreState(Bundle state) {
43 96a8e632 Adam Menz
                
44 96a8e632 Adam Menz
        }
45 96a8e632 Adam Menz
        
46 96a8e632 Adam Menz
        private void setUpButton(){
47 96a8e632 Adam Menz
                Button submit = (Button) findViewById(R.id.add_node_button);
48 96a8e632 Adam Menz
                submit.setOnClickListener(new OnClickListener() {
49 96a8e632 Adam Menz
                        
50 96a8e632 Adam Menz
                        @Override
51 96a8e632 Adam Menz
                        public void onClick(View v) {
52 96a8e632 Adam Menz
                                selectedPort = ((EditText)findViewById(R.id.node_port_text)).getText().toString();
53 96a8e632 Adam Menz
                                if(!validPort()){
54 96a8e632 Adam Menz
                                        showAlert("Error", "Must have a protocol port number that is between 1 and 65535.");
55 96a8e632 Adam Menz
                                }
56 96a8e632 Adam Menz
                                else{
57 96a8e632 Adam Menz
                                        Intent data = new Intent();
58 96a8e632 Adam Menz
                                        data.putExtra("nodeIp", selectedIp);
59 96a8e632 Adam Menz
                                        data.putExtra("nodePort", selectedPort);
60 96a8e632 Adam Menz
                                        data.putExtra("nodeCondition", selectedCondition);
61 96a8e632 Adam Menz
                                        setResult(NODE_ADDED_RESULT_CODE, data);
62 96a8e632 Adam Menz
                                        finish();
63 96a8e632 Adam Menz
                                }
64 96a8e632 Adam Menz
                                
65 96a8e632 Adam Menz
                        }
66 96a8e632 Adam Menz
                });
67 96a8e632 Adam Menz
        }
68 96a8e632 Adam Menz
        
69 96a8e632 Adam Menz
        public void onBackPressed(){
70 96a8e632 Adam Menz
                setResult(CANCEL_RESULT_CODE);
71 96a8e632 Adam Menz
                finish();
72 96a8e632 Adam Menz
        }
73 96a8e632 Adam Menz
        
74 96a8e632 Adam Menz
        private void loadIpSpinner(){
75 96a8e632 Adam Menz
                ipAddressSpinner = (Spinner) findViewById(R.id.node_ip_spinner);
76 96a8e632 Adam Menz
                ArrayAdapter<String> ipAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ipAddresses);
77 96a8e632 Adam Menz
                ipAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
78 96a8e632 Adam Menz
                ipAddressSpinner.setAdapter(ipAdapter);
79 96a8e632 Adam Menz
                
80 96a8e632 Adam Menz
                ipAddressSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
81 96a8e632 Adam Menz
82 96a8e632 Adam Menz
                        @Override
83 96a8e632 Adam Menz
                        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
84 96a8e632 Adam Menz
                                selectedIp = ipAddresses[pos];        
85 96a8e632 Adam Menz
                        }
86 96a8e632 Adam Menz
87 96a8e632 Adam Menz
                        @Override
88 96a8e632 Adam Menz
                        public void onNothingSelected(AdapterView<?> arg0) {
89 96a8e632 Adam Menz
                                                        
90 96a8e632 Adam Menz
                        }
91 96a8e632 Adam Menz
                        
92 96a8e632 Adam Menz
                });
93 96a8e632 Adam Menz
        }
94 96a8e632 Adam Menz
        
95 96a8e632 Adam Menz
        private void loadConditionSpinner(){
96 96a8e632 Adam Menz
                conditionSpinner = (Spinner) findViewById(R.id.node_condition_spinner);
97 96a8e632 Adam Menz
                
98 96a8e632 Adam Menz
                ArrayAdapter<String> conditionAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, CONDITIONS);
99 96a8e632 Adam Menz
                conditionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
100 96a8e632 Adam Menz
                conditionSpinner.setAdapter(conditionAdapter);
101 96a8e632 Adam Menz
                
102 96a8e632 Adam Menz
                conditionSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
103 96a8e632 Adam Menz
104 96a8e632 Adam Menz
                        @Override
105 96a8e632 Adam Menz
                        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
106 96a8e632 Adam Menz
                                selectedCondition = CONDITIONS[pos];        
107 96a8e632 Adam Menz
                        }
108 96a8e632 Adam Menz
109 96a8e632 Adam Menz
                        @Override
110 96a8e632 Adam Menz
                        public void onNothingSelected(AdapterView<?> arg0) {
111 96a8e632 Adam Menz
                                                        
112 96a8e632 Adam Menz
                        }
113 96a8e632 Adam Menz
                        
114 96a8e632 Adam Menz
                });
115 96a8e632 Adam Menz
        }
116 96a8e632 Adam Menz
        
117 96a8e632 Adam Menz
        private boolean validPort(){
118 96a8e632 Adam Menz
                return !selectedPort.equals("") && Integer.valueOf(selectedPort) > 0 && Integer.valueOf(selectedPort) < 65536;
119 96a8e632 Adam Menz
        }
120 96a8e632 Adam Menz
        
121 96a8e632 Adam Menz
        private void showAlert(String title, String message) {
122 96a8e632 Adam Menz
                AlertDialog alert = new AlertDialog.Builder(this).create();
123 96a8e632 Adam Menz
                alert.setTitle(title);
124 96a8e632 Adam Menz
                alert.setMessage(message);
125 96a8e632 Adam Menz
                alert.setButton("OK", new DialogInterface.OnClickListener() {
126 96a8e632 Adam Menz
                        public void onClick(DialogInterface dialog, int which) {
127 96a8e632 Adam Menz
                                return;
128 96a8e632 Adam Menz
                        } }); 
129 96a8e632 Adam Menz
                alert.show();
130 96a8e632 Adam Menz
        }
131 96a8e632 Adam Menz
132 96a8e632 Adam Menz
}