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

📄 mimepanel.java

📁 java 开发的sip软电话 源码 jain sip
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package net.java.mais.media.jmf;

/**
 * <p>Title: SIP Communicator</p>
 *
 * <p>Description: A SIP UA</p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: Network Research Team, Louis Pasteur University</p>
 *
 * @author Emil Ivov
 * @version 1.0
 */
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import com.sun.media.MimeManager;
import com.sun.media.util.JMFI18N;

import jmapps.ui.MessageDialog;


public class MimePanel extends JMPanel implements ActionListener, ListSelectionListener, DocumentListener {

    private Hashtable   htMimeTypes;

    private JButton      buttonRestore;
    private JButton      buttonCommit;
    private JButton      buttonAdd;
    private JButton      buttonRemove;

    private JList        listBoxMimeType;
    private JTextField   textMimeType;
    private JList        listBoxMimeExt;
    private JTextField   textMimeExt;


    public MimePanel() {
        super ();

        init ();
    }

    private void init () {
        JPanel   panel;
        JPanel   panelData;

        this.setLayout ( new BorderLayout(6,6) );

        panel = createPanelButtons ();
        this.add ( panel, BorderLayout.EAST );

        panelData = new JPanel ( new GridLayout(1,0,12,12) );
        this.add ( panelData, BorderLayout.CENTER );

        panel = createPanelMimeTypes ();
        panelData.add ( panel );

        panel = createPanelMimeExt ();
        panelData.add ( panel );

        restore ();
        updateButtons ();
    }

    private JPanel createPanelButtons () {
        JPanel   panelButtons;
        JPanel   panel;

        panelButtons = new JPanel ( new FlowLayout(FlowLayout.LEFT) );

        panel = new JPanel ( new GridLayout(0,1,12,12) );
        panelButtons.add ( panel );

        buttonAdd = new JButton ( JMFI18N.getResource("jmfregistry.vector.add") );
        buttonAdd.addActionListener ( this );
        panel.add ( buttonAdd );

        buttonRemove = new JButton ( JMFI18N.getResource("jmfregistry.vector.remove") );
        buttonRemove.addActionListener ( this );
        panel.add ( buttonRemove );

        buttonRestore = new JButton ( JMFI18N.getResource("jmfregistry.vector.restore") );
        buttonRestore.addActionListener ( this );
//        panel.add ( buttonRestore );

        buttonCommit = new JButton ( JMFI18N.getResource("jmfregistry.vector.commit") );
        buttonCommit.addActionListener ( this );
        panel.add ( buttonCommit );

        return ( panelButtons );
    }

    private JPanel createPanelMimeTypes () {
        JPanel   panel;
        JPanel   panelTemp;
        JLabel   label;


        panel = new JPanel ( new BorderLayout(6,6) );

        panelTemp = new JPanel ( new BorderLayout(6,6) );
        panel.add ( panelTemp, BorderLayout.NORTH );

        label = new JLabel ( JMFI18N.getResource("jmfregistry.mime.type.label") );
        panelTemp.add ( label, BorderLayout.NORTH );

        textMimeType = new JTextField ();
        textMimeType.getDocument().addDocumentListener ( this );
        panelTemp.add ( textMimeType, BorderLayout.CENTER );

        listBoxMimeType = new JList (new DefaultListModel());
        listBoxMimeType.addListSelectionListener ( this );
        panel.add ( new JScrollPane(listBoxMimeType), BorderLayout.CENTER );

        return ( panel );
    }

    private JPanel createPanelMimeExt () {
        JLabel   label;
        JPanel   panel;
        JPanel   panelTemp;


        panel = new JPanel ( new BorderLayout(6,6) );

        panelTemp = new JPanel ( new BorderLayout(6,6) );
        panel.add ( panelTemp, BorderLayout.NORTH );

        label = new JLabel ( JMFI18N.getResource("jmfregistry.mime.ext.label") );
        panelTemp.add ( label, BorderLayout.NORTH );

        textMimeExt = new JTextField ();
        textMimeExt.getDocument().addDocumentListener ( this );
        panelTemp.add ( textMimeExt, BorderLayout.CENTER );

        listBoxMimeExt = new JList (new DefaultListModel());
        listBoxMimeExt.addListSelectionListener ( this );
        panel.add ( new JScrollPane (listBoxMimeExt), BorderLayout.CENTER );

        return ( panel );
    }

    public void actionPerformed ( ActionEvent event ) {
        String          strCmd;
        Object          objSource;

        objSource = event.getSource ();
        strCmd = event.getActionCommand ();
        if ( strCmd.equals(buttonRestore.getActionCommand()) )
            restore ();
        if ( strCmd.equals(buttonCommit.getActionCommand()) )
            MimeManager.commit();
        else if ( objSource == buttonAdd )
            addExt ();
        else if ( objSource == buttonRemove )
            removeExt ();

        updateButtons ();
    }

    public void valueChanged ( ListSelectionEvent event ) {
        Object      objSource;
        String      strValue;

        objSource = event.getSource ();
        if ( objSource == listBoxMimeType ) {
            strValue = (String)listBoxMimeType.getSelectedValue ();
            textMimeType.setText ( strValue );
            fillExtList ();
        }
        else if ( objSource == listBoxMimeExt ) {
            strValue = (String)listBoxMimeExt.getSelectedValue ();
            textMimeExt.setText ( strValue );
        }
        updateButtons ();
    }

    public void changedUpdate ( DocumentEvent evt ) {
        updateButtons ();
    }

    public void insertUpdate ( DocumentEvent evt ) {
        updateButtons ();
    }

    public void removeUpdate ( DocumentEvent evt ) {
        updateButtons ();
    }

    private void restore () {
        Hashtable       htMimeExt;
        Enumeration     enumKeys;
        Object          objExt;
        Object          objType;
        String          strExt;
        String          strType;
        Vector          vectorExt;

        htMimeExt = MimeManager.getMimeTable ();
        htMimeTypes = new Hashtable ();

        enumKeys = htMimeExt.keys ();
        while ( enumKeys.hasMoreElements() ) {
            objExt = enumKeys.nextElement ();
            objType = htMimeExt.get ( objExt );
            strExt = objExt.toString ();
            strType = objType.toString ();

            if ( htMimeTypes.containsKey(strType) ) {
                vectorExt = (Vector)htMimeTypes.get ( strType );
            }
            else {
                vectorExt = new Vector ();
                htMimeTypes.put ( strType, vectorExt );
            }

            if ( !vectorExt.contains(strExt) )
                vectorExt.addElement ( strExt );
        }
        fillTypeList ();

⌨️ 快捷键说明

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