Настройка свойств списка содержимого IBM Content Navigator для элемента строки

#filenet-p8 #filenet-content-engine #dojo.gridx #ibm-content-navigator

#filenet-p8 #filenet-content-engine #dojo.gridx #ibm-content-navigator

Вопрос:

Я пытаюсь создать пользовательский поиск и следовал примеру из redbook. Однако, вместо создания новой функции, я просто изменяю текущее поведение поиска, изменяя запрос, который выполняется в базе данных FileNet. На основе примера задается и отображается только несколько свойств по умолчанию. Я пытаюсь установить другие свойства документа.

   private static void buildResultStructure(JSONResultSetResponse jsonResultSet, MessageResources resources, Locale clientLocale) { 
    String[] states = new String[1]; 
    states[0] = "isLocked"; 
    jsonResultSet.addColumn(new JSONResultSetColumn("amp;nbsp;", "multiStateIcon", false, states));
    jsonResultSet.addColumn(new JSONResultSetColumn("amp;nbsp;", "17px", "mimeTypeIcon", null, false)); 
    jsonResultSet.addColumn(new JSONResultSetColumn(resources.getMessage(clientLocale, "search.results.header.id"), "200px", "ID", null, false));
    jsonResultSet.addColumn(new JSONResultSetColumn("Class Name", "125px", "className", null, false)); 
    jsonResultSet.addColumn(new JSONResultSetColumn(resources.getMessage(clientLocale, "search.results.header.lastModifiedByUser"), "125px", "ModifiedBy", null, false)); 
    jsonResultSet.addColumn(new JSONResultSetColumn(resources.getMessage(clientLocale, "search.results.header.lastModifiedTimestamp"), "175px", "LastModified", null, false)); 
    jsonResultSet.addColumn(new JSONResultSetColumn(resources.getMessage(clientLocale, "search.results.header.version"), "50px", "Version", null, false));
    jsonResultSet.addMagazineColumn(new JSONResultSetColumn("thumbnail", "60px", "thumbnail", null, null)); 
    com.ibm.json.java.JSONArray fieldsToDisplay = new com.ibm.json.java.JSONArray();
    com.ibm.json.java.JSONObject jsonObj = new com.ibm.json.java.JSONObject(); 
    jsonObj.put("field", "className");
    jsonObj.put("displayName", "Class"); 
    fieldsToDisplay.add(jsonObj); 
    jsonObj =new com.ibm.json.java.JSONObject(); 
    jsonObj.put("field", "ModifiedBy");
    jsonObj.put("displayName", resources.getMessage(clientLocale, "search.results.header.lastModifiedByUser")); 
    fieldsToDisplay.add(jsonObj);
    jsonObj = new com.ibm.json.java.JSONObject(); 
    jsonObj.put("field", "LastModified");
    jsonObj.put("displayName", resources.getMessage(clientLocale, "search.results.header.lastModifiedTimestamp"));
    fieldsToDisplay.add(jsonObj);
    jsonObj = new com.ibm.json.java.JSONObject();
    jsonObj.put("field", "Version"); 
    jsonObj.put("displayName", resources.getMessage(clientLocale, "search.results.header.version"));
    fieldsToDisplay.add(jsonObj); 
    
    jsonResultSet.addMagazineColumn(new JSONResultSetColumn("content", "100%", "content", fieldsToDisplay, null));
  }
  

Ответ №1:

Сначала перейдите к файлу SamplePluginSearchServiceP8.java и функции buildP8ResultStructure. удалите ненужные столбцы. добавьте свои новые столбцы в соответствующем формате

jsonResultSet.AddColumn(новый JSONResultSetColumn(» «, ваша ширина столбца, ваше имя поля, сортируемый?, false));

после этого перейдите к executeP8Search в том же файле Java, посмотрите на строку под номером 122, повторите результаты поиска, которые были возвращены со значениями из вашего запроса, для каждой строки добавьте соответствующее значение.

Строка JSONResultSetRow = новая строка JSONResultSetRow(sbId.toString(), doc.get_Name(), doc.get_MimeType(), привилегии);

row.AddAttribute(«имя вашего поля», doc.isLocked(), JSONResultSetRow.TYPE_BOOLEAN, null, (новое логическое значение(doc.isLocked())).toString()); //*** пожалуйста, обратите внимание, чтобы добавить соответствующий тип, строку в строковое значение, int, bool и т.д..

jsonResultSet.addRow(строка);

не забудьте исправить ContinueQueryService.java таким же образом.