Package com.suwish.pc.ui.dialog

Source Code of com.suwish.pc.ui.dialog.ShellDialog

package com.suwish.pc.ui.dialog;

import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.AbstractAction;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

import com.android.ddmlib.IDevice;
import com.suwish.pc.adb.AdbManager;
import com.suwish.pc.adb.Command;
import com.suwish.pc.ui.component.UIDialog;
import com.suwish.pc.ui.component.UIAdbTerminal;
import com.suwish.pc.ui.util.DeviceHelper;
import com.suwish.pc.ui.util.UIHelper;
import com.suwish.pc.util.StringUtils;

public class ShellDialog extends UIDialog {

  /**
   *
   */
  private static final long serialVersionUID = 1L;
 
  private JMenuBar menuBar= null;
  private JMenu connectMenu = null;
  private JMenu toolMenu = null;
  private JMenu helpMenu = null;
 
  private UIAdbTerminal terminalPanel = null;
 
  private Window parent = null;
  private String title = null;
  public ShellDialog(Frame owner, String title){
    super(owner, title);
    parent = owner;
    this.title = title;
    initUI();
    initData();
    initEvent();   
    setSize(new Dimension(600, 500));
    setLocationRelativeTo(owner);
  }
  private void initData(){
    try{
      terminalPanel.addNoticeMessage("Conect device \nMenuBar->Connect->connect");
    }catch(Exception ex){
      ex.toString();
    }
  }
  private void initEvent(){
    addWindowListener(new WindowAdapter() {
      @Override
      public void windowClosed(WindowEvent e) {
        terminalPanel.dispose();
      }
     
    });
  }
  public void appendTitle(String title){
    setTitle(this.title + " " + title);
  }
  private void initUI(){
    menuBar = new JMenuBar();
    setJMenuBar(menuBar);
    terminalPanel = new UIAdbTerminal(this);
    connectMenu = new JMenu("Connect");
    menuBar.add(connectMenu);
    JMenuItem connectItem = new JMenuItem("connect");
    connectItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        DdmsDeviceSelectDialog dialog = new DdmsDeviceSelectDialog(parent);
        dialog.setVisible(true);
        IDevice device = dialog.getSelectedDevice();
        if(device == null) return ;
        if(StringUtils.isEmpty(device.getSerialNumber())){
          UIHelper.showErrorDialog(getInstance(), "Unkonw Device SerialNumber");
          return;
        }       
        try{
          String title  = DeviceHelper.getDeviceDescName(device);
          Process process = AdbManager.execCommand(new Command(new String[]{"-s",device.getSerialNumber(),"shell"}), terminalPanel);
          terminalPanel.dispose();
          terminalPanel.setProcess(process, title);
          appendTitle(title);
        }catch(Exception ex){
          UIHelper.showErrorDialog(getInstance(), ex.getMessage());
        }
      }
    });
    connectMenu.add(connectItem);
    JMenuItem disconnectItem = new JMenuItem("disconnect");
    connectMenu.add(disconnectItem);
    disconnectItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        terminalPanel.dispose();       
      }
    });
    connectMenu.addSeparator();
    JMenuItem closeItem = new JMenuItem("close");
    closeItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        dispose();       
        terminalPanel.dispose();
      }
    });
    connectMenu.add(closeItem);
    add(terminalPanel);
   
    toolMenu = new JMenu("Tool");
    menuBar.add(toolMenu);
    JMenuItem terminalItem = new JMenuItem("Terminal");
    toolMenu.add(terminalItem);
    terminalItem.setEnabled(false);
    terminalItem.addActionListener(terminalPanel.getAction());
   
    helpMenu = new JMenu("Help");
    menuBar.add(helpMenu);
    JMenuItem aboutItem = new JMenuItem("About");
    helpMenu.add(aboutItem);
    aboutItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        String message = "终端,使用ADB命令Shell,无视Preferences中设置的连接模式";       
        UIHelper.showMessageDialog(getInstance(), message, "Message", 1);
       
      }
    });
  }
}
TOP

Related Classes of com.suwish.pc.ui.dialog.ShellDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.