//------------------------------------------------------------------------------ // // ADOBE SYSTEMS INCORPORATED // Copyright 2004 Adobe Systems Incorporated // All Rights Reserved // // NOTICE: Adobe permits you to use, modify, and distribute // this file in accordance with the terms of the Adobe license // agreement accompanying it. If you have received this file // from a source other than Adobe, then your use, modification, // or distribution of it requires the prior written permission // of Adobe. // // $LastChangedRevision: 161 $ //------------------------------------------------------------------------------ $.level = 0; if ( BridgeTalk.appName == "bridge" ) { BC_RSS_DEFAULT_FEEDS = [ 'http://rss.adobe.com/events.rss?locale='+$.locale, 'http://rss.adobe.com/studio.rss?locale='+$.locale, 'http://rss.adobe.com/exchange.rss?locale='+$.locale ]; bridgecenter = {}; // ********** SESSION FUNCS **************** bridgecenter.saveSession = function(sessionname) { var sessions = mydefaults.valueForKey('sessions'); var name = sessions.length; // make sure the name is unique for (var i=0; i 64) { name = prompt("The name you entered was too long, enter a new file group name:\r" + display); } bridgecenter.saveSession(name); // ---------------------------- // close all open files for (var i=0; i 0)?rssfeeds.join(' '):''; return adobe + ' ' + feeds; } bridgecenter.setRSSToggleState = function(state) { // update and save the defaults mydefaults.setValueForKey(state, 'rssstate'); mydefaults.write(); } bridgecenter.getRSSToggleState = function() { return mydefaults.valueForKey('rssstate'); } bridgecenter.setSkipRSSKill = function(url) { // update and save the defaults rsskill.push(url); mydefaults.setValueForKey(rsskill, 'rsskill'); mydefaults.write(); } bridgecenter.getSkipRSSKill = function() { var skip = mydefaults.valueForKey('rsskill'); return skip.join(' '); } // ********** MISC **************** // counts number of files in a directory bridgecenter.getFileCountForDirectory = function(dir) { var f = new Folder(dir); var files = f.getFiles(); return files.length; } // checks that a thumbnail is non-0 btyes bridgecenter.checkForThumbnail = function(path) { var f = new File(path); if (f.length < 0) { return '_media/defaulticon.png'; } else { return "file://"+path; } } bridgecenter.getLocale = function() { return $.locale; } // ********** ERROR FUNC **************** bridgecenter.throwError = function(msg) { bridge.executeScript('Window.alert("'+msg+'")'); } //----------------------------------------------------------------------- // Install Callbacks bridgecenter.urlFilter = function(url) { if (url.search(/stockphoto:.+/) != -1) { url = "startpage:reveal=" + url.match(/stockphoto:.+/); } return url; }; bridgecenter.handler = function(event) { if ( (event.object instanceof Thumbnail) && (event.type == "open") && (event.object.path == "bridge://startpage") ) { event.document.visitUrl = bridgecenter.urlFilter; event.document.jsFuncs = { saveSession: bridgecenter.saveSession, loadSessions: bridgecenter.loadSessions, addRSSFeed: bridgecenter.addRSSFeed, setRefresh: bridgecenter.setRefresh, loadRefresh: bridgecenter.loadRefresh, removeRSSFeed: bridgecenter.removeRSSFeed, loadRSSFeeds: bridgecenter.loadRSSFeeds, openSession: bridgecenter.openSession, getSessionData: bridgecenter.getSessionData, removeSession: bridgecenter.removeSession, getFileCountForDirectory: bridgecenter.getFileCountForDirectory, getRSSToggleState: bridgecenter.getRSSToggleState, setRSSToggleState: bridgecenter.setRSSToggleState, checkForThumbnail: bridgecenter.checkForThumbnail, setSkipRSSKill: bridgecenter.setSkipRSSKill, getSkipRSSKill: bridgecenter.getSkipRSSKill, getLocale: bridgecenter.getLocale }; } return { handled: false }; }; app.eventHandlers.push( { handler: bridgecenter.handler } ); //----------------------------------------------------------------------- // user defaults object // encapulates the preferences system bridgecenter.Defaults = function(){ this.data = false; this.read(); } bridgecenter.Defaults.prototype.read = function() { this.data = eval('('+app.preferences.startpage+')'); if (!this.data) { this.data = new Object(); } var rssfeeds = this.valueForKey('rssfeeds'); if (!rssfeeds.length) { //rssfeeds = rssfeeds.concat(BC_RSS_DEFAULT_FEEDS); // update the rss feeds and save the defaults rssfeeds = new Array(); this.setValueForKey(rssfeeds, 'rssfeeds'); this.write(); } // update refresh in hours var rssrefresh = this.valueForKey('rssrefresh'); if (isNaN(rssrefresh)) { this.setValueForKey(4, 'rssrefresh'); this.write(); } // update state var rssstate = this.valueForKey('rssstate'); if (!rssstate.length) { this.setValueForKey('open', 'rssstate'); this.write(); } // reset the list of sites who have not been asked to be removed rsskill = new Array(); this.setValueForKey(rsskill, 'rsskill'); this.write(); } bridgecenter.Defaults.prototype.setValueForKey = function(value, key) { this.data[key] = value; } bridgecenter.Defaults.prototype.valueForKey = function(key) { if (typeof this.data[key] == 'undefined') this.data[key] = new Array(); return this.data[key]; } bridgecenter.Defaults.prototype.write = function() { app.preferences.startpage = this.data.toSource(); } // create defaults obj mydefaults = new bridgecenter.Defaults(); }