3 * Copyright(c) 2006-2011 Sencha Inc.
5 * http://www.sencha.com/license
8 Ext.define('MyDesktop.Settings', {
9 extend: 'Ext.window.Window',
14 'Ext.form.field.Checkbox',
15 'Ext.layout.container.Anchor',
16 'Ext.layout.container.Border',
18 'Ext.ux.desktop.Wallpaper',
20 'MyDesktop.WallpaperModel'
24 title: 'Change Settings',
30 initComponent: function () {
33 me.selected = me.desktop.getWallpaper();
34 me.stretch = me.desktop.wallpaper.stretch;
36 me.preview = Ext.create('widget.wallpaper');
37 me.preview.setWallpaper(me.selected);
38 me.tree = me.createTree();
41 { text: 'OK', handler: me.onOK, scope: me },
42 { text: 'Cancel', handler: me.close, scope: me }
63 boxLabel: 'Stretch to fit',
66 change: function (comp) {
67 me.stretch = comp.checked;
76 createTree : function() {
79 function child (img) {
80 return { img: img, text: me.getTextOfWallpaper(img), iconCls: '', leaf: true };
83 var tree = new Ext.tree.Panel({
84 title: 'Desktop Background',
93 afterrender: { fn: this.setInitialSelection, delay: 100 },
94 select: this.onSelect,
97 store: new Ext.data.TreeStore({
98 model: 'MyDesktop.WallpaperModel',
103 { text: "None", iconCls: '', leaf: true },
104 child('Blue-Sencha.jpg'),
105 child('Dark-Sencha.jpg'),
106 child('Wood-Sencha.jpg'),
109 child('desktop.jpg'),
110 child('desktop2.jpg'),
120 getTextOfWallpaper: function (path) {
121 var text = path, slash = path.lastIndexOf('/');
123 text = text.substring(slash+1);
125 var dot = text.lastIndexOf('.');
126 text = Ext.String.capitalize(text.substring(0, dot));
127 text = text.replace(/[-]/g, ' ');
134 me.desktop.setWallpaper(me.selected, me.stretch);
139 onSelect: function (tree, record) {
142 if (record.data.img) {
143 me.selected = 'wallpapers/' + record.data.img;
145 me.selected = Ext.BLANK_IMAGE_URL;
148 me.preview.setWallpaper(me.selected);
151 setInitialSelection: function () {
152 var s = this.desktop.getWallpaper();
154 var path = '/Wallpaper/' + this.getTextOfWallpaper(s);
155 this.tree.selectPath(path, 'text');