/*******************************************************************************
* Copyright (c) 2007, 2008 Symbian Software Limited 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:
* Bala Torati (Symbian) - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.ui.templateengine.uitree;
import java.util.Map;
import org.eclipse.cdt.ui.templateengine.SimpleElementException;
import org.eclipse.cdt.ui.templateengine.uitree.uiwidgets.UIComposite;
/**
* UIElement describes the abstract behavior expected from GenericUIElementGroup and
* InputUIElement. Some of the methods are meaningful to group Element. They will throw
* SimpleElementException when invoked on InputUIElement.
*/
public abstract class UIElement {
public static final String ID = "id"; //$NON-NLS-1$
public static final String TYPE = "type"; //$NON-NLS-1$
public static final String DESCRIPTION = "description"; //$NON-NLS-1$
public static final String TITLE = "label"; //$NON-NLS-1$
public static final String IMAGELOCATION = "image"; //$NON-NLS-1$
/**
* Parent of this UIElement
*/
private UIElement parent;
/**
* Attributes of this UIElement
*/
protected UIAttributes uiAttributes;
public UIElement(UIAttributes uiAttributes) {
this.uiAttributes = uiAttributes;
}
/**
* set the Parent of this UIElement
*/
public void setParent(UIElement parent) {
this.parent = parent;
}
/**
* get the Parent of this UIElement
*/
public UIElement getParent() {
return parent;
}
/**
* get the attributes of this UIElement
*/
public UIAttributes getAttributes() {
return uiAttributes;
}
/**
* set the Values of UIElements from the given HashMap. This method is called recursively on all the children, if the UIElement instance on which this mehtod called is a GenericUIElementGroup. return void.
*/
public abstract void setValues(Map<String, String> valueMap);
/**
* get The values as a HashMap. This method is called recursively on all the children, if the UIElement instance on which this mehtod called is a GenericUIElementGroup.
* @return HashMap.
*/
public abstract Map<String, String> getValues();
/**
* This method adds UIWidets to UIComposite. This method is called
* recursively on all the children, if the UIElement instance on which this
* method called is a GenericUIElementGroup.
*
* @param uiComposite
*/
public abstract void createWidgets(UIComposite uiComposite);
/**
* disposes the widget. This method is called recursively on all the
* children, if the UIElement instance on which this method is called, is a
* GenericUIElementGroup.
*
*/
public abstract void disposeWidget();
/**
* getThe child UIElement at the given index. This method throws
* SimpleElementException, if invoked on a InputUIElement.
*
* @param index
* @return The child UIElement
* @throws SimpleElementException
*/
public abstract UIElement getChild(int index) throws SimpleElementException;
/**
* add the given UIElement to the childList. This method throws
* SimpleElementException, if invoked on a InputUIElement.
*
* @param uiElement
* @throws SimpleElementException
*/
public abstract void addToChildList(UIElement uiElement) throws SimpleElementException;
/**
* returns the child count of UIElement. This method throws
* SimpleElementException, if invoked on a InputUIElement.
*
* @return the child count of UIElement
* @throws SimpleElementException
*/
public abstract int getChildCount() throws SimpleElementException;
/**
* The return value depends on the state of the UIElement. This information
* is used by UIPage to enable or disable the UIPage.
*
* @return boolean.
*/
public abstract boolean isValid();
}