📄 typebrowserframe.java
字号:
if (frameSize.width > screenSize.width)
{
frameSize.width = screenSize.width;
}
setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
}
private void generateSelectedJavaCode()
{
StringBuffer buffer = new StringBuffer();
typeDataTree.selectedNodeToXML(buffer);
generateJavaCode(buffer.toString());
}
private void generateAllJavaCode()
{
StringBuffer buffer = new StringBuffer();
typeDataTree.toXML(buffer);
generateJavaCode(buffer.toString());
}
private void generateJavaCode(String xml)
{
saveJavaButton.setEnabled(false);
menuCodeGenSaveJava.setEnabled(false);
closeJavaButton.setEnabled(false);
menuCodeGenCloseJava.setEnabled(false);
createJavaButton.setEnabled(false);
try
{
CodeGenerationStatusDialog dialog = new CodeGenerationStatusDialog(this,
"Code generation in progress", true);
CodeGenerator.getInstance().setXML(xml, javaSourcePanel);
dialog.show(CodeGenerator.getInstance());
}
catch (Exception e)
{
Log.getInstance().exception("TypeBrowserFrame.generateJavaCode() failed to create java code", e);
}
focusJavaTab();
if (javaSourcePanel.getSourceCount() > 0)
{
saveJavaButton.setEnabled(true);
menuCodeGenSaveJava.setEnabled(true);
closeJavaButton.setEnabled(true);
menuCodeGenCloseJava.setEnabled(true);
}
createJavaButton.setEnabled(true);
}
private void focusJavaTab()
{
tabbedPane.setSelectedIndex(1);
}
private void focusXSLTab()
{
tabbedPane.setSelectedIndex(3);
}
private void focusXMLTab()
{
tabbedPane.setSelectedIndex(2);
}
private void focusInfoTab()
{
tabbedPane.setSelectedIndex(0);
}
private void configureCodeCompletion()
{
CodeCompletionConfigDialog dialog = new CodeCompletionConfigDialog(this, "Configure code completion", true);
dialog.show();
}
private void performInlineTransformation()
{
transformationPanel.setTransformation("");
String xml = xmlPanel.getXML();
String xsl = xslPanel.getXSL();
if (CommonUtilities.isEmpty(xml)) {
transformationPanel.setTransformation("No XML to transform (the XML-tab is empty)");
return;
} else if (CommonUtilities.isEmpty(xsl)) {
transformationPanel.setTransformation("No XSL to use for the transformation (the XSL-tab is empty)");
return;
}
try
{
String result = TransformationManager.getInstance().transformRaw(xml, xsl);
transformationPanel.setTransformation(result);
}
catch (TransformationException t)
{
/**
* @todo Add generic message error here
*/
transformationPanel.setTransformation("Error during transformation, please inspect the console for details");
t.printStackTrace();
}
}
private void editProjectProperties()
{
ProjectDialog dialog = new ProjectDialog(this, "Edit project properties", true);
dialog.show();
loadCurrentProjectLibraries();
}
private void loadCurrentProjectLibraries()
{
treeModel.clear();
typeDataTree.clearSelection();
javaSourcePanel.clearAll();
Project project = ProjectManager.getInstance().getCurrentProject();
DataCollection rootNode = new DataCollection("Libraries", "libraries", "images/function.png", null);
for (int i = 0; i < project.getItemCount(); i++)
{
ProjectItem projectItem = project.getItemAt(i);
File libraryFile = projectItem.getLibraryFile();
TypeParser parser = new TypeParser();
rootNode.addChild(parser.parseTypeInfo(libraryFile, projectItem));
}
rootNode.sort();
treeModel.setRoot(rootNode);
createJavaButton.setEnabled(false);
saveJavaButton.setEnabled(false);
menuCodeGenSaveJava.setEnabled(false);
closeJavaButton.setEnabled(false);
menuCodeGenCloseJava.setEnabled(false);
}
private void newProject()
{
JFileChooser fileChooser = new JFileChooser(System.getProperty("user.dir"));
fileChooser.setMultiSelectionEnabled(false);
ExtensionFileFilter extensionFileFilter = new ExtensionFileFilter("Project files");
extensionFileFilter.addExtension(".project");
fileChooser.setFileFilter(extensionFileFilter);
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION)
{
File newProject = fileChooser.getSelectedFile();
if (newProject != null)
{
ProjectManager.getInstance().createProject(newProject);
menuProjectProperties.setEnabled(true);
editProjectButton.setEnabled(true);
createJavaButton.setEnabled(false);
saveJavaButton.setEnabled(false);
menuCodeGenSaveJava.setEnabled(false);
closeJavaButton.setEnabled(false);
menuCodeGenCloseJava.setEnabled(false);
editProjectProperties();
}
}
}
private void openProject()
{
JFileChooser fileChooser = new JFileChooser(System.getProperty("user.dir"));
fileChooser.setMultiSelectionEnabled(false);
ExtensionFileFilter extensionFileFilter = new ExtensionFileFilter("Project files");
extensionFileFilter.addExtension(".project");
fileChooser.setFileFilter(extensionFileFilter);
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION)
{
File newProject = fileChooser.getSelectedFile();
if (newProject != null)
{
ProjectManager.getInstance().loadProject(newProject.getAbsolutePath());
menuProjectProperties.setEnabled(true);
editProjectButton.setEnabled(true);
createJavaButton.setEnabled(false);
loadCurrentProjectLibraries();
}
}
}
public void selectionChanged(BaseData selectedNode)
{
if (selectedNode != null)
{
createJavaButton.setEnabled(true);
menuCodeGenerateSelected.setEnabled(true);
if (selectedNode.helpAvailable())
{
helpButton.setEnabled(true);
}
else
{
helpButton.setEnabled(false);
}
}
else
{
createJavaButton.setEnabled(false);
menuCodeGenerateSelected.setEnabled(false);
helpButton.setEnabled(false);
}
}
private void showHelp()
{
BaseData selectedNode = (BaseData) typeDataTree.getLastSelectedPathComponent();
if (selectedNode == null || ! selectedNode.helpAvailable())
{
return;
}
HelpManager.getInstance().showHelp(selectedNode.getHelpFile(), selectedNode.getHelpReference());
}
private void saveJavaFiles()
{
try
{
javaSourcePanel.saveAll();
}
catch (Exception e)
{
Log.getInstance().exception("TypeBrowserFrame.saveJavaFiles() failed to save all java files", e);
}
}
private void closeJavaFiles()
{
saveJavaButton.setEnabled(false);
menuCodeGenSaveJava.setEnabled(false);
javaSourcePanel.clearAll();
closeJavaButton.setEnabled(false);
menuCodeGenCloseJava.setEnabled(false);
}
private void openXSL()
{
if (lastDirectory == null)
{
lastDirectory = new File(System.getProperty("user.dir"));
}
JFileChooser fileChooser = new JFileChooser(lastDirectory);
ExtensionFileFilter filter = new ExtensionFileFilter("XSL files");
filter.addExtension(".xsl");
fileChooser.setFileFilter(filter);
int status = fileChooser.showOpenDialog(this);
if (status == JFileChooser.APPROVE_OPTION)
{
File selectedFile = fileChooser.getSelectedFile();
if (selectedFile.exists() && selectedFile.isFile())
{
lastDirectory = selectedFile.getParentFile();
String contents = "";
try
{
contents = FileUtilities.loadString(selectedFile.getAbsolutePath());
}
catch (Exception e)
{
Log.getInstance().exception("TypeBrowserFrame.openXSL() failed to open file: " + selectedFile.getAbsolutePath(), e);
}
xslPanel.setXSL(contents);
focusXSLTab();
}
}
}
private void saveXML()
{
if (lastDirectory == null)
{
lastDirectory = new File(System.getProperty("user.dir"));
}
JFileChooser fileChooser = new JFileChooser(lastDirectory);
ExtensionFileFilter filter = new ExtensionFileFilter("XML files");
filter.addExtension(".xml");
fileChooser.setFileFilter(filter);
int status = fileChooser.showSaveDialog(this);
if (status == JFileChooser.APPROVE_OPTION)
{
File selectedFile = fileChooser.getSelectedFile();
if (selectedFile.exists())
{
int result = JOptionPane.showConfirmDialog(this, "This file already exists, do you want to overwrite it?",
"Confirm overwrite", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
if (result == JOptionPane.OK_OPTION)
{
lastDirectory = selectedFile.getParentFile();
try
{
String xml = xmlPanel.getXML();
FileUtilities.writeString(xml, "", selectedFile.getAbsolutePath());
}
catch (Exception e)
{
Log.getInstance().exception("TypeBrowserFrame.saveXML() failed to save XML to file: " + selectedFile.getAbsolutePath(), e);
}
}
}
else
{
lastDirectory = selectedFile.getParentFile();
try
{
String xml = xmlPanel.getXML();
FileUtilities.writeString(xml, "", selectedFile.getAbsolutePath());
}
catch (Exception e)
{
Log.getInstance().exception("TypeBrowserFrame.saveXML() failed to save XML to file: " + selectedFile.getAbsolutePath(), e);
}
}
}
}
private void saveXSL()
{
if (lastDirectory == null)
{
lastDirectory = new File(System.getProperty("user.dir"));
}
JFileChooser fileChooser = new JFileChooser(lastDirectory);
ExtensionFileFilter filter = new ExtensionFileFilter("XSL files");
filter.addExtension(".xsl");
fileChooser.setFileFilter(filter);
int status = fileChooser.showSaveDialog(this);
if (status == JFileChooser.APPROVE_OPTION)
{
File selectedFile = fileChooser.getSelectedFile();
if (selectedFile.exists())
{
int result = JOptionPane.showConfirmDialog(this, "This file already exists, do you want to overwrite it?",
"Confirm overwrite", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
if (result == JOptionPane.OK_OPTION)
{
lastDirectory = selectedFile.getParentFile();
try
{
String xsl = xslPanel.getXSL();
FileUtilities.writeString(xsl, "", selectedFile.getAbsolutePath());
}
catch (Exception e)
{
Log.getInstance().exception("TypeBrowserFrame.saveXSL() failed to save XSL to file: " + selectedFile.getAbsolutePath(), e);
}
}
}
else
{
lastDirectory = selectedFile.getParentFile();
try
{
String xsl = xslPanel.getXSL();
FileUtilities.writeString(xsl, "", selectedFile.getAbsolutePath());
}
catch (Exception e)
{
Log.getInstance().exception("TypeBrowserFrame.saveXSL() failed to save XSL to file: " + selectedFile.getAbsolutePath(), e);
}
}
}
}
/**
* Convenience method to notify the tree data model that it needs to refresh
*/
public void treeChanged()
{
treeModel.fireTreeChanged();
typeDataTree.clearSelection();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -