/* | |
* Copyright (C) 2012 The Android Open Source Project | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package com.motorolamobility.studio.android.db.core.ui; | |
import java.util.List; | |
import java.util.regex.Pattern; | |
import org.eclipse.core.runtime.IStatus; | |
import org.eclipse.jface.resource.ImageDescriptor; | |
import org.eclipse.ui.IActionFilter; | |
/** | |
* This interface represents a db tree node. | |
*/ | |
public interface ITreeNode extends IActionFilter | |
{ | |
/** | |
* Method responsible to reload the node itself and its children | |
*/ | |
void refresh(); | |
/** | |
* Get parent of the tree node | |
* @return null if it is the tree root, non-null if is a child node | |
*/ | |
ITreeNode getParent(); | |
/** | |
* @param parent null if it is the tree root, non-null if is a child node | |
*/ | |
void setParent(ITreeNode parent); | |
/** | |
* Retrieves list of children (without any filter) | |
* @return collection of {@link AbstractTreeNode} that are child of this abstract tree node | |
*/ | |
List<ITreeNode> getChildren(); | |
/** | |
* Clear the children (e.g. before reloading again) | |
*/ | |
void clear(); | |
/** | |
* Retrieve the child for the given node index | |
* @param index | |
* @return {@link AbstractTreeNode} if child with the given index was found, null if node not found as a child | |
*/ | |
ITreeNode getChild(int index); | |
/** | |
* Retrieve the child for the given node ID | |
* @param id node ID as specified in the extension point com.motorolamobility.studio.android.db.core.dbRootNode | |
* @return {@link AbstractTreeNode} if child with the given ID was found, null if node not found as a child | |
*/ | |
ITreeNode getChildById(String id); | |
/** | |
* Get list of children nodes that matches a regular expression | |
* @param regex regular expression to filter nodes, see {@link Pattern} for the constructs | |
* if null, returns all items | |
* @return list of {@link AbstractTreeNode} that matches the view filter | |
*/ | |
List<ITreeNode> getFilteredChildren(String regex); | |
void putChild(ITreeNode treeNode); | |
void putChildren(List<ITreeNode> childrenList); | |
/** | |
* Remove a child with the given node | |
* @param node | |
*/ | |
void removeChild(ITreeNode node); | |
/** | |
* @return true if node is getting data to be added in the tree, false otherwise | |
*/ | |
boolean isLoading(); | |
/** | |
* @param isLoading true if node is getting data to be added in the tree, false otherwise | |
*/ | |
void setLoading(boolean isLoading); | |
/** | |
* @return the id | |
*/ | |
String getId(); | |
/** | |
* @param id the id to set | |
*/ | |
void setId(String id); | |
/** | |
* @return the name | |
*/ | |
String getName(); | |
/** | |
* @param name the name to set | |
*/ | |
void setName(String name); | |
/** | |
* @return the icon | |
*/ | |
ImageDescriptor getIcon(); | |
/** | |
* @param icon the icon to set | |
*/ | |
void setIcon(ImageDescriptor icon); | |
/** | |
* @return the canRefresh | |
*/ | |
IStatus canRefresh(); | |
/** | |
* @return true if it does not accept a child, false otherwise | |
*/ | |
boolean isLeaf(); | |
/** | |
* Refreshes this node in a background task | |
* @param canRefreshInput | |
*/ | |
void refreshAsync(); | |
/** | |
* Refreshes this node in a background task. | |
* @param canRefreshInput is an optional parameter, is intended to be set used by refresh handler. | |
*/ | |
void refreshAsync(boolean canRefreshYesResponse); | |
/** | |
* Clean method is intended to be called right before removing this node from it's parent. | |
* All resource cleaning must be done in this method. | |
*/ | |
void cleanUp(); | |
/** | |
* Set the node Status, allowing the tree to decorate itself on errors. | |
* Is status is ERROR the icon will be decorated with a error image and tooltip will be replaced by status.getMessage() if available. | |
* @param status | |
*/ | |
void setNodeStatus(IStatus status); | |
/** | |
* Retrieves the current node status. | |
* @return | |
*/ | |
IStatus getNodeStatus(); | |
/** | |
* Set the tooltip to be displayed for this node. | |
* @param tooltip | |
*/ | |
void setTooltip(String tooltip); | |
/** | |
* @return this node tooltip text | |
*/ | |
String getTooltip(); | |
} |