/** * 删除保存在首选项中的所有与指定条件相关的数据 * * @param key 条件名 */ private void deletePreference(String[] key) { if (key == null || key.length == 0) { return; } for (int i = 0; i < key.length; i++) { customFilters.remove(key[i]); customFiltersAddtion.remove(key[i]); customFiltersIndex.remove(key[i]); customFilterList.remove(key[i]); } PreferenceStore.saveMap(IPreferenceConstants.MATCH_CONDITION, customFilters); PreferenceStore.saveCustomCondition( IPreferenceConstants.MATCH_CONDITION_ADDITION, customFiltersAddtion); PreferenceStore.saveCustomCondition( IPreferenceConstants.MATCH_CONDITION_INDEX, customFiltersIndex); }
/** * (non-Javadoc) * * @see org.eclipse.jface.dialogs.Dialog#okPressed() */ @Override protected void okPressed() { // 保存自定义条件 String filterNameStr = filterNameTxt.getText(); if (filterNameStr == null || "".equals(filterNameStr)) { MessageDialog.openInformation(getShell(), "", "请输入过滤器名称!"); return; } if (btnIsRemoveFromSrc != null) { // 未安装TE时,该功能被屏蔽,按钮未被初始化。 if (btnIsRemoveFromSrc.getSelection()) { // TODO 将符合条件的匹配从可连接的记忆库中同时删除。该功能在与匹配来源的记忆库无法连接时禁用。 } } StringBuilder xpath = new StringBuilder(); String link = andBtn.getSelection() ? " and " : " or "; ArrayList<String[]> tempValue = new ArrayList<String[]>(); for (DynaComposite comp : conditionList) { // 得到所有自定义条件组合的xpath String tempXpath = comp.getXpath(true); if (RESULT_FAILED.equals(tempXpath)) { return; } xpath.append(link).append(tempXpath); tempValue.add(comp.getTempIndex()); } appendCheckCondition(xpath); if (xpath.length() > 0) { xpath.delete(0, xpath.indexOf(link) + link.length()); customFilters.put(filterNameStr, xpath.toString()); String[] additions = {link.trim(), "" + getCheck()}; customFiltersIndex.put(filterNameStr, tempValue); ArrayList<String[]> tempValue1 = new ArrayList<String[]>(); tempValue1.add(additions); customFiltersAddtion.put(filterNameStr, tempValue1); PreferenceStore.saveMap( IPreferenceConstants.MATCH_CONDITION, new TreeMap<String, String>(customFilters)); PreferenceStore.saveCustomCondition( IPreferenceConstants.MATCH_CONDITION_INDEX, customFiltersIndex); PreferenceStore.saveCustomCondition( IPreferenceConstants.MATCH_CONDITION_ADDITION, customFiltersAddtion); reload(); } }