Bug 343173 Audit calendar code for places to use preference/string helpers, r=shaver

git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@203332 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
jminta%gmail.com
2006-07-21 01:21:07 +00:00
parent d93b985900
commit a15843d077
12 changed files with 118 additions and 161 deletions

View File

@@ -38,6 +38,8 @@
- ***** END LICENSE BLOCK *****
-->
<!-- Note that this file depends on helper functions in calendarUtils.js-->
<bindings id="calendar-specific-view-bindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml"
@@ -56,21 +58,12 @@
<implementation implements="calIDecoratedView">
<constructor><![CDATA[
var pb2 = Components.classes
["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
// get default start/end times from prefs and set on the
// view. if we hit an error (eg because sunbird's pref
// infrastructure hasn't created the pref yet), the
// defaults will do
try {
this.mStartMin = pb2.getIntPref(
"calendar.view.defaultstarthour") * 60;
this.mEndMin = pb2.getIntPref(
"calendar.view.defaultendhour") * 60;
} catch (ex) {
}
// view.
this.mStartMin = getPrefSafe(
"calendar.view.defaultstarthour", 8) * 60;
this.mEndMin = getPrefSafe(
"calendar.view.defaultendhour", 17) * 60;
var viewElement = document.getAnonymousElementByAttribute(
this, "anonid", "view-element");
@@ -80,6 +73,9 @@
viewElement.daysOffArray = [];
// add a preference observer to monitor changes
var pb2 = Components.classes
["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
pb2.addObserver("calendar.view.", this.mPrefObserver, false);
return;
]]></constructor>
@@ -109,7 +105,7 @@
this.calView, "anonid", "view-element");
viewElem.setStartEndMinutes(this.calView.mStartMin,
this.calView.mEndMin);
break;
break;
case "calendar.view.defaultendhour":
this.calView.mEndMin = subj.getIntPref(pref) * 60;
@@ -117,7 +113,7 @@
this.calView, "anonid", "view-element");
viewElem.setStartEndMinutes(this.calView.mStartMin,
this.calView.mEndMin);
break;
break;
case "calendar.timezone.local":
var viewElem = document.getAnonymousElementByAttribute(
this.calView, "anonid", "view-element");
@@ -169,14 +165,10 @@
<method name="setNavLabels">
<parameter name="aDate"/>
<body><![CDATA[
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/dateFormat.properties");
var nameArray = new Array();
for (var i = -2; i < 3; i++) {
var index = ((aDate.weekday + i + 7) % 7) + 1;
nameArray.push(props.GetStringFromName("day."+index+".name"));
nameArray.push(calGetString("dateFormat", "day."+index+".name"));
}
document.getAnonymousElementByAttribute(this, "anonid", "nav-control").setNames(nameArray);
]]></body>

View File

@@ -37,6 +37,8 @@
- ***** END LICENSE BLOCK *****
-->
<!-- Note that this file depends on helper functions in calendarUtils.js-->
<bindings id="calendar-specific-view-bindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -54,19 +56,17 @@
<implementation implements="calIDecoratedView">
<constructor><![CDATA[
var pb2 = Components.classes
["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
// Set the preference for the default start of the week
var viewElem = document.getAnonymousElementByAttribute(
this, "anonid", "view-element");
try {
viewElem.weekStartOffset = pb2.getIntPref("calendar.week.start");
} catch (ex) {}
viewElem.weekStartOffset = getPrefSafe("calendar.week.start", 0);
this.updateDaysOffPrefs();
// add a preference observer to monitor changes
var pb2 = Components.classes
["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
pb2.addObserver("calendar.", this.mPrefObserver, false);
return;
]]></constructor>
@@ -161,54 +161,51 @@
<method name="moveView">
<parameter name="aNumber"/>
<body><![CDATA[
var monthViewElement = document.getAnonymousElementByAttribute(this, "anonid", "view-element");
var monthViewElement = document.getAnonymousElementByAttribute(this, "anonid", "view-element");
var dates = monthViewElement.getDateList({});
monthViewElement.displayDaysOff = !this.mWorkdaysOnly;
// The first few dates in this list are likely in the month
// prior to the one actually being shown (since the month
// probably doesn't start on a Sunday). The 7th item must
// be in correct month though.
var date = dates[6].clone();
// The first few dates in this list are likely in the month
// prior to the one actually being shown (since the month
// probably doesn't start on a Sunday). The 7th item must
// be in correct month though.
var date = dates[6].clone();
date.month += aNumber;
date.normalize();
date.month += aNumber;
date.normalize();
// Need to store this before we move
var oldSelectedDay = this.selectedDay;
this.goToDay(date);
this.goToDay(date);
// Most of the time we want to select the date with the
// same day number in the next month
var newSelectedDay = oldSelectedDay.clone();
newSelectedDay.month += aNumber;
newSelectedDay.normalize();
// Most of the time we want to select the date with the
// same day number in the next month
var newSelectedDay = oldSelectedDay.clone();
newSelectedDay.month += aNumber;
newSelectedDay.normalize();
// correct for accidental rollover into the next month
// correct for accidental rollover into the next month
if ((newSelectedDay.month - aNumber + 12)%12 != oldSelectedDay.month) {
newSelectedDay.month -= 1;
newSelectedDay.day = newSelectedDay.endOfMonth.day;
newSelectedDay.normalize();
}
newSelectedDay.month -= 1;
newSelectedDay.day = newSelectedDay.endOfMonth.day;
newSelectedDay.normalize();
}
monthViewElement.selectedDay = newSelectedDay;
monthViewElement.selectedDay = newSelectedDay;
]]></body>
</method>
<method name="setNavLabels">
<parameter name="aDate"/>
<body><![CDATA[
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/dateFormat.properties");
var nameArray = new Array();
for (var i = -2; i < 3; i++) {
var index = ((aDate.month + i + 12) % 12) + 1;
if (0 == i) {
nameArray.push(props.GetStringFromName("month."+index+".name") + " " + aDate.year);
nameArray.push(calGetString("dateFormat", "month."+index+".name") + " " + aDate.year);
} else {
nameArray.push(props.GetStringFromName("month."+index+".name"));
nameArray.push(calGetString("dateFormat", "month."+index+".name"));
}
}
document.getAnonymousElementByAttribute(this, "anonid", "nav-control").setNames(nameArray);
@@ -223,25 +220,22 @@
<method name="updateDaysOffPrefs">
<body><![CDATA[
try {
var prefService = Components.classes[
"@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
var weekBranch = prefService.getBranch("calendar.week.");
var prefNames = ["d0sundaysoff", "d1mondaysoff", "d2tuesdaysoff",
"d3wednesdaysoff", "d4thursdaysoff",
"d5fridaysoff", "d6saturdaysoff"];
var daysOff = new Array();
for (var i in prefNames) {
if (weekBranch.getBoolPref(prefNames[i])) {
daysOff.push(Number(i));
}
const weekPrefix = "calendar.week.";
const prefNames = ["d0sundaysoff", "d1mondaysoff", "d2tuesdaysoff",
"d3wednesdaysoff", "d4thursdaysoff",
"d5fridaysoff", "d6saturdaysoff"];
const defaults = ["true", "false", "false", "false",
"false", "false", "true"];
var daysOff = new Array();
for (var i in prefNames) {
if (getPrefSafe(weekPrefix+prefNames[i])) {
daysOff.push(Number(i));
}
var viewElem = document.getAnonymousElementByAttribute(
this, "anonid", "view-element");
}
var viewElem = document.getAnonymousElementByAttribute(
this, "anonid", "view-element");
viewElem.daysOffArray = daysOff;
} catch (ex) {}
viewElem.daysOffArray = daysOff;
]]></body>
</method>
</implementation>

View File

@@ -37,6 +37,8 @@
- ***** END LICENSE BLOCK *****
-->
<!-- Note that this file depends on helper functions in calendarUtils.js-->
<bindings id="calendar-specific-view-bindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml"
@@ -55,23 +57,19 @@
<implementation implements="calIDecoratedView">
<constructor><![CDATA[
var pb2 = Components.classes
["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
// Set the preference for the default start of the week
var viewElem = document.getAnonymousElementByAttribute(
this, "anonid", "view-element");
try {
viewElem.weekStartOffset = pb2.getIntPref("calendar.week.start");
} catch (ex) {}
viewElem.weekStartOffset = getPrefSafe("calendar.week.start", 0);
try {
this.mWeeksInView = pb2.getIntPref("calendar.weeks.inview");
} catch (ex) {}
this.mWeeksInView = getPrefSafe("calendar.weeks.inview", 4);
this.updateDaysOffPrefs();
// add a preference observer to monitor changes
var pb2 = Components.classes
["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
pb2.addObserver("calendar.", this.mPrefObserver, false);
return;
]]></constructor>
@@ -176,18 +174,12 @@
aDate = aDate.getInTimezone(viewElement.timezone);
// Set up the preferences we're going to need to read
var prefService = Components.classes[
"@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
var calBranch = prefService.getBranch("calendar.");
// Get the first date that should be shown. This is the
// start of the week of the day that we're centering around
// adjusted for the day the week starts on and the number
// of previous weeks we're supposed to display.
var d1 = aDate.startOfWeek.clone();
d1.day -= 7*calBranch.getIntPref("previousweeks.inview");
d1.day -= 7*getPrefSafe("calendar.previousweeks.inview", 4);
if (aDate.weekday < viewElement.weekStartOffset) {
d1.day -= 7;
}
@@ -196,7 +188,7 @@
// The variable firstWeekDate is a definitely showed date
// in the first week of the view (needed for setNavLabels).
var firstWeekDate = aDate.clone();
firstWeekDate.day -= 7*calBranch.getIntPref("previousweeks.inview");
firstWeekDate.day -= 7*getPrefSafe("calendar.previousweeks.inview");
firstWeekDate.normalize();
// The last day we're supposed to show
@@ -272,24 +264,21 @@
<method name="updateDaysOffPrefs">
<body><![CDATA[
try {
var prefService = Components.classes[
"@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
var weekBranch = prefService.getBranch("calendar.week.");
var prefNames = ["d0sundaysoff", "d1mondaysoff", "d2tuesdaysoff",
"d3wednesdaysoff", "d4thursdaysoff",
"d5fridaysoff", "d6saturdaysoff"];
var daysOff = new Array();
for (var i in prefNames) {
if (weekBranch.getBoolPref(prefNames[i])) {
daysOff.push(Number(i));
}
const weekPrefix = "calendar.week.";
const prefNames = ["d0sundaysoff", "d1mondaysoff", "d2tuesdaysoff",
"d3wednesdaysoff", "d4thursdaysoff",
"d5fridaysoff", "d6saturdaysoff"];
const defaults = ["true", "false", "false", "false",
"false", "false", "true"];
var daysOff = new Array();
for (var i in prefNames) {
if (getPrefSafe(weekPrefix+prefNames[i], defaults[i])) {
daysOff.push(Number(i));
}
var viewElem = document.getAnonymousElementByAttribute(
this, "anonid", "view-element");
viewElem.daysOffArray = daysOff;
} catch (ex) {}
}
var viewElem = document.getAnonymousElementByAttribute(
this, "anonid", "view-element");
viewElem.daysOffArray = daysOff;
]]></body>
</method>
</implementation>

View File

@@ -197,14 +197,11 @@ function getOccurrenceOrParent(occurrence) {
var promptService =
Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/calendar.properties");
var promptTitle = props.GetStringFromName("editRecurTitle");
var promptMessage = props.GetStringFromName("editRecurMessage");
var buttonLabel1 = props.GetStringFromName("editRecurAll");
var buttonLabel2 = props.GetStringFromName("editRecurSingle");
var promptTitle = calGetString("calendar", "editRecurTitle");
var promptMessage = calGetString("calendar", "editRecurMessage");
var buttonLabel1 = calGetString("calendar", "editRecurAll");
var buttonLabel2 = calGetString("calendar", "editRecurSingle");
var flags = promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0 +
promptService.BUTTON_TITLE_CANCEL * promptService.BUTTON_POS_1 +

View File

@@ -40,6 +40,8 @@
- ***** END LICENSE BLOCK *****
-->
<!-- Note that this file depends on helper functions in calendarUtils.js-->
<bindings id="calendar-month-view-bindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml"
@@ -231,10 +233,7 @@
var daylabel = document.getAnonymousElementByAttribute(this, "anonid", "day-label");
if (val) {
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/dateFormat.properties");
var monthName = props.GetStringFromName("month." + (this.mDate.month+1) + ".Mmm");
var monthName = calGetString("dateFormat", "month." + (this.mDate.month+1) + ".Mmm");
daylabel.setAttribute("value", this.mDate.day + " " + monthName);
} else {
daylabel.setAttribute("value", aDate.day);
@@ -263,10 +262,7 @@
if (this.mShowMonthLabel)
{
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/dateFormat.properties");
var monthName = props.GetStringFromName("month." + (aDate.month+1) + ".Mmm");
var monthName = calGetString("dateFormat", "month." + (aDate.month+1) + ".Mmm");
daylabel.setAttribute("value", aDate.day + " " + monthName);
} else {
daylabel.setAttribute("value", aDate.day);
@@ -597,12 +593,9 @@
this.index = parseInt(attrIndex);
}
]]></constructor>
<property name="index">
<getter>return this.mIndex;</getter>
<property name="index">
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
<getter>return this.mIndex;</getter>
<setter><![CDATA[
this.mIndex = val % 7;

View File

@@ -41,6 +41,8 @@
- ***** END LICENSE BLOCK *****
-->
<!-- Note that this file depends on helper functions in calendarUtils.js-->
<bindings id="calendar-multiday-view-bindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml"
@@ -1582,10 +1584,7 @@
this.mResizeHandler = function resizeHandler() { self.onResize(); };
window.addEventListener("resize", this.mResizeHandler, true);
var rButton = document.getAnonymousElementByAttribute(this, "anonid", "rotate-button");
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/calendar.properties");
rButton.label = props.GetStringFromName("rotate");
rButton.label = calGetString("calendar", "rotate");
// set the flex attribute at the scrollbox-innerbox
// (this can be removed, after Bug 343555 is fixed)
@@ -1594,7 +1593,7 @@
document.getAnonymousElementByAttribute(
childbox, "class", "box-inherit scrollbox-innerbox").flex = "1";
this.reorient();
this.reorient();
]]></constructor>
<field name="mLastSize">0</field>
@@ -2460,14 +2459,11 @@
}
var labelbox;
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/dateFormat.properties");
if (counter < labelboxkids.length) {
labelbox = labelboxkids[counter];
labelbox.firstChild.setAttribute("value", (d.month + 1) + "/" + d.day);
labelbox.childNodes[1].setAttribute("value", props.GetStringFromName("day."+ (d.weekday+1)+ ".Mmm"));
labelbox.childNodes[1].setAttribute("value", calGetString("dateFormat", "day."+ (d.weekday+1)+ ".Mmm"));
} else {
labelbox = createXULElement("box");
labelbox.setAttribute("flex", "1");
@@ -2480,7 +2476,7 @@
labeldaybox.appendChild(labelbox);
label = createXULElement("label");
label.setAttribute("value", props.GetStringFromName("day."+ (d.weekday+1)+ ".Mmm"));
label.setAttribute("value", calGetString("dateFormat", "day."+ (d.weekday+1)+ ".Mmm"));
label.setAttribute("class", "calendar-day-label-name");
labelbox.appendChild(label);

View File

@@ -37,6 +37,8 @@
- ***** END LICENSE BLOCK *****
-->
<!-- Note that this file depends on helper functions in calendarUtils.js-->
<bindings id="calendar-core-view-bindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml"
@@ -123,10 +125,7 @@
if (item.title && item.title != "") {
evl.value = item.title;
} else {
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/calendar.properties");
evl.value = props.GetStringFromName("eventUntitled");
evl.value = calGetString("calendar", "eventUntitled")
}
]]></body>
</method>

View File

@@ -49,13 +49,9 @@ var agendaTreeView = {
agendaTreeView.init =
function initAgendaTree()
{
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://lightning/locale/lightning.properties");
this.today = new Synthetic(props.GetStringFromName("agendaToday"), true);
this.tomorrow = new Synthetic(props.GetStringFromName("agendaTomorrow"), false);
this.soon = new Synthetic(props.GetStringFromName("agendaSoon"), false);
this.today = new Synthetic(ltnGetString("lightning", "agendaToday"), true);
this.tomorrow = new Synthetic(ltnGetString("lightning", "agendaTomorrow"), false);
this.soon = new Synthetic(ltnGetString("lightning", "agendaSoon"), false);
this.periods = [this.today, this.tomorrow, this.soon];
}

View File

@@ -167,10 +167,7 @@ var ltnCalendarViewController = {
var event = createEvent();
event.startDate = aStartTime;
event.endDate = aEndTime;
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/calendar.properties");
event.title = props.GetStringFromName("newEvent");
event.title = calGetString("calendar", "newEvent");
setDefaultAlarmValues(event);
doTransaction('add', event, aCalendar, null, null);
} else if (aStartTime && aStartTime.isDate) {
@@ -269,12 +266,7 @@ function getCalendarManager()
makeURL("moz-profile-calendar://"));
activeCalendarManager.registerCalendar(homeCalendar);
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(
Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle(
"chrome://calendar/locale/calendar.properties");
homeCalendar.name = props.GetStringFromName("homeCalendarName");
homeCalendar.name = calGetString("calendar", "homeCalendarName");
var composite = getCompositeCalendar();
composite.addCalendar(homeCalendar);

View File

@@ -55,3 +55,18 @@ function uncollapseElement(element) {
function updateUndoRedoMenu() {
//XXX give Lightning some undo/redo UI!
}
/**
* Gets the value of a string in a .properties file
*
* @param aBundleName the name of the properties file. It is assumed that the
* file lives in chrome://lightning/locale/
* @param aStringName the name of the string within the properties file
*/
function ltnGetString(aBundleName, aStringName)
{
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://lightning/locale/"+aBundleName+".properties");
return props.GetStringFromName(aStringName);
}

View File

@@ -56,10 +56,7 @@ calViewController.prototype.createNewEvent = function (aCalendar, aStartTime, aE
var event = createEvent();
event.startDate = aStartTime;
event.endDate = aEndTime;
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/calendar.properties");
event.title = props.GetStringFromName("newEvent");
event.title = calGetString("calendar", "newEvent");
setDefaultAlarmValues(event);
doTransaction('add', event, aCalendar, null, null);
} else if (aStartTime && aStartTime.isDate) {

View File

@@ -82,12 +82,9 @@ function publishEntireCalendar(cal)
// publishEntireCalendar() will be called again if OK is pressed
// in the dialog and the selected calendar will be passed in.
// Therefore return after openDialog().
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var props = sbs.createBundle("chrome://calendar/locale/calendar.properties");
var args = new Object();
args.onOk = publishEntireCalendar;
args.promptText = props.GetStringFromName("publishPrompt");
args.promptText = calGetString("calendar", "publishPrompt");
openDialog("chrome://calendar/content/chooseCalendarDialog.xul",
"_blank", "chrome,titlebar,modal,resizable", args);
return;