Example usage for org.w3c.dom Element setTextContent

List of usage examples for org.w3c.dom Element setTextContent

Introduction

In this page you can find the example usage for org.w3c.dom Element setTextContent.

Prototype

public void setTextContent(String textContent) throws DOMException;

Source Link

Document

This attribute returns the text content of this node and its descendants.

Usage

From source file:fr.inria.atlanmod.collaboro.ui.views.NotationView.java

/**
 * Builds the SVG for the corresponding notationElement and particularizes the 
 * representation with the model element instance.
 * /*  w ww .j  a va2 s  .  co  m*/
 * @param eObject
 * @param notationElement
 * @param doc
 * @param x
 * @param y
 * @return
 */
public Box buildSVG(EObject eObject, NotationElement notationElement, SVGDocument doc, int x, int y) {
    Element svgRoot = doc.getDocumentElement();
    Box result = new Box(0, 0, x, y);

    if (notationElement instanceof Composite) {
        Composite composite = (Composite) notationElement;
        result.setX(x);
        int oldX = x;
        for (NotationElement subElement : composite.getSubElements()) {
            if (subElement instanceof Composite) {
                x = oldX + TAB;
                y = y + VERTICAL_SEP;
            }

            Box subBox = buildSVG(eObject, subElement, doc, x, y);

            if ((subElement instanceof Composite)) { // || (subElement instanceof SyntaxOf)) {
                x = oldX;
                y = y + subBox.getHeight() - VERTICAL_SEP;
                if (result.getWidth() < subBox.getWidth())
                    result.setWidth(subBox.getWidth());
                result.setHeight(result.getHeight() + subBox.getHeight());
            } else {
                x = x + subBox.getWidth();
                result.setWidth(result.getWidth() + subBox.getWidth());
                if (result.getHeight() < subBox.getHeight())
                    result.setHeight(subBox.getHeight());
            }
        }
    } else if (notationElement instanceof TextualElement) {
        TextualElement textualElement = (TextualElement) notationElement;

        Element text = doc.createElementNS(SVGDOMImplementation.SVG_NAMESPACE_URI, "text");
        text.setAttributeNS(null, "x", String.valueOf(x));
        text.setAttributeNS(null, "y", String.valueOf(y));
        text.setAttributeNS(null, "font-size", DEFAULT_FONT_SIZE);
        text.setAttributeNS(null, "font-family", DEFAULT_FONT_FAMILY);

        String value = "";

        if (textualElement instanceof Keyword) {
            Keyword keyword = (Keyword) notationElement;
            text.setAttributeNS(null, "font-weight", "bold");
            text.setAttributeNS(null, "fill", keyword.getFill().getLiteral());
            text.setAttributeNS(null, "stroke", "none");
            value = keyword.getId();
        } else if (textualElement instanceof Token) {
            Token token = (Token) notationElement;
            text.setAttributeNS(null, "fill", token.getFill().getLiteral());
            text.setAttributeNS(null, "stroke", "none");
            value = token.getId();
        } else if (textualElement instanceof AttributeValue) {
            AttributeValue attributeValue = (AttributeValue) notationElement;
            text.setAttributeNS(null, "fill", attributeValue.getFill().getLiteral());

            EAttribute eAttribute = attributeValue.getAttribute();

            value = convert(eObject.eGet(eObject.eClass().getEStructuralFeature(eAttribute.getName())));
        } else if (textualElement instanceof ReferenceValue) {
            ReferenceValue referenceValue = (ReferenceValue) notationElement;
            text.setAttributeNS(null, "fill", referenceValue.getFill().getLiteral());

            EReference eReference = referenceValue.getReference();
            EAttribute eAttribute = referenceValue.getAttribute();
            String separator = referenceValue.getSeparator();

            Object referredObjs = eObject.eGet(eObject.eClass().getEStructuralFeature(eReference.getName()));
            if (referredObjs instanceof EList) {
                EList<EObject> eReferenceList = (EList<EObject>) referredObjs;
                for (EObject elementList : eReferenceList) {
                    Object attributeValue = elementList
                            .eGet(elementList.eClass().getEStructuralFeature(eAttribute.getName()));
                    value += convert(attributeValue);
                    if (eReferenceList.indexOf(elementList) != eReferenceList.size() - 1) {
                        value += separator;
                    }
                }
            } else if (referredObjs instanceof EObject) {
                EObject elementList = (EObject) referredObjs;
                Object attributeValue = elementList
                        .eGet(elementList.eClass().getEStructuralFeature(eAttribute.getName()));
                value += convert(attributeValue);
            }
        }

        if (value.length() > 0) {
            result.setWidth(value.length() * CHAR_SEP + CHAR_SEP);
            result.setHeight(VERTICAL_SEP);
            text.setTextContent(value);
            svgRoot.appendChild(text);
        }
    } else if (notationElement instanceof SyntaxOf) {
        SyntaxOf syntaxOf = (SyntaxOf) notationElement;

        EReference eReference = syntaxOf.getReference();

        Object referredObjs = eObject.eGet(eObject.eClass().getEStructuralFeature(eReference.getName()));
        if (referredObjs instanceof EList) {
            EList<EObject> eReferenceList = (EList<EObject>) referredObjs;
            if (eReferenceList.size() > 0) {
                for (EObject elementList : eReferenceList) {
                    NotationElement subNotationElement = Controller.INSTANCE.getNotation(elementList.eClass());
                    if (subNotationElement != null) {
                        Box subBox = buildSVG(elementList, subNotationElement, doc, x, y);
                        y = y + subBox.getHeight();

                        if (result.getWidth() < subBox.getWidth())
                            result.setWidth(subBox.getWidth());
                        result.setHeight(result.getHeight() + subBox.getHeight());
                    }
                }
            }
        }
    }
    return result;
}

From source file:com.bluexml.xforms.controller.alfresco.AlfrescoController.java

/**
 * Sets initial values for workflow fields from BlueXML properties (stored
 * in the repository) of/*www.ja va  2 s . c om*/
 * the workflow instance.
 * 
 * @param wkFormName
 *            the name of the workflow form to display
 * @param doc
 *            the XForms instance
 * @param instanceId
 *            the workflow instance Id (previously provided by Alfresco)
 * @return false if a lethal exception occurred. True if the normal end of
 *         the function was
 *         reached, which does not imply anything about the setting of
 *         initial values.
 */
public boolean workflowPatchInstance(AlfrescoTransaction transaction, String wkFormName, Document doc,
        String instanceId) {
    if (logger.isDebugEnabled()) {
        logger.debug("Patching workflow instance with Id:'" + instanceId + "', form name: " + wkFormName);
    }
    QName qname;
    String namespaceURI = null; // to be set once
    Map<QName, Serializable> properties = null; // to be set once

    if (StringUtils.trimToNull(instanceId) == null) {
        if (logger.isDebugEnabled()) {
            logger.debug("  No patching performed: the instanceId is null");
        }
        return true;
    }
    if (instanceId.equals("null")) {
        if (logger.isDebugEnabled()) {
            logger.debug("  No patching performed, invalid instanceId with string 'null'");
        }
        return true;
    }
    Element root = doc.getDocumentElement();
    Element formElt = DOMUtil.getChild(root, wkFormName);
    List<Element> allFields = DOMUtil.getAllChildren(formElt);

    // we need to fail silently so that the form is displayed even in the event of errors
    for (Element field : allFields) {
        String fieldUniqueName = field.getTagName();
        Serializable fieldValue = null;
        String localName = getWorkflowFieldAlfrescoName(wkFormName, fieldUniqueName);
        if (localName != null) {
            // build the QName
            if (namespaceURI == null) {
                String processName = workflowExtractProcessNameFromFormName(wkFormName);
                namespaceURI = getWorkflowNamespaceURI(processName);
            }
            qname = QName.createQName(namespaceURI, localName);

            // read the QName value from the collected properties of the workflow instance
            if (properties == null) {
                properties = workflowCollectInstanceProperties(transaction, instanceId);
                if (properties == null) {
                    return false; // there's no point in continuing without the properties
                }
            }
            try {
                // set the initial value
                fieldValue = properties.get(qname);
                if (fieldValue != null) {
                    field.setTextContent(fieldValue.toString());
                }
            } catch (NullPointerException e) {
                // we'll get this when displaying workflow forms while the webscript is down
                return false;
            }
        }
    }
    return true;
}

From source file:com.enonic.vertical.engine.handlers.MenuHandler.java

private void updateMenuItem(User user, Element menuitem_elem, SiteKey siteKey, int order, MenuItemKey parent,
        boolean skipNameCheck)
        throws VerticalUpdateException, VerticalCreateException, VerticalSecurityException {

    MenuItemKey key = new MenuItemKey(menuitem_elem.getAttribute("key"));

    Element menuItemNameElement = XMLTool.getElement(menuitem_elem, ELEMENT_NAME_MENUITEM_NAME);

    String menuItemName = XMLTool.getElementText(menuItemNameElement);

    // If no menuItemName given, it should be generated. This is already done in the MenuHandlerServlet, but enshure this for other ways in aswell
    if (StringUtils.isEmpty(menuItemName)) {
        menuItemName = generateMenuItemName(menuitem_elem);
        menuItemNameElement.setTextContent(menuItemName);
    }/*from w  ww  .ja  v  a2s. co m*/

    String uniqueMenuItemName = ensureUniqueMenuItemName(siteKey, parent, menuItemName, key);

    if (!uniqueMenuItemName.equals(menuItemName)) {
        menuItemName = uniqueMenuItemName;
        menuItemNameElement.setTextContent(menuItemName);
    }

    if (!skipNameCheck && menuItemNameExists(siteKey, parent, menuItemName, key)) {
        VerticalEngineLogger.errorCreate(this.getClass(), 20, "Menu item name already exists on this level: %0",
                new Object[] { menuItemName }, null);
    }

    Connection con = null;
    try {
        con = getConnection();

        // menu item types:
        Hashtable<String, Integer> itemTypes = getMenuItemTypesAsHashtable();

        // security check:
        if (!getSecurityHandler().validateMenuItemUpdate(user, key.toInt())) {
            VerticalEngineLogger.errorSecurity(this.getClass(), 10, "Not allowed to update menuitem: %0.",
                    new Object[] { key }, null);
        }

        // get type:
        String str_type = menuitem_elem.getAttribute("type");
        int type = itemTypes.get(str_type);

        // has it changed type?
        boolean typeChanged = false;
        String str_typeChanged = menuitem_elem.getAttribute("typechanged");
        if (str_typeChanged != null && str_typeChanged.length() != 0) {
            typeChanged = true;

            // the type has changed. delete it and re-create it with the same key.
            int old_type = itemTypes.get(str_typeChanged);

            try {
                switch (old_type) {
                case 1:
                    // page
                    removePageFromMenuItem(con, key.toInt());
                    break;
                case 2:
                    // URL
                    setURLToNull(con, key);
                    break;
                case 4:
                    // page
                    removePageFromMenuItem(con, key.toInt());
                    break;
                case 7:
                    // page
                    if (type != 7) {
                        removeShortcut(key.toInt());
                    }
                    break;
                }
            } catch (VerticalRemoveException e) {
                VerticalEngineLogger.errorUpdate(this.getClass(), 30, "Error removing page: %t", e);
            }
            setMenuItemType(key.toInt(), type);
        }

        // create the new menu item type or update existing:
        boolean modified = "modified".equals(menuitem_elem.getAttribute("modified"));
        if (modified) {
            PreparedStatement preparedStmt = null;

            boolean hasSection = false;

            try {
                switch (type) {
                case 1:
                    Element pageElem = XMLTool.getElement(menuitem_elem, "page");
                    String str_pageKey = pageElem.getAttribute("key");
                    if (str_pageKey != null && str_pageKey.length() > 0 && !typeChanged) {
                        updatePage(con, menuitem_elem, type, key);
                    } else {
                        createPage(con, menuitem_elem, type, key);
                    }
                    break;

                case 2: // create a new URL-thingie
                    createOrUpdateURL(con, menuitem_elem, key);
                    break;

                case 4: // document
                    // does it have a section?
                    Element sectionElem = XMLTool.getElement(menuitem_elem, "section");
                    if (sectionElem != null) {
                        hasSection = true;
                        MenuItemKey sectionKey = getSectionHandler().getSectionKeyByMenuItem(key);
                        if (sectionKey != null) {
                            updateSection(menuitem_elem, sectionKey.toInt());
                        } else {
                            createSection(menuitem_elem, key);
                        }
                    }

                    // page
                    pageElem = XMLTool.getElement(menuitem_elem, "page");
                    str_pageKey = pageElem.getAttribute("key");
                    if (str_pageKey != null && str_pageKey.length() > 0 && !typeChanged) {
                        updatePage(con, menuitem_elem, type, key);
                    } else {
                        createPage(con, menuitem_elem, type, key);
                    }
                    break;

                case 5: // Label:
                    break;

                case 6: // section
                    hasSection = true;
                    MenuItemKey sectionKey = getSectionHandler().getSectionKeyByMenuItem(key);
                    if (sectionKey != null) {
                        updateSection(menuitem_elem, sectionKey.toInt());
                    } else {
                        createSection(menuitem_elem, key);
                    }
                    break;

                case 7: // Shortcut:
                    createOrOverrideShortcut(menuitem_elem, key);
                    break;
                }
            } finally {
                close(preparedStmt);
            }

            // remove section if necessary
            MenuItemKey sectionKey = getSectionHandler().getSectionKeyByMenuItem(key);
            if (sectionKey != null && !hasSection) {
                try {
                    getSectionHandler().removeSection(sectionKey.toInt());
                } catch (VerticalRemoveException vre) {
                    VerticalEngineLogger.errorUpdate(this.getClass(), 50, "Failed to remove section: %t", vre);
                }
            }

            updateMenuItemData(user, menuitem_elem, type, parent, order);
        } else {
            updateMenuItemData(user, menuitem_elem, type, parent, order);
        }

        // set contentkey if present
        String contentKeyStr = menuitem_elem.getAttribute("contentkey");
        if (contentKeyStr.length() == 0) {
            contentKeyStr = "-1";
        }
        setMenuItemContentKey(key, Integer.parseInt(contentKeyStr));

        Element menuitems = XMLTool.getElement(menuitem_elem, "menuitems");
        if (menuitems != null) {
            Node[] items = XMLTool.filterNodes(menuitems.getChildNodes(), Node.ELEMENT_NODE);
            for (int i = 0; i < items.length; i++) {
                Element curElement = (Element) items[i];
                String deleted = curElement.getAttribute("deleted");
                if (!"deleted".equals(deleted)) {
                    String curKey = curElement.getAttribute("key");
                    if (curKey == null || curKey.length() == 0) {
                        createMenuItem(user, null, curElement, siteKey, i, key, false);
                    } else {
                        updateMenuItem(user, curElement, siteKey, i, key, true);
                    }
                }
            }
        }
    } catch (SQLException e) {
        VerticalEngineLogger.errorUpdate(this.getClass(), 50, "A database error occurred: %t", e);
    } finally {
        close(con);
    }
}

From source file:com.enonic.vertical.adminweb.UserHandlerServlet.java

public void handlerForm(HttpServletRequest request, HttpServletResponse response, HttpSession session,
        AdminService admin, ExtendedMap formItems) throws VerticalAdminException {

    User user = securityService.getLoggedInAdminConsoleUser();
    UserStoreKey userStoreKey = UserStoreKey.parse(formItems.getString("userstorekey", null));
    UserStoreEntity userStore = userStoreDao.findByKey(userStoreKey);
    try {/*w  ww.  j av  a2s.c  om*/
        ExtendedMap xslParams = new ExtendedMap();

        Source xmlSource;

        // build XSL
        Source tempXSLSource = AdminStore.getStylesheet(session, "__build_user_form.xsl");
        StreamSource xslSource = buildXSL(session, tempXSLSource, buildDummyObjectClasses());

        int create = 0;
        Document userDoc;
        if (formItems.containsKey("key")) {
            String userGroupKeyStr = formItems.getString("key");
            GroupKey userGroupKey = new GroupKey(userGroupKeyStr);
            UserSpecification userSpec = new UserSpecification();
            userSpec.setDeletedState(UserSpecification.DeletedState.ANY);
            userSpec.setUserGroupKey(userGroupKey);

            UserEntity synchronizedUser = userStoreService.synchronizeUser(userSpec);

            final UserXmlCreator userXmlCreator = new UserXmlCreator();
            userXmlCreator.setIncludeUserFields(true);
            XMLDocument userXmlDoc = XMLDocumentFactory
                    .create(userXmlCreator.createUsersDocument(synchronizedUser, true, false));
            userDoc = userXmlDoc.getAsDOMDocument();

            DisplayNameResolver displayNameResolver = new DisplayNameResolver(userStore.getConfig());
            xslParams.put("generated-display-name",
                    displayNameResolver.resolveDisplayName(synchronizedUser.getName(),
                            synchronizedUser.getDisplayName(), synchronizedUser.getUserInfo()));

            Element usersElem = userDoc.getDocumentElement();
            Element userElem = XMLTool.getElement(usersElem, "user");
            String userKey = userElem.getAttribute("key");

            MultiValueMap adminParams = new MultiValueMap();
            adminParams.put("@userkey", userKey);
            adminParams.put("@typekey", 1);
            String logEntries = admin.getLogEntries(user, adminParams, 0, 5, true);
            XMLTool.mergeDocuments(userDoc, XMLTool.domparse(logEntries), true);
        } else {
            create = 1;
            userDoc = XMLTool.createDocument("users");
        }

        final UserStoreXmlCreator userStoreXmlCreator = new UserStoreXmlCreator(
                userStoreService.getUserStoreConnectorConfigs());
        XMLDocument userStoreXMLDoc = XMLDocumentFactory
                .create(new org.jdom.Document(userStoreXmlCreator.createUserStoreElement(userStore)));
        XMLTool.mergeDocuments(userDoc, userStoreXMLDoc.getAsDOMDocument(), true);

        CountryXmlCreator countryXmlCreator = new CountryXmlCreator();
        Collection<Country> countries = countryService.getCountries();
        countryXmlCreator.setIncludeRegionsInfo(false);
        XMLDocument countriesXMLDoc = XMLDocumentFactory
                .create(countryXmlCreator.createCountriesDocument(countries));
        XMLTool.mergeDocuments(userDoc, countriesXMLDoc.getAsDOMDocument(), true);

        LocaleXmlCreator localeXmlCreator = new LocaleXmlCreator();
        Locale[] locales = localeService.getLocales();
        XMLDocument localesXMLDoc = XMLDocumentFactory.create(localeXmlCreator.createLocalesDocument(locales));
        XMLTool.mergeDocuments(userDoc, localesXMLDoc.getAsDOMDocument(), true);

        DateTime now = timeService.getNowAsDateTime();
        TimeZoneXmlCreator timeZoneXmlCreator = new TimeZoneXmlCreator(now);
        Collection<DateTimeZone> timeZones = timeZoneService.getTimeZones();
        XMLDocument timeZonesDoc = XMLDocumentFactory
                .create(timeZoneXmlCreator.createTimeZonesDocument(timeZones));
        XMLTool.mergeDocuments(userDoc, timeZonesDoc.getAsDOMDocument(), true);

        VerticalAdminLogger.debug(this.getClass(), 0, userDoc);
        xmlSource = new DOMSource(userDoc);

        xslParams.put("userstorename", userStore.getName());
        xslParams.put("userstorekey", String.valueOf(userStoreKey));
        xslParams.put("page", formItems.getString("page"));
        xslParams.put("create", String.valueOf(create));
        if (user.isEnterpriseAdmin() || admin.isUserStoreAdmin(user, userStoreKey)) {
            xslParams.put("showdn", "true");
        }

        if (formItems.containsKey("mode")) {
            xslParams.put("mode", formItems.getString("mode"));
        }
        if (formItems.containsKey("callback")) {
            xslParams.put("callback", formItems.getString("callback"));
        }
        if (formItems.containsKey("modeselector")) {
            xslParams.put("modeselector", formItems.getString("modeselector"));
        }
        if (formItems.containsKey("userstoreselector")) {
            xslParams.put("userstoreselector", formItems.getString("userstoreselector"));
        }
        if (formItems.containsKey("excludekey")) {
            xslParams.put("excludekey", formItems.getString("excludekey"));
        }

        // WIZARD
        if (formItems.getString("wizard", "").equals("true")) {
            int step = 1;
            int prevstep = formItems.getInt("prevstep", 0);

            // If we just entered the wizard
            if (!formItems.containsKey("step")) {
                session.removeAttribute("userxml");
                session.removeAttribute("groupxml");
                session.removeAttribute("notification");
                session.removeAttribute("to_name");
                session.removeAttribute("to_mail");
                session.removeAttribute("subject");
                session.removeAttribute("mail_body");
                session.removeAttribute("grouparray");
                session.removeAttribute(SESSION_PHOTO_ITEM_KEY);

                session.setAttribute("from_name", user.getDisplayName());
                if (user.getEmail() != null) {
                    session.setAttribute("from_mail", user.getEmail());
                } else {
                    session.removeAttribute("from_mail");
                }
            } else {
                step = formItems.getInt("step");
            }

            // Store data from step 1 in session object
            if (prevstep == 1) {
                UserInfo userInfo = parseCustomUserFieldValues(userStoreKey, formItems);
                Document newDoc = XMLTool.domparse(buildUserXML(userInfo, formItems));

                storeUserPhotoInSession(session, formItems);

                // Check if username and password already exist
                String uid = null;
                String password = null;
                String oldXML = (String) session.getAttribute("userxml");
                if (oldXML != null) {
                    Document oldDoc = XMLTool.domparse(oldXML);
                    Element uidElem = (Element) XMLTool.selectNode(oldDoc.getDocumentElement(),
                            "/user/block/uid");
                    Element passwordElem = (Element) XMLTool.selectNode(oldDoc.getDocumentElement(),
                            "/user/block/password");
                    uid = XMLTool.getElementText(uidElem);
                    password = XMLTool.getElementText(passwordElem);
                }
                // Generate username and password, if not present
                if (uid == null) {
                    String firstname = XMLTool.getElementText(newDoc, "/user/block/first-name");
                    String lastname = XMLTool.getElementText(newDoc, "/user/block/last-name");
                    synchronized (admin) {
                        uid = admin.generateUID(firstname, lastname, userStoreKey);
                    }
                }
                Element uidElem = (Element) XMLTool.selectNode(newDoc.getDocumentElement(), "/user/block/uid");
                XMLTool.createTextNode(newDoc, uidElem, uid);
                if (password == null) {
                    synchronized (admin) {
                        try {
                            password = PasswordGenerator.generateNewPassword();
                        } catch (VerticalException ve) {
                            VerticalEngineLogger.warn(this.getClass(), 10, "Unable to generate password.",
                                    null);
                        }
                    }
                }
                Element passwordElem = (Element) XMLTool.selectNode(newDoc.getDocumentElement(),
                        "/user/block/password");
                XMLTool.createTextNode(newDoc, passwordElem, password);

                session.setAttribute("userxml", XMLTool.documentToString(newDoc));

                // Fill in values in notification form, if not present
                session.setAttribute("to_name", XMLTool.getElementText(newDoc, "/user/block/displayName"));
                session.setAttribute("to_mail", XMLTool.getElementText(newDoc, "/user/block/email"));
                session.setAttribute("mail_body",
                        "Username: " + XMLTool.getElementText(newDoc, "/user/block/uid") + (char) 13
                                + "Password: " + XMLTool.getElementText(newDoc, "/user/block/password"));

                // Check whether email address already exists
                String email = XMLTool.getElementText(newDoc, "/user/block/email");

                try {
                    userStoreService.verifyUniqueEmailAddress(email, userStoreKey);
                } catch (UserStorageExistingEmailException e) {
                    this.addError(4, "email", null);
                    this.addErrorsXML(userDoc);
                    step = 1;
                }
            }
            // Store data from step 2 in session object
            if (prevstep == 2) {
                Document newDoc;
                String newXML = (String) session.getAttribute("userxml");

                if (newXML != null) {
                    newDoc = XMLTool.domparse(newXML);
                    Element uidElem = (Element) XMLTool.selectNode(newDoc.getDocumentElement(),
                            "/user/block/uid");
                    Element passwordElem = (Element) XMLTool.selectNode(newDoc.getDocumentElement(),
                            "/user/block/password");
                    uidElem.setTextContent(formItems.getString("uid_dummy", ""));
                    passwordElem.setTextContent(formItems.getString("password_dummy", ""));
                    session.setAttribute("mail_body",
                            "Username: " + XMLTool.getElementText(newDoc, "/user/block/uid") + (char) 13
                                    + "Password: " + XMLTool.getElementText(newDoc, "/user/block/password"));
                } else {
                    UserInfo userInfo = parseCustomUserFieldValues(userStoreKey, formItems);
                    newDoc = XMLTool.domparse(buildUserXML(userInfo, formItems));
                }

                session.setAttribute("userxml", XMLTool.documentToString(newDoc));

                // Check whether uid already exists
                String uid = XMLTool.getElementText(newDoc, "/user/block/uid");

                if (uid != null && uid.length() > 0) {
                    UserSpecification userSpec = new UserSpecification();
                    userSpec.setName(uid);
                    userSpec.setUserStoreKey(userStoreKey);
                    userSpec.setDeletedStateNotDeleted();
                    if (userDao.findSingleBySpecification(userSpec) != null) {
                        this.addError(5, "uid_" + DUMMY_OID, null);
                        this.addErrorsXML(userDoc);
                        step = 2;
                    }
                }
            }
            // Store data from step 3 in session object
            else if (prevstep == 3) {
                if (formItems.containsKey("member")) {
                    org.jdom.Element userEl = new org.jdom.Element("user");
                    org.jdom.Element memberOfEl = new org.jdom.Element("memberOf");
                    userEl.addContent(memberOfEl);
                    org.jdom.Document membershipDoc = new org.jdom.Document(userEl);

                    String[] groupArray;
                    if (isArrayFormItem(formItems, "member")) {
                        groupArray = (String[]) formItems.get("member");
                    } else {
                        groupArray = new String[] { formItems.getString("member") };
                    }
                    session.setAttribute("grouparray", groupArray);
                    for (String aGroupArray : groupArray) {
                        try {
                            org.jdom.Document groupDocument = JDOMUtil
                                    .parseDocument(admin.getGroup(aGroupArray));
                            org.jdom.Element groupsEl = groupDocument.getRootElement();
                            memberOfEl.addContent(groupsEl.getChild("group").detach());
                        } catch (org.jdom.JDOMException e) {
                            /* Do nothing - move one */
                        }
                    }
                    session.setAttribute("groupxml", XMLTool.documentToString(membershipDoc));
                }
            }
            // Store data from step 4 in session object
            else if (prevstep == 4) {
                session.setAttribute("notification", formItems.getString("notification", "false"));
                if (formItems.getString("notification", "false").equals("true")) {
                    session.setAttribute("from_name", formItems.getString("from_name", ""));
                    session.setAttribute("from_mail", formItems.getString("from_mail", ""));
                    session.setAttribute("to_name", formItems.getString("to_name", ""));
                    session.setAttribute("to_mail", formItems.getString("to_mail", ""));
                    session.setAttribute("subject", formItems.getString("subject", ""));
                    session.setAttribute("mail_body", formItems.getString("mail_body", ""));
                }
            }

            // Load data from session object
            if (step == 1 || step == 2) {
                String newXML = (String) session.getAttribute("userxml");
                if (newXML != null) {
                    Document newDoc = XMLTool.domparse(newXML);
                    XMLTool.mergeDocuments(userDoc, newDoc, true);
                }
            } else if (step == 3) {
                String groupsXML = (String) session.getAttribute("groupxml");
                if (groupsXML != null) {
                    Document groups = XMLTool.domparse(groupsXML);
                    XMLTool.mergeDocuments(userDoc, groups, true);
                }
            } else if (step == 4) {
                String notification = (String) session.getAttribute("notification");
                if (notification == null) {
                    notification = "true";
                }
                xslParams.put("notification", notification);
                xslParams.put("from_name", session.getAttribute("from_name"));
                xslParams.put("from_mail", session.getAttribute("from_mail"));
                xslParams.put("to_name", session.getAttribute("to_name"));
                xslParams.put("to_mail", session.getAttribute("to_mail"));
                xslParams.put("subject", session.getAttribute("subject"));
                // Need to remove ascii #10 (line feed) to prevent double line breaks
                String mail_body = (String) session.getAttribute("mail_body");
                StringBuffer mail_body_fixed;
                if (mail_body != null) {
                    mail_body_fixed = new StringBuffer(mail_body.length());
                    for (int i = 0; i < mail_body.length(); i++) {
                        if (((int) mail_body.charAt(i)) != 10) {
                            mail_body_fixed.append(mail_body.charAt(i));
                        }
                    }
                    xslParams.put("mail_body", mail_body_fixed.toString());
                } else {
                    xslParams.put("mail_body", "");
                }
            }
            xslParams.put("step", Integer.toString(step));
            xslParams.put("wizard", Boolean.TRUE);
        } else {
            String languageCode = (String) session.getAttribute("languageCode");
            AdminConsoleTranslationService languageMap = AdminConsoleTranslationService.getInstance();
            languageMap.toDoc(userDoc, languageCode);
            xslParams.put("languagecode", languageCode);
        }

        addSortParamteres("block/uid", "ascending", formItems, session, xslParams);

        try {
            xslParams.put("canUpdateUser", String.valueOf(userStoreService.canUpdateUser(userStoreKey)));
        } catch (final InvalidUserStoreConnectorConfigException e) {
            xslParams.put("userStoreConfigError", e.getMessage());
        }

        if (user.getName().equals(formItems.get("key", ""))) {
            xslParams.put("profile", Boolean.TRUE);
        }

        if (memberOfResolver.hasEnterpriseAdminPowers(user.getKey())
                || memberOfResolver.hasUserStoreAdministratorPowers(user.getKey(), userStoreKey)) {
            xslParams.put("isadmin", "true");
        }

        xslParams.put("uid", user.getName());

        transformXML(session, response.getWriter(), xmlSource, xslSource, xslParams);
    } catch (IOException e) {
        VerticalAdminLogger.errorAdmin(this.getClass(), 20, "I/O error: %t", e);
    } catch (TransformerException e) {
        VerticalAdminLogger.errorAdmin(this.getClass(), 30, "XSLT error: %t", e);
    }
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

public Document getMysqlUserGroups(Integer userId) {
    PreparedStatement st;/*from ww w. j  a  va 2  s.co  m*/
    String sql;

    try {
        // Selection des groupes d'utilisateurs avec liste de ces derniers
        // + lien avec les groupes de droits
        // On doit faire une 'outer join' mais il y a pas a sous MySQL donc on fait l'quivalent
        sql = "SELECT gi.gid, gi.owner AS gowner, gi.label AS glabel, gri.grid, gri.owner AS growner, gri.label AS grlabel, GROUP_CONCAT(userid) AS users, bin2uuid(gri.portfolio_id) AS portfolio_id ";
        if (dbserveur.equals("oracle")) {
            sql = "SELECT gi.gid, gi.owner AS gowner, gi.label AS glabel, gri.grid, gri.owner AS growner, gri.label AS grlabel, LISTAGG(userid, ',') WITHIN GROUP (ORDER BY userid) AS users, bin2uuid(gri.portfolio_id) AS portfolio_id ";
        }
        sql += "FROM group_info gi " + "LEFT JOIN group_user gu ON gi.gid=gu.gid "
                + "LEFT JOIN group_right_info gri ON gi.grid=gri.grid GROUP BY gi.gid " + "UNION ALL "
                + "SELECT gi.gid, gi.owner AS gowner, gi.label AS glabel, gri.grid, gri.owner AS growner, gri.label AS grlabel, NULL, bin2uuid(gri.portfolio_id) AS portfolio_id "
                + "FROM group_right_info gri " + "LEFT JOIN group_info gi ON gi.grid=gri.grid "
                + "WHERE gi.grid IS NULL ORDER BY portfolio_id";
        st = connection.prepareStatement(sql);

        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        Document doc = docBuilder.newDocument();
        Element root = doc.createElement("root");
        doc.appendChild(root);

        ResultSet result = st.executeQuery();
        String prevPort = "DUMMY";
        Element port_node = null;
        while (result.next()) {
            Integer gid = result.getInt("gid");
            Integer gowner = result.getInt("gowner");
            String glabel = result.getString("glabel");
            Integer grid = result.getInt("grid");
            Integer growner = result.getInt("growner");
            String grlabel = result.getString("grlabel");
            String users = result.getString("users");
            String portfolio_id = result.getString("portfolio_id");

            if (portfolio_id == null)
                portfolio_id = "";
            if (!prevPort.equals(portfolio_id)) {
                port_node = doc.createElement("portfolio");
                port_node.setAttribute("id", portfolio_id);
                prevPort = portfolio_id;
                root.appendChild(port_node);
            }

            Element groupinfo = doc.createElement("group_info");
            Element group = doc.createElement("group_user");
            group.setAttribute("id", Integer.toString(gid));
            group.setAttribute("owner", Integer.toString(gowner));
            Element label = doc.createElement("label");
            label.setTextContent(glabel);
            group.appendChild(label);
            Element usersNode = doc.createElement("users");
            usersNode.setTextContent(users);
            group.appendChild(usersNode);

            Element grlabelNode = doc.createElement("group_right");
            grlabelNode.setAttribute("id", Integer.toString(grid));
            grlabelNode.setAttribute("owner", Integer.toString(growner));
            grlabelNode.setTextContent(grlabel);

            groupinfo.appendChild(group);
            groupinfo.appendChild(grlabelNode);

            port_node.appendChild(groupinfo);

        }

        return doc;
    } catch (Exception e) {
        e.printStackTrace();
    }

    return null;
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public String getGroupRightsInfos(int userId, String portfolioId) {
    if (!credential.isAdmin(userId))
        throw new RestWebApplicationException(Status.FORBIDDEN, "No admin right");

    String sql = "";
    ResultSet rs = null;// w  ww  .ja  v  a  2  s .  c  o  m
    PreparedStatement st = null;
    String result = "";

    try {
        sql = "SELECT gr.grid,bin2uuid(id),RD,WR,DL,SB,AD,types_id,rules_id, notify_roles "
                + "FROM group_right_info gri " + "LEFT JOIN group_rights gr ON gri.grid=gr.grid "
                + "WHERE portfolio_id=uuid2bin(?) " + "ORDER BY gr.grid";
        st = connection.prepareStatement(sql);
        st.setString(1, portfolioId);

        rs = st.executeQuery();

        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.newDocument();

        Element gri = document.createElement("groupRightsInfos");
        document.appendChild(gri);

        int grid = -1;
        Element gridNode = null;

        while (rs.next()) {
            int ng = rs.getInt(1);
            if (grid != ng) {
                gridNode = document.createElement("grid");
                gridNode.setAttribute("id", Integer.toString(ng));
                gri.appendChild(gridNode);
                grid = ng;
            }

            String id = rs.getString(2);
            int rd = rs.getInt(3);
            int wr = rs.getInt(4);
            int dl = rs.getInt(5);
            int sb = rs.getInt(6);
            int ad = rs.getInt(7);
            String types = rs.getString(8);
            String action = rs.getString(9);
            String notify = rs.getString(10);

            Element node = document.createElement("node");
            gridNode.appendChild(node);

            node.setAttribute("id", id);
            node.setAttribute("RD", Integer.toString(rd));
            node.setAttribute("WR", Integer.toString(wr));
            node.setAttribute("DL", Integer.toString(dl));
            node.setAttribute("SB", Integer.toString(sb));
            node.setAttribute("AD", Integer.toString(ad));

            Element typ = document.createElement("types");
            typ.setTextContent(types);
            Element act = document.createElement("action");
            act.setTextContent(action);
            Element not = document.createElement("notify");
            not.setTextContent(notify);

            node.appendChild(typ);
            node.appendChild(act);
            node.appendChild(not);
        }

        StringWriter stw = new StringWriter();
        Transformer serializer = TransformerFactory.newInstance().newTransformer();
        serializer.transform(new DOMSource(document), new StreamResult(stw));
        result = stw.toString();
    } catch (Exception e) {
        e.printStackTrace();
    }

    return result;
}

From source file:com.portfolio.data.provider.MysqlAdminProvider.java

@Override
public String getPortfolioInfo(int userId, String portId) {
    String status = "erreur";
    PreparedStatement st;/*from   w  w  w.  j  a  v a  2  s . c  om*/
    ResultSet res = null;

    try {
        // group_right_info pid:grid -> group_info grid:gid -> group_user gid:userid
        String sql = "SELECT gri.grid, gri.label, gu.userid " + "FROM group_right_info gri "
                + "LEFT JOIN group_info gi ON gri.grid=gi.grid " + "LEFT JOIN group_user gu ON gi.gid=gu.gid "
                + "WHERE gri.portfolio_id=uuid2bin(?)";
        st = connection.prepareStatement(sql);
        st.setString(1, portId);
        res = st.executeQuery();

        /// Time to create data
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.newDocument();

        Element root = document.createElement("portfolio");
        root.setAttribute("id", portId);
        document.appendChild(root);

        Element rrgUsers = null;

        long rrg = 0;
        while (res.next()) {
            if (rrg != res.getLong("gri.grid")) {
                rrg = res.getLong("gri.grid");
                Element rrgNode = document.createElement("rrg");
                rrgNode.setAttribute("id", Long.toString(rrg));

                Element rrgLabel = document.createElement("label");
                rrgLabel.setTextContent(res.getString("gri.label"));

                rrgUsers = document.createElement("users");

                rrgNode.appendChild(rrgLabel);
                rrgNode.appendChild(rrgUsers);
                root.appendChild(rrgNode);
            }

            Long uid = res.getLong("gu.userid");
            if (!res.wasNull()) {
                Element user = document.createElement("user");
                user.setAttribute("id", Long.toString(uid));

                rrgUsers.appendChild(user);
            }
        }

        res.close();
        st.close();

        StringWriter stw = new StringWriter();
        Transformer serializer = TransformerFactory.newInstance().newTransformer();
        DOMSource source = new DOMSource(document);
        StreamResult stream = new StreamResult(stw);
        serializer.transform(source, stream);
        return stw.toString();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    return status;
}

From source file:com.portfolio.data.provider.MysqlDataProvider.java

@Override
public String getPortfolioInfo(int userId, String portId) {
    String status = "erreur";
    PreparedStatement st;/*from www.j  av a  2s  .c  o  m*/
    ResultSet res = null;

    try {
        // group_right_info pid:grid -> group_info grid:gid -> group_user gid:userid
        String sql = "SELECT gri.grid AS grid, gri.label AS label, gu.userid AS userid "
                + "FROM group_right_info gri " + "LEFT JOIN group_info gi ON gri.grid=gi.grid "
                + "LEFT JOIN group_user gu ON gi.gid=gu.gid " + "WHERE gri.portfolio_id=uuid2bin(?)";
        st = connection.prepareStatement(sql);
        st.setString(1, portId);
        res = st.executeQuery();

        /// Time to create data
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        Document document = documentBuilder.newDocument();

        Element root = document.createElement("portfolio");
        root.setAttribute("id", portId);
        document.appendChild(root);

        Element rrgUsers = null;

        long rrg = 0;
        while (res.next()) {
            if (rrg != res.getLong("grid")) {
                rrg = res.getLong("grid");
                Element rrgNode = document.createElement("rrg");
                rrgNode.setAttribute("id", Long.toString(rrg));

                Element rrgLabel = document.createElement("label");
                rrgLabel.setTextContent(res.getString("label"));

                rrgUsers = document.createElement("users");

                rrgNode.appendChild(rrgLabel);
                rrgNode.appendChild(rrgUsers);
                root.appendChild(rrgNode);
            }

            Long uid = res.getLong("userid");
            if (!res.wasNull()) {
                Element user = document.createElement("user");
                user.setAttribute("id", Long.toString(uid));

                rrgUsers.appendChild(user);
            }
        }

        res.close();
        st.close();

        StringWriter stw = new StringWriter();
        Transformer serializer = TransformerFactory.newInstance().newTransformer();
        DOMSource source = new DOMSource(document);
        StreamResult stream = new StreamResult(stw);
        serializer.transform(source, stream);
        return stw.toString();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    return status;
}

From source file:com.raspi.chatapp.util.internet.XmppManager.java

/**
 * sends a text message/*from   ww w  . j  a  va 2 s . c  o m*/
 *
 * @param message  the message text to send
 * @param buddyJID the Buddy to receive the message
 * @return true if sending was successful
 */
public boolean sendTextMessage(String message, String buddyJID, long id) {
    ChatManager chatManager = ChatManager.getInstanceFor(connection);
    if (connection != null && connection.isConnected() && chatManager != null) {
        if (buddyJID.indexOf('@') == -1)
            buddyJID += "@" + service;
        Chat chat = chatManager.createChat(buddyJID);
        try {
            // wrap the message with all necessary xml attributes
            Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
            Element msg = doc.createElement("message");
            doc.appendChild(msg);
            msg.setAttribute("type", MessageHistory.TYPE_TEXT);
            msg.setAttribute("id", String.valueOf(id));
            Element file = doc.createElement("content");
            msg.appendChild(file);
            file.setTextContent(message);

            // transform everything to a string
            Transformer t = TransformerFactory.newInstance().newTransformer();
            StringWriter writer = new StringWriter();
            StreamResult r = new StreamResult(writer);
            t.transform(new DOMSource(doc), r);
            message = writer.toString();

            // send the message
            chat.sendMessage(message);
            Log.d("DEBUG", "Success: Sent message");
            return true;
        } catch (Exception e) {
            Log.e("ERROR", "Couldn't send message.");
            Log.e("ERROR", e.toString());
            return false;
        }
    }
    Log.e("ERROR", "Sending failed: No connection.");
    return false;
}