📄 xgeneraloptionpage.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 + -