/*******************************************************************************
* Copyright (c) 2010 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.wst.sse.ui.preferences;
/**
* <p>
* Implementers of the <code>org.eclipse.wst.sse.ui.completionProposalCategoriesConfiguration</code>
* extension will need an implementation of this interface for their extension
* </p>
* <p>
* <b>NOTE: </b>Implementers must have a 0 argument constructor so class can be instantiated by
* extension.
* </p>
*
* @see ICompletionProposalCategoriesConfigurationWriter
*/
public interface ICompletionProposalCategoriesConfigurationReader {
/**
* The default is to display a category on its own page if not otherwise defined by a property.
*/
boolean DEFAULT_DISPLAY_ON_OWN_PAGE = true;
/** The default is to display a category on the default content assist page. */
boolean DEFAULT_INCLUDE_ON_DEFAULTS_PAGE = true;
/** the default sort order if none is defined by a properties extension */
int DEFAULT_SORT_ORDER = Integer.MAX_VALUE;
/**
* <p>
* Determines if the given category should be displayed on its own content assist page
* </p>
*
* @param categoryID determine if this category should be displayed on its own content assist page
* @return <code>true</code> if the given category should be displayed on its own content assist
* page, <code>false</code> otherwise
*/
boolean shouldDisplayOnOwnPage(String categoryID);
/**
* <p>
* Determines if the given category should be displayed on the default content assist page
* </p>
*
* @param categoryID determine if this category should be displayed on the default content assist
* page
* @return <code>true</code> if the given category should be displayed on the default content
* assist page, <code>false</code> otherwise
*/
boolean shouldDisplayOnDefaultPage(String categoryID);
/**
* <p>
* Determines the sort order ranking of the given category when compared to the other categories,
* this is used to determine the order in which the separate content assist pages should be
* displayed
* </p>
*
* @param categoryID determine the sort order ranking of this category
* @return the sort order ranking of the given category when compared to the other categories
*/
int getPageSortOrder(String categoryID);
/**
* <p>
* Determines the sort order ranking of the given category when compared to the other categories,
* this is used to determine the order in which categories should be listed on the default page
* </p>
*
* @param categoryID determine the sort order ranking of this category
* @return the sort order ranking of the given category when compared to the other categories
*/
int getDefaultPageSortOrder(String categoryID);
}