📄 xdocumentview.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.doc.view;
import java.io.*;
import java.awt.*;
import java.awt.print.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
import java.net.*;
import javax.swing.*;
import javax.swing.plaf.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
import xbrowser.*;
import xbrowser.util.*;
import xbrowser.doc.*;
import xbrowser.doc.event.*;
import xbrowser.widgets.*;
import xbrowser.renderer.*;
import xbrowser.renderer.event.*;
public class XDocumentView extends XAbstractDocumentView implements XRendererListener
{
public XDocumentView()
{
try
{
myRenderer = XRepository.getConfiguration().getActiveRenderer().buildRenderer();
addComponent(new JScrollPane(myRenderer.getComponent()), "PageTab");
myRenderer.addRendererListener(this);
myRenderer.getComponent().addMouseListener( new MouseAdapter() {
public void mouseReleased(MouseEvent e)
{
if( e.isPopupTrigger() )
XBrowser.getBrowser().showPopupMenu(myRenderer.getComponent(), myRenderer.getCurrentFocusedLink(), e.getX(), e.getY());
}
});
}
catch( Exception e )
{
XRepository.getLogger().error(this, "An error occured while trying to configure the web document's renderer!");
XRepository.getLogger().error(this, e);
}
}
public XRenderer getRenderer()
{
return myRenderer;
}
///////////// XRendererListener ///////////
public void pageLoadingProgress(long read_size, long entire_size)
{
String message = XRepository.getResourceManager().getProperty(this, "LoadingProgress", myRenderer.getPageCompletePath(), ""+(read_size/1000));
statusBar.setStatusMessage(message);
}
public void pageLoadingStopped()
{
reset();
}
public void pageLoadingStarted()
{
removeComponent("SourceTab");
removeComponent("PreviewTab");
statusBar.setStatusMessage(XRepository.getResourceManager().getProperty(this, "OpeningPage", myRenderer.getPageCompletePath()));
statusBar.startProgress();
fireDocumentLoadingStarted();
}
public void pageLoadingFinished(Exception e)
{
reset();
if( e==null )
fireDocumentLoadingFinished();
else
{
String message = XRepository.getResourceManager().getProperty(XDocumentView.this, "LoadingError", myRenderer.getPageCompletePath());
String title = XRepository.getResourceManager().getProperty(XDocumentView.this, "Error");
JOptionPane.showMessageDialog(this, message, title, JOptionPane.ERROR_MESSAGE);
}
}
public void pageAddedToHistory(String url)
{
firePageAddedToDocumentHistory(url);
}
public void pagePrintingStarted()
{
setCursor( Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR) );
}
public void pagePrintingFinished(PrinterException e)
{
statusBar.resetStatus();
setCursor( Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR) );
if( e==null )
JOptionPane.showMessageDialog(this, XRepository.getResourceManager().getProperty(this, "PrintCompleted"), XRepository.getResourceManager().getProperty(this, "Information"), JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(this, XRepository.getResourceManager().getProperty(this, "PrintError"), XRepository.getResourceManager().getProperty(this, "Warning"), JOptionPane.WARNING_MESSAGE);
}
public void renderingPage(int page_index)
{
String message = XRepository.getResourceManager().getProperty(this, "Rendering", ""+(page_index+1));
statusBar.setStatusMessage(message);
}
public void renderingFinished()
{
statusBar.resetStatus();
setCursor( Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR) );
}
public void showAppletStatus(String status)
{
showStatus(status);
}
public void showAppletLifeCycle(Applet applet, int status)
{
String msg_key = "";
switch( status )
{
case STARTING_APPLET_INIT:
msg_key = "StartingAppletInit";
break;
case STARTING_APPLET_START:
msg_key = "StartingAppletStart";
break;
case STARTING_APPLET_STOP:
msg_key = "StartingAppletStop";
break;
case STARTING_APPLET_DESTROY:
msg_key = "StartingAppletDestroy";
break;
case STARTING_APPLET_LOAD:
msg_key = "StartingAppletLoad";
break;
case APPLET_INIT_SUCCESS:
msg_key = "AppletInitSuccess";
break;
case APPLET_START_SUCCESS:
msg_key = "AppletStartSuccess";
break;
case APPLET_STOP_SUCCESS:
msg_key = "AppletStopSuccess";
break;
case APPLET_DESTROY_SUCCESS:
msg_key = "AppletDestroySuccess";
break;
case APPLET_LOAD_SUCCESS:
msg_key = "AppletLoadSuccess";
break;
case APPLET_INIT_FAILED:
msg_key = "AppletInitFailed";
break;
case APPLET_START_FAILED:
msg_key = "AppletStartFailed";
break;
case APPLET_STOP_FAILED:
msg_key = "AppletStopFailed";
break;
case APPLET_DESTROY_FAILED:
msg_key = "AppletDestroyFailed";
break;
case APPLET_LOAD_FAILED:
msg_key = "AppletLoadFailed";
break;
default:
return;
}
statusBar.setStatusMessage(XRepository.getResourceManager().getProperty(this, msg_key));
}
public void showStatus(String status)
{
if( status==null || status.trim().equals("") )
statusBar.resetStatus();
else
statusBar.setStatusMessage(status);
}
public void hyperlinkEntered(String hyper_link)
{
statusBar.setStatusMessage(XRepository.getResourceManager().getProperty(this, "GotoLink", hyper_link));
}
public void hyperlinkExited(String hyper_link)
{
statusBar.resetStatus();
}
///////////// XRendererListener ///////////
public void showURL(String url)
{
myRenderer.showURL(url);
}
public void closingDocument()
{
myRenderer.destroying();
}
public String getPageTitle()
{
return myRenderer.getPageTitle();
}
public String getPageCompletePath()
{
return myRenderer.getPageCompletePath();
}
public String toString()
{
return myRenderer.getPageTitle();
}
public void showPrintPreview()
{
XPreviewPane preview = new XPreviewPane(this);
addComponent(preview, "PreviewTab");
preview.loadPreviews();
}
public void showPageSource()
{
if( !myRenderer.hasSource() )
return;
statusBar.setStatusMessage(XRepository.getResourceManager().getProperty(this, "DisplayingSource"));
statusBar.startProgress();
JTextArea txa_src = new JTextArea();
txa_src.setEditable(false);
addComponent(new JScrollPane(txa_src), "SourceTab");
txa_src.setText( myRenderer.getSource() );
txa_src.setCaretPosition(0);
reset();
}
public void printDocument()
{
new Thread()
{
public void run()
{
myRenderer.startPrinting(false);
}
}.start();
}
public void printDocumentImmediately()
{
new Thread()
{
public void run()
{
myRenderer.startPrinting(true);
}
}.start();
}
// Attributes:
private XRenderer myRenderer = null;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -