/** * <p>Copyright: Copyright (c) 2009</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.ui.cellEditor; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.eclipse.jface.fieldassist.IContentProposal; import org.eclipse.jface.fieldassist.IContentProposalProvider; /** * һ������Input��ContentProposalProvider��ʵ�֣�Input����ͨ��setInput()������̬�ı�; * ͨ��Helper�����ݵ�ǰ�����ContentProposal���й��� * * �򵥵�˵��Providerʵ�ֻ��ڵ�ǰ�����ĵĹ��ˣ� ���൱�ڸ��ݡ�������ṩ��ͬ���߼��� * ���磬�ڽӿ��к������ݿ�����ʾ���ֶεIJ�ͬ��ͨ����ͬ��Provider��ʵ�֡� * * Helper��ʵ�ְ���ʾ����ת��Ϊ�����IContentProposal����Ҫ�ѱ�׼�ֶ�ת������ʾ���Ǹ��ַ�������Ҫ�� * һ����������ת������ʾ���ַ����������������ͨ����ͬ��Helper��ʵ�֡� ���൱�ڸ��ݡ���ʾʲô���ṩ��ͬ��Helper��ʵ�֣� * * ������ͬ��Provider��Helper����ϣ�ʵ�ֲ�ͬ���߼��� ���� * ���ڱ��ֶ�� ��ʾ����׼�ֶΡ� * ���ڽӿڲ���� ��ʾ ����׼�ֶΡ� * ... * @author sundl */ public class AresContentProposalProvider implements IContentProposalProvider { protected Object[] input; protected IContentProposalProviderHelper helper; public AresContentProposalProvider() {} public AresContentProposalProvider(IContentProposalProviderHelper helper) { this.helper = helper; } public void setHelper(IContentProposalProviderHelper helper) { this.helper = helper; } protected void setInput(Object[] input) { this.input = input; } /** * ������ʾ���� */ public void updateContent(Object element) {}; /* (non-Javadoc) * @see org.eclipse.jface.fieldassist.IContentProposalProvider#getProposals(java.lang.String, int) */ @Override public IContentProposal[] getProposals(String contents, int position) { List<IContentProposal> proposals = new ArrayList<IContentProposal>(); if (input != null) { for (Object obj : input) { IContentProposal proposal = helper.getProposal(contents, position, obj); if (proposal != null) { proposals.add(proposal); } } } Collections.sort(proposals, new AresContentProposalComparator(contents)); return proposals.toArray(new IContentProposal[0]); } }