1 | var mcTreeSharedFolder = { |
---|
2 | |
---|
3 | get SIDEBAR() { return window.top.document.getElementById("sidebar"); }, |
---|
4 | get BUTTON() { return document.getElementById("mcToolbarSharedFolderButton"); }, |
---|
5 | |
---|
6 | get DataSource() { return window.top.bitsObjectMng.DataSource; }, |
---|
7 | get Common() { return window.top.bitsObjectMng.Common; }, |
---|
8 | get Database() { return window.top.bitsObjectMng.Database; }, |
---|
9 | |
---|
10 | get isChecked() { |
---|
11 | var checked = this.BUTTON.getAttribute("checked"); |
---|
12 | if(!checked || checked == "false"){ |
---|
13 | checked = false; |
---|
14 | }else{ |
---|
15 | checked = true; |
---|
16 | } |
---|
17 | return checked; |
---|
18 | }, |
---|
19 | |
---|
20 | get Mode(){ |
---|
21 | return this.Database._sharedMode; |
---|
22 | }, |
---|
23 | |
---|
24 | init : function(){ |
---|
25 | var view = this.Common.getBoolPref("markingcollection.sharedfolder.view", false); |
---|
26 | this.BUTTON.setAttribute("checked",view); |
---|
27 | |
---|
28 | if(view){ |
---|
29 | var aMode = mcTreeSharedFolder.Mode; |
---|
30 | mcTreeSharedFolder.Database.init(aMode); |
---|
31 | mcTreeSharedFolder.initMarkerFolder(aMode); |
---|
32 | } |
---|
33 | }, |
---|
34 | |
---|
35 | done : function(){ |
---|
36 | }, |
---|
37 | |
---|
38 | getNsILocalFile : function(aPath){ |
---|
39 | var aFile = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile); |
---|
40 | if(aFile) aFile.initWithPath(aPath); |
---|
41 | return aFile; |
---|
42 | }, |
---|
43 | |
---|
44 | commandDispSharedFolder : function(aEvent){ |
---|
45 | var checked = this.isChecked; |
---|
46 | if(!checked){ |
---|
47 | checked = true; |
---|
48 | }else{ |
---|
49 | checked = false; |
---|
50 | } |
---|
51 | var aMode = mcTreeSharedFolder.Mode; |
---|
52 | if(!checked){ |
---|
53 | this.BUTTON.setAttribute("checked",checked); |
---|
54 | this.Common.PREF.setBoolPref("markingcollection.sharedfolder.view",checked); |
---|
55 | mcTreeSharedFolder.Database.done(aMode); |
---|
56 | mcTreeViewModeService.rebuild(); |
---|
57 | }else{ |
---|
58 | var path = nsPreferences.copyUnicharPref("markingcollection.dbpath."+aMode, ""); |
---|
59 | if(path == "") checked = this.commandGetSharedFolderPath(aEvent); |
---|
60 | if(checked){ |
---|
61 | this.BUTTON.setAttribute("checked",checked); |
---|
62 | this.Common.PREF.setBoolPref("markingcollection.sharedfolder.view",checked); |
---|
63 | mcTreeSharedFolder.Database.done(aMode); |
---|
64 | mcTreeSharedFolder.Database.init(aMode); |
---|
65 | mcTreeSharedFolder.initMarkerFolder(aMode); |
---|
66 | mcTreeViewModeService.rebuild(); |
---|
67 | } |
---|
68 | } |
---|
69 | aEvent.stopPropagation(); |
---|
70 | }, |
---|
71 | |
---|
72 | commandChangedSharedFolder : function(aEvent){ |
---|
73 | var checked = this.commandGetSharedFolderPath(aEvent); |
---|
74 | if(checked){ |
---|
75 | var aMode = mcTreeSharedFolder.Mode; |
---|
76 | mcTreeSharedFolder.Database.done(aMode); |
---|
77 | mcTreeSharedFolder.Database.init(aMode); |
---|
78 | mcTreeSharedFolder.initMarkerFolder(aMode); |
---|
79 | mcTreeViewModeService.rebuild(); |
---|
80 | } |
---|
81 | aEvent.stopPropagation(); |
---|
82 | }, |
---|
83 | |
---|
84 | commandGetSharedFolderPath : function(aEvent){ |
---|
85 | var picker = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker); |
---|
86 | var result = false; |
---|
87 | try{ |
---|
88 | var picker_title = mcMainService.STRING.getString("SELECTED_SHARED_FOLDER"); |
---|
89 | picker.init(window, picker_title, picker.modeGetFolder); |
---|
90 | var showResult = picker.show(); |
---|
91 | if(showResult == picker.returnOK){ |
---|
92 | var aMode = mcTreeSharedFolder.Mode; |
---|
93 | mcTreeSharedFolder.Database.done(aMode); |
---|
94 | nsPreferences.setUnicharPref("markingcollection.dbpath."+aMode, picker.file.path); |
---|
95 | result = true; |
---|
96 | } |
---|
97 | }catch(e){ |
---|
98 | result = false; |
---|
99 | this.Common.alert(e); |
---|
100 | } |
---|
101 | return result; |
---|
102 | }, |
---|
103 | |
---|
104 | createMarkerFolder : function(aMode,pTitle,pTarResName,pStyle,pIndex,pPID,pOrder){ |
---|
105 | try{ |
---|
106 | if(!pPID) pPID = 0; |
---|
107 | var newID = this.DataSource.identify(this.Common.getTimeStamp()); |
---|
108 | var newFolder = this.Database.newFolder(newID,aMode); |
---|
109 | newFolder.fid_title = pTitle; |
---|
110 | newFolder.fid_style = pStyle; |
---|
111 | newFolder.pfid = ""+pPID; |
---|
112 | if(pOrder) newFolder.pfid_order = ""+pOrder; |
---|
113 | if(!pPID) newFolder.fid_mode = ""+0x0002; |
---|
114 | if(!this.Database.addFolder(newFolder,aMode)) return null; |
---|
115 | return newFolder.fid; |
---|
116 | }catch(e){ |
---|
117 | _dump("bitsContextMenu.createMarkerFolder():"+e); |
---|
118 | return null; |
---|
119 | } |
---|
120 | }, |
---|
121 | |
---|
122 | initMarkerFolder : function(aMode){ |
---|
123 | if(this.Database._fidCount(aMode) == 0){ |
---|
124 | var folder_title = mcMainService.STRING.getString("MARKER_FOLDER"); |
---|
125 | var pfid = this.createMarkerFolder(aMode,folder_title,undefined,undefined,undefined,undefined,1); |
---|
126 | var i; |
---|
127 | for(i=8;i>0;i--){ |
---|
128 | var idx = i; |
---|
129 | var title = folder_title + idx; |
---|
130 | var cssText = nsPreferences.copyUnicharPref("markingcollection.marker.style." + idx, bitsMarker.PRESET_STYLES[idx]); |
---|
131 | this.createMarkerFolder(aMode,title,undefined,cssText,idx,pfid,idx); |
---|
132 | } |
---|
133 | } |
---|
134 | }, |
---|
135 | |
---|
136 | }; |
---|