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

📄 saveresultsaction.java

📁 Java version of ABC/HR comparator v0.5. by schnofler. Runs on Sun JRE 1.5 or later
💻 JAVA
字号:
package abchr.gui;

import guiutils.SimpleFileChooser;
import guiutils.SimpleFileFilter;
import jlfgr.GraphicsRepository;

import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.io.FileOutputStream;
import java.util.List;

import abchr.*;

class SaveResultsAction extends AbstractAction {
	private Window frame;
	private TestProject project;
	private static final FileFilter[] READABLE_FILE_FILTERS;
	private static final FileFilter[] SCRAMBLED_FILE_FILTERS;

	public SaveResultsAction(TestProject project,Window parent) {
		super("Save Test Results...",GraphicsRepository.getToolbarIcon("general/Properties16.gif"));
		this.putValue(Action.SHORT_DESCRIPTION,"Save Test Results...");
		this.project=project;
		this.frame=parent;
	}

	public void actionPerformed(ActionEvent e) {
		List list=project.getModules();
		boolean encryption=false;
		for(int i=0;i<list.size();i++) {
			if(list.get(i) instanceof EncryptionKeyModule && (((EncryptionKeyModule)list.get(i)).getEncryptionKey()!=null)) {
				encryption=true;break;
			}
		}
		File f=null;
		if(encryption) {
			f=SimpleFileChooser.saveFile(frame,SCRAMBLED_FILE_FILTERS,false);
		} else {
			f=SimpleFileChooser.saveFile(frame,READABLE_FILE_FILTERS,false);
		}
		if(f==null){return;}
		FileOutputStream out=null;
		try {
			ResultIOModule[] modules=ResultIOManager.getInstance().getModules();
			ResultIO io=null;
			for(int i=0;i<modules.length;i++) {
				if(f.getName().endsWith('.'+modules[i].getExtension())){io=modules[i].getResultIO();}
			}
			out=new FileOutputStream(f);
			io.writeConfig(out,project.getResults());
		} catch(IOException e1) {
			e1.printStackTrace();
			JOptionPane.showMessageDialog(frame,"File could not be saved","Error",JOptionPane.ERROR_MESSAGE);
		} finally {
			if(out!=null){try{out.close();}catch(IOException e1){}}
		}
	}

	static {
		ResultIOModule[] modules=ResultIOManager.getInstance().getModules();
		int n=0;
		for(int i=0;i<modules.length;i++){if(modules[i].isReadable()){n++;}}
		READABLE_FILE_FILTERS=new FileFilter[n];
		SCRAMBLED_FILE_FILTERS=new FileFilter[modules.length-n];
		int j1=0,j2=0;
		for(int i=0;i<modules.length;i++) {
			if(modules[i].isReadable()) {
				READABLE_FILE_FILTERS[j1++]=new SimpleFileFilter('.'+modules[i].getExtension(),modules[i].getDescription()+" (*."+modules[i].getExtension()+')');
			} else {
				SCRAMBLED_FILE_FILTERS[j2++]=new SimpleFileFilter('.'+modules[i].getExtension(),modules[i].getDescription()+" (*."+modules[i].getExtension()+')');
			}
		}
	}
}

⌨️ 快捷键说明

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