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

📄 xgeneraloptionpage.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.options;

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

import xbrowser.*;
import xbrowser.util.*;
import xbrowser.doc.*;
import xbrowser.widgets.*;
import xbrowser.history.*;

public class XGeneralOptionPage extends XOptionPage
{
	public XGeneralOptionPage()
	{
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints constraints = new GridBagConstraints();

    	setLayout(gridbag);

        constraints.fill = GridBagConstraints.HORIZONTAL;
        constraints.insets = new Insets(5,5,5,5);

		addToContainer(getHomePagePanel(),this,gridbag,constraints,GridBagConstraints.REMAINDER,1);
		addToContainer(getHistoryPanel(),this,gridbag,constraints,GridBagConstraints.REMAINDER,1);
		addToContainer(getCacheCookiePanel(),this,gridbag,constraints,GridBagConstraints.REMAINDER,1);

        constraints.fill = GridBagConstraints.BOTH;
        constraints.gridheight = GridBagConstraints.REMAINDER;
        constraints.weighty = 1;
		addToContainer(Box.createGlue(),this,gridbag,constraints,GridBagConstraints.REMAINDER,1);
	}

	private JPanel getHomePagePanel()
	{
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints constraints = new GridBagConstraints();
    JPanel pnl_home_page = new JPanel(gridbag);

        constraints.fill = GridBagConstraints.HORIZONTAL;
        constraints.insets = new Insets(5,5,5,5);
		pnl_home_page.setBorder( BorderFactory.createTitledBorder(XRepository.getResourceManager().getProperty(this, "HomePage")) );

		addToContainer(XRepository.getComponentBuilder().buildLabel(this, "HomePageDescription"),pnl_home_page,gridbag,constraints,GridBagConstraints.REMAINDER,1);
		addToContainer(XRepository.getComponentBuilder().buildLabel(this, "Address"),pnl_home_page,gridbag,constraints,1,0);
		addToContainer(txfHomeAddress,pnl_home_page,gridbag,constraints,GridBagConstraints.REMAINDER,0);
		addToContainer(XRepository.getComponentBuilder().buildButton(new CurrentURLAction()),pnl_home_page,gridbag,constraints,1,1);
		addToContainer(XRepository.getComponentBuilder().buildButton(new DefaultURLAction()),pnl_home_page,gridbag,constraints,1,1);
		addToContainer(XRepository.getComponentBuilder().buildButton(new BlankURLAction()),pnl_home_page,gridbag,constraints,1,1);
		addToContainer(XRepository.getComponentBuilder().buildButton(new BrowseAction()),pnl_home_page,gridbag,constraints,GridBagConstraints.REMAINDER,1);
		addToContainer(chkStartsWithHomePage,pnl_home_page,gridbag,constraints,GridBagConstraints.REMAINDER,1);

		return pnl_home_page;
	}

	private JPanel getHistoryPanel()
	{
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints constraints = new GridBagConstraints();
    JPanel pnl_history = new JPanel(gridbag);
	char valid_chars[] = {'0','1','2','3','4','5','6','7','8','9'};

	    txfExpireDays.setDocument( new XLimitedDocument(valid_chars) );

        constraints.fill = GridBagConstraints.HORIZONTAL;
        constraints.insets = new Insets(5,5,5,5);
		pnl_history.setBorder( BorderFactory.createTitledBorder(XRepository.getResourceManager().getProperty(this, "History")) );

		addToContainer(XRepository.getComponentBuilder().buildLabel(this, "HistoryDescription"),pnl_history,gridbag,constraints,GridBagConstraints.REMAINDER,0);
		addToContainer(XRepository.getComponentBuilder().buildLabel(this, "HistoryDays"),pnl_history,gridbag,constraints,3,0);
		addToContainer(txfExpireDays,pnl_history,gridbag,constraints,GridBagConstraints.RELATIVE,0);
		addToContainer(XRepository.getComponentBuilder().buildButton(new ClearHistoryAction()),pnl_history,gridbag,constraints,GridBagConstraints.REMAINDER,0);

		return pnl_history;
	}

	private JPanel getCacheCookiePanel()
	{
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints constraints = new GridBagConstraints();
    JPanel pnl = new JPanel(gridbag);

        constraints.fill = GridBagConstraints.HORIZONTAL;
        constraints.insets = new Insets(5,5,5,5);

		addToContainer(XRepository.getComponentBuilder().buildButton(new ClearCacheAction()),pnl,gridbag,constraints,1,1);
		addToContainer(XRepository.getComponentBuilder().buildButton(new ClearCookieAction()),pnl,gridbag,constraints,1,1);
		addToContainer(Box.createGlue(),pnl,gridbag,constraints,GridBagConstraints.REMAINDER,1);

		return pnl;
	}

	public String getName()
	{
		return XRepository.getResourceManager().getProperty(this, "Title");
	}

	public ImageIcon getIcon()
	{
		return XRepository.getComponentBuilder().buildImageIcon(this, "image.icon");
	}

	public void loadInfo()
	{
        txfHomeAddress.setText(XRepository.getConfiguration().getHomeURL());
        chkStartsWithHomePage.setSelected(XRepository.getConfiguration().getStartsWithHomePage());

       	txfExpireDays.setText(""+XRepository.getConfiguration().getHistoryExpirationDays());
	}

	public void saveInfo()
	{
        XRepository.getConfiguration().setHomeURL(txfHomeAddress.getText());
        XRepository.getConfiguration().setStartsWithHomePage(chkStartsWithHomePage.isSelected());

       	try
       	{
       		XRepository.getConfiguration().setHistoryExpirationDays( (new Integer(txfExpireDays.getText())).intValue() );
		}
		catch( Exception e )
		{
       		XRepository.getConfiguration().setHistoryExpirationDays(0);
		}
	}

    private class CurrentURLAction extends XDefaultAction
    {
        public CurrentURLAction()
        {
            super(XGeneralOptionPage.this, "UseCurrent", null);
        }

        public void actionPerformed(ActionEvent e)
        {
		XDocument doc = XBrowser.getBrowser().getDocumentContainer().getActiveDocument();

		    txfHomeAddress.setText((doc!=null) ? doc.getPageCompletePath() : "");
        }
    }

    private class DefaultURLAction extends XDefaultAction
    {
        public DefaultURLAction()
        {
            super(XGeneralOptionPage.this, "UseDefault", null);
        }

        public void actionPerformed(ActionEvent e)
        {
		    txfHomeAddress.setText(XProjectConstants.DEFAULT_HOME_URL);
        }
    }

    private class BlankURLAction extends XDefaultAction
    {
        public BlankURLAction()
        {
            super(XGeneralOptionPage.this, "UseBlank", null);
        }

        public void actionPerformed(ActionEvent e)
        {
		    txfHomeAddress.setText("");
        }
    }

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

        public void actionPerformed(ActionEvent e)
        {
		JFileChooser file_chooser = XRepository.getComponentBuilder().getLoadFileChooser();

			if( file_chooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION )
			{
			File selected_file = file_chooser.getSelectedFile();

				if( (selected_file!=null) && (selected_file.exists()) )
				{
					try
					{
						txfHomeAddress.setText(selected_file.toURL().toString());
					}
					catch( Exception ex )
					{
						txfHomeAddress.setText(selected_file.toString());
					}
				}
			}
        }
    }

    private class ClearHistoryAction extends XDefaultAction
    {
        public ClearHistoryAction()
        {
            super(XGeneralOptionPage.this, "ClearHistory", null);
        }

        public void actionPerformed(ActionEvent e)
        {
			XRepository.getHistoryManager().clearHistory();
        }
    }

    private class ClearCacheAction extends XDefaultAction
    {
        public ClearCacheAction()
        {
            super(XGeneralOptionPage.this, "ClearCache", null);
        }

        public void actionPerformed(ActionEvent e)
        {
			XRepository.getCacheManager().clearCache();
        }
    }

    private class ClearCookieAction extends XDefaultAction
    {
        public ClearCookieAction()
        {
            super(XGeneralOptionPage.this, "ClearCookie", null);
        }

        public void actionPerformed(ActionEvent e)
        {
			XRepository.getCookieManager().clearCookies();
        }
    }

// Attribute:
    private JTextField txfHomeAddress = new JTextField(20);
    private JCheckBox chkStartsWithHomePage = XRepository.getComponentBuilder().buildCheckBox(this, "StartHomePage");
    private JTextField txfExpireDays = new JTextField(4);
}

⌨️ 快捷键说明

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