package net.certware.verification.checklist.view.testers;
import net.certware.verification.checklist.view.ViewList;
import org.eclipse.core.expressions.PropertyTester;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;
/**
* Property tester for view content load.
* @author mrb
* @since 1.2.1
*/
public class LoadedTester extends PropertyTester
{
/**
* Constructor empty.
*/
public LoadedTester() {
}
/**
* Tests whether the view has been loaded with model content.
* Use <code>isLoaded</code> appended as property to extension name space for test.
* @param receiver unused
* @param property test string "isLoaded" or "isNotLoaded"
* @param args unused
* @param expectedValue unused
* @return boolean true if view active condition matches test property
* @see org.eclipse.core.expressions.IPropertyTester#test(Object, String, Object[], Object)
*/
public boolean test(Object receiver, String property, Object[] args, Object expectedValue)
{
boolean loaded = false;
IWorkbenchPart wp;
try {
// some can be null during launch
wp = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
if ( ! (wp instanceof ViewList) )
return false;
} catch( Exception e ) { // $codepro.audit.disable logExceptions
return false;
}
try {
ViewList viewList = (ViewList)wp;
loaded = viewList.getSelectedChecklist() != null;
} catch( Exception e ) {
System.err.println(String.format("%s %s", "View list loaded tester",e.getMessage())); //$NON-NLS-1$
}
if ( "isLoaded".equals(property) ) //$NON-NLS-1$
return loaded;
if ( "isNotLoaded".equals(property)) //$NON-NLS-1$
return !loaded;
return false;
}
}