/******************************************************************************* * Copyright (c) 2007, 2009 Intel 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: * Intel Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.cdt.ui.newui; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.swt.widgets.Button; import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; import org.eclipse.cdt.core.settings.model.ICResourceDescription; import org.eclipse.cdt.ui.dialogs.ICOptionContainer; /** * Interface provides a set of utility methods * provided by new CDT model property page. * Property tabs associated to this page receive * link to this interface and, so, can access * required data, such as project, config etc. * * In addition, some methods allow to send * control messages to other pages / tabs. * * @noextend This interface is not intended to be extended by clients. * @noimplement This interface is not intended to be implemented by clients. */ public interface ICPropertyProvider extends ICOptionContainer { // new list of config descriptions for given project ICConfigurationDescription[] getCfgsReadOnly(IProject p); // list of loaded config descriptions for current project ICConfigurationDescription[] getCfgsEditable(); // Resource description for given object in current cfg ICResourceDescription getResDesc(); // Resource description for given object, in given cfg ICResourceDescription getResDesc(ICConfigurationDescription cfgd); // get Affected object (project, folder, file) IAdaptable getElement(); // ask page to enable or disable config selection void enableConfigSelection (boolean enable); // // set of methods intended to handle messages // // 1. send message to all tabs in all pages void informAll(int code, Object data); // 2. send message to all pages. void informPages(int code, Object data); // 3. send message only to current page void handleMessage(int code, Object data); // // set of methods for object kind check // boolean isForProject(); boolean isForFolder(); boolean isForFile(); boolean isForPrefs(); // Checks whether a project is new CDT model-style boolean isCDTProject(IProject p); boolean isMultiCfg(); // Gives access to buttons Button getAButton(); Button getDButton(); }