/* | |
* (c) Copyright IBM Corp. 2000, 2002. | |
* All Rights Reserved. | |
*/ | |
package org.eclipse.help.internal.context; | |
import org.eclipse.help.*; | |
import org.eclipse.help.internal.HelpSystem; | |
/** | |
* IContext Implementation that performs lazy lookup of | |
* context ID and HelpContext instantiation. | |
* when any of the IContext methods are called. | |
*/ | |
public class ContextProxy implements IContext { | |
private String contextID; | |
private IContext context = null; | |
private boolean used = false; | |
/** | |
* ContextImpl constructor. | |
*/ | |
public ContextProxy(String contextId) { | |
super(); | |
this.contextID = contextId; | |
} | |
/** | |
* Returns a list of related topics for this help context. | |
* | |
* @return a list of related help topics | |
*/ | |
public IHelpResource[] getRelatedTopics() { | |
if (!used) { | |
context = HelpSystem.getContextManager().getContext(contextID); | |
used = true; | |
} | |
if (context == null) | |
return null; | |
return context.getRelatedTopics(); | |
} | |
/** | |
* Returns the text description for this context. | |
* | |
* @return the text description | |
*/ | |
public String getText() { | |
if (!used) { | |
context = HelpSystem.getContextManager().getContext(contextID); | |
used = true; | |
} | |
if (context == null) | |
return null; | |
return context.getText(); | |
} | |
public String getID() { | |
return contextID; | |
} | |
} |