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