/* | |
* 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.certmanager.ui.model; | |
import java.security.KeyStoreException; | |
import java.util.List; | |
import org.eclipse.core.runtime.IStatus; | |
import org.eclipse.jface.resource.ImageDescriptor; | |
import org.eclipse.ui.IActionFilter; | |
import com.motorolamobility.studio.android.certmanager.exception.KeyStoreManagerException; | |
public interface ITreeNode extends IActionFilter | |
{ | |
public static final String PROP_VALUE_NODE_STATUS_OK = | |
"com.motorolamobility.studio.android.certmanager.core.property.nodeStatusOk"; //$NON-NLS-1$ | |
public static final String PROP_VALUE_NODE_STATUS_KEYSTORE_TYPE_OK = | |
"com.motorolamobility.studio.android.certmanager.core.property.keystoreTypeOk"; //$NON-NLS-1$ | |
/** | |
* Property value used to check if the node has an error status. | |
*/ | |
public static final String PROP_VALUE_NODE_STATUS_ERROR = | |
"com.motorolamobility.studio.android.certmanager.core.property.nodeStatusError"; //$NON-NLS-1$ | |
public static final String PROP_VALUE_NODE_STATUS_WARNING = | |
"com.motorolamobility.studio.android.certmanager.core.property.nodeStatusWarning"; //$NON-NLS-1$ | |
/** | |
* Property name used to test the status of the node. | |
*/ | |
public static final String PROP_NAME_NODE_STATUS = | |
"com.motorolamobility.studio.android.certmanager.core.property.nodeStatus"; //$NON-NLS-1$ | |
public static final String PROP_NAMESPACE = | |
"com.motorolamobility.studio.android.certmanager.core.property"; | |
/** | |
* Method responsible to reload the node itself and its children | |
*/ | |
void refresh() throws KeyStoreManagerException; | |
/** | |
* @return the id | |
*/ | |
String getId(); | |
/** | |
* @return the name | |
*/ | |
String getName(); | |
/** | |
* @return the icon | |
*/ | |
ImageDescriptor getIcon(); | |
/** | |
* @return true if it does not accept a child, false otherwise | |
*/ | |
boolean isLeaf(); | |
/** | |
* 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(); | |
/** | |
* Get parent of the tree node | |
* @return null if it is the tree root, non-null if is a child node | |
*/ | |
ITreeNode getParent(); | |
/** | |
* Retrieves list of children (without any filter) | |
* @return collection of {@link ITreeNode} that are child of this abstract tree node | |
* @throws KeyStoreException | |
* @throws KeyStoreManagerException | |
*/ | |
List<ITreeNode> getChildren() throws KeyStoreManagerException; | |
void addChild(ITreeNode newChild) throws KeyStoreManagerException; | |
} |