Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№112-02-2009 01:28:11

newon
Участник
 
Группа: Members
Зарегистрирован: 12-02-2009
Сообщений: 2
UA: Chrome 1.0

Расширение под Lightning

Здравствуйте, уважаемые девелоперы!

Намедни, не найдя ни одного нормального расширения для синхронизации Lightning'а с GTD-сервисами, решил написать таковое самостоятельно.
JS, можно сказать, знаю. XUL поковырял - вроде все понятно.
Неясным осталось следующее:

1) Как добавить, например, нужную мне кнопочку на панель Lightning'а? Мой .xul нужно overlay'ить с .xul'ом тандербёрда, или самого лайтнинга? И какой путь писать?

2) область видимости JS-функций Lightning'а - могу ли я запускать их из своего плагина? И есть ли какой-нибудь туториал по компонентам и функциям лайтнинга, или же придется лезть в его внутренности и там копошиться?

3) каким образом, по мнению уважаемых гуру, лучше общаться с сервером? (общение с сервером происходит обычными HTTP-запросами - http://www.toodledo.com/info/api_doc.php?del=12213123)



Буду очень благодарен за подсказки, ибо не совсем понимаю за что вначале браться.
PS: Разрабатывать приложения профессионально не собираюсь - хочу написать для себя небольшой плагин, и всё =)

Отсутствует

 

№212-02-2009 14:34:01

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: Расширение под Lightning

1) Как добавить, например, нужную мне кнопочку на панель Lightning'а? Мой .xul нужно overlay'ить с .xul'ом тандербёрда, или самого лайтнинга? И какой путь писать?

Как обычно для Thunderbird надо оверлеить overlay chrome://messenger/content/messenger.xul#MailToolbarPalette, но у кнопки должен быть атрибут mode со значением 'calendar'.

2) область видимости JS-функций Lightning'а - могу ли я запускать их из своего плагина?

Запускаться будут.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№312-02-2009 22:40:58

newon
Участник
 
Группа: Members
Зарегистрирован: 12-02-2009
Сообщений: 2
UA: Chrome 1.0

Re: Расширение под Lightning

Anton, большое спасибо! =)
Поставить кнопку на тулбар получилось, и с вызовом lightning-функций побаловался. Но, непонятно где Lightning хранит информацию о заданиях. Имхо, выцеплять данные из DOM-объектов по getElementById неправильно - гдето внутри точно скрывается логическая структура с данными (xml?). Вопрос: где может скрываться список заданий в Lightning? И, чтобы я не задавал таких идиотских вопросов - может есть-таки документация по доработке этого чудесного плагина? :)

update:
Порывшись в .js-файлах Lightning'a, нашел observer'ы на события "onCalendarAdded", "onAddItem", что очень удобно для дальнейшей разработки моего расширения.
Цепляю листнер таким образом, но он не работает:

Выделить код

Код:

addEventListener("onCalendarAdded", function (aCalendar) {alert("test"); }, true);

Какая тут может быть загвоздка?


Премного благодарен!

Отредактировано newon (13-02-2009 00:43:59)

Отсутствует

 

№413-02-2009 15:20:07

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: Расширение под Lightning

Цепляю листнер таким образом, но он не работает:

observer и event handler - немного разные вещи.
observer ставится примерно так (на Lightning не проверял, проверял в Sunbird):

Выделить код

Код:

var win = window;
var observer =
{
	win: null,
	QueryInterface: function (aIID)
	{
        	if (!aIID.equals(Components.interfaces.nsISupports) &&
		    !aIID.equals(Components.interfaces.calICompositeObserver))
	        {
        	    throw Components.results.NS_ERROR_NO_INTERFACE;
	        }
        	return this;
	},
	onCalendarAdded: function (aCalendar)
	{
		this. win. alert ("added !");
	},
	onCalendarRemoved: function (aCalendar)
	{
		this. win. alert ("removed !");
	},
	onDefaultCalendarChanged: function (aNewDefaultCalendar)
	{
	},
	init: function (win)
	{
		this. win = win;
	}
};
observer. init (window);
var cicc = getCompositeCalendar();
cicc. addObserver (observer);

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]