Search in sources :

Example 1 with GTMulOpPerfDetailView

use of com.tencent.wstt.gt.views.GTMulOpPerfDetailView in project GT by Tencent.

the class GTOpMulPerfActivity method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gt_perf_op_mul_detail);
    Intent intent = this.getIntent();
    if (intent == null) {
        finish();
    }
    Bundle extras = intent.getExtras();
    if (extras == null) {
        finish();
    }
    final String name = extras.getString("name");
    final String alias = extras.getString("alias");
    final String client = extras.getString("client");
    // 出参的性能数据源取法
    dataSet = OpPerfBridge.getProfilerData(name);
    // 在onCreat之前数据源可能被清理了,这样就不打开页面
    if (null == dataSet) {
        finish();
        return;
    }
    // 保存对应的出参变量,以便刷值
    op = ClientManager.getInstance().getClient(client).getOutPara(name);
    attentEntry = dataSet.getSubTagEntrys()[0];
    about = dataSet.getDesc();
    tvTitle = (TextView) findViewById(R.id.perf_detail_title);
    tvTitle.setText(alias);
    tvKey = (TextView) findViewById(R.id.op_perf_detail_key);
    tvKey.setText(name);
    tvAbout = (TextView) findViewById(R.id.op_perf_detail_about);
    tvAbout.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            GTOutParaPerfDialog dialog = new GTOutParaPerfDialog(v.getContext(), alias, name, about);
            dialog.show();
        }
    });
    lv_attentAttr = (ListView) findViewById(R.id.op_perf_detail_attent_list);
    attrAdapter = new ArrayAdapter<String>(this, R.layout.gt_simple_dropdown_item);
    for (TagTimeEntry itemName : dataSet.getChildren()) {
        attrAdapter.add(itemName.getName());
    }
    lv_attentAttr.setAdapter(attrAdapter);
    lv_attentAttr.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View v, int position, long arg3) {
            img_empty.setVisibility(View.GONE);
            lv_attentAttr.setVisibility(View.GONE);
            String lastSelectedItem = btn_attent.getText().toString();
            btn_attent.setText(attrAdapter.getItem(position));
            attentEntry = dataSet.getSubTagEntrys()[position];
            if (!lastSelectedItem.equals(attentEntry.getName())) {
                refreshAttent();
                refreshThreshold();
            }
        }
    });
    /*
		 * 用于覆盖整个屏幕的透明ImageView,
		 * 主要帮助点击非lv_attentAttr区域使lv_attentAttr消失
		 */
    img_empty = (ImageView) findViewById(R.id.view_empty);
    img_empty.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            img_empty.setVisibility(View.GONE);
            lv_attentAttr.setVisibility(View.GONE);
            return true;
        }
    });
    btn_attent = (Button) findViewById(R.id.op_perf_detail_attent);
    btn_attent.setText(attrAdapter.getItem(0));
    btn_attent.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            btn_attent.setBackgroundResource(R.drawable.a_gt_perf_op_btn_selected_border);
            handler.postDelayed(new Runnable() {

                @Override
                public void run() {
                    btn_attent.setBackgroundResource(R.drawable.a_gt_perf_op_btn_default_border);
                }
            }, 200);
            if (lv_attentAttr.getVisibility() == View.VISIBLE) {
                img_empty.setVisibility(View.GONE);
                lv_attentAttr.setVisibility(View.GONE);
            } else {
                lv_attentAttr.setVisibility(View.VISIBLE);
                img_empty.setVisibility(View.VISIBLE);
            }
        }
    });
    btn_back = (ImageButton) findViewById(R.id.perf_detail_back);
    btn_back.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            finish();
        }
    });
    // btn_save = (ImageButton)findViewById(R.id.perf_detail_save);
    // btn_save.setOnClickListener(new OnClickListener() {
    // 
    // public void onClick(View v) {
    // String lastSaveLog = GTGWInternal.getLastSaveFolder();
    // if (lastSaveLog != null && lastSaveLog.contains(".")
    // && lastSaveLog.endsWith(LogUtils.TLOG_POSFIX))
    // {
    // lastSaveLog = lastSaveLog.substring(0, lastSaveLog.lastIndexOf("."));
    // }
    // et_savePath3.setText(lastSaveLog.trim());
    // dlg_save.show();
    // }
    // });
    RelativeLayout rl_save = (RelativeLayout) LayoutInflater.from(this).inflate(R.layout.gt_dailog_save_gw, null, false);
    ImageButton btn_cleanSavePath = (ImageButton) rl_save.findViewById(R.id.save_clean);
    btn_cleanSavePath.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            et_savePath3.setText("");
        }
    });
    et_savePath1 = (EditText) rl_save.findViewById(R.id.save_editor_folder_parent1);
    et_savePath2 = (EditText) rl_save.findViewById(R.id.save_editor_folder_parent2);
    et_savePath3 = (EditText) rl_save.findViewById(R.id.save_editor);
    et_saveTestDesc = (EditText) rl_save.findViewById(R.id.save_editor_desc);
    String lastSaveLog = GTGWInternal.getLastSaveFolder();
    if (lastSaveLog != null && lastSaveLog.contains(".") && lastSaveLog.endsWith(LogUtils.TLOG_POSFIX)) {
        lastSaveLog = lastSaveLog.substring(0, lastSaveLog.lastIndexOf("."));
    }
    et_savePath3.setText(lastSaveLog);
    et_savePath1.setText(Env.CUR_APP_NAME);
    et_savePath2.setText(Env.CUR_APP_VER);
    dlg_save = new Builder(this).setTitle(getString(R.string.save)).setView(rl_save).setPositiveButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    }).setNegativeButton(getString(R.string.ok), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            String path1 = et_savePath1.getText().toString().trim();
            if (!StringUtil.isLetter(path1)) {
                ToastUtil.ShowShortToast(GTOpMulPerfActivity.this, getString(R.string.save_folder_valid));
                return;
            }
            String path2 = et_savePath2.getText().toString().trim();
            if (!StringUtil.isLetter(path2)) {
                ToastUtil.ShowShortToast(GTOpMulPerfActivity.this, getString(R.string.save_folder_valid));
                return;
            }
            String path3 = et_savePath3.getText().toString().trim();
            if (!StringUtil.isLetter(path3)) {
                ToastUtil.ShowShortToast(GTOpMulPerfActivity.this, getString(R.string.save_folder_valid));
                return;
            }
            String testDesc = et_saveTestDesc.getText().toString().trim();
            GWSaveEntry saveEntry = new GWSaveEntry(path1, path2, path3, testDesc);
            GTGWInternal.saveGWData(saveEntry, dataSet);
            dialog.dismiss();
        }
    }).create();
    btn_delete = (ImageButton) findViewById(R.id.perf_detail_delete);
    btn_delete.setOnClickListener(showDeleteDlg);
    // 告警区操作的UI
    tvWarningCntToast = (TextView) findViewById(R.id.op_perf_detail_warning_cnt_toast);
    tvWarningCnt = (TextView) findViewById(R.id.bh_perf_detail_warning_cnt);
    // 告警区
    final LinearLayout ll_warnArea = (LinearLayout) findViewById(R.id.op_perf_detail_warnarea);
    img_bottom_arrow = (ImageView) findViewById(R.id.bottom_arrow);
    if (dataSet.getThresholdEntry().isEnable()) {
        img_bottom_arrow.setBackgroundResource(R.drawable.unfold_arrow);
        ll_warnArea.setVisibility(View.VISIBLE);
    } else {
        img_bottom_arrow.setBackgroundResource(R.drawable.fold_arrow);
        ll_warnArea.setVisibility(View.GONE);
    }
    // 告警抬头文本
    tvWaringArea = (TextView) findViewById(R.id.op_perf_detail_interval_toast);
    // 折叠线
    ll_fold = (LinearLayout) findViewById(R.id.warning_fold);
    // 因为多曲线情况的各子项的告警的enable值是一起变化的,所以从一个判断决定UI初始状态即可
    if (!attentEntry.getThresholdEntry().isEnable()) {
        img_bottom_arrow.setBackgroundResource(R.drawable.fold_arrow);
        ll_warnArea.setVisibility(View.GONE);
        tvWarningCntToast.setVisibility(View.GONE);
        tvWarningCnt.setVisibility(View.GONE);
        tvWaringArea.setText(getString(R.string.warning_title_mul_disable));
    }
    ll_fold.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO 需要对所有的子项告警全开和全屏蔽,UI与业务逻辑混一起了,需要重构
            if (attentEntry.getThresholdEntry().isEnable()) {
                for (TagTimeEntry temp : dataSet.getSubTagEntrys()) {
                    temp.getThresholdEntry().setEnable(false);
                }
                img_bottom_arrow.setBackgroundResource(R.drawable.fold_arrow);
                ll_warnArea.setVisibility(View.GONE);
                tvWarningCntToast.setVisibility(View.GONE);
                tvWarningCnt.setVisibility(View.GONE);
                tvWaringArea.setText(getString(R.string.warning_title_mul_disable));
            } else {
                for (TagTimeEntry temp : dataSet.getSubTagEntrys()) {
                    temp.getThresholdEntry().setEnable(true);
                }
                img_bottom_arrow.setBackgroundResource(R.drawable.unfold_arrow);
                ll_warnArea.setVisibility(View.VISIBLE);
                tvWarningCntToast.setVisibility(View.VISIBLE);
                tvWarningCnt.setVisibility(View.VISIBLE);
                tvWaringArea.setText(getString(R.string.warning_title_mul));
            }
        }
    });
    // 从未开始统计过的出参,不允许设置告警
    if (!op.hasMonitorOnce) {
        etUpperInterval.setEnabled(false);
        etUpperValue.setEnabled(false);
        etLowerValue.setEnabled(false);
    } else {
        etUpperInterval = (EditText) findViewById(R.id.op_perf_detail_upper_interval);
        etUpperValue = (EditText) findViewById(R.id.op_perf_detail_upper_value);
        etLowerValue = (EditText) findViewById(R.id.op_perf_detail_lower_value);
        etUpperInterval.setInputType(EditorInfo.TYPE_CLASS_PHONE);
        etUpperValue.setInputType(EditorInfo.TYPE_CLASS_PHONE);
        etLowerValue.setInputType(EditorInfo.TYPE_CLASS_PHONE);
        etUpperInterval.setOnKeyListener(thresholdKeyListener);
        etUpperValue.setOnKeyListener(thresholdKeyListener);
        etLowerValue.setOnKeyListener(thresholdKeyListener);
        refreshThreshold();
    }
    tvValue = (TextView) findViewById(R.id.op_perf_detail_value);
    tvTimes = (TextView) findViewById(R.id.bh_perf_detail_times);
    tvMin = (TextView) findViewById(R.id.bh_perf_detail_min);
    tvMax = (TextView) findViewById(R.id.bh_perf_detail_max);
    tvAve = (TextView) findViewById(R.id.bh_perf_detail_ave);
    // tvValue.setText(dataSet.getLastValue());
    tvValue.setText(op.getValue());
    refreshAttent();
    LinearLayout ll_chart = (LinearLayout) findViewById(R.id.bh_perf_detail_chart);
    chartView = new GTMulOpPerfDetailView(this, dataSet);
    chartView.setInput(0);
    ll_chart.addView(chartView);
}
Also used : OnTouchListener(android.view.View.OnTouchListener) TagTimeEntry(com.tencent.wstt.gt.ui.model.TagTimeEntry) OnItemClickListener(android.widget.AdapterView.OnItemClickListener) DialogInterface(android.content.DialogInterface) Bundle(android.os.Bundle) Builder(android.app.AlertDialog.Builder) Intent(android.content.Intent) ImageView(android.widget.ImageView) View(android.view.View) AdapterView(android.widget.AdapterView) GTMulOpPerfDetailView(com.tencent.wstt.gt.views.GTMulOpPerfDetailView) TextView(android.widget.TextView) ListView(android.widget.ListView) MotionEvent(android.view.MotionEvent) GTMulOpPerfDetailView(com.tencent.wstt.gt.views.GTMulOpPerfDetailView) ImageButton(android.widget.ImageButton) RelativeLayout(android.widget.RelativeLayout) GWSaveEntry(com.tencent.wstt.gt.log.GWSaveEntry) OnClickListener(android.view.View.OnClickListener) GTOutParaPerfDialog(com.tencent.wstt.gt.views.GTOutParaPerfDialog) LinearLayout(android.widget.LinearLayout)

Aggregations

Builder (android.app.AlertDialog.Builder)1 DialogInterface (android.content.DialogInterface)1 Intent (android.content.Intent)1 Bundle (android.os.Bundle)1 MotionEvent (android.view.MotionEvent)1 View (android.view.View)1 OnClickListener (android.view.View.OnClickListener)1 OnTouchListener (android.view.View.OnTouchListener)1 AdapterView (android.widget.AdapterView)1 OnItemClickListener (android.widget.AdapterView.OnItemClickListener)1 ImageButton (android.widget.ImageButton)1 ImageView (android.widget.ImageView)1 LinearLayout (android.widget.LinearLayout)1 ListView (android.widget.ListView)1 RelativeLayout (android.widget.RelativeLayout)1 TextView (android.widget.TextView)1 GWSaveEntry (com.tencent.wstt.gt.log.GWSaveEntry)1 TagTimeEntry (com.tencent.wstt.gt.ui.model.TagTimeEntry)1 GTMulOpPerfDetailView (com.tencent.wstt.gt.views.GTMulOpPerfDetailView)1 GTOutParaPerfDialog (com.tencent.wstt.gt.views.GTOutParaPerfDialog)1