Открыт новый документ в xpinc. Как закрыть окно или перенаправить на родительский документ?
Я работаю над формой в большом классическом приложении для заметок и пытаюсь найти способ закончить взаимодействие с формой, которая представляет хороший интерфейс. Вот мой сценарий:
1) Родительский документ (классические заметки) открывается из представления. 2) Кнопка на родительском документе открывает дочерний документ в XPiNC с использованием ссылки notes:///. 3) Кнопка отмены на дочернем документе XPage......
Я попробовал следующие подходы:
a) Используйте window.close() Я много гуглил по этому, и разные подходы мне не подходят. window.close() должен работать, если вы вызываете его из окна, которое было открыто с помощью window.open, поэтому я попытался window.open("closeMe.xsp", "_self"), чтобы увидеть, даст ли это окно это может быть закрыто xpage с помощью window.close() в событии на стороне клиента onClientLoad. Не повезло там. Следующие вопросы дают предложения, но не дают решения (кроме стороннего продукта)
Как мне закрыть окно в Xpage? Как закрыть xpages в клиенте заметок? Я использую CSJS window.close, но он не работает
б) Перенаправление на родительский документ. Моей следующей идеей было перенаправление на родительский документ - он уже открыт в клиенте Notes. Тем не менее, я обнаружил, что когда я перенаправляю (используя FaceContext.getExternalContext(). Redirect("Notes:///url"), он действительно переходит к родительскому документу, но оставляет пустое окно открытым на вкладке, где был XPage.,
Моя следующая попытка заключалась в том, чтобы закрыть родительский элемент в исходном вызове LotusScript, а затем перенаправить его на родительский элемент с помощью кнопки отмены. Это тоже работает - вы попадаете в родительский документ, но затем, если вы нажимаете клавишу выхода или закрываете вкладку с родительским документом, он снова оставляет пустое окно.
Есть идеи? Мне нравится идея возможности вернуться к недавно открытому родительскому документу, потому что я мог ожидать обновления встроенного представления с моим новым дочерним документом, но в данный момент я возьму все, что работает.:)
Ура,
Brendan
2 ответа
Вы застряли между камнем и наковальней. XPiNC и классические ноты не так легко смешать. Но есть надежда. Перейдите на вики по составным приложениям. Там вы обнаружите, что вы можете открыть композит вместо документа, который позволяет вам иметь вкладки и прочее внутри композита.
Это также способ, которым классическое приложение и XPages (публикация / подписка с использованием брокера свойств) могут обмениваться данными. Убедитесь, что вы читаете комментарии тоже. Карстен имеет хорошие дальнейшие ссылки.
У меня нет рабочего примера того, что вы точно хотите сделать, но Composite кажется лучшей ставкой, которую вы имеете.
Я нашел частичное решение, Java твой друг. Это работает в кнопке должно работать в ссылке тоже. Единственная проблема заключается в том, что при вызове из события, такого как onClose, текущая xpage теряет фокус, а текущие страницы остаются открытыми. Я попытался эмулировать ключи отправки, и он нажимает клавишу ESC. Он отлично работает от кнопки в. Кнопка на событие CLick
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var robot:java.awt.Robot= new java.awt.Robot;var event:java.awt.event.KeyEvent=java.awt.event.KeyEvent;
robot.keyPress (event.VK_ESCAPE); robot.keyRelease (event.VK_ESCAPE);enter code here
}]]>
</xp:eventHandler>
</xp:button>