protected void updateLink( AttributeInterface currentAttribute, String[] destinations, int destType) { if (destinations.length != 3) { throw new RuntimeException("Destinazioni non riconosciute"); } SymbolicLink symbolicLink = new SymbolicLink(); switch (destType) { case (SymbolicLink.CONTENT_TYPE): symbolicLink.setDestinationToContent(destinations[1]); break; case (SymbolicLink.CONTENT_ON_PAGE_TYPE): symbolicLink.setDestinationToContentOnPage(destinations[1], destinations[2]); break; case SymbolicLink.PAGE_TYPE: symbolicLink.setDestinationToPage(destinations[2]); break; case SymbolicLink.URL_TYPE: symbolicLink.setDestinationToUrl(destinations[0]); break; default: symbolicLink.setDestinationToContent(""); break; } ((LinkAttribute) currentAttribute).setSymbolicLink(symbolicLink); }
protected void removeLink(AttributeInterface attribute, HttpServletRequest request) { HttpSession session = request.getSession(); if (attribute instanceof CompositeAttribute) { String includedAttributeName = (String) session.getAttribute(INCLUDED_ELEMENT_NAME_SESSION_PARAM); AttributeInterface includedAttribute = ((CompositeAttribute) attribute).getAttribute(includedAttributeName); removeLink(includedAttribute, request); } else if (attribute instanceof LinkAttribute) { ((LinkAttribute) attribute).setSymbolicLink(null); ((LinkAttribute) attribute).getTextMap().clear(); } else if (attribute instanceof MonoListAttribute) { Integer elementIndex = (Integer) session.getAttribute(LIST_ELEMENT_INDEX_SESSION_PARAM); AttributeInterface attributeElement = ((MonoListAttribute) attribute).getAttribute(elementIndex.intValue()); removeLink(attributeElement, request); } }
@Override public void initSessionParams(ILinkAttributeAction action, HttpServletRequest request) { AttributeInterface attribute = null; HttpSession session = request.getSession(); if (null != action.getParentAttributeName()) { attribute = (AttributeInterface) getContent(request).getAttribute(action.getParentAttributeName()); session.setAttribute(ATTRIBUTE_NAME_SESSION_PARAM, action.getParentAttributeName()); session.setAttribute(INCLUDED_ELEMENT_NAME_SESSION_PARAM, action.getAttributeName()); } else { attribute = (AttributeInterface) getContent(request).getAttribute(action.getAttributeName()); session.setAttribute(ATTRIBUTE_NAME_SESSION_PARAM, action.getAttributeName()); } if (action.getElementIndex() >= 0) { session.setAttribute(LIST_ELEMENT_INDEX_SESSION_PARAM, new Integer(action.getElementIndex())); } session.setAttribute(LINK_LANG_CODE_SESSION_PARAM, action.getLangCode()); LinkAttribute linkAttribute = (LinkAttribute) getLinkAttribute(attribute, request); session.setAttribute(SYMBOLIC_LINK_SESSION_PARAM, linkAttribute.getSymbolicLink()); }