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

📄 xabstractdocumentview.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.awt.*;
import java.applet.*;
import java.util.*;
import javax.swing.*;

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

public abstract class XAbstractDocumentView extends JPanel implements XDocument
{
	public XAbstractDocumentView()
	{
        setLayout(new BorderLayout());
		add(pnlCenter, BorderLayout.CENTER);
		add(statusBar, BorderLayout.SOUTH);
    }

	public Component getComponent()
	{
		return this;
	}

    public void addDocumentListener(XDocumentListener listener)
    {
		documentListeners.add(listener);
	}

    public void removeDocumentListener(XDocumentListener listener)
    {
		documentListeners.remove(listener);
	}

    protected void fireDocumentLoadingStarted()
    {
	Iterator it = documentListeners.iterator();

		while( it.hasNext() )
			((XDocumentListener)it.next()).documentLoadingStarted(this);
	}

    protected void fireDocumentLoadingFinished()
    {
	Iterator it = documentListeners.iterator();

		while( it.hasNext() )
			((XDocumentListener)it.next()).documentLoadingFinished(this);
	}

    protected void firePageAddedToDocumentHistory(String url)
    {
	Iterator it = documentListeners.iterator();

		while( it.hasNext() )
			((XDocumentListener)it.next()).pageAddedToDocumentHistory(this, url);
	}

	protected void reset()
    {
        statusBar.resetStatus();
		statusBar.stopProgress();
	}

    protected void addComponent(Component comp, String name_key)
    {
	String name = XRepository.getResourceManager().getProperty(this, name_key);

		if( names_Components.containsKey(name) )
			return;

		if( names_Components.size()==0 )
			pnlCenter.add(comp, BorderLayout.CENTER);
		else
		{
			if( names_Components.size()==1 )
			{
				pnlCenter.removeAll();
				if( tabPane==null )
					tabPane = new JTabbedPane();
				pnlCenter.add(tabPane, BorderLayout.CENTER);

			Map.Entry entry = (Map.Entry)names_Components.entrySet().iterator().next();

				tabPane.add((String)entry.getKey(), (Component)entry.getValue());
			}

			tabPane.add(name, comp);
			tabPane.setSelectedComponent(comp);
		}

		names_Components.put(name, comp);
	}

    protected void removeComponent(String name_key)
    {
	String name = XRepository.getResourceManager().getProperty(this, name_key);
	Iterator it = names_Components.entrySet().iterator();
	Map.Entry entry;
	Component comp = null;

		while( it.hasNext() )
		{
			entry = (Map.Entry)it.next();
			if( entry.getKey().equals(name) )
			{
				comp = (Component)entry.getValue();
				break;
			}
		}

		if( comp==null )
			return;

		names_Components.remove(name);

		if( names_Components.isEmpty() )
			pnlCenter.removeAll();
		else
		{
			if( names_Components.size()==1 )
			{
				tabPane.removeAll();
				pnlCenter.remove(tabPane);
				pnlCenter.add((Component)names_Components.values().iterator().next(), BorderLayout.CENTER);
			}
			else
				tabPane.remove(comp);
		}
	}

// Attributes:
    private LinkedList documentListeners = new LinkedList();

	protected XStatusBar statusBar = new XStatusBar(true,false);

	private JPanel pnlCenter = new JPanel( new BorderLayout() );
	private JTabbedPane tabPane = null;
    private Map names_Components = new TreeMap();
}

⌨️ 快捷键说明

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