⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsmainframe.java

📁 一款即时通讯软件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    private SoundPlayer soundPlayer = null;

    private Image offlineImage = null;
    private Image onlineImage = null;
    private Image awayImage = null;
    private Image offlineMsgImage = null;
    private Image onlineMsgImage = null;
    private Image awayMsgImage = null;
    private ImageIcon offlineIcon = null;
    private ImageIcon onlineIcon = null;
    private ImageIcon awayIcon = null;
    private ImageIcon xaIcon = null;
    private ImageIcon dndIcon = null;
    private ImageIcon chatIcon = null;
    private ImageIcon busyIcon = null;
    private ImageIcon elseIcon = null;
    private ImageIcon customIcon = null;

    private ImageIcon[] presenceIcons;

    private boolean newMessage = false;

    private boolean dontSendPresence = false;
    private BSPresenceInfo presenceBeforeAuto = null;

    //private String currentLookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
    private String currentLookAndFeel = "";

    /** bookmarks */
    private BSBookmarks bookmarks = null;
    /** open windows */
    private BSOpenWindows openWindows = null;
    private DesktopIndicatorLink systemTrayInd = null;


    /** Creates new form BSMainFrame */
    public BSMainFrame() {

        /*UIDefaults defaults = UIManager.getDefaults();
        defaults.put("Menu.background", Color.yellow);
        javax.swing.plaf.metal.MetalLookAndFeel
        */

        BSSplashScreenDlg splashDlg = new BSSplashScreenDlg(null);
        splashDlg.setLocationRelativeTo(splashDlg.getParent());
        splashDlg.setVisible(true);

        System.out.println("loading preferences...");
        splashDlg.setMessage("loading preferences...");
        loadPreferences();
        initLAF();
        setProxy(proxy, proxyPort);

        // initializes the buddySpace core and registers itself as listener
        System.out.println("initializing core...");
        splashDlg.setMessage("initializing core...");
        core = new BSCore();
        core.addLoginListener(this);

        BSConnectionBean connectionBean = core.getConnectionBean();
        if (connectionBean != null)
            connectionBean.addConnectionListener(this);

        rosterBean = core.getRosterBean();
        if (rosterBean != null)
            rosterBean.addRosterListener(this);

        presenceBean = core.getPresenceBean();
        if (presenceBean != null) {
            presenceBean.addPresenceListener(this);
            presenceBean.getIndividualPresences().setRosterBean(rosterBean);
        }

        messengerBean = core.getMessengerBean();
        if (messengerBean != null)
            messengerBean.addMessageListener(this);

        infoQueryBean = core.getInfoQueryBean();
        if (infoQueryBean != null)
            infoQueryBean.addIQListener(this);

        regBean = core.getRegisterBean();
        if (regBean != null)
            regBean.addRegListener(this);

        //TestFormXData test = new TestFormXData();
        //test.test1(this, rosterBean);

        // inits components
        System.out.println("loading GUI...");
        splashDlg.setMessage("loading GUI...");
        initComponents();

        //setSize(500, 500);
        //setLocation(10,10);

        // inits chat window manager
        chatWinMan = new BSChatWinManager(mainTabbedPane, this, messengerBean, presenceBean);
        chatWinMan.setRosterBean(rosterBean);
        // inits message window manager
        msgWinMan = new BSMsgWinManager(mainTabbedPane, this, messengerBean, rosterBean);
        msgWinMan.setPresenceBean(presenceBean);

        // inits sound player
        System.out.println("loading sounds...");
        splashDlg.setMessage("loading sounds...");
        soundPlayer = new SoundPlayer(newMsgSoundFileName);

        // inits plugins
        System.out.println("initializing plug-ins...");
        splashDlg.setMessage("initializing plug-ins...");
        plugins = new BSPluginLoader(this, mainTabbedPane, core);
        /*System.out.println("loading conferencing...");
        splashDlg.setMessage("loading conferencing...");
        plugins.loadConference();*/
        System.out.println("loading groupchat...");
        splashDlg.setMessage("loading groupchat...");
        plugins.loadGroupchat();
        System.out.println("loading mapping...");
        splashDlg.setMessage("loading mapping...");
        plugins.loadMaps();
        System.out.println("loading html view...");
        splashDlg.setMessage("loading html view...");
        plugins.loadWebBrowser();
        System.out.println("loading browse...");
        splashDlg.setMessage("loading browse...");
        plugins.loadBrowse();
        System.out.println("loading app launcher...");
        splashDlg.setMessage("loading app launcher...");
        plugins.loadAppLauncher();
        /*System.out.println("loading disco...");
        splashDlg.setMessage("loading disco...");
        plugins.loadDisco();*/
        System.out.println("loading pubsub...");
        splashDlg.setMessage("loading pubsub...");
        plugins.loadPubsub();
        System.out.println("loading plans...");
        splashDlg.setMessage("loading plans...");
        plugins.loadPlans();

        if (pluginBuddyFinder)
        {
            System.out.println("loading BuddyFinder...");
            splashDlg.setMessage("loading BuddyFinder...");
            plugins.loadBuddyFinder();
        }

        if (pluginSimLink)
        {
            System.out.println("loading SimLink...");
            splashDlg.setMessage("loading SimLink...");
            plugins.loadSimLink();
        }

        splashDlg.setVisible(false);

        msgWinMan.showMessagesWindow(showMsgs, false, dockWindows);
        boolean tmp = showDebug;
        msgWinMan.showDebugWindow(true, false, core, dockWindows);
        showDebug = tmp;
        msgWinMan.showDebugWindow(showDebug, false, core, dockWindows);
        tmp = showStatus;
        msgWinMan.showStatusWindow(true, false, core, dockWindows);
        showStatus = tmp;
        msgWinMan.showStatusWindow(showStatus, false, core, dockWindows);

        statusesBar = new BSStatusesBar(this, presenceBean, rosterBean, loadStatusesBarJIDs(), true);

        systemTrayInd = new DesktopIndicatorLink(this);
        systemTrayInd.init();

        pack();

        addWindowListener(new WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent windowEvent) {
                if (autoLogin) {
                    if (username != null && !username.equals("") &&
                        password != null && !password.equals("") &&
                        resource != null && !resource.equals("") &&
                        server != null && !server.equals(""))
                        connect(username, password, resource, server, port, false, useSSL);
                    else
                        connect(true);
                }
            }
        });

        // open windows
        openWindows = new BSOpenWindows(this);
        openTheWindows(openWindows.getWindows(false), false);
    }


    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        // your code here
        new BSMainFrame().show();
    }


    /** Called when close button of the form clicked */
    private void exitForm(java.awt.event.WindowEvent evt) {
        if (systemTrayInd != null)
            setVisible(false);
        else
            close();
    }


    /** Closes the application */
    public void close() {
        if (openWindows != null) {
            if (isConnected()) openWindows.saveOpenWindows(true);
            openWindows.saveOpenWindows(false);
        }
        //savePreferences();
        systemTrayInd.finish();
        System.exit(0);
    }


    /**
     * Inits components.
     */
    private void initComponents() {

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }

            public void windowActivated(WindowEvent evt) {
                repaint();
            }
        });

        getContentPane().setLayout(new BorderLayout());

        initMenu();

        mainTabbedPane = new JTabbedPane();
        getContentPane().add(mainTabbedPane, BorderLayout.CENTER);

        initToolBar();
        initMainTab();

        changeViewType(compactView);

        // *** TESTING ***
        //initTestTab();
        // *** end of TESTING ***

        // images for presence and message indication in application icon
        offlineImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/red_w_bckgrd.gif"));
        onlineImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/green_w_bckgrd.gif"));
        awayImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/yellow_w_bckgrd.gif"));

        /*offlineMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/red_w_bckgrd-msg.gif"));
        onlineMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/green_w_bckgrd-msg.gif"));
        awayMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/yellow_w_bckgrd-msg.gif"));*/
        offlineMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/red_w_bckgrd-msg.gif"));
        onlineMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/alert_green_programicon.gif"));
        awayMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/alert_yellow_programicon.gif"));

        setTitle("BuddySpace2 - disconnected");
        setPresenceIcons(SHOW_OFFLINE_STR, null);

        addComponentListeners();

        pack();
    }


    public void changeViewType(boolean compact) {
        if (compact) {
            int menuCount = mainMenuBar.getMenuCount();
            JMenu menus[] = new JMenu[menuCount];
            for (int i=0; i<menuCount; i++)
                menus[i] = mainMenuBar.getMenu(i);
            for (int i=0; i<menuCount; i++) {
                mainMenuBar.remove(menus[i]);
                if (menus[i] != mainMenu)
                    mainMenu.add(menus[i]);
            }
            jabberMenu.remove(prefsMenuItem);
            jabberMenu.remove(exitMenuItem);
            mainMenu.add(prefsMenuItem);
            mainMenu.add(exitMenuItem);
            mainMenuBar.add(mainMenu);
        } else {
            Component menus[] = mainMenu.getMenuComponents();
            for (int i=0; i<menus.length; i++) {
                mainMenu.remove(menus[i]);
                if (menus[i] != exitMenuItem && menus[i] != prefsMenuItem)
                    mainMenuBar.add(menus[i]);
            }

            jabberMenu.add(prefsMenuItem);
            jabberMenu.add(exitMenuItem);
            mainMenuBar.remove(mainMenu);
        }

        DefaultComboBoxModel cm = new DefaultComboBoxModel(presenceIcons);
        cm.setSelectedItem(showComboBox.getModel().getSelectedItem());
        showComboBox.setModel(cm);
        showComboBox.setMaximumSize(showComboBox.getPreferredSize());

        int height = getSize().height;
        pack();
        setSize(getSize().width, height);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -