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

📄 ximportexportbookmarkslayout.java

📁 XBrowser是一个完全免费并且开源的Web浏览器
💻 JAVA
字号:
/****************************************************************
*              XBrowser  -  eXtended web Browser                *
*                                                               *
*           Copyright (c) 2000-2001  Armond Avanes              *
*     Refer to ReadMe & License files for more information      *
*                                                               *
*                                                               *
*                      By: Armond Avanes                        *
*       Armond555@yahoo.com     &    Armond333@yahoo.com        *
*                http://xbrowser.sourceforge.net/               *
*****************************************************************/
package xbrowser.screen;

import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

import xbrowser.*;
import xbrowser.util.*;
import xbrowser.widgets.*;
import xbrowser.bookmark.io.*;
import xbrowser.bookmark.*;

public class XImportExportBookmarksLayout extends XFrame
{
	public XImportExportBookmarksLayout()
	{
		getContentPane().setLayout( new BorderLayout(5,5) );

        getContentPane().add(getCenterPanel(),BorderLayout.CENTER);
        getContentPane().add(getButtonsPanel(),BorderLayout.SOUTH);

        setIconImage( buildImageIcon(this, "image.FrameIcon").getImage() );
        setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
        registerListeners();

        pack();

    Dimension size = getSize();

        size.height = 280;
        setSize(size);
        //setResizable(false);
	}

    private void registerListeners()
    {
	ItemListener item_listener = new ItemListener() {
			public void itemStateChanged(ItemEvent e)
			{
				if( rdoImport.isSelected() )
					setType(IMPORT_BOOKMARKS);
				else
					setType(EXPORT_BOOKMARKS);
			}
		};

		rdoImport.addItemListener(item_listener);
		rdoExport.addItemListener(item_listener);
	}

	private void addToContainer(Component comp,Container container,GridBagLayout gridbag,GridBagConstraints constraints,int grid_width,double weight_x)
	{
        constraints.gridwidth = grid_width;
        constraints.weightx = weight_x;
        gridbag.setConstraints(comp, constraints);
		container.add(comp);
	}

    private JPanel getCenterPanel()
    {
    JPanel pnl = new JPanel( new BorderLayout() );
    JPanel pnl_import_export = new JPanel( new GridLayout(2,1) );
    ButtonGroup grp_import_export = new ButtonGroup();
    ButtonGroup grp_format = new ButtonGroup();
    GridBagLayout gridbag1 = new GridBagLayout();
    GridBagConstraints constraints1 = new GridBagConstraints();
    GridBagLayout gridbag2 = new GridBagLayout();
    GridBagConstraints constraints2 = new GridBagConstraints();
    JPanel pnl_north = new JPanel( new BorderLayout() );
    JPanel pnl_center = new JPanel(gridbag1);
    JPanel pnl_south = new JPanel(gridbag2);
    Iterator serializers = XRepository.getConfiguration().getBookmarkSerializers();

    	grp_import_export.add(rdoImport);
    	grp_import_export.add(rdoExport);
    	pnl_import_export.add(rdoImport);
    	pnl_import_export.add(rdoExport);
    	pnl_import_export.setBorder( new TitledBorder(XRepository.getResourceManager().getProperty(this, "Bookmarks")) );

		while( serializers.hasNext() )
		{
		XBookmarkSerializerObject ser = (XBookmarkSerializerObject)serializers.next();
		JRadioButton rdo = buildRadioButton(this, "Format2", ser.getName(), "(."+ser.getFormat()+")");

			rdo.putClientProperty("XSerializer", ser);
			serializerComponents.add(rdo);
			grp_format.add(rdo);
	    	pnlFormat.add(rdo);

	    	if( ser==XRepository.getConfiguration().getActiveBookmarkSerializer() )
		    	rdo.setSelected(true);
		}

        pnl_north.add(pnl_import_export,BorderLayout.WEST);
        pnl_north.add(pnlFormat,BorderLayout.CENTER);

        constraints1.fill = GridBagConstraints.HORIZONTAL;
        constraints1.insets = new Insets(0,5,0,5);
		addToContainer(buildLabel(this, "BaseFolder"),pnl_center,gridbag1,constraints1,1,0);
		addToContainer(cmbBaseFolder,pnl_center,gridbag1,constraints1,GridBagConstraints.REMAINDER,1);

        constraints2.fill = GridBagConstraints.HORIZONTAL;
        constraints2.insets = new Insets(0,5,0,5);
		addToContainer(lblImportExportIO,pnl_south,gridbag2,constraints2,1,0);
		addToContainer(txfImportExportIO,pnl_south,gridbag2,constraints2,GridBagConstraints.RELATIVE,1);
		addToContainer(buildButton(new BrowseAction()),pnl_south,gridbag2,constraints2,GridBagConstraints.REMAINDER,0);

        pnl.add(pnl_north,BorderLayout.NORTH);
        pnl.add(pnl_center,BorderLayout.CENTER);
        pnl.add(pnl_south,BorderLayout.SOUTH);

    	return pnl;
	}

    private JPanel getButtonsPanel()
    {
    JPanel pnl_main = new JPanel();
    JPanel pnl_buttons = new JPanel();
	JButton btn_import_export = buildButton(importExportAction);

        pnl_main.setLayout(new FlowLayout());
        pnl_buttons.setLayout(new GridLayout(1,2,15,5));
        pnl_buttons.add(btn_import_export);
        pnl_buttons.add(buildButton(new CloseAction()));
        pnl_main.add(pnl_buttons);

        getRootPane().setDefaultButton(btn_import_export);

        return pnl_main;
	}

	public void setBaseFolder(XBookmarkFolder base_folder)
	{
		cmbBaseFolder.setSelectedItem(base_folder);
	}

	public void setType(int type)
	{
		if( type==IMPORT_BOOKMARKS )
		{
			setTitle(XRepository.getResourceManager().getProperty(this, "Import.Title"));
			pnlFormat.setBorder( new TitledBorder(XRepository.getResourceManager().getProperty(this, "ImportAs")) );
			lblImportExportIO.setText(XRepository.getResourceManager().getProperty(this, "ImportFrom"));
			importExportAction.putValue(Action.NAME, "Import");

			if( !rdoImport.isSelected() )
				rdoImport.setSelected(true);
		}
		else if( type==EXPORT_BOOKMARKS )
		{
			setTitle(XRepository.getResourceManager().getProperty(this, "Export.Title"));
			pnlFormat.setBorder( new TitledBorder(XRepository.getResourceManager().getProperty(this, "ExportAs")) );
			lblImportExportIO.setText(XRepository.getResourceManager().getProperty(this, "ExportTo"));
			importExportAction.putValue(Action.NAME, "Export");

			if( !rdoExport.isSelected() )
				rdoExport.setSelected(true);
		}
	}

    private class CloseAction extends XDefaultAction
    {
        public CloseAction()
        {
            super(XImportExportBookmarksLayout.this, "Close", null);
        }

        public void actionPerformed(ActionEvent e)
        {
		    setVisible(false);
        }
    }

    private class ImportExportAction extends XDefaultAction
    {
        public ImportExportAction()
        {
            super(XImportExportBookmarksLayout.this, "ImportExport", null);
        }

        public void actionPerformed(ActionEvent e)
        {
		String result_msg, result_title;
		int result_type;

			try
			{
			Iterator it = serializerComponents.iterator();

				while( it.hasNext() )
				{
				JRadioButton rdo = (JRadioButton)it.next();

					if( rdo.isSelected() )
					{
					XBookmarkSerializer ser = ((XBookmarkSerializerObject)rdo.getClientProperty("XSerializer")).getSerializer();
					XBookmarkFolder bm_folder = cmbBaseFolder.getSelectedBookmark();

						if( rdoImport.isSelected() )
							ser.importFrom(txfImportExportIO.getText().trim(), bm_folder);
						else
							ser.exportTo(txfImportExportIO.getText().trim(), bm_folder);

						break;
					}
				}

				result_msg = XRepository.getResourceManager().getProperty(XImportExportBookmarksLayout.this, "EmportExportSuccessful");
				result_title = XRepository.getResourceManager().getProperty(XImportExportBookmarksLayout.this, "Successful");
				result_type = JOptionPane.INFORMATION_MESSAGE;
			}
			catch( /*IO*/Exception ex1 )
			{
				result_msg = XRepository.getResourceManager().getProperty(XImportExportBookmarksLayout.this, "EmportExportError");
				result_title = XRepository.getResourceManager().getProperty(XImportExportBookmarksLayout.this, "Error");
				result_type = JOptionPane.ERROR_MESSAGE;
			}
			/*catch( Exception ex2 )
			{
				result_msg = ex2.getMessage();
				result_title = XRepository.getResourceManager().getProperty(XImportExportBookmarksLayout.this, "Error");
				result_type = JOptionPane.ERROR_MESSAGE;
			}*/

			JOptionPane.showMessageDialog(XImportExportBookmarksLayout.this, result_msg, result_title, result_type);
        }
    }

    private class BrowseAction extends XDefaultAction
    {
        public BrowseAction()
        {
            super(XImportExportBookmarksLayout.this, "Browse", null);
        }

        public void actionPerformed(ActionEvent e)
        {
		JFileChooser file_chooser = XRepository.getComponentBuilder().getImportExportFileChooser();
		Iterator it = serializerComponents.iterator();
		int result = -1;

			while( it.hasNext() )
			{
			JRadioButton rdo = (JRadioButton)it.next();

				if( rdo.isSelected() )
				{
				XBookmarkSerializerObject ser = (XBookmarkSerializerObject)rdo.getClientProperty("XSerializer");
				String format = XRepository.getResourceManager().getProperty(XImportExportBookmarksLayout.this, "Format", ser.getName());

					file_chooser.setFileSelectionMode(ser.hasSingleFileStructure() ? JFileChooser.FILES_ONLY : JFileChooser.DIRECTORIES_ONLY);

					if( rdoImport.isSelected() )
					{
						file_chooser.setDialogTitle(XRepository.getResourceManager().getProperty(XImportExportBookmarksLayout.this, "ImportAsFormat", format));
						result = file_chooser.showOpenDialog(XImportExportBookmarksLayout.this);
					}
					else
					{
						file_chooser.setDialogTitle(XRepository.getResourceManager().getProperty(XImportExportBookmarksLayout.this, "ExportAsFormat", format));
						result = file_chooser.showSaveDialog(XImportExportBookmarksLayout.this);
					}
					break;
				}
			}

			if( result==JFileChooser.APPROVE_OPTION )
				txfImportExportIO.setText( file_chooser.getSelectedFile().toString() );
        }
    }

// Attributes:
	public static final int IMPORT_BOOKMARKS = 70;
	public static final int EXPORT_BOOKMARKS = 71;

	private JRadioButton rdoImport = buildRadioButton(this, "ImportBookmarks");
	private JRadioButton rdoExport = buildRadioButton(this, "ExportBookmarks");

	private LinkedList serializerComponents = new LinkedList();

	private JLabel lblImportExportIO = new JLabel("");
	private JTextField txfImportExportIO = new JTextField(25);
	private XBookmarkFolderComboBox cmbBaseFolder = new XBookmarkFolderComboBox();
	private XAction importExportAction = new ImportExportAction();

	private JPanel pnlFormat = new JPanel( new GridLayout(4,1) );
}

⌨️ 快捷键说明

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