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

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