📄 infopanel.java
字号:
package org.jawin.browser.info;
import javax.swing.*;
import org.jawin.browser.data.BaseData;
import org.jawin.browser.tree.TypeDataTreeSelectionListener;
import java.awt.*;
import org.jawin.browser.config.ConfigManager;
import org.jawin.browser.xsl.*;
import org.jawin.browser.log.Log;
import org.jawin.browser.util.FileUtilities;
/**
* <p>Title: Jawin Code Generation GUI</p>
* <p>Description: GUI for exploring type libraries and generating Java code</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: Open Source Incentive</p>
* @author Josh Passenger
* @version 1.0
*/
public class InfoPanel extends JPanel implements TypeDataTreeSelectionListener
{
private JScrollPane scrollPane = new JScrollPane();
private BorderLayout borderLayout = new BorderLayout();
private JEditorPane editorPane = new JEditorPane();
private String noInfoString = "";
public InfoPanel()
{
try
{
noInfoString = FileUtilities.loadString(ConfigManager.getInstance().getString("info.noInfoFile", "config/noinfo.html"));
jbInit();
}
catch(Exception e)
{
noInfoString = "";
e.printStackTrace();
}
}
public void selectionChanged(BaseData selectedNode)
{
if (selectedNode == null)
{
clearInfo();
return;
}
String nodeName = selectedNode.getClass().getName();
if (!InfoConfigManager.getInstance().generatesInfo(nodeName))
{
clearInfo();
return;
}
StringBuffer buffer = new StringBuffer();
selectedNode.toXML(0, buffer);
generateInfo(buffer.toString(), InfoConfigManager.getInstance().getStylesheet(nodeName));
}
private void generateInfo(String xml, String xslUrl)
{
try
{
String info = TransformationManager.getInstance().transform(xml, xslUrl);
editorPane.setText(info);
editorPane.setCaretPosition(0);
}
catch (TransformationException e)
{
Log.getInstance().exception("InfoPanel.generateInfo() failed to generated info", e);
clearInfo();
}
}
private void clearInfo()
{
editorPane.setText(noInfoString);
}
private void jbInit() throws Exception
{
editorPane.setEditable(false);
setLayout(borderLayout);
editorPane.setContentType("text/html");
add(scrollPane, BorderLayout.CENTER);
scrollPane.getViewport().add(editorPane, null);
clearInfo();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -