///*******************************************************************************
// * Copyright (c) 2005, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.jface.fieldassist;
//
//import java.util.ArrayList;
//
///**
// * SimpleContentProposalProvider is a class designed to map a static list of
// * Strings to content proposals.
// *
// * @see IContentProposalProvider
// * @since 1.0
// *
// */
//public class SimpleContentProposalProvider implements IContentProposalProvider {
//
// /*
// * The proposals provided.
// */
// private String[] proposals;
//
// /*
// * The proposals mapped to IContentProposal. Cached for speed in the case
// * where filtering is not used.
// */
// private IContentProposal[] contentProposals;
//
// /*
// * Boolean that tracks whether filtering is used.
// */
// private boolean filterProposals = false;
//
// /**
// * Construct a SimpleContentProposalProvider whose content proposals are
// * always the specified array of Objects.
// *
// * @param proposals
// * the array of Strings to be returned whenever proposals are
// * requested.
// */
// public SimpleContentProposalProvider(String[] proposals) {
// super();
// this.proposals = proposals;
// }
//
// /**
// * Return an array of Objects representing the valid content proposals for a
// * field. Ignore the current contents of the field.
// *
// * @param contents
// * the current contents of the field (only consulted if filtering
// * is set to <code>true</code>)
// * @param position
// * the current cursor position within the field (ignored)
// * @return the array of Objects that represent valid proposals for the field
// * given its current content.
// */
// public IContentProposal[] getProposals(String contents, int position) {
// if (filterProposals) {
// ArrayList list = new ArrayList();
// for (int i = 0; i < proposals.length; i++) {
// if (proposals[i].length() > contents.length()
// && proposals[i].substring(0, contents.length())
// .equalsIgnoreCase(contents)) {
// list.add(makeContentProposal(proposals[i]));
// }
// }
// return (IContentProposal[]) list.toArray(new IContentProposal[list
// .size()]);
// }
// if (contentProposals == null) {
// contentProposals = new IContentProposal[proposals.length];
// for (int i = 0; i < proposals.length; i++) {
// contentProposals[i] = makeContentProposal(proposals[i]);
// }
// }
// return contentProposals;
// }
//
// /**
// * Set the Strings to be used as content proposals.
// *
// * @param items
// * the array of Strings to be used as proposals.
// */
// public void setProposals(String[] items) {
// this.proposals = items;
// contentProposals = null;
// }
//
// /**
// * Set the boolean that controls whether proposals are filtered according to
// * the current field content.
// *
// * @param filterProposals
// * <code>true</code> if the proposals should be filtered to
// * show only those that match the current contents of the field,
// * and <code>false</code> if the proposals should remain the
// * same, ignoring the field content.
// * @since 1.0
// */
// public void setFiltering(boolean filterProposals) {
// this.filterProposals = filterProposals;
// // Clear any cached proposals.
// contentProposals = null;
// }
//
// /*
// * Make an IContentProposal for showing the specified String.
// */
// private IContentProposal makeContentProposal(final String proposal) {
// return new IContentProposal() {
// public String getContent() {
// return proposal;
// }
//
// public String getDescription() {
// return null;
// }
//
// public String getLabel() {
// return null;
// }
//
// public int getCursorPosition() {
// return proposal.length();
// }
// };
// }
//}