CircosHeatmap-aardio/main.aardio

109 lines
4.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
mainForm = win.form(text="CircosHeatmap-aardio";right=1000;bottom=700;bgcolor=16777215)
mainForm.add(
btnRun={cls="plus";text="生成pdf";left=891;top=661;right=991;bottom=691;align="left";border={color=-16777216;width=1};db=1;dr=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=12}};iconText='\uF08B';textPadding={left=26};z=3};
btnSelectFile={cls="plus";text="数据源";left=786;top=661;right=886;bottom=691;align="left";border={top=1;right=1;bottom=1;color=-16777216};db=1;dr=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=18}};iconText='\uF15C';textPadding={left=35};z=2};
editConsole={cls="richedit";left=10;top=510;right=990;bottom=650;bgcolor=4274224;color=15326936;db=1;dl=1;dr=1;hscroll=1;multiline=1;readonly=1;vscroll=1;z=5};
editRScript={cls="edit";left=10;top=10;right=990;bottom=500;border=1;color=4473924;db=1;dl=1;dr=1;dt=1;font=LOGFONT(h=-16);hscroll=1;multiline=1;vscroll=1;z=4};
inputFile={cls="plus";left=10;top=661;right=786;bottom=691;align="right";border={left=1;top=1;bottom=1;color=-16736064};db=1;dl=1;dr=1;editable="edit";font=LOGFONT(h=-13);textPadding={left=5;top=8;right=5;bottom=2};z=1}
)
/*}}*/
mainForm.btnSelectFile.skin({
background={
active=0xFF5AAEC4;
default=0xFF71D9F5;
disabled=0xFFCCCCCC;
};
color={
active=0xFFFFFFFF;
default=0xFF000000;
disabled=0xFF6D6D6D
}
});
mainForm.btnRun.skin({
background={
active=0xFF30BE3F;
default=0xFF7DED7B;
disabled=0xFFCCCCCC;
};
color={
active=0xFFFFFFFF;
default=0xFF000000;
disabled=0xFF6D6D6D
}
});
import console;
import fsys.dlg;
import process.r;
mainForm.editRScript.print($"\script\heatmap_script.R");
var initEditConsole = function(){
mainForm.editConsole.text = null;
mainForm.editConsole.appendText( textColor = 0xF5D971, point = 10, "当前仅支持 csv 格式的数据源。如果您的数据是其他格式(如 xls、xlsx可以将其转换为 csv 格式后再使用。" );
}
initEditConsole();
// 选择文件按钮点击事件
mainForm.btnSelectFile.oncommand = function(id, event) {
var filePath = fsys.dlg.open("CSV 文件|*.csv||",, "选择输入文件");
if (filePath) {
mainForm.inputFile.text = filePath; // 将选择的文件路径显示在输入框中
}
}
// 运行按钮点击事件
mainForm.btnRun.oncommand = function(id, event) {
var inputFilePath = mainForm.inputFile.text;
if (!inputFilePath) {
mainForm.editConsole.appendLink('\r\n');
mainForm.editConsole.appendText( textColor = 0xC7C7FF, point = 10, "请先选择输入文件!");
return;
}
// 弹出保存文件对话框选择PDF保存路径
var outputFilePath = fsys.dlg.save("PDF 文件|*.pdf||",, "选择保存路径");
if (!outputFilePath) {
mainForm.editConsole.appendLink('\r\n');
mainForm.editConsole.appendText( textColor = 0xC7C7FF, point = 10, "请选择PDF文件的保存路径");
return;
}
initEditConsole();
mainForm.editConsole.appendLink('\r\n');
mainForm.editConsole.appendText("处理中......");
// 执行 R 脚本
var out = process.r.exec(mainForm.editRScript.text, inputFilePath, outputFilePath);
mainForm.editConsole.appendLink('\r\n');
mainForm.editConsole.appendText(out);
// 结果检查
out_lines = string.split(out, '\r\n');
if (!io.exist(outputFilePath) or out_lines[#out_lines] == "Execution halted") {
mainForm.editConsole.appendLink('\r\n');
mainForm.editConsole.appendText( textColor = 0xC7C7FF, point = 10, "出错了!检查日志是否有错误说明");
}
else {
mainForm.editConsole.appendLink('\r\n');
mainForm.editConsole.appendText( textColor = 0x37D437, point = 10, "热图已成功保存至(注意检查是否符合预期):");
mainForm.editConsole.appendLink('\r\n');
mainForm.editConsole.appendText( textColor = 0x37D437, point = 12, outputFilePath);
}
// 滚动到最后一行
mainForm.editConsole.vScroll();
}
//显示版本号
import fsys.version;
var version = fsys.version.getInfo(io._exepath).productVersion;
mainForm.text += " " ++ tostring(version);
// 显示主窗口
mainForm.show();
return win.loopMessage();