List of usage examples for org.w3c.dom.events EventTarget addEventListener
public void addEventListener(String type, EventListener listener, boolean useCapture);
From source file:org.pdfsam.ui.news.NewsStage.java
static void wrapHrefToOpenNative(Document document) { // TODO find a better way NodeList nodeList = document.getElementsByTagName("a"); for (int i = 0; i < nodeList.getLength(); i++) { EventTarget eventTarget = (EventTarget) nodeList.item(i); eventTarget.addEventListener("click", e -> { HTMLAnchorElement anchorElement = (HTMLAnchorElement) e.getCurrentTarget(); eventStudio().broadcast(new OpenUrlRequest(anchorElement.getHref())); e.preventDefault();/*from ww w. java 2 s . c o m*/ }, false); } }
From source file:de._692b8c32.cdlauncher.MainController.java
@Override public void initialize(URL location, ResourceBundle resources) { try {/*from www .j av a 2 s . co m*/ HttpClient client = HttpClients.createDefault(); SyndFeed feed = new SyndFeedInput().build(new BufferedReader(new InputStreamReader(client .execute(new HttpGet( "http://rss.moddb.com/mods/cc-tiberian-sun-project-nemesis/articles/feed/rss.xml")) .getEntity().getContent()))); feed.getAuthor(); StringBuilder builder = new StringBuilder(); builder.append("<style>"); builder.append("* { color: white; background-color: black; }"); builder.append("img { max-height: 50px; float: left; margin-right: 5px; margin-top: 20px; }"); builder.append("p { margin-top: -30px; margin-bottom: 20px; min-height: 70px; }"); builder.append("a { text-decoration: none; }"); builder.append("</style>"); for (SyndEntry entry : feed.getEntries()) { builder.append("<a href='").append(entry.getLink()).append("' target='_blank'><h2>") .append(entry.getTitle()).append("</h2>"); builder.append("<p>").append(entry.getDescription().getValue()).append("</p></a>"); } news.getEngine().documentProperty().addListener((document, oldValue, newValue) -> { NodeList nodeList = newValue.getElementsByTagName("a"); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); EventTarget eventTarget = (EventTarget) node; eventTarget.addEventListener("click", evt -> { application.getHostServices() .showDocument(((HTMLAnchorElement) evt.getCurrentTarget()).getHref()); evt.preventDefault(); }, false); } }); news.getEngine().loadContent(builder.toString()); } catch (IOException | IllegalArgumentException | FeedException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, "Failed to load RSS", ex); } }
From source file:de.betterform.xml.xforms.action.AbstractAction.java
private void addListener(EventTarget targetElement) { addEventToUsedEvents();/*from w w w.ja v a2 s .co m*/ if (this.phase.equals("capture")) { targetElement.addEventListener(this.eventType, this, true); } else { targetElement.addEventListener(this.eventType, this, false); } }
From source file:de.betterform.xml.xforms.Container.java
/** * Adds a DOM Event Listener to the specified target node. * * @param targetId the id of the target node. * @param eventType the event type./* ww w. j a v a 2 s . co m*/ * @param eventListener the Event Listener. * @param useCapture use event capturing or not. * @throws XFormsException if the target node could not be found. * todo: remove this method - unused */ public void addEventListener(String targetId, String eventType, EventListener eventListener, boolean useCapture) throws XFormsException { EventTarget eventTarget = lookupEventTarget(targetId); if (eventTarget != null) { eventTarget.addEventListener(eventType, eventListener, useCapture); return; } throw new XFormsException("Unable to add eventlistener. Event target '" + targetId + "' not found"); }
From source file:de.betterform.xml.xforms.Container.java
/** * Removes a DOM Event Listener from the specified target node. * * @param targetId the id of the target node. * @param eventType the event type./*from www.ja v a 2s. c o m*/ * @param eventListener the Event Listener. * @param useCapture use event capturing or not. * @throws XFormsException if the target node could not be found. * todo: remove this method - unused */ public void removeEventListener(String targetId, String eventType, EventListener eventListener, boolean useCapture) throws XFormsException { EventTarget eventTarget = lookupEventTarget(targetId); if (eventTarget != null) { eventTarget.addEventListener(eventType, eventListener, useCapture); return; } throw new XFormsException("Unable to remove eventlistener. Event target '" + targetId + "' not found"); }
From source file:com.idega.block.form.presentation.FormViewer.java
protected void initializeXForms(IWContext iwc) { addResources(iwc);/*from www. j a v a 2 s . c om*/ Document document = resolveXFormsDocument(iwc); if (document == null) return; HttpServletRequest request = iwc.getRequest(); HttpServletResponse response = iwc.getResponse(); HttpSession session = iwc.getSession(); XFormsSessionManager sessionManager = null; XFormsSession xformsSession = null; try { sessionManager = getXFormsSessionManager(session); // get IdegaXFormsSessionBase instance xformsSession = sessionManager.createXFormsSession(request, response, session); } catch (XFormsConfigException e) { LOGGER.log(Level.WARNING, "Error creating XFormsSession", e); } catch (Exception e) { LOGGER.log(Level.WARNING, "Error creating XFormsSession", e); CoreUtil.sendExceptionNotification(e); } Throwable exception = null; WebAdapter adapter = xformsSession.getAdapter(); try { setupAdapter(adapter, document, xformsSession, iwc); adapter.init(); EventTarget eventTarget = (EventTarget) ((Document) adapter.getXForms()).getDocumentElement(); final WebAdapter eventAdapter = adapter; EventListener eventListener = new EventListener() { @Override public void handleEvent(Event event) { String id = CoreConstants.EMPTY; if (event.getTarget() instanceof Element) { id = ((Element) event.getTarget()).getAttribute("id"); } if (XFormsEventNames.SUBMIT_DONE.equals(event.getType())) { ELUtil.getInstance().publishEvent(new SubmissionEvent(eventAdapter, event)); } LOGGER.info("Got event, type=" + event.getType() + ", id=" + id); } }; eventTarget.addEventListener(XFormsEventNames.SUBMIT_DONE, eventListener, true); eventTarget.addEventListener(XFormsEventNames.SUBMIT_ERROR, eventListener, true); XMLEvent exitEvent = adapter.checkForExitEvent(); if (exitEvent != null) { handleExit(exitEvent, xformsSession, session, request, response); } else { // actually add the XFormsSession at the manager sessionManager.addXFormsSession(xformsSession); setSessionKey(xformsSession.getKey()); } } catch (IOException e) { exception = e; LOGGER.log(Level.WARNING, "handleExit failed", e); } catch (XFormsException e) { exception = e; LOGGER.log(Level.WARNING, "Could not set XML container", e); shutdown(adapter, session, xformsSession.getKey()); } catch (IdegaChibaException e) { exception = e; LOGGER.log(Level.WARNING, "Chiba exception", e); } finally { if (exception != null) { String messageToClient = exception instanceof IdegaChibaException ? ((IdegaChibaException) exception).getMessageToClient() : null; if (StringUtil.isEmpty(messageToClient)) { IWResourceBundle iwrb = getIWResourceBundle(iwc, com.idega.block.form.IWBundleStarter.BUNDLE_IDENTIFIER); messageToClient = iwrb.getLocalizedString("chiba_error_rendering_form", "We are very sorry, an error occurred... We are working on it. Please, try later."); } getChildren().add(new Heading1(messageToClient)); shutdown(adapter, session, xformsSession.getKey()); String identifier = getFormId(iwc); identifier = StringUtil.isEmpty(identifier) ? getSubmissionId(iwc) : identifier; CoreUtil.sendExceptionNotification("Error opening XForm: " + identifier, exception); } } }
From source file:org.alfresco.web.forms.xforms.XFormsBean.java
/** @param xformsSession the current session */ public void setXFormsSession(final XFormsSession xformsSession) throws FormBuilderException, XFormsException { this.xformsSession = xformsSession; final FacesContext facesContext = FacesContext.getCurrentInstance(); final ExternalContext externalContext = facesContext.getExternalContext(); final HttpServletRequest request = (HttpServletRequest) externalContext.getRequest(); final ServletContext servletContext = (ServletContext) externalContext.getContext(); writeLock.lock();/*from w w w. j ava 2 s. c o m*/ try { final ChibaBean chibaBean = new ChibaBean(); chibaBean.setConfig(servletContext.getRealPath("/WEB-INF/chiba.xml")); Pair<Document, XSModel> chibaPair = this.getXFormsDocument(); chibaBean.setXMLContainer(chibaPair.getFirst(), chibaPair.getSecond()); final EventTarget et = (EventTarget) chibaBean.getXMLContainer().getDocumentElement(); final EventListener el = new EventListener() { public void handleEvent(final Event e) { final XMLEvent xmle = (XMLEvent) e; if (XFormsBean.LOGGER.isDebugEnabled()) XFormsBean.LOGGER.debug("received event " + xmle.getType() + ": " + xmle); XFormsBean.this.xformsSession.eventLog.add(xmle); } }; // interaction events my occur during init so we have to register before et.addEventListener(ChibaEventNames.LOAD_URI, el, true); et.addEventListener(ChibaEventNames.RENDER_MESSAGE, el, true); et.addEventListener(ChibaEventNames.REPLACE_ALL, el, true); et.addEventListener(XFormsEventNames.ENABLED, el, true); et.addEventListener(XFormsEventNames.DISABLED, el, true); et.addEventListener(XFormsEventNames.REQUIRED, el, true); et.addEventListener(XFormsEventNames.OPTIONAL, el, true); et.addEventListener(XFormsEventNames.READONLY, el, true); et.addEventListener(XFormsEventNames.READWRITE, el, true); et.addEventListener(XFormsEventNames.VALID, el, true); et.addEventListener(XFormsEventNames.INVALID, el, true); et.addEventListener(XFormsEventNames.IN_RANGE, el, true); et.addEventListener(XFormsEventNames.OUT_OF_RANGE, el, true); et.addEventListener(XFormsEventNames.SELECT, el, true); et.addEventListener(XFormsEventNames.DESELECT, el, true); et.addEventListener(XFormsEventNames.INSERT, el, true); et.addEventListener(XFormsEventNames.DELETE, el, true); chibaBean.init(); // register for notification events et.addEventListener(XFormsEventNames.SUBMIT, el, true); et.addEventListener(XFormsEventNames.SUBMIT_DONE, el, true); et.addEventListener(XFormsEventNames.SUBMIT_ERROR, el, true); et.addEventListener(ChibaEventNames.STATE_CHANGED, el, true); et.addEventListener(ChibaEventNames.PROTOTYPE_CLONED, el, true); et.addEventListener(ChibaEventNames.ID_GENERATED, el, true); et.addEventListener(ChibaEventNames.ITEM_INSERTED, el, true); et.addEventListener(ChibaEventNames.ITEM_DELETED, el, true); et.addEventListener(ChibaEventNames.INDEX_CHANGED, el, true); et.addEventListener(ChibaEventNames.SWITCH_TOGGLED, el, true); this.xformsSession.chibaBean = chibaBean; } finally { writeLock.unlock(); } }
From source file:org.chiba.xml.xforms.ChibaBeanTest.java
/** * test, if updateControlValue correctly changes the value and a value-changed event occurs on the relevant * control.//from ww w . j ava 2 s.c om * * @throws Exception */ public void testUpdateControlValue1() throws Exception { processor.setXMLContainer(getClass().getResourceAsStream("actions.xhtml")); processor.init(); TestEventListener listener = new TestEventListener(); JXPathContext context = JXPathContext.newContext(this.processor.getXMLContainer()); Node node = (Node) context.getPointer("//*[@id='hello-input']").getNode(); EventTarget eventTarget = (EventTarget) node; eventTarget.addEventListener(XFormsEventNames.VALUE_CHANGED, listener, false); processor.updateControlValue("hello-input", "Hello new World"); assertTrue(listener.getType().equals(XFormsEventNames.VALUE_CHANGED)); assertTrue(listener.getId().equals("hello-input")); //test the side effect of dispatching the DOMActivate to a setvalue trigger -> the instance has a new value Document instance = processor.getContainer().getDefaultModel().getDefaultInstance().getInstanceDocument(); JXPathContext context1 = JXPathContext.newContext(instance); assertTrue(context1.getValue("//helloworld").equals("Hello new World")); }
From source file:org.chiba.xml.xforms.ChibaBeanTest.java
/** * test if updateControlValue suppresses update for unchanged value. * * @throws Exception/*from w w w . ja v a2 s .c om*/ */ public void testUpdateControlValue2() throws Exception { processor.setXMLContainer(getClass().getResourceAsStream("actions.xhtml")); processor.init(); TestEventListener listener = new TestEventListener(); JXPathContext context = JXPathContext.newContext(this.processor.getXMLContainer()); Node node = (Node) context.getPointer("//*[@id='hello-input']").getNode(); EventTarget eventTarget = (EventTarget) node; eventTarget.addEventListener(XFormsEventNames.VALUE_CHANGED, listener, false); processor.updateControlValue("hello-input", "Hello World"); //value mustn't change cause value of node is 'Hello World' initially - test the case that setValue isn't called assertNull(listener.getType()); assertNull(listener.getId()); }
From source file:org.chiba.xml.xforms.Container.java
/** * adds a DOM EventListener to a target Node. * * @param targetId the target Node for this Event * @param eventType the type of Event * @param eventListener the EventListener * @param useCapture true, if capture should be used for this Eventtype * @throws XFormsException throws XFormsException if target Node cannot be found *//* w w w. jav a 2s . c o m*/ public void addEventListener(String targetId, String eventType, EventListener eventListener, boolean useCapture) throws XFormsException { if (this.rootContext != null) { Pointer pointer = this.rootContext.getPointer("//*[@id='" + targetId + "']"); if (pointer != null) { EventTarget eventTarget = (EventTarget) pointer.getNode(); eventTarget.addEventListener(eventType, eventListener, useCapture); return; } } throw new XFormsException("event target '" + targetId + "' not found"); }