package com.piglet.ui; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.piglet.R; import com.piglet.dao.impl.ConnectionInfoDao; import com.piglet.dao.pojo.ConnectionInfo; import com.piglet.utils.MysqlUtils; import com.umeng.analytics.MobclickAgent; public class AddConnectionActivity extends Activity { public static final int RESULT_CODE_CONN = 1; private EditText nameInput; private EditText hostInput; private EditText portInput; private EditText dbnameInput; private EditText usernameInput; private EditText passwordInput; /** * Called when the activity is first created. * * @param savedInstanceState * If the activity is being re-initialized after previously being * shut down then this Bundle contains the data it most recently * supplied in onSaveInstanceState(Bundle). <b>Note: Otherwise it * is null.</b> */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_conn); nameInput = (EditText) findViewById(R.id.name); hostInput = (EditText) findViewById(R.id.host); portInput = (EditText) findViewById(R.id.port); dbnameInput = (EditText) findViewById(R.id.db); usernameInput = (EditText) findViewById(R.id.user); passwordInput = (EditText) findViewById(R.id.password); Button btn = (Button) findViewById(R.id.add_btn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { String name = nameInput.getText().toString(); final String host = hostInput.getText().toString(); final int port = Integer.valueOf(portInput.getText().toString()); final String dbname = dbnameInput.getText().toString(); final String username = usernameInput.getText().toString(); final String password = passwordInput.getText().toString(); if (MysqlUtils.checkHost(host) && MysqlUtils.checkDbName(dbname) && MysqlUtils.checkUserName(username) && MysqlUtils.checkPassword(password)) { final ConnectionInfoDao dao = new ConnectionInfoDao(); final ConnectionInfo info = dao.findById(name); if (info == null) { ConnectionInfo info1 = new ConnectionInfo(name, host, port, dbname, username, password); dao.save(info1); Toast.makeText(getApplicationContext(), R.string.add_conn_succ, Toast.LENGTH_LONG).show(); back(); } else { Context ctx = AddConnectionActivity.this; AlertDialog.Builder builder = new AlertDialog.Builder(ctx).setTitle(String.format(ctx.getString(R.string.if_update_conn), name)) .setMessage(R.string.if_update_content); builder.setNegativeButton(R.string.change_name, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.setPositiveButton(R.string.update_conn, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { info.setHost(host); info.setPort(port); info.setUsername(username); info.setPassword(password); info.setDbname(dbname); dao.update(info); Toast.makeText(getApplicationContext(), R.string.update_conn_succ, Toast.LENGTH_LONG).show(); back(); } }); AlertDialog dialog = builder.create(); dialog.show(); } } else { Toast.makeText(getApplicationContext(), R.string.illegal_conn_info, Toast.LENGTH_LONG).show(); } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(com.piglet.R.menu.main, menu); return true; } private void back() { setResult(RESULT_CODE_CONN); finish(); } public void onResume() { super.onResume(); MobclickAgent.onResume(this); } public void onPause() { super.onPause(); MobclickAgent.onPause(this); } }