Изменение файлов Java
Нужно внести некоторые изменения в файлы Java™ для веб-службы примера.
Внесите в файлы Java следующие изменения:
- WorkwithItemPortlet
- Добавьте код для вызова службы повторной категоризации, как это показано в коде для updateItem() .
- WPCMediator
- Добавьте метод для повторной категоризации веб-службы:
public void recategorizeItem(String itemID, String categoryName, String collabName,String catalogName, WPSContext context) throws WPCMediatorException { try { wsHelper.categorizeItem(itemID, categoryName, collabName, catalogName, context.getWPCUser()); }catch (WPCMediatorException e) { ..
- WSHelper
- Добавьте метод для повторной категоризации веб-службы:
collabName, String catalogName, WPCUser user) throws WPCMediatorException { String requestXML = XMLHelper.prepareCategorizeItemRequestXML(itemID,categoryName,String completeXML = XMLHelper.prepareWPCRequest(requestXML, ISoapMessageKeys.REQ_ITEM_RECATEGORIZE, ISoapMessageKeys.SYNCHRONOUS, user); SoapResponse soapResponse = invokeSOAP(ISoapMessageKeys.REQ_ITEM_RECATEGORIZE, completeXML); String responseXML = soapResponse.getDataXML(); .. }
- ItemCatalogUtilPortlet и файл .jsp
- Возможно, эти компоненты придется изменить, чтобы дать пользователю возможность выбирать категорию и передавать ID и путь категории родительскому портлету. При повторной категоризации элемента все атрибуты, специфические для категории, нужно обновить. Используйте ITEMDETAILS для возвращения нового набора атрибутов после повторной категоризации.
- Item.jsp
- Добавьте код в соответствующую JSP элемента каталога:
<% String newCategoryName = item.getNewParentCtgyLabel()==null ? "" : item.getNewParentCtgyLabel(); %> Category path <input class="wpsEditField" type="text" SIZE="50" name="CATEGORY_PATH_LABEL" value='<%= newCategoryName %>' readonly > <input class="wpsButtonText" align="LEFT" type="button" name="CATEGORIZE" value='Please Categorize' onClick="javascript:selectCategory()"> <input type="hidden" name="CATEGORY_PATH" value="<%=item.getNewParentCtgyID()%>">
Информация о категории хранится в двух полях: CATEGORY_PATH и CATEGORY_PATH_LABEL. В CATEGORY_PATH хранится фактический путь категории (например, 3///4///2; CATEGORY_PATH_LABEL показывает путь, который легко прочесть, например /Devices/Electronics/Digital Camera/). Если пользователь выбирает категорию во всплывающем окне, то значения пути выбранной категории и метка полного пути возвращаются во всплывающее окно.
Возможно, придется внести незначительные изменения в другие файлы (например, добавить константы и изменить подписи интерфейсов).