mirror of
https://github.com/antos-rde/antosdk-apps.git
synced 2024-11-15 18:08:21 +01:00
282 lines
11 KiB
CoffeeScript
282 lines
11 KiB
CoffeeScript
Ant = this
|
|
class ShowCase extends this.OS.GUI.BaseApplication
|
|
constructor: (args) ->
|
|
super "ShowCase", args
|
|
|
|
main: () ->
|
|
|
|
bt = @find 'bttest'
|
|
bt.set "onbtclick", (e) =>
|
|
@error "test error"
|
|
|
|
@observable.on "btclick", (e) =>
|
|
@notify "button clicked"
|
|
|
|
@observable.on "menuselect", (e) =>
|
|
@notify e.id
|
|
|
|
list = @find 'list'
|
|
|
|
list.set "data", [
|
|
{ text: "some thing with avery long text" },
|
|
{ text: "some thing 1", closable: true },
|
|
{ text: "some thing 2", iconclass: "fa fa-camera-retro fa-lg" },
|
|
{ text: "some thing 3" },
|
|
{ text: "some thing 4" },
|
|
{ text: "some thing 5" }
|
|
]
|
|
list.unshift { text: "shifted el" }
|
|
list.set "onlistselect", (e) => @notify(e.data.items)
|
|
|
|
sw = @find 'switch'
|
|
sw.set "onchange", (e) =>
|
|
@notify e.data
|
|
|
|
spin = @find 'spin'
|
|
spin.set "onchange", (e) =>
|
|
@notify e.data
|
|
|
|
menu = @find 'menu'
|
|
menu.set "items", @menu()
|
|
|
|
list.contextmenuHandle = (e, m) =>
|
|
m.set "items", @menu()
|
|
m.show e
|
|
|
|
grid = @find 'grid'
|
|
grid.set "oncelldbclick", (e) =>
|
|
@notify "on dbclick", e
|
|
grid.set "onrowselect", (e) =>
|
|
@notify "on rowselect", e.data.items
|
|
|
|
@observable.on "cellselect", (e) ->
|
|
console.log "observable", e
|
|
|
|
grid.set "header", [{ text: "header1", width: 80 }, { text: "header2" }, { text: "header3" }]
|
|
grid.set "rows", [
|
|
[{ text: "text 1" }, { text: "text 2" }, { text: "text 3" }],
|
|
[{ text: "text 4" }, { text: "text 5" }, { text: "text 6" }],
|
|
[{ text: "text 7" }, { text: "text 8" }, { text: "text 9" }],
|
|
[{ text: "text 7" }, { text: "Subgrid on columns and rows. Subgrid on columns, implicit grid rows. Subgrid on rows, defined column tracks" }, { text: "text 9" }],
|
|
[{ text: "text 7" }, { text: "text 8" }, { text: "text 9" }],
|
|
[{ text: "text 7" }, { text: "text 8" }, { text: "text 9" }],
|
|
[{ text: "text 7" }, { text: "text 8" }, { text: "text 9" }],
|
|
[{ text: "text 7" }, { text: "text 8" }, { text: "text 9" }],
|
|
[{ text: "text 7" }, { text: "text 8" }, { text: "text 9" }],
|
|
[{ text: "text 7" }, { text: "text 8" }, { text: "text 9" }],
|
|
[{ text: "text 7" }, { text: "text 8" }, { text: "text 9" }]
|
|
]
|
|
|
|
tdata = {
|
|
name: 'My Tree',
|
|
nodes: [
|
|
{ name: 'hello', iconclass:'fa fa-car'},
|
|
{ name: 'wat' },
|
|
{
|
|
name: 'child folder',
|
|
nodes: [
|
|
{
|
|
name: 'child folder',
|
|
nodes: [
|
|
{ name: 'hello' },
|
|
{ name: 'wat' }
|
|
]
|
|
},
|
|
{ name: 'hello' },
|
|
{ name: 'wat' },
|
|
{
|
|
name: 'child folder',
|
|
nodes: [
|
|
{ name: 'hello' },
|
|
{ name: 'wat' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
tree = @find 'tree'
|
|
tree.set "data", tdata
|
|
tree.set "ontreeselect", (e) =>
|
|
@notify e.data.item.get "treepath"
|
|
tree.set "ontreedbclick", (e) =>
|
|
@notify "treedbclick", e
|
|
@observable.on "treedbclick", (e) =>
|
|
@notify "observable treedbclick", e
|
|
|
|
slider = @find 'slider'
|
|
slider.set "onchange", (v) =>
|
|
@notify v
|
|
|
|
cal = @find 'cal'
|
|
cal.set "ondateselect", (e) =>
|
|
@notify e
|
|
|
|
pk = @find 'cpk'
|
|
pk.set "oncolorselect", (e) =>
|
|
@notify e
|
|
pk.set "oncolorselect", (e) =>
|
|
@notify e
|
|
|
|
fileview = @find 'fileview'
|
|
fileview.set "fetch", (path) ->
|
|
new Promise (resolve, reject) ->
|
|
dir = path.asFileHandle()
|
|
dir.read().then (d) ->
|
|
p = dir.parent().asFileHandle()
|
|
p.filename = "[..]"
|
|
p.type = "dir"
|
|
return reject d.error if d.error
|
|
d.result.unshift p
|
|
resolve d.result
|
|
fileview.set "path", "home:///"
|
|
|
|
viewoption = @find 'viewoption'
|
|
viewoption.set "data", [
|
|
{ text: "icon" },
|
|
{ text: "list" },
|
|
{ text: "tree" }
|
|
]
|
|
viewoption.set "onlistselect", (e) =>
|
|
@notify e.data.item.get("data").text
|
|
fileview.set "view", e.data.item.get("data").text
|
|
|
|
dllist = @find "dialoglist"
|
|
btrun = @find "btrundia"
|
|
|
|
dllist.set "data", [
|
|
{ text: "Prompt dialog", id: "prompt" },
|
|
{ text: "Calendar dialog", id: "calendar" },
|
|
{ text: "Color picker dialog", id: "colorpicker" },
|
|
{ text: "Info dialog", id: "info" },
|
|
{ text: "YesNo dialog", id: "yesno" },
|
|
{ text: "Selection dialog", id: "selection" },
|
|
{ text: "About dialog", id: "about" },
|
|
{ text: "File dialog", id: "file" },
|
|
{ text: "Text dialog", id: "text" }
|
|
]
|
|
|
|
btrun.set "onbtclick", (e) =>
|
|
item = dllist.get "selectedItem"
|
|
return unless item
|
|
switch item.get("data").id
|
|
when "prompt"
|
|
@openDialog("PromptDialog", {
|
|
title: "Prompt review",
|
|
value: "txt data",
|
|
label: "enter value"
|
|
})
|
|
.then (d) =>
|
|
@notify d
|
|
when "calendar"
|
|
@openDialog("CalendarDialog", {
|
|
title: "Calendar"
|
|
})
|
|
.then (d) =>
|
|
@notify d
|
|
when "colorpicker"
|
|
@openDialog("ColorPickerDialog")
|
|
.then (d) =>
|
|
@notify d
|
|
when "info"
|
|
@openDialog("InfoDialog", {
|
|
title: "Info application",
|
|
name: "Show case",
|
|
date: "10/12/2014",
|
|
description: "the brown fox jumps over the lazy dog"
|
|
})
|
|
.then (d) ->
|
|
when "yesno"
|
|
@openDialog("YesNoDialog", {
|
|
title: "Question ?",
|
|
text: "Do you realy want to delete file ?"
|
|
})
|
|
.then (d) =>
|
|
@notify d
|
|
when "selection"
|
|
@openDialog("SelectionDialog", {
|
|
title: "Select data ?",
|
|
data: [
|
|
{ text: "Option 1" },
|
|
{ text: "Option 2" },
|
|
{ text: "Option 3", iconclass: "fa fa-camera-retro fa-lg" }
|
|
]
|
|
})
|
|
.then (d) =>
|
|
@notify d.text
|
|
when "about"
|
|
@openDialog("AboutDialog" )
|
|
.then (d) =>
|
|
when "file"
|
|
@openDialog("FileDialog", {
|
|
title: "Select file ?",
|
|
#root: "home:///",
|
|
mimes: ["text/*", "dir"],
|
|
file: "Untitled".asFileHandle()
|
|
})
|
|
.then (f, name) =>
|
|
@notify f, name
|
|
|
|
when "text"
|
|
@openDialog("TextDialog", {
|
|
title: "Text dialog review",
|
|
value: "txt data"
|
|
})
|
|
.then (d) =>
|
|
@notify d
|
|
else return
|
|
|
|
|
|
|
|
mnFile: () ->
|
|
#@notify file
|
|
arr = {
|
|
text: "__(File)",
|
|
child: [
|
|
{ text: "__(New file)", dataid: "#{@name}-mkf", shortcut: 'C-F' },
|
|
{ text: "__(New folder)", dataid: "#{@name}-mkdir", shortcut: 'C-D' },
|
|
{ text: "__(Open with)", dataid: "#{@name}-open", child: @apps },
|
|
{ text: "__(Upload)", dataid: "#{@name}-upload", shortcut: 'C-U' },
|
|
{ text: "__(Download)", dataid: "#{@name}-download" },
|
|
{ text: "__(Share file)", dataid: "#{@name}-share", shortcut: 'C-S' },
|
|
{ text: "__(Properties)", dataid: "#{@name}-info", shortcut: 'C-I' }
|
|
], onchildselect: (e) => @notify "child", e
|
|
}
|
|
return arr
|
|
mnEdit: () ->
|
|
|
|
{
|
|
text: "__(Edit)",
|
|
child: [
|
|
{ text: "__(Rename)", dataid: "#{@name}-mv", shortcut: 'C-R' },
|
|
{ text: "__(Delete)", dataid: "#{@name}-rm", shortcut: 'C-M' },
|
|
{ text: "__(Cut)", dataid: "#{@name}-cut", shortcut: 'C-X' },
|
|
{ text: "__(Copy)", dataid: "#{@name}-copy", shortcut: 'C-C' },
|
|
{ text: "__(Paste)", dataid: "#{@name}-paste", shortcut: 'C-P' }
|
|
], onchildselect: (e) => console.log "child", e
|
|
}
|
|
|
|
menu: () ->
|
|
menu = [
|
|
@mnFile(),
|
|
@mnEdit(),
|
|
{
|
|
text: "__(View)",
|
|
child: [
|
|
{ text: "__(Refresh)", dataid: "#{@name}-refresh", onmenuselect: (e) -> console.log "select", e },
|
|
{ text: "__(Sidebar)", switch: true, checked: true },
|
|
{ text: "__(Navigation bar)", switch: true, checked: false },
|
|
{ text: "__(Hidden files)", switch: true, checked: true, dataid: "#{@name}-hidden" },
|
|
{ text: "__(Type)", child: [
|
|
{ text: "__(Icon view)", radio: true, checked: true, dataid: "#{@name}-icon", type: 'icon' },
|
|
{ text: "__(List view)", radio:true, checked: false, dataid: "#{@name}-list", type: 'list' },
|
|
{ text: "__(Tree view)", radio:true, checked: false, dataid: "#{@name}-tree", type: 'tree' }
|
|
], onchildselect: (e) -> console.log "child", e
|
|
},
|
|
], onchildselect: (e) => console.log "child", e
|
|
},
|
|
]
|
|
menu
|
|
ShowCase.singleton = true
|
|
this.OS.register "ShowCase", ShowCase |