cmsfieldslist.java
来自「找了很久才找到到源代码」· Java 代码 · 共 729 行 · 第 1/2 页
JAVA
729 行
List items = getList().getAllContent();
Iterator itItems = items.iterator();
CmsListItem item;
while (itItems.hasNext()) {
item = (CmsListItem)itItems.next();
if (detailId.equals(LIST_DETAIL_FIELD)) {
fillDetailField(item, detailId);
}
}
}
/**
* @see org.opencms.workplace.list.A_CmsListDialog#getListItems()
*/
protected List getListItems() {
List result = new ArrayList();
// get content
List fields = getFields();
Iterator itFields = fields.iterator();
CmsSearchField field;
while (itFields.hasNext()) {
field = (CmsSearchField)itFields.next();
CmsListItem item = getList().newItem(field.getName());
String defaultValue = field.getDefaultValue();
if (defaultValue == null) {
defaultValue = "-";
}
item.set(LIST_COLUMN_NAME, field.getName());
item.set(LIST_COLUMN_DISPLAY, field.getDisplayName());
item.set(LIST_COLUMN_BOOST, new Float(field.getBoost()).toString());
item.set(LIST_COLUMN_INDEX, field.getIndexed());
item.set(LIST_COLUMN_EXCERPT_HIDE, Boolean.valueOf(field.isInExcerpt()));
item.set(LIST_COLUMN_STORE_HIDE, Boolean.valueOf(field.isStored()));
item.set(LIST_COLUMN_DEFAULT, defaultValue);
result.add(item);
}
return result;
}
/**
* @see org.opencms.workplace.list.A_CmsListDialog#setColumns(org.opencms.workplace.list.CmsListMetadata)
*/
protected void setColumns(CmsListMetadata metadata) {
// create column for edit
CmsListColumnDefinition editCol = new CmsListColumnDefinition(LIST_COLUMN_EDIT);
editCol.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_EDIT_NAME_0));
editCol.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_COL_EDIT_NAME_HELP_0));
editCol.setWidth("20");
editCol.setAlign(CmsListColumnAlignEnum.ALIGN_LEFT);
editCol.setSorteable(false);
// add dummy icon
CmsListDirectAction editAction = new CmsListDirectAction(LIST_ACTION_EDIT);
editAction.setName(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_EDIT_NAME_0));
editAction.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_COL_EDIT_NAME_HELP_0));
editAction.setIconPath(LIST_ICON_FIELD_EDIT);
editCol.addDirectAction(editAction);
// add it to the list definition
metadata.addColumn(editCol);
// create column for new mapping
CmsListColumnDefinition mappingCol = new CmsListColumnDefinition(LIST_COLUMN_MAPPING);
mappingCol.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_MAPPING_0));
mappingCol.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_COL_MAPPING_HELP_0));
mappingCol.setWidth("20");
mappingCol.setAlign(CmsListColumnAlignEnum.ALIGN_LEFT);
mappingCol.setSorteable(false);
// add mapping action
CmsListDirectAction mappingAction = new CmsListDirectAction(LIST_ACTION_MAPPING);
mappingAction.setName(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_MAPPING_0));
mappingAction.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_COL_MAPPING_HELP_0));
mappingAction.setIconPath(ICON_ADD);
mappingCol.addDirectAction(mappingAction);
// add it to the list definition
metadata.addColumn(mappingCol);
// add column for name
CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME);
nameCol.setAlign(CmsListColumnAlignEnum.ALIGN_LEFT);
nameCol.setName(Messages.get().container(Messages.GUI_LIST_SEARCHINDEX_COL_NAME_0));
nameCol.setSorteable(true);
nameCol.setWidth("45%");
// add overview action
CmsListDefaultAction overviewAction = new CmsListDefaultAction(LIST_ACTION_OVERVIEW_FIELD);
overviewAction.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_OVERVIEW_NAME_0));
overviewAction.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_COL_OVERVIEW_NAME_HELP_0));
nameCol.addDefaultAction(overviewAction);
metadata.addColumn(nameCol);
// add column for display
CmsListColumnDefinition displayCol = new CmsListColumnDefinition(LIST_COLUMN_DISPLAY);
displayCol.setAlign(CmsListColumnAlignEnum.ALIGN_LEFT);
displayCol.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_DISPLAY_0));
displayCol.setWidth("35%");
metadata.addColumn(displayCol);
// add hide column for store
CmsListColumnDefinition storeHideCol = new CmsListColumnDefinition(LIST_COLUMN_STORE_HIDE);
storeHideCol.setVisible(false);
metadata.addColumn(storeHideCol);
// add hide column for excerpt
CmsListColumnDefinition excerptHideCol = new CmsListColumnDefinition(LIST_COLUMN_EXCERPT_HIDE);
excerptHideCol.setVisible(false);
metadata.addColumn(excerptHideCol);
// add column for store
CmsListColumnDefinition storeCol = new CmsListColumnDefinition(LIST_COLUMN_STORE);
storeCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
storeCol.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_STORE_0));
// true action
CmsListDirectAction storeTrueAction = new CmsListDirectAction(LIST_ACTION_STORE_TRUE) {
/**
* @see org.opencms.workplace.tools.A_CmsHtmlIconButton#isVisible()
*/
public boolean isVisible() {
if (getItem() != null) {
return ((Boolean)getItem().get(LIST_COLUMN_STORE_HIDE)).booleanValue();
}
return super.isVisible();
}
};
storeTrueAction.setName(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_TRUE_NAME_0));
storeTrueAction.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_TRUE_HELP_0));
storeTrueAction.setConfirmationMessage(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_TRUE_CONF_0));
storeTrueAction.setIconPath(ICON_TRUE);
// false action
CmsListDirectAction storeFalseAction = new CmsListDirectAction(LIST_ACTION_STORE_FALSE) {
/**
* @see org.opencms.workplace.tools.A_CmsHtmlIconButton#isVisible()
*/
public boolean isVisible() {
if (getItem() != null) {
return !((Boolean)getItem().get(LIST_COLUMN_STORE_HIDE)).booleanValue();
}
return super.isVisible();
}
};
storeFalseAction.setName(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_FALSE_NAME_0));
storeFalseAction.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_FALSE_HELP_0));
storeFalseAction.setConfirmationMessage(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_FALSE_CONF_0));
storeFalseAction.setIconPath(ICON_FALSE);
storeCol.addDirectAction(storeTrueAction);
storeCol.addDirectAction(storeFalseAction);
metadata.addColumn(storeCol);
// add colum for excerpt
CmsListColumnDefinition excerptCol = new CmsListColumnDefinition(LIST_COLUMN_EXCERPT);
excerptCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
excerptCol.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_EXCERPT_0));
// true action
CmsListDirectAction excerptTrueAction = new CmsListDirectAction(LIST_ACTION_EXCERPT_TRUE) {
/**
* @see org.opencms.workplace.tools.A_CmsHtmlIconButton#isVisible()
*/
public boolean isVisible() {
if (getItem() != null) {
return ((Boolean)getItem().get(LIST_COLUMN_EXCERPT_HIDE)).booleanValue();
}
return super.isVisible();
}
};
excerptTrueAction.setName(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_TRUE_NAME_0));
excerptTrueAction.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_TRUE_HELP_0));
excerptTrueAction.setConfirmationMessage(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_TRUE_CONF_0));
excerptTrueAction.setIconPath(ICON_TRUE);
// false action
CmsListDirectAction excerptFalseAction = new CmsListDirectAction(LIST_ACTION_EXCERPT_FALSE) {
/**
* @see org.opencms.workplace.tools.A_CmsHtmlIconButton#isVisible()
*/
public boolean isVisible() {
if (getItem() != null) {
return !((Boolean)getItem().get(LIST_COLUMN_EXCERPT_HIDE)).booleanValue();
}
return super.isVisible();
}
};
excerptFalseAction.setName(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_FALSE_NAME_0));
excerptFalseAction.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_FALSE_HELP_0));
excerptFalseAction.setConfirmationMessage(Messages.get().container(Messages.GUI_LIST_FIELD_ACTION_FALSE_CONF_0));
excerptFalseAction.setIconPath(ICON_FALSE);
excerptCol.addDirectAction(excerptTrueAction);
excerptCol.addDirectAction(excerptFalseAction);
metadata.addColumn(excerptCol);
// add column for index
CmsListColumnDefinition indexCol = new CmsListColumnDefinition(LIST_COLUMN_INDEX);
indexCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
indexCol.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_INDEX_0));
indexCol.setWidth("10%");
metadata.addColumn(indexCol);
// add column for boost
CmsListColumnDefinition boostCol = new CmsListColumnDefinition(LIST_COLUMN_BOOST);
boostCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
boostCol.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_BOOST_0));
boostCol.setWidth("5%");
metadata.addColumn(boostCol);
// add column for default
CmsListColumnDefinition defaultCol = new CmsListColumnDefinition(LIST_COLUMN_DEFAULT);
defaultCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
defaultCol.setName(Messages.get().container(Messages.GUI_LIST_FIELD_COL_DEFAULT_0));
defaultCol.setWidth("5%");
metadata.addColumn(defaultCol);
}
/**
* @see org.opencms.workplace.list.A_CmsListDialog#setIndependentActions(org.opencms.workplace.list.CmsListMetadata)
*/
protected void setIndependentActions(CmsListMetadata metadata) {
// add field configuration details
CmsListItemDetails configDetails = new CmsListItemDetails(LIST_DETAIL_FIELD);
configDetails.setAtColumn(LIST_COLUMN_NAME);
configDetails.setVisible(false);
configDetails.setShowActionName(Messages.get().container(Messages.GUI_LIST_FIELD_DETAIL_MAPPINGS_SHOW_0));
configDetails.setShowActionHelpText(Messages.get().container(
Messages.GUI_LIST_FIELD_DETAIL_MAPPINGS_SHOW_HELP_0));
configDetails.setHideActionName(Messages.get().container(Messages.GUI_LIST_FIELD_DETAIL_MAPPINGS_HIDE_0));
configDetails.setHideActionHelpText(Messages.get().container(
Messages.GUI_LIST_FIELD_DETAIL_MAPPINGS_HIDE_HELP_0));
configDetails.setName(Messages.get().container(Messages.GUI_LIST_FIELD_DETAIL_MAPPINGS_NAME_0));
configDetails.setFormatter(new CmsListItemDetailsFormatter(Messages.get().container(
Messages.GUI_LIST_FIELD_DETAIL_MAPPINGS_NAME_0)));
metadata.addItemDetails(configDetails);
}
/**
* @see org.opencms.workplace.list.A_CmsListDialog#setMultiActions(org.opencms.workplace.list.CmsListMetadata)
*/
protected void setMultiActions(CmsListMetadata metadata) {
// add add multi action
CmsListMultiAction deleteMultiAction = new CmsListMultiAction(LIST_MACTION_DELETEFIELD);
deleteMultiAction.setName(Messages.get().container(Messages.GUI_LIST_FIELD_MACTION_DELETEFIELD_NAME_0));
deleteMultiAction.setHelpText(Messages.get().container(Messages.GUI_LIST_FIELD_MACTION_DELETEFIELD_NAME_HELP_0));
deleteMultiAction.setConfirmationMessage(Messages.get().container(
Messages.GUI_LIST_FIELD_MACTION_DELETEFIELD_CONF_0));
deleteMultiAction.setIconPath(ICON_MULTI_DELETE);
metadata.addMultiAction(deleteMultiAction);
}
/**
* @see org.opencms.workplace.list.A_CmsListDialog#validateParamaters()
*/
protected void validateParamaters() throws Exception {
// will throw NPE if something wrong
OpenCms.getSearchManager().getFieldConfiguration(getParamFieldconfiguration()).getFields();
}
/**
* Writes the updated search configuration back to the XML
* configuration file and refreshes the complete list.<p>
*
* @param refresh if true, the list items are refreshed
*/
protected void writeConfiguration(boolean refresh) {
// update the XML configuration
OpenCms.writeConfiguration(CmsSearchConfiguration.class);
if (refresh) {
refreshList();
}
}
/**
* Checks the configuration to write.<p>
*
* @param fields list of fields of the current field configuration
* @return true if configuration is valid, otherwise false
*/
private boolean checkWriteConfiguration(List fields) {
if (fields == null) {
return false;
}
Iterator itFields = fields.iterator();
while (itFields.hasNext()) {
CmsSearchField curField = (CmsSearchField)itFields.next();
if (curField.getMappings().isEmpty()) {
return false;
}
}
return true;
}
/**
* Fills details of the field into the given item. <p>
*
* @param item the list item to fill
* @param detailId the id for the detail to fill
*/
private void fillDetailField(CmsListItem item, String detailId) {
StringBuffer html = new StringBuffer();
// search for the corresponding CmsSearchIndex:
String idxFieldName = (String)item.get(LIST_COLUMN_NAME);
List fields = OpenCms.getSearchManager().getFieldConfiguration(m_paramFieldconfiguration).getFields();
Iterator itFields = fields.iterator();
CmsSearchField idxField = null;
while (itFields.hasNext()) {
CmsSearchField curField = (CmsSearchField)itFields.next();
if (curField.getName().equals(idxFieldName)) {
idxField = curField;
}
}
if (idxField != null) {
html.append("<ul>\n");
Iterator itMappings = idxField.getMappings().iterator();
while (itMappings.hasNext()) {
CmsSearchFieldMapping mapping = (CmsSearchFieldMapping)itMappings.next();
html.append(" <li>\n").append(" ");
html.append(mapping.getType().toString());
if (CmsStringUtil.isNotEmpty(mapping.getParam())) {
html.append("=").append(mapping.getParam()).append("\n");
}
html.append(" </li>");
}
html.append("</ul>\n");
}
item.set(detailId, html.toString());
}
/**
* Returns the configured fields of the current field configuration.
*
* @return the configured fields of the current field configuration
*/
private List getFields() {
CmsSearchManager manager = OpenCms.getSearchManager();
CmsSearchFieldConfiguration fieldConfig = manager.getFieldConfiguration(getParamFieldconfiguration());
List result;
if (fieldConfig != null) {
result = fieldConfig.getFields();
} else {
result = new ArrayList(0);
if (LOG.isErrorEnabled()) {
LOG.error(Messages.get().getBundle().key(
Messages.ERR_SEARCHINDEX_EDIT_MISSING_PARAM_1,
A_CmsFieldConfigurationDialog.PARAM_FIELDCONFIGURATION));
}
}
return result;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?