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

📄 typebrowserframe.java

📁 java 调用windows的api
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

		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 + -