/** * <p>Copyright: Copyright (c) 2012</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.jres.metadata.ui.viewer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import com.hundsun.ares.studio.core.IARESProject; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.jres.metadata.ui.model.MetadataOverviewElement; import com.hundsun.ares.studio.jres.model.metadata.MetadataItem; import com.hundsun.ares.studio.model.reference.ReferenceInfo; import com.hundsun.ares.studio.reference.ReferenceManager; /** * @author liaogc * �����ֵ��ͻContentProvider */ public class DictionaryConflictContentProvider implements ITreeContentProvider{ private IARESResource resource; private String type; /** * */ public DictionaryConflictContentProvider(IARESResource resource, String type) { this.resource = resource; this.type = type; } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.metadata.ui.viewer.MetadataOverviewContentProvider#getElements(java.lang.Object) */ @Override public Object[] getElements(Object inputElement) { IARESProject curPrj = resource.getARESProject(); List<ReferenceInfo> infoList = ReferenceManager.getInstance().getReferenceInfos(curPrj, type, true); List< MetadataOverviewElement > elementList = new ArrayList<MetadataOverviewElement>(); for (ReferenceInfo referenceInfo : infoList) { IARESResource res = referenceInfo.getResource(); MetadataItem owner = (MetadataItem) referenceInfo.getObject(); // FIXME: ��Ӳ��DZ����̵���Ϣ����������Ϣʹ�õ�ǰ�༭ģ�͵����� elementList.add(new MetadataOverviewElement(res, owner)); } List< MetadataOverviewElement > conflictElementList = new ArrayList<MetadataOverviewElement>();//��ͻ����Ŀ // ����ͬ����ͻ����Ŀ { Map<String, MetadataOverviewElement> nameSet = new HashMap<String, MetadataOverviewElement>(); for (MetadataOverviewElement element : elementList) { String name = element.getItem().getName(); if (nameSet.containsKey(name)) { MetadataOverviewElement firstElement = nameSet.get(name); if(!conflictElementList.contains(firstElement)){ conflictElementList.add(firstElement); } conflictElementList.add(element); } else { nameSet.put(name, element); } } } return conflictElementList.toArray(); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ @Override public void dispose() { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) */ @Override public Object[] getChildren(Object parentElement) { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) */ @Override public Object getParent(Object element) { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */ @Override public boolean hasChildren(Object element) { // TODO Auto-generated method stub return false; } }