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
May 27, 2021
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x
parent
06bd3265
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
246 additions
and
860 deletions
+246
-860
gui.js
GUI测试/gui.js
+108
-288
gui_test.js
GUI测试/gui_test.js
+28
-242
x.js
GUI测试/x.js
+26
-330
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") }
// },
// {
// property: {margin: 2,spacing: 20,align: 'Top'},
// pack: {stretch: 0},
// child: [{
// type: "FormGridLayout",
//
property: { columns: 4, label_alignment: 'Top | Right', margin: 10, spacing: 20
},
//
pack: { stretch: 0
},
//
property: {columns: 1,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') }
// },
// {
// name: 'attrs.pthick',
// type: 'DoubleLineEdit',
// pack: { label: ('Part thickness') },
// property: { enabled: true }
// },
// {
// 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'
// 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' },
// ]
// );
// },
// pack: { label: ('ERP Job Remark'), column_span: 2 },
// setter: function (obj, value, self) {
// if (value != null) {
// obj.loadData(value);
// } else {
// obj.clearData();
// }
// ]
// },
// {
// type: 'stretch'
// getter: function (obj, self) {
// return obj.selectedRowDataMaps();
// }
// }
// ]
// }]
// }
// }]
// },
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' },
// ]
// );
// },
// 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"
// setter: function (obj, value, self) {
// if (value != null) {
// obj.loadData(value);
// } else {
// obj.clearData();
// }
// },
// "layer2": {
// "row": 2,
// "name": "layer2"
// getter: function (obj, self) {
// return obj.selectedRowDataMaps();
// }
// }
// });
// GUI.msg(r) // {"layer1":true,"layer2":false}
]
}]
}
}],
data
:
{
table
:
tabledata
},
includehide
:
false
,
buttons
:
[{
stock
:
"ok"
,
sensitive
:
true
,
command
:
function
(
data
)
{
// r = GUI.passwordBox({
// title: "password box",
// password: "naive!"
// });
// GUI.msg(r) // true
}
},
{
stock
:
"cancel"
,
sensitive
:
true
,
command
:
function
(
data
)
{
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"
;
stock
:
"help
"
,
sensitive
:
true
,
command
:
function
(
data
)
{
console
.
log
(
data
)
;
}
}
],
//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"
]
});
GUI
.
msg
(
r
)
// {layers:['layer2'],step:null,job:'job2',layertype:'null'}
});
return
'Done'
;
}
catch
(
error
)
{
return
'error'
}
\ No newline at end of file
console
.
log
(
r
);
\ No newline at end of file
GUI测试/gui_test.js
View file @
56f01551
/*
NAME:
DESCRIPTION: ;
PARAMETER:
[
var
plugin
=
require
(
'topsin.gengui'
);
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:"step",
title:"step名称",
type:"LineEdit",
property:{tool_tip:"step名称,默认orig"}
name
:
'attrs.iscross'
,
type
:
'ComboBox'
,
property
:
{
enabled
:
true
,
item_list
:
item_list
},
{
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
pack
:
{
label
:
(
'Is Cross'
)
}
},
where
:
{
id
:
$
.
task_id
}
});
}
}
var
Status
=
'ok'
;
var
resultData
=
[];
var
debug
=
true
;
var
default_par
=
{
// par默认参数?
step
:
"orig"
,
auto_save
:
"no"
}
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
}
}
}
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
})
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"
;
}
data
:
{},
runnow
:
true
,
includehide
:
false
,
gen
:
null
});
console
.
log
(
r
);
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
[
{
title
:
"BUG#10475"
,
size
:
'600x400'
,
items
:
{
type
:
'ScrollArea'
,
property
:
{
widget_resizable
:
true
,
frame_shape
:
'NoFrame'
,
align
:
'Top'
},
child
:
{
...
...
@@ -195,179 +45,26 @@ r = gui.showForm({
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
:
"秀吉"
}
]
enabled
:
true
,
item_list
:
item_list
},
pack
:
{
label
:
'性别'
}
}
]
}
]
}
}
];
},
data
:
{
username
:
"elder"
,
password
:
"nαive!"
,
sex
:
"male"
},
includehide
:
false
,
buttons
:
[
{
stock
:
"ok"
,
sensitive
:
true
,
command
:
function
(
data
)
{
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"
);
}
},
{
stock
:
"cancel"
,
sensitive
:
true
,
command
:
function
(
ddata
)
{
}
},
{
stock
:
"help"
,
sensitive
:
true
,
command
:
function
(
data
)
{
console
.
log
(
data
);
}
}
],
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
,
' '
));
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
public_script/字符优化/
创建套层
.pl
→
public_script/字符优化/
creat_cover
.pl
View file @
56f01551
File moved
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