Package com.suwish.pc.ui.main

Source Code of com.suwish.pc.ui.main.MainFrame

package com.suwish.pc.ui.main;

import static com.suwish.pc.util.ResourceUtils._Icon;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JToolBar;

import com.android.ddmlib.AndroidDebugBridge.IDeviceChangeListener;
import com.android.ddmlib.IDevice;
import com.suwish.pc.Setting;
import com.suwish.pc.phone.PhoneManager;
import com.suwish.pc.ui.MainFrameToolBar;
import com.suwish.pc.ui.MainStatusBar;
import com.suwish.pc.ui.component.UIFrame;
import com.suwish.pc.ui.component.tab.UITabPanel;
import com.suwish.pc.ui.component.tab.UITabbedPanel;
import com.suwish.pc.ui.dialog.DdmsDeviceSelectDialog;
import com.suwish.pc.ui.dialog.ShellDialog;
import com.suwish.pc.ui.tab.UITabFactory;
import com.suwish.pc.ui.util.DeviceHelper;
import com.suwish.pc.ui.util.GraphicUtils;
import com.suwish.pc.ui.util.UIHelper;
import com.suwish.pc.util.StringUtils;
/**
*
* @author Min
*
*/
public class MainFrame extends UIFrame{

  /**
   *
   */
  private static final long serialVersionUID = 1L;
 
  private static MainFrame instance = null;
 
  private JMenuBar menuBar = null;
  private JMenu fileMenu = null;
  private JMenu viewMenu = null;
  private JMenu toolMenu = null;
  private JMenu helpMenu = null;
 
  private MainFrameToolBar toolbar = null;
 
  private UITabbedPanel mainTabPane = null;
 
  private MainStatusBar statusBar = null;
 
  /**
   *
   */
  public MainFrame(){
    setTitle("Java Phone Bridge");
    setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    initUI();
    initData();
    initEvent();
    setSize(new Dimension(1024, 700));
    setMinimumSize(new Dimension(1024, 700));
    GraphicUtils.centerWindowOnScreen(this);
    setVisible(true);
    instance = this;
  }
  /**
   * 单例
   *
   *
   * @return
   */
  public static MainFrame getInstance(){
    return instance;
  }

  private void initData(){
   
  }
  private void initEvent(){
    PhoneManager.getInstance().getDdmsManager().addDeviceChangeListener(new IDeviceChangeListener() {

      @Override
      public void deviceConnected(IDevice device) {}

      @Override
      public void deviceDisconnected(IDevice device) {
        int index = mainTabPane.getTabIndex(device.getSerialNumber());
        if(index == -1) return;
        mainTabPane.removeTabAt(index);
        UIHelper.showMessageDialog(DeviceHelper.getDeviceDescName(device) + " disconnect...");
      }

      @Override
      public void deviceChanged(IDevice device, int changeMask) {}
     
    });
    addWindowListener(new WindowAdapter() {     
      @Override
      public void windowClosing(WindowEvent e) {
        switch(StringUtils.parseInt(Setting.get("window.close"))){
        case 1 : PhoneManager.getInstance().exitSystem(); break;
        case 2 : getInstance().setState(ICONIFIED);break;
        default :  PhoneManager.getInstance().exitSystem();
        }
      }

      @Override
      public void windowClosed(WindowEvent e) {
//        System.out.println("windowClosed");
      }     
    });
  }
  private void initUI(){
    initMenu();
    getIContentPane().setLayout(new BorderLayout());
    toolbar = new MainFrameToolBar(this);
    toolbar.setFloatable(false);
//    toolbar.setBackground(Color.GREEN);
//    JToolBar bar = new JToolBar();
    getIContentPane().add(toolbar, BorderLayout.NORTH);
    mainTabPane = new UITabbedPanel();
   
//    mainTabPane.addT
    getIContentPane().add(mainTabPane, BorderLayout.CENTER);
    statusBar = new MainStatusBar();
    getIContentPane().add(statusBar, BorderLayout.SOUTH);
   
    setIconImage(_Icon("Gnome-App-icon_16x16.png").getImage());
  }
 
  private void initMenu(){
    menuBar = new JMenuBar();
    setJMenuBar(menuBar);
    fileMenu = new JMenu("File");
    menuBar.add(fileMenu);
    JMenuItem install = new JMenuItem("Install APK");   
    fileMenu.add(install);
    install.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {       
        try{
          DeviceHelper.installAPK();
        }catch(Exception ex){
          ex.printStackTrace();
        }
      }});
    JMenuItem installAdvance = new JMenuItem("Install APK ...");
    installAdvance.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
       
      }
    });
    fileMenu.add(installAdvance);
    installAdvance.setEnabled(false);
    fileMenu.addSeparator();
    JMenuItem exitItem = new JMenuItem("Exit", _Icon("application-exit_16x16.png"));
    fileMenu.add(exitItem);
    exitItem.addActionListener(new AbstractAction() { 
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        PhoneManager.getInstance().exitSystem();       
      }
    });
    viewMenu = new JMenu("View");
    viewMenu.add(UIHelper.getLookAndFeelMenu());
    menuBar.add(viewMenu);
   
    toolMenu = new JMenu("Tool");
    JMenuItem connectItem = new JMenuItem("Connect...", _Icon("gtk-new_16x16.png"));
    toolMenu.add(connectItem);
    connectItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        DdmsDeviceSelectDialog dialog = new DdmsDeviceSelectDialog(getInstance())
        dialog.setVisible(true);
        IDevice device = dialog.getSelectedDevice();
        if(device == null)return;
        addTabCard(device);
      }
    });
    JMenuItem apkViewItem = new JMenuItem("Apk View");
    apkViewItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        UIHelper.viewApkDetail(getInstance());
       
      }
    });
    toolMenu.add(apkViewItem);
    toolMenu.addSeparator();
    JMenuItem shellItem = new JMenuItem("Shell", _Icon("Gnome-Utilities-Terminal_16x16.png"));
    shellItem.addActionListener(new AbstractAction() { 
      private static final long serialVersionUID = 1L;

      @Override
      public void actionPerformed(ActionEvent e) {
        new ShellDialog(getInstance(), "Shell - command line").setVisible(true);
      }
    });
    toolMenu.add(shellItem);
    JMenuItem preferenceItem = new JMenuItem("Preferences", _Icon("Gnome-Preferences-System_16x16.png"));
    preferenceItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        PhoneManager.getInstance().getPerferenceManager().showDialog();
      }
    });
    toolMenu.add(preferenceItem);
    menuBar.add(toolMenu);
    helpMenu = new JMenu("Help");   
    menuBar.add(helpMenu);
    JMenuItem supportItem = new JMenuItem("Support", _Icon("Gnome-Web-Browser_16x16.png"));
    supportItem.setToolTipText("Support online");
    supportItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        UIHelper.openSupportWebsite();       
      }
    });
    helpMenu.add(supportItem);
    JMenuItem versionItem = new JMenuItem("Version");
    helpMenu.add(versionItem);
    versionItem.addActionListener(new AbstractAction() {
      private static final long serialVersionUID = 1L;
      @Override
      public void actionPerformed(ActionEvent e) {
        UIHelper.showMessageDialog(getInstance(), Setting.get("version"), "Message", 1);
       
      }
    });
  }
 
 
  public void addTabCard(IDevice device){
    int index = mainTabPane.getTabIndex(device.getSerialNumber());
    if(index != -1){
      mainTabPane.setSelectedIndex(index);
      return;
    }
    mainTabPane.addContainerComponent(UITabFactory.createTabByDevice(device));
  }
  public void addTabCard(UITabPanel tabPanel){
   
  }
  /**
   *
   * @return
   */
  public UITabbedPanel getTabbedPane(){
    return mainTabPane;
  }
  /**
   *
   * @return
   */
  public MainStatusBar getStatusBar(){
    return statusBar;
  }
 
  public MainFrameToolBar getToolBar(){
    return toolbar;
  }
 
}
TOP

Related Classes of com.suwish.pc.ui.main.MainFrame

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.