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