Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
Scott
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Scott Sun
Scott
Commits
56f01551
Commit
56f01551
authored
4 years ago
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x
parent
06bd3265
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
295 additions
and
909 deletions
+295
-909
gui.js
GUI测试/gui.js
+121
-301
gui_test.js
GUI测试/gui_test.js
+30
-244
x.js
GUI测试/x.js
+60
-364
x1.js
GUI测试/x1.js
+84
-0
creat_cover.pl
public_script/字符优化/creat_cover.pl
+0
-0
No files found.
GUI测试/gui.js
View file @
56f01551
/*
第一步. 逻辑检查,初始化,选取出需要测的steplist
第二步. 将要测net的step对应关系整理好 将array array_c copy到 _tmp 删除排版 打散关系 array_net 删除排版 打散关系
第三步. doNet 里所有step pgn极性翻转
第四步. doNet.orig foNet.net 对比测net
end: 删除辅助层 临时step
*/
var
plugin
=
require
(
'topsin.gengui'
);
var
gui
=
plugin
.
newGui
(
plugin
.
__dirname
);
var
item_list
=
[{
name
:
1
,
text
:
1
}]
var
tabledata
=
[{
name
:
"aa"
,
age
:
12
}]
var
$
=
require
(
'topcam.scriptfunc'
).
argv
();
var
_
=
require
(
'lodash'
);
var
JOB
=
$
.
job_name
;
var
GEN
=
$
.
gen
;
var
ikm
=
$
.
ikm
;
var
GUI
=
$
.
GUI
;
try
{
var
r
=
GUI
.
msgBox
(
"mo"
,
"info"
,
"are you ok?"
,
[
"ok"
,
"cancel"
]);
// GUI.msg(r); // ok | cancel
// r = GUI.confirm("are you ok?", ["yes", "no"], "question");
// GUI.msg(r); // yes | no
// var selected = GUI.selectFromTreeview({
// title: "test",
// size: [600, 400],
// selectmode: "single",
// columns: [
// {
// "name": "id",
// "display": "ID",
// "displayRole": "$id",
// "search": true,
// "resizeMode": "ResizeToContents"
// },
// {
// "name": "name",
// "display": "NAME",
// "displayRole": "$name",
// "search": true,
// "resizeMode": "ResizeToContents"
// }
// ],
// data: [
// {
// "id": 1,
// "name": "mo"
// },
// {
// "id": 2,
// "name": "ha"
// }
// ],
// returncols: ["id"]
// });
// msg(selected); // [{id:1}]
// r = GUI.selectFile("choose something", "*", true, "file", "/home/abby/fast_io");
// GUI.msg(r); // ["路径"]
// var xx = [
// {"mo": "too young too simple"},
// {"ha": "sometimes naive!"},
// {"elder": "+1s"}
// ];
// r = GUI.selectSingle({
// "title": "select your favar",
// "list": xx,
// "default": "",
// "columns": 2,
// "gen":{}
// });
// GUI.msg(r) // 'ha'
// r = GUI.selectMultiple({
// "title": "select your favar",
// "list": xx,
// "defaultvalue": ["mo"],
// "columns": 2,
// "gen": {}
// });
// GUI.msg(r) // ['ha','mo']
// r = GUI.selectFromTable({
// title: "select from table example",
// multiple: true,
// list: [
// {
// "job": "too young",
// "name": "elder"
// },
// {
// "job": "too simple",
// "name": "elder"
// },
// {
// "job": "sometimes",
// "name": "elder"
// },
// {
// "job": "naive",
// "name": "elder"
// }
// ],
// gen: function() { function PAUSE() { return true; }}
// });
// GUI.msg(r) // [{job":"sometimes","name":"elder",("job":"naive","name":"elder"]
// r = GUI.snapScreen({
// file: "xxx",
// dir: "/tmp",
// type: "png",
// overwrite: true
// });
// GUI.msg(r) // /tmp/xxx.png
// r = GUI.imageViewer({
// title: "screenshot",
// file: "/tmp/xxx.png",
// defaultsize: [800, 600]
// });
// GUI.msg(r)
// r = GUI.inputBox({
// title: "input box example",
// value: "are you ok?"
// });
// GUI.msg(r) // are you ok?
// r = GUI.showForm({
// title: "form example",
// ui: {
r
=
gui
.
showForm
({
title
:
"注册账号"
,
size
:
[
600
,
400
],
// ui: function(self){
// return [{
// type: 'ScrollArea',
// property: {
widget_resizable: true, frame_shape: 'NoFrame', align: 'Top'
},
// property: {
widget_resizable: true,frame_shape: 'NoFrame',align: 'Top'
},
// child: {
// type: 'VBoxLayout',
// property: { margin: 2, spacing: 20, align: 'Top' },
// pack: { stretch: 0 },
// child: [
// {
// type: 'label'
// },
// {
// type: 'label',
// property: { text: ("Partnumber Info") }
// },
// {
// type: "FormGridLayout",
// property: { columns: 4, label_alignment: 'Top | Right', margin: 10, spacing: 20 },
// pack: { stretch: 0 },
// child: [
// {
// name: 'partnumber',
// type: 'LineEdit',
// pack: { label: ('Partnumber') },
// property: { enabled: true }
// },
// {
// name: 'attrs.iscross',
// type: 'ComboBox',
// property: { enabled: true, item_list: [] },
// pack: { label: ('Is Cross') }
// property: {margin: 2,spacing: 20,align: 'Top'},
// pack: {stretch: 0},
// child: [{
// type: "FormGridLayout",
// property: {columns: 1,label_alignment: 'Top | Right',margin: 10,spacing: 20},
// pack: {stretch: 0},
// child: [
// {
// name: 'table',
// type: 'TableView',
// property: {},
// initCallback: function (obj, self) {
// obj.setDataKeyList(["name", "age"]);
// obj.setHeaderItem(
// [
// {},
// { name: 'name', display: 'name', resizeMode: 'ResizeToContents', displayRole: '$name' },
// { name: 'age', display: 'age', resizeMode: 'ResizeToContents', displayRole: '$age' },
// ]
// );
// },
// {
// name: 'attrs.pthick',
// type: 'DoubleLineEdit',
// pack: { label: ('Part thickness') },
// property: { enabled: true }
// setter: function (obj, value, self) {
// if (value != null) {
// obj.loadData(value);
// } else {
// obj.clearData();
// }
// },
// {
// name: 'attrs.producttype',
// type: 'ComboBox',
// property: { enabled: true, item_list: [] },
// pack: { label: ('Product type') }
// },
// {
// name: 'attrs.weft_direction',
// type: 'ComboBox',
// property: { enabled: true, item_list: [] },
// pack: { label: ('Longitude and latitude') }
// },
// {
// name: 'attrs.structure_code',
// type: 'LineEdit',
// pack: { label: ('Structure') },
// property: { enabled: true }
// },
// {
// name: 'attrs.array_num_on_panel_y',
// type: 'DoubleLineEdit',
// pack: { label: ('Long edge typesetting') },
// property: { enabled: true }
// },
// {
// name: 'attrs.array_num_on_panel_x',
// type: 'DoubleLineEdit',
// pack: { label: ('Short edge typesetting') },
// property: { enabled: true }
// },
// {
// name: 'attrs.pre_partnumber',
// type: 'Chips',
// pack: { label: ('Front partnumber'), column_span: 2 },
// property: { enabled: true }
// },
// {
// name: 'attrs.erp_job_remark',
// type: 'PlainTextEdit',
// property: {
// enabled: true,
// min_row_count: 1,
// vertical_scroll_bar_policy: 'ScrollBarAlwaysOff'
// },
// pack: { label: ('ERP Job Remark'), column_span: 2 },
// getter: function (obj, self) {
// return obj.selectedRowDataMaps();
// }
// ]
// },
// {
// type: 'stretch'
// }
// ]
// }
// },
// data: {},
// runnow: true,
// includehide: false,
// gen: null
// });
// GUI.msg(r) // obj
// r = GUI.selectLayer({
// title: "+1s",
// filter: ".*", // regular expression
// selectmode: "single", // single, multiple
// context: "all", // all, board, misc
// layertype: "inner", // default type of layertypelist
// defaultsize: [600, 400], // window size
// layermatrix: GEN.getMatrix({job:JOB}),
// layertypelist: [
// {name: "signal", display_name: "signal", filter: function(x) { return x["layer_type"] === "signal"; }},
// {name: "outer", display_name: "Outer", filter: function(x) { return x["layer_type"] === "outer"; }}
// ],
// gen: null
// });
// GUI.msg(r) // [{name:"layer1"}]
// r = GUI.lockUnlockLayer({
// "title": "+1s",
// "layermatrix": {
// "layer1": {
// "row": 1,
// "name": "layer1"
// },
// "layer2": {
// "row": 2,
// "name": "layer2"
// }
// ]
// }]
// }
// }
// });
// GUI.msg(r) // {"layer1":true,"layer2":false}
// r = GUI.passwordBox({
// title: "password box",
// password: "naive!"
// });
// GUI.msg(r) // true
r
=
GUI
.
msg
(
'调试选择job'
).
selectJobLayer
({
layertypelist
:
[{
name
:
"mo"
,
display_name
:
"MO"
,
filter
:
function
(
x
)
{
return
x
.
layer_type
===
"mo"
;
}
},
{
name
:
"ha"
,
display_name
:
"HA"
,
filter
:
function
(
x
)
{
return
x
.
layer_type
===
"ha"
;
}
// }]
// },
item
:[{
type
:
'ScrollArea'
,
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
child
:
{
type
:
'VBoxLayout'
,
property
:
{
margin
:
2
,
spacing
:
20
,
align
:
'Top'
},
pack
:
{
stretch
:
0
},
child
:
[{
type
:
"FormGridLayout"
,
property
:
{
columns
:
1
,
label_alignment
:
'Top | Right'
,
margin
:
10
,
spacing
:
20
},
pack
:
{
stretch
:
0
},
child
:
[
{
name
:
'test1'
,
type
:
'LineEdit'
,
},
{
name
:
'test2'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
[{
name
:
"aa"
,
text
:
"aa"
}]
}
},
// {
// name: 'table',
// type: 'TableView',
// property: {},
// initCallback: function (obj, self) {
// obj.setDataKeyList(["name", "age"]);
// obj.setHeaderItem(
// [
// {},
// { name: 'name', display: 'name', resizeMode: 'ResizeToContents', displayRole: '$name' },
// { name: 'age', display: 'age', resizeMode: 'ResizeToContents', displayRole: '$age' },
// ]
// );
// },
// setter: function (obj, value, self) {
// if (value != null) {
// obj.loadData(value);
// } else {
// obj.clearData();
// }
// },
// getter: function (obj, self) {
// return obj.selectedRowDataMaps();
// }
// }
]
}]
}
],
//defaultlayertype: "ha",
joblist
:
[
"job1"
,
"job2"
],
defaultJob
:
[
"job1"
],
// select by default
steplist
:
[
"step1"
,
"step2"
,
"step3"
,
"step4"
],
// defaultstep: "step3",
showstep
:
true
,
selectmode
:
"single"
,
// single/multiple
layermatrix
:
{
"layer1"
:
{
name
:
"layer1"
,
layer_type
:
"mo"
,
row
:
1
},
"layer2"
:
{
name
:
"layer2"
,
layer_type
:
"ha"
,
row
:
2
}],
data
:
{
table
:
tabledata
},
includehide
:
false
,
buttons
:
[{
stock
:
"ok"
,
sensitive
:
true
,
command
:
function
(
data
)
{
}
},
defaultlayer
:
[
"layer1"
]
});
GUI
.
msg
(
r
)
// {layers:['layer2'],step:null,job:'job2',layertype:'null'}
{
stock
:
"cancel"
,
sensitive
:
true
,
command
:
function
(
data
)
{
}
},
{
stock
:
"help"
,
sensitive
:
true
,
command
:
function
(
data
)
{
console
.
log
(
data
);
}
}
],
});
return
'Done'
;
}
catch
(
error
)
{
return
'error'
}
\ No newline at end of file
console
.
log
(
r
);
\ No newline at end of file
This diff is collapsed.
Click to expand it.
GUI测试/gui_test.js
View file @
56f01551
/*
NAME:
DESCRIPTION: ;
PARAMETER:
[
{
name:"step",
title:"step名称",
type:"LineEdit",
property:{tool_tip:"step名称,默认orig"}
},
{
name : 'auto_save',
title : '自动保存',
type : 'RadioBox',
property : {
item_list:[
{name:'yes',text:'YES'},
{name:'no',text:'NO'},
],
tool_tip:'是否自动保存料号开关'
}
}
]
VERSION_HISTORY:
V1.00 2020-06-10 Scott Sun
1.新版本
HELP:
<html><body bgcolor="#DDECFE">
<font size="3" color="#003DB2"><p>功能简介</p></font>
<p> 立碑效应 </p>
<br>
<font size="3" color="#003DB2"><p>参数配置</p></font>
<p> 配置 </p>
<br>
<font size="3" color="#003DB2"><p>注意事项</p></font>
<p> 无 </p>
<br>
</body></html>
*/
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
console
.
log
(
"==============================>li bei xiao yin start"
);
// 引入模块 包
var
$
=
require
(
'topcam.scriptfunc'
).
argv
();
var
fs
=
require
(
'fs'
);
var
_
=
require
(
'lodash'
);
var
mode
=
$
.
ikm
?
"topcam"
:
"aimdfm"
;
var
IKM
=
$
.
ikm
;
if
(
IKM
==
undefined
)
{
IKM
=
require
(
'topcam.ikm6'
)(
$
)
}
var
GEN
=
$
.
gen
;
var
GUI
=
$
.
gui
||
{};
var
Job
=
$
.
job
||
$
.
job_name
;
Job
=
Job
.
toLowerCase
()
var
job
=
Job
var
JobId
=
$
.
job_id
;
var
db
=
$
.
db
||
{}
var
PAR
=
{}
if
(
$
.
par
)
{
PAR
=
$
.
par
}
else
if
(
$
.
hasOwnProperty
(
'script_parameter'
)){
PAR
=
JSON
.
parse
(
$
.
script_parameter
);
}
var
par
=
PAR
;
if
(
mode
===
"aimdfm"
)
{
var
database
=
require
(
"topsin.database"
);
database
.
addConnection
(
$
.
conf
.
database_conf
,
"DFM"
);
var
QDfm
=
database
.
query
(
"DFM"
);
$
.
QDfm
=
QDfm
;
if
(
$
.
conf
.
product_type
==
"aimdfm"
)
{
QDfm
.
updateRow
({
table
:
"pdm_aimdfm_task"
,
data
:
{
current_process_title
:
$
.
process_title
},
where
:
{
id
:
$
.
task_id
}
});
}
}
var
Status
=
'ok'
;
var
resultData
=
[];
var
debug
=
true
;
var
default_par
=
{
// par默认参数?
step
:
"orig"
,
auto_save
:
"no"
}
var
plugin
=
require
(
'topsin.gengui'
);
for
(
var
key
in
default_par
){
// 设置默认属性
if
(
!
par
.
hasOwnProperty
(
key
)
||
par
[
key
]
==
""
){
par
[
key
]
=
default_par
[
key
]
}
}
function
NewGUI
(
gui
)
{
this
.
msgBox
=
function
(
props
){
// title type content button
props
=
props
||
{}
return
gui
.
msgBox
(
props
.
title
||
"title"
,
props
.
type
||
"info"
,
props
.
content
||
"content"
,
props
.
button
||
[
"ok"
,
"cancel"
]);
}
this
.
selectFromTreeview
=
gui
.
selectFromTreeview
this
.
confirm
=
function
(
props
)
{
props
=
props
||
{}
return
gui
.
confirm
(
props
.
content
||
"content"
,
props
.
button
||
[
"yes"
,
"no"
],
props
.
type
||
"question"
);
}
this
.
selectFile
=
function
(
props
){
// "choose something", "*", true, "file", "/home/abby/fast_io"
props
=
props
||
{}
return
gui
.
selectFile
(
props
.
title
||
"choose something"
,
props
.
filter
||
"*"
,
props
.
multiple
||
false
,
"file"
,
""
);
}
this
.
selectSingle
=
function
(
props
)
{
props
=
props
||
{}
return
gui
.
selectSingle
({
"title"
:
props
.
title
||
"select"
,
"list"
:
props
.
list
||
[],
"default"
:
props
[
"default"
]
||
""
,
"columns"
:
props
.
columns
||
2
,
"gen"
:
props
.
gen
||
GEN
});
}
this
.
selectMultiple
=
function
(
props
)
{
props
=
props
||
{}
return
gui
.
selectMultiple
({
"title"
:
props
.
title
||
"select"
,
"list"
:
props
.
list
||
[],
"defaultvalue"
:
props
[
"default"
]
||
[
""
],
"columns"
:
props
.
columns
||
2
,
"gen"
:
props
.
gen
||
GEN
});
}
this
.
selectFromTable
=
gui
.
selectFromTable
this
.
snapScreen
=
gui
.
snapScreen
this
.
imageViewer
=
gui
.
imageViewer
this
.
inputBox
=
gui
.
inputBox
this
.
showForm
=
gui
.
showForm
this
.
selectLayer
=
function
(
props
){
props
=
props
||
{}
return
gui
.
selectLayer
({
title
:
props
.
title
||
"请选择层"
,
filter
:
props
.
filter
||
".*"
,
// regular expression
selectmode
:
props
.
selectmode
||
"multiple"
,
// single, multiple
context
:
props
.
context
||
"all"
,
// all, board, misc
layertype
:
props
.
layertype
||
"signal"
,
// default type of layertypelist
defaultsize
:
props
.
defaultsize
||
[
600
,
400
],
// window size
layermatrix
:
props
.
layermatrix
||
props
.
matrix
,
layertypelist
:
props
.
layertypelist
||
[
{
name
:
"all"
,
display_name
:
"all"
,
filter
:
function
(
x
)
{
return
x
}},
{
name
:
"signal"
,
display_name
:
"signal"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"signal"
;
}},
{
name
:
"power_ground"
,
display_name
:
"power_ground"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"power_ground"
;
}},
{
name
:
"mixed"
,
display_name
:
"mixed"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"mixed"
;
}},
{
name
:
"solder_mask"
,
display_name
:
"solder_mask"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"solder_mask"
;
}},
{
name
:
"silk_screen"
,
display_name
:
"silk_screen"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"silk_screen"
;
}},
{
name
:
"solder_paste"
,
display_name
:
"solder_paste"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"solder_paste"
;
}},
{
name
:
"drill"
,
display_name
:
"drill"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"drill"
;
}},
{
name
:
"rout"
,
display_name
:
"rout"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"rout"
;
}},
{
name
:
"document"
,
display_name
:
"document"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"document"
;
}}
],
gen
:
props
.
GEN
||
GEN
})
}
this
.
lockUnlockLayer
=
function
(
props
){
props
=
props
||
{}
var
tmp
=
{}
if
(
props
.
matrix
)
{
for
(
var
key
in
props
.
matrix
)
{
var
item
=
props
.
matrix
[
key
]
tmp
[
key
]
=
{
row
:
item
.
row
,
name
:
item
.
name
}
}
var
gui
=
plugin
.
newGui
();
var
item_list
=
[{
name
:
213
,
text
:
123
}]
r
=
gui
.
showForm
({
title
:
"form example"
,
ui
:
{
type
:
'ScrollArea'
,
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
child
:
{
type
:
'VBoxLayout'
,
property
:
{
margin
:
2
,
spacing
:
20
,
align
:
'Top'
},
pack
:
{
stretch
:
0
},
child
:
[
{
name
:
'attrs.iscross'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
item_list
},
pack
:
{
label
:
(
'Is Cross'
)
}
},
]
}
return
gui
.
lockUnlockLayer
({
title
:
props
.
title
||
"lockUnlockLayer"
,
layermatrix
:
props
.
layermatrix
||
tmp
})
}
this
.
passwordBox
=
function
(
props
){
props
=
props
||
{}
return
gui
.
passwordBox
({
title
:
props
.
title
||
"password"
,
password
:
props
.
password
||
"1212"
})
}
this
.
selectJobLayer
=
function
(
props
)
{
props
=
props
||
{}
return
gui
.
selectJobLayer
({
layertypelist
:
props
.
layertypelist
||
[
{
name
:
"all"
,
display_name
:
"all"
,
filter
:
function
(
x
)
{
return
x
}},
{
name
:
"signal"
,
display_name
:
"signal"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"signal"
;
}},
{
name
:
"power_ground"
,
display_name
:
"power_ground"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"power_ground"
;
}},
{
name
:
"mixed"
,
display_name
:
"mixed"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"mixed"
;
}},
{
name
:
"solder_mask"
,
display_name
:
"solder_mask"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"solder_mask"
;
}},
{
name
:
"silk_screen"
,
display_name
:
"silk_screen"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"silk_screen"
;
}},
{
name
:
"solder_paste"
,
display_name
:
"solder_paste"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"solder_paste"
;
}},
{
name
:
"drill"
,
display_name
:
"drill"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"drill"
;
}},
{
name
:
"rout"
,
display_name
:
"rout"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"rout"
;
}},
{
name
:
"document"
,
display_name
:
"document"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"document"
;
}}
],
//defaultlayertype: "ha",
joblist
:
props
.
joblist
||
[],
defaultJob
:
props
.
defaultJob
||
[],
// select by default
steplist
:
props
.
steplist
||
[],
// defaultstep: "step3",
showstep
:
props
.
showstep
||
true
,
selectmode
:
props
.
selectmode
||
"multiple"
,
// single/multiple
layermatrix
:
props
.
layermatrix
||
{
},
defaultlayer
:
props
.
defaultlayer
||
[]
})
}
}
try
{
var
gui
=
new
NewGUI
(
GUI
)
var
matrix
=
GEN
.
getMatrix
({
job
:
job
})
},
data
:
{},
runnow
:
true
,
includehide
:
false
,
gen
:
null
});
if
(
mode
===
"aimdfm"
)
{
$
.
QDfm
.
updateRow
({
table
:
"pdm_aimdfm_task"
,
data
:
{
progress
:
33.33
},
where
:
{
id
:
$
.
task_id
}
});
if
(
GEN
.
hasError
())
{
Status
=
'error'
;
resultData
.
push
({
type
:
"error"
,
title
:
"GEN错误!"
,
detail
:
[{
desc
:
_
.
join
(
GEN
.
STATUS
,
"
\n
"
)
}]
});
return
{
status
:
Status
,
result_data
:
resultData
};
}
else
{
resultData
.
push
({
type
:
"info"
,
title
:
"操作完成, 请注意检查!"
});
return
{
status
:
Status
,
result_data
:
resultData
};
}
}
else
{
return
"Done"
}
}
catch
(
e
)
{
IKM
.
msg
(
_
.
join
(
GEN
.
STATUS
,
"
\n
"
))
IKM
.
msg
(
e
)
Status
=
'error'
;
resultData
.
push
({
type
:
"error"
,
title
:
"脚本执行出错!"
,
detail
:
[{
desc
:
_
.
toString
(
e
)}]});
return
(
mode
===
"aimdfm"
)
?
{
status
:
Status
,
result_data
:
resultData
}
:
"Error"
;
}
console
.
log
(
r
);
This diff is collapsed.
Click to expand it.
GUI测试/x.js
View file @
56f01551
var
plugin
=
require
(
'topsin.gengui'
);
var
gui
=
plugin
.
newGui
(
plugin
.
__dirname
);
function
gen
()
{
this
.
PAUSE
=
function
()
{
console
.
log
(
"pause"
);
}
}
gui
.
setLang
(
"zhtw"
);
// zhcn, zhtw, en
var
r
=
gui
.
msgBox
({
title
:
"info"
,
icon
:
"info"
,
text
:
"are you ok?"
,
buttons
:
[
"Ok"
,
"Cancel"
],
gen
:
new
gen
()
});
console
.
log
(
r
);
gui
.
confirm
(
"are you ok?"
,
""
);
var
selected
=
gui
.
selectFromTreeview
({
title
:
"test"
,
size
:
[
600
,
400
],
selectmode
:
"single"
,
columns
:
[
{
"name"
:
"id"
,
"display"
:
"ID"
,
"displayRole"
:
"$id"
,
"search"
:
true
,
"resizeMode"
:
"ResizeToContents"
},
{
"name"
:
"name"
,
"display"
:
"NAME"
,
"displayRole"
:
"$name"
,
"search"
:
true
,
"resizeMode"
:
"ResizeToContents"
}
],
data
:
[
{
"id"
:
1
,
"name"
:
"mo"
},
{
"id"
:
2
,
"name"
:
"ha"
}
],
returncols
:
[
"id"
]
});
console
.
log
(
selected
);
r
=
gui
.
selectFile
(
"choose something"
,
"*"
,
true
,
"file"
,
"/home/abby/fast_io"
);
console
.
log
(
r
);
var
elder
=
[];
for
(
var
i
=
0
;
i
<
100
;
++
i
)
{
elder
.
push
({
"mo"
:
"+1s"
});
}
var
xx
=
[
{
"mo"
:
"too young too simple"
},
{
"ha"
:
"sometimes naive!"
},
{
"elder"
:
"+1s"
}
var
headers
=
[
{},
{
name
:
'analysis_item'
,
display
:
'Analysis Item'
,
resizeMode
:
'ResizeToContents'
,
displayRole
:
'$analysis_item'
},
{
name
:
'analysis_result'
,
display
:
'Analysis Result'
,
resizeMode
:
'ResizeToContents'
,
displayRole
:
'$analysis_result'
},
{
name
:
'result'
,
display
:
'Result'
,
resizeMode
:
'ResizeToContents'
,
displayRole
:
'$result'
},
{
name
:
'standard'
,
display
:
'Standard'
,
resizeMode
:
'ResizeToContents'
,
displayRole
:
'$standard'
},
{
name
:
'remark'
,
display
:
'Remark'
,
resizeMode
:
'ResizeToContents'
,
displayRole
:
'$remark'
,
editRole
:
'$remark'
,
flagsRole
:
'ItemIsEditable|ItemIsEnabled|ItemIsSelectable'
}
];
r
=
gui
.
selectSingle
({
"title"
:
"select your favar"
,
"list"
:
xx
,
"default"
:
""
,
"columns"
:
2
,
size
:
[
200
,
300
],
showheader
:
true
,
"gen"
:
new
gen
()
});
console
.
log
(
r
);
r
=
gui
.
selectMultiple
({
"title"
:
"select your favar"
,
"list"
:
xx
,
"defaultvalue"
:
[
"mo"
],
"columns"
:
2
,
size
:
[
300
,
500
],
showheader
:
true
,
"gen"
:
new
gen
()
});
console
.
log
(
r
);
// select_from_layer
// select_from_job
gui
.
selectJob
({
title
:
"select job"
,
multiple
:
false
,
joblist
:
[
"too young"
,
"too simple"
,
"sometimes"
,
"naive!"
],
gen
:
new
gen
()
});
gui
.
selectStep
({
title
:
"select layer"
,
multiple
:
true
,
steplist
:
[
"l1"
,
"l2"
,
"l3"
],
// gen: new gen(),
size
:
[
300
,
500
]
});
r
=
gui
.
selectFromTable
({
title
:
"select from table example"
,
multiple
:
true
,
list
:
[
{
"job"
:
"too young"
,
"name"
:
"elder"
},
{
"job"
:
"too simple"
,
"name"
:
"elder"
},
{
"job"
:
"sometimes"
,
"name"
:
"elder"
},
{
"job"
:
"naive"
,
"name"
:
"elder"
}
],
gen
:
new
gen
()
});
console
.
log
(
r
);
gui
.
snapScreen
({
file
:
"xxx"
,
dir
:
"/tmp"
,
type
:
"png"
,
overwrite
:
true
});
gui
.
imageViewer
({
title
:
"screenshot"
,
file
:
"/tmp/xxx.png"
,
defaultsize
:
[
800
,
600
]
});
r
=
gui
.
inputBox
({
title
:
"input box example"
,
value
:
"are you ok?"
,
size
:
[
300
,
200
],
multiline
:
false
});
console
.
log
(
r
);
// // refer to ikm6 GUI.showForm
var
item_list
=
[
{
name
:
"male"
,
icon
:
"male"
,
text
:
"男"
,
text_zhcn
:
"男"
,
text_zhtw
:
"男"
},
{
name
:
"female"
,
icon
:
"female"
,
text
:
"女"
,
text_zhcn
:
"女"
,
text_zhtw
:
"女"
},
];
r
=
gui
.
showForm
({
title
:
"注册账号"
,
size
:
[
600
,
400
],
ui
:
function
func
(
self
)
{
return
[
{
type
:
'ScrollArea'
,
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
child
:
{
type
:
'VBoxLayout'
,
property
:
{
margin
:
2
,
spacing
:
20
,
align
:
'Top'
},
pack
:
{
stretch
:
0
},
child
:
[
{
type
:
"FormGridLayout"
,
property
:
{
columns
:
1
,
label_alignment
:
'Top | Right'
,
margin
:
10
,
spacing
:
20
},
pack
:
{
stretch
:
0
},
child
:
[
{
name
:
'username'
,
type
:
'LineEdit'
,
pack
:
{
label
:
"用户名"
},
property
:
{
enabled
:
true
}
},
{
name
:
'password'
,
type
:
'LineEdit'
,
pack
:
{
label
:
"密码"
},
property
:
{
echo_mode
:
"password"
}
},
{
name
:
'sex'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
[
{
name
:
"male"
,
icon
:
"male"
,
text
:
"男"
,
text_zhcn
:
"男"
,
text_zhtw
:
"男"
},
{
name
:
"female"
,
icon
:
"female"
,
text
:
"女"
,
text_zhcn
:
"女"
,
text_zhtw
:
"女"
},
{
name
:
"hideyoshi"
,
icon
:
"circle-thin"
,
text
:
"Hideyoshi"
,
text_zhcn
:
"秀吉"
,
text_tw
:
"秀吉"
}
]
},
pack
:
{
label
:
'性别'
}
}
]
}
]
}
}
];
},
data
:
{
username
:
"elder"
,
password
:
"nαive!"
,
sex
:
"male"
},
includehide
:
false
,
buttons
:
[
{
stock
:
"ok"
,
sensitive
:
true
,
command
:
function
(
data
)
{
}
},
title
:
"BUG#10475"
,
size
:
'600x400'
,
items
:
{
type
:
'ScrollArea'
,
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
child
:
{
type
:
'VBoxLayout'
,
property
:
{
margin
:
2
,
spacing
:
20
,
align
:
'Top'
},
pack
:
{
stretch
:
0
},
child
:
[
{
stock
:
"cancel"
,
sensitive
:
true
,
command
:
function
(
ddata
)
{
}
},
{
stock
:
"help"
,
sensitive
:
true
,
command
:
function
(
data
)
{
console
.
log
(
data
);
type
:
"FormGridLayout"
,
property
:
{
columns
:
1
,
label_alignment
:
'Top | Right'
,
margin
:
10
,
spacing
:
20
},
pack
:
{
stretch
:
0
},
child
:
[
{
name
:
'username'
,
type
:
'LineEdit'
,
pack
:
{
label
:
"用户名"
},
property
:
{
enabled
:
true
}
},
{
name
:
'password'
,
type
:
'LineEdit'
,
pack
:
{
label
:
"密码"
},
property
:
{
echo_mode
:
"password"
}
},
{
name
:
'sex'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
item_list
},
pack
:
{
label
:
'性别'
}
},
{
name
:
'table'
,
type
:
'TableView'
,
property
:
{},
pack
:
{
label
:
'性别'
},
initCallback
:
function
(
obj
,
self
)
{
obj
.
setHeaderItem
(
headers
);
obj
.
setDataKeyList
([
"id"
,
"analysis_item"
,
"analysis_result"
,
"result"
,
"standard"
,
"remark"
]);
obj
.
setPrimaryKey
(
"id"
);
}
}
]
}
],
hook
:
function
(
data
)
{},
gen
:
new
gen
()
});
console
.
log
(
r
);
r
=
gui
.
selectLayer
({
title
:
"+1s"
,
//filter: ".*", // regular expression
selectmode
:
"single"
,
// single, multiple
context
:
"all"
,
// all, board, misc
layertype
:
"inner"
,
// default type of layertypelist
defaultsize
:
[
600
,
400
],
// window size
layermatrix
:
{
layer1
:
{
context
:
"board"
,
row
:
1
,
name
:
"layer1"
,
layer_type
:
"inner"
},
layer2
:
{
row
:
2
,
name
:
"layer2"
,
layer_type
:
"outer"
},
layer3
:
{
context
:
"misc"
,
row
:
3
,
name
:
"layer3"
,
layer_type
:
"inner"
}
},
layertypelist
:
[
{
name
:
"all"
,
display_name
:
"All"
,
filter
:
function
(
x
)
{
return
true
;
}},
{
name
:
"inner"
,
display_name
:
"Inner"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"inner"
;
}},
{
name
:
"outer"
,
display_name
:
"Outer"
,
filter
:
function
(
x
)
{
return
x
[
"layer_type"
]
===
"outer"
;
}}
],
gen
:
new
gen
()
});
console
.
log
(
r
);
r
=
gui
.
lockUnlockLayer
({
title
:
"+1s"
,
layermatrix
:
{
layer1
:
{
context
:
"board"
,
row
:
1
,
name
:
"layer1"
,
layer_type
:
"signal"
},
layer2
:
{
context
:
"board"
,
row
:
2
,
name
:
"layer2"
,
layer_type
:
"drill"
},
layer3
:
{
context
:
"misc"
,
row
:
3
,
name
:
"layer3"
,
layer_type
:
"rout"
}
},
lockvalue
:
{
layer1
:
true
,
layer2
:
false
},
gen
:
new
gen
()
});
console
.
log
(
r
);
r
=
gui
.
passwordBox
({
title
:
"password box"
,
password
:
"naive!"
,
size
:
[
400
,
150
]
});
console
.
log
(
r
);
r
=
gui
.
selectJobLayer
({
title
:
"select job layer"
,
layertypelist
:
[
{
name
:
"mo"
,
display_name
:
"MO"
,
filter
:
function
(
x
)
{
return
x
.
layer_type
===
"mo"
;
}
},
{
name
:
"ha"
,
display_name
:
"HA"
,
filter
:
function
(
x
)
{
return
x
.
layer_type
===
"ha"
;
}
}
],
//defaultlayertype: "ha",
joblist
:
[
"job1"
,
"job2"
],
defaultJob
:
[
"job1"
],
// select by default
steplist
:
[
"step1"
,
"step2"
,
"step3"
,
"step4"
],
// defaultstep: "step3",
showstep
:
true
,
selectmode
:
"single"
,
// single/multiple
layermatrix
:
{
"layer1"
:
{
name
:
"layer1"
,
layer_type
:
"mo"
,
row
:
1
},
"layer2"
:
{
name
:
"layer2"
,
layer_type
:
"ha"
,
row
:
2
}
},
defaultlayer
:
[
"layer1"
]
});
console
.
log
(
r
);
x
=
gui
.
debug
({
title
:
"debug"
,
text
:
"ciao"
,
size
:
[
400
,
300
],
gen
:
new
gen
()
});
var
DB
=
require
(
'topsin.database'
);
DB
.
addConnection
({
database_type
:
'pg'
,
database_host
:
'127.0.0.1:5432'
,
database_name
:
'test'
,
database_user
:
'abby'
,
database_pwd
:
'abby'
},
'test'
);
x
=
gui
.
showSendMail
({
title
:
"show send mail"
,
to
:
"elder@+1s.gov"
,
cc
:
"elder@moha.me"
,
subject
:
"are you ok?"
,
content
:
"naive!"
,
size
:
[
800
,
600
],
db
:
DB
.
query
(
'test'
)
]
}
}
});
console
.
log
(
x
);
\ No newline at end of file
print
(
JSON
.
stringify
(
r
,
null
,
' '
));
This diff is collapsed.
Click to expand it.
GUI测试/x1.js
0 → 100644
View file @
56f01551
var
plugin
=
require
(
'topsin.gengui'
);
var
gui
=
plugin
.
newGui
(
plugin
.
__dirname
);
var
data
=
[{
name
:
"123"
,
text
:
123
}]
gui
.
_extra
=
[{
name
:
13
,
text
:
23
}]
var
r
=
gui
.
showForm
({
title
:
"注册账号"
,
size
:
[
600
,
400
],
ui
:
function
(
self
)
{
return
[{
type
:
'ScrollArea'
,
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
child
:
{
type
:
'VBoxLayout'
,
property
:
{
margin
:
2
,
spacing
:
20
,
align
:
'Top'
},
pack
:
{
stretch
:
0
},
child
:
[{
type
:
"FormGridLayout"
,
property
:
{
columns
:
1
,
label_alignment
:
'Top | Right'
,
margin
:
10
,
spacing
:
20
},
pack
:
{
stretch
:
0
},
child
:
[{
name
:
'test'
,
type
:
'ComboBox'
,
pack
:
{
label
:
"用户名"
},
property
:
{
enabled
:
true
,
item_list
:
self
.
_extra
}
}]
}]
}
}]
}
,
data
:
{},
includehide
:
false
,
buttons
:
[{
stock
:
"ok"
,
sensitive
:
true
,
command
:
function
(
data
)
{
}
},
{
stock
:
"cancel"
,
sensitive
:
true
,
command
:
function
(
data
)
{
}
},
{
stock
:
"help"
,
sensitive
:
true
,
command
:
function
(
data
)
{
console
.
log
(
data
);
}
}
],
});
console
.
log
(
r
);
\ No newline at end of file
This diff is collapsed.
Click to expand it.
public_script/字符优化/
创建套层
.pl
→
public_script/字符优化/
creat_cover
.pl
View file @
56f01551
File moved
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment