Имам диалогов прозорец в моя аддон, който се отваря, когато завърши някакъв процес на изтриване. Използвам за всички подобни съобщения XUL диалогов прозорец, който изглежда така:
<?xml version="1.0"?>
<?xml-stylesheet href="/bgchrome://myaddon/skin/Style.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://myaddon/locale/mydtd.dtd">
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
class="dialog" ondialogcancel="return true;">
<dialogheader id="dlgHdr"/>
<vbox flex="1" id="content" pack="center">
</vbox>
<script
type="application/x-javascript"
src="chrome://myaddon/content/mainScript.js"
/>
<script
type="application/x-javascript"
src="chrome://myaddon/content/dialogInit.js"
/>
<tfs_string id="new-profile-success" value="&newProfileSuccess.Text;"
style="overflow: hidden" />
<tfs_string id="delete-profile-success" value="&deleteProfileSuccess.Text;"
style="overflow: hidden" />
</dialog>
Има бутон за отказ, манипулаторът на ondialogcancel връща true. Но не се затваря веднага след натискане на бутона. Трябва да плъзна малко този диалогов прозорец, за да изчезне. Освен това този проблем се случва само когато рестартирам браузъра след преинсталиране на добавката. След още едно рестартиране диалоговият прозорец се затваря веднага след като натисна Отказ. Използвам този диалог за някои други съобщения и те нямат такъв проблем.
Ако затворя прозореца и го отворя отново с програмата за отстраняване на грешки на Chromebug, вместо да рестартирам с изскачащ прозорец, не мога да възпроизведа тази грешка. Но ако стартирам друга FF версия и след това първата версия отново (с дебъгер), успявам да я възпроизведа. Но когато използвам изпълнение стъпка по стъпка на манипулатора на dialogcancel, интерфейсът на Chromebug престава да реагира (с изключение на областта със съдържанието на скрипта) и диалоговият прозорец не се затваря, след като видя в програмата за отстраняване на грешки, че се изпълнява window.close(), така че трябва да плъзгам диалоговия прозорец прозорец отново наоколо, за да изчезне. Какво трябва да направя?
Нов съм в java. Когато преминавах през езиковата спецификация, открих, че статичните класове не могат да бъдат декларирани, но можем да имаме статични вътрешни класове. Малко съм объркан защо не можем да имаме статичен клас от най-високо ниво. Ако искам да създам клас, съдържащ само помощни методи, мога да избера статичен клас. Някаква причина защо разработчиците на Java са ограничили тази функция?
- person Wladimir Palant   schedule 28.06.2012