Get DataContext / Toggle boolean DataContext


public static void toggleDataContext(Object parent, String dataVar) {
	DataContextImpl dcImpl = getDataContext(parent, dataVar);
	if (dcImpl.getValue() instanceof Boolean) {
		Boolean currVal = (Boolean) dcImpl.getValue();
		dcImpl.setValue(!currVal);
	}
}

public static DataContextImpl getDataContext(Object parent, String dataVar) {
	for (DataContext dc : getDataContextList(parent)) {
		DataContextImpl dcImpl = (DataContextImpl) dc;
		if (dataVar.equals(dcImpl.getVar())) {
			return dcImpl;
		}
	}
	return null;
}

private static List<DataContext> getDataContextList(Object parent) {
	try {
		if (parent instanceof UIViewRootEx2) {
			UIViewRootEx2 par = (UIViewRootEx2) parent;
			return par.getDataContexts();
		}
		if (parent instanceof UIPanelEx) {
			UIPanelEx par = (UIPanelEx) parent;
			return par.getDataContexts();
		}
		handleException(new Throwable("The object passed in is not compatible with dataContexts"));
		return null;
	} catch (Throwable e) {
		handleException(e);
		return null;
	}
}
All code submitted to OpenNTF XSnippets, whether submitted as a "Snippet" or in the body of a Comment, is provided under the Apache License Version 2.0. See Terms of Use for full details.
1 comment(s)Login first to comment...
John Pishko
(at 06:16 on 20.07.2016)
The import statements needed are...
import com.ibm.xsp.model.DataContextImpl;
import com.ibm.xsp.component.UIViewRootEx2;
import com.ibm.xsp.component.UIPanelEx;
import com.ibm.xsp.model.DataContext;
import java.util.List;