/** * Դ�������ƣ�OracleSpaceColumnProposalProvider.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.database.oracle.resources * ����˵����$desc * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.jres.database.oracle.ui.viewer; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.eclipse.jface.fieldassist.IContentProposal; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.model.ExtensibleModel; import com.hundsun.ares.studio.jres.database.oracle.constant.IOracleRefType; import com.hundsun.ares.studio.jres.model.database.oracle.OracleSpaceResourceData; import com.hundsun.ares.studio.jres.model.database.oracle.TableSpace; import com.hundsun.ares.studio.jres.model.database.oracle.TableSpaceRelation; import com.hundsun.ares.studio.ui.cellEditor.AresContentProposalProvider; /** * @author yanwj06282 * */ public class OracleSpaceColumnProposalProvider extends AresContentProposalProvider { private String type ; public OracleSpaceColumnProposalProvider(String type) { super(); this.type = type; } @Override public void updateContent(Object element) { List<ExtensibleModel>input = new ArrayList<ExtensibleModel>(); if(element != null){ if (element instanceof TableSpaceRelation) { OracleSpaceResourceData oracleSpaceRD = (OracleSpaceResourceData) ((TableSpaceRelation)element).eContainer(); if(StringUtils.equals(type, IOracleRefType.Space)){ input.addAll(oracleSpaceRD.getSpaces()); } } } setInput(input.toArray(new ExtensibleModel[0])); } /* (non-Javadoc) * @see com.hundsun.ares.studio.ui.cellEditor.AresContentProposalProvider#getProposals(java.lang.String, int) */ @Override public IContentProposal[] getProposals(String contents, int position) { // updateContent(null); List<IContentProposal> proposals = new ArrayList<IContentProposal>(); if (input != null) { for (Object obj : input) { if(obj instanceof TableSpace){ TableSpace item = (TableSpace)obj; if (StringUtils.startsWithIgnoreCase(item.getName(), contents)) { IContentProposal proposal = new columnProposal(item.getName(), item.getChineseName()); if (proposal != null) { proposals.add(proposal); } } } } } return proposals.toArray(new IContentProposal[0]); } //��ǰ���е��ֶκ�������ContentProposal protected class columnProposal implements IContentProposal{ String name = ""; String label = ""; public columnProposal(String name, String description) { super(); this.name = name; this.label = name + "--->" + description; } @Override public String getContent() { return name; } @Override public int getCursorPosition() { return name.length(); } @Override public String getLabel() { return label; } @Override public String getDescription() { return null; } } }