use of com.google.security.zynamics.binnavi.Gui.CriteriaDialog.Conditions.And.CAndCriterium in project binnavi by google.
the class JCriteriumTreeModelTest method testRemoveNode.
@Test
public void testRemoveNode() {
final JTree tree = new JTree();
final CCriteriumTree cCriteriumTree = new CCriteriumTree();
final CCriteriaFactory cCriteriaFactory = new CCriteriaFactory(m_graph, null, null);
final JCriteriumTreeModel jCriterumTreeModel = new JCriteriumTreeModel(tree, cCriteriumTree, cCriteriaFactory.getConditions());
final CCriteriumTreeNode child = new CCriteriumTreeNode(new CColorCriterium(m_graph));
cCriteriumTree.appendNode(cCriteriumTree.getRoot(), child);
final CCriteriumTreeNode child2 = new CCriteriumTreeNode(new CAndCriterium());
cCriteriumTree.insertNode(cCriteriumTree.getRoot(), child2);
final CCriteriumTreeNode child3 = new CCriteriumTreeNode(new CColorCriterium(m_graph));
cCriteriumTree.appendNode(child2, child3);
cCriteriumTree.remove(child);
assertEquals(1, ((JCriteriumTreeNode) jCriterumTreeModel.getRoot()).getChildCount());
assertEquals(1, ((JCriteriumTreeNode) ((JCriteriumTreeNode) jCriterumTreeModel.getRoot()).getChildAt(0)).getChildCount());
assertEquals(child2.getCriterium(), ((JCriteriumTreeNode) ((JCriteriumTreeNode) jCriterumTreeModel.getRoot()).getChildAt(0)).getCriterium());
}
use of com.google.security.zynamics.binnavi.Gui.CriteriaDialog.Conditions.And.CAndCriterium in project binnavi by google.
the class CExpressionTreeValidator method isValid.
/**
* Checks whether a given tree contains a valid boolean formula.
*
* @param tree The tree to check.
*
* @return True, if the tree is valid. False, otherwise.
*/
public static boolean isValid(final JCriteriumTree tree) {
final JCriteriumTreeNode root = (JCriteriumTreeNode) tree.getModel().getRoot();
if (root.getChildCount() != 1) {
return false;
}
final Enumeration<?> enumeration = root.breadthFirstEnumeration();
while (enumeration.hasMoreElements()) {
final JCriteriumTreeNode node = (JCriteriumTreeNode) enumeration.nextElement();
final ICriterium type = node.getCriterium();
final int count = node.getChildCount();
if ((type instanceof CAndCriterium || type instanceof COrCriterium) && count < 2) {
return false;
} else if (type instanceof CNotCriterium && count != 1) {
return false;
}
}
return true;
}
use of com.google.security.zynamics.binnavi.Gui.CriteriaDialog.Conditions.And.CAndCriterium in project binnavi by google.
the class CCriteriumFunctionsTest method testAppendOne.
@Test
public void testAppendOne() {
final CCriteriumTree cCriteriumTree = new CCriteriumTree();
final CCriteriumTreeNode child = new CCriteriumTreeNode(new CColorCriterium(m_graph));
cCriteriumTree.appendNode(cCriteriumTree.getRoot(), child);
CCriteriumFunctions.appendCriterium(cCriteriumTree, cCriteriumTree.getRoot().getChildren().get(0), new CAndCriterium());
assertTrue(cCriteriumTree.getRoot().getChildren().get(0).getChildren().get(0).getCriterium() instanceof CAndCriterium);
}
use of com.google.security.zynamics.binnavi.Gui.CriteriaDialog.Conditions.And.CAndCriterium in project binnavi by google.
the class JCriteriumTreeModelTest method testInsertNode.
@Test
public void testInsertNode() {
final JTree tree = new JTree();
final CCriteriumTree cCriteriumTree = new CCriteriumTree();
final CCriteriaFactory cCriteriaFactory = new CCriteriaFactory(m_graph, null, null);
final JCriteriumTreeModel jCriterumTreeModel = new JCriteriumTreeModel(tree, cCriteriumTree, cCriteriaFactory.getConditions());
final CCriteriumTreeNode child = new CCriteriumTreeNode(new CColorCriterium(m_graph));
cCriteriumTree.appendNode(cCriteriumTree.getRoot(), child);
final CCriteriumTreeNode child2 = new CCriteriumTreeNode(new CAndCriterium());
cCriteriumTree.insertNode(cCriteriumTree.getRoot(), child2);
assertEquals(1, ((JCriteriumTreeNode) jCriterumTreeModel.getRoot()).getChildCount());
assertEquals(child2.getCriterium(), ((JCriteriumTreeNode) ((JCriteriumTreeNode) jCriterumTreeModel.getRoot()).getChildAt(0)).getCriterium());
assertEquals(child.getCriterium(), ((JCriteriumTreeNode) ((JCriteriumTreeNode) ((JCriteriumTreeNode) jCriterumTreeModel.getRoot()).getChildAt(0)).getChildAt(0)).getCriterium());
}
use of com.google.security.zynamics.binnavi.Gui.CriteriaDialog.Conditions.And.CAndCriterium in project binnavi by google.
the class JCriteriumTreeModelTest method testRemoveAll.
@Test
public void testRemoveAll() {
final JTree tree = new JTree();
final CCriteriumTree cCriteriumTree = new CCriteriumTree();
final CCriteriaFactory cCriteriaFactory = new CCriteriaFactory(m_graph, null, null);
final JCriteriumTreeModel jCriterumTreeModel = new JCriteriumTreeModel(tree, cCriteriumTree, cCriteriaFactory.getConditions());
final CCriteriumTreeNode child = new CCriteriumTreeNode(new CColorCriterium(m_graph));
cCriteriumTree.appendNode(cCriteriumTree.getRoot(), child);
final CCriteriumTreeNode child2 = new CCriteriumTreeNode(new CAndCriterium());
cCriteriumTree.insertNode(cCriteriumTree.getRoot(), child2);
final CCriteriumTreeNode child3 = new CCriteriumTreeNode(new CColorCriterium(m_graph));
cCriteriumTree.appendNode(child2, child3);
cCriteriumTree.clear();
assertEquals(0, ((JCriteriumTreeNode) jCriterumTreeModel.getRoot()).getChildCount());
}
Aggregations