source: DASISH/t5.6/client/branches/webannotator-basic/chrome/markingcollection/content/markingcollection/sharedfolder.js @ 5428

Last change on this file since 5428 was 5428, checked in by stephanie.roth@snd.gu.se, 10 years ago

Added new branch for work on schema change related client fixes.

File size: 4.2 KB
Line 
1var 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};
Note: See TracBrowser for help on using the repository browser.