Правильное удаление панели инструментов разработки в Seaside

Я использую Seaside 3.0.7 на Pharo 1.3 и Pharo 1.4. Чтобы отключить панель инструментов разработки в нижней части моих приложений Seaside, я выполнил as в Приморской книге говорится:

WAAdmin applicationDefaults
    removeParent: WADevelopmentConfiguration instance

Что делает то, что он говорит, НО только около половины зарегистрированных приложений замечают, что их родитель исчез.

Другая половина по-прежнему показывает панель инструментов, а веб-сайт конфигурации для этих приложений по-прежнему показывает:

Классы корневого оформления: WAToolDecoration [унаследовано]

и только после того, как я один раз нажму «Настроить» (классы корневого оформления), на следующем экране появится

Доступно: WAToolDecoration, Текущее: (пусто)

и поэтому я ничего не нажимаю, кроме ОК, и панель инструментов наконец исчезла.

Кто-нибудь может мне с этим помочь?

Обновление:

Как намекнул Пол Дебруикер в списке рассылки, это может быть ошибка, связанная с кешем, представленным в Seaside 3.0.4. Я открыл проблему в системе отслеживания ошибок.


person Helene Bilbo    schedule 25.10.2012    source источник


Ответы (1)


В настоящее время существует какая-то проблема с кэшированием. Пол ДеБруикер предложил обходной путь:

Если вам не нужен доступ к другим приложениям, вы можете запустить это:

Обработчики WADispatcher по умолчанию делают: [ :each | WADispatcher по умолчанию отменяет регистрацию: каждый ].

который удаляет все приложения, установленные в образе, а затем вы можете повторно инициализировать свои собственные приложения, чтобы у вас были только те приложения, которые вы хотите исправить.

Было бы неплохо узнать, как удалить панель инструментов, не отменяя регистрацию всего, но это может помочь в краткосрочной перспективе.

После этого вы можете инициализировать нужные вам приложения.

person Stephan Eggermont    schedule 03.11.2012
comment
Я надеюсь, что кто-то скоро исправит проблему с кешем :) А также с предложенным обходным решением происходят странные вещи. Если я печатаю обработчики WADispatcher по умолчанию: [ :each | WADispatcher по умолчанию отменяет регистрацию: каждый ]. я получаю следующее: Dictionary('examples'->a WADispatcher 'javascript'->a WADispatcher 'tools'->a WADispatcher)!! Только после того, как я выполню его во второй раз, я получу: Dictionary(). Что здесь происходит? - person Helene Bilbo; 07.11.2012
comment
Хорошо, правильное решение выглядит следующим образом: (из той же ветки списка рассылки) Буквально вчера я исправил это, чтобы накапливать удаляемые записи, а затем удалять их после обхода. Наконец-то я понял, что удаление записей при обходе #withDescendantsDo: приведет к тому, что некоторые записи будут пропущены. - person Helene Bilbo; 07.11.2012