Search in sources :

Example 71 with INaviViewNode

use of com.google.security.zynamics.binnavi.disassembly.INaviViewNode in project binnavi by google.

the class CViewInserter method createGroupNodes.

/**
   * Clones the group nodes of the source view and inserts them into the target view.
   *
   * @param target The target view where the cloned group nodes are inserted.
   * @param sourceNodes The nodes of the source view.
   * @param nodeMap Maps between the source nodes and their cloned counterparts.
   */
private static void createGroupNodes(final INaviView target, final Collection<INaviViewNode> sourceNodes, final Map<INaviViewNode, INaviViewNode> nodeMap) {
    for (final INaviViewNode blockNode : sourceNodes) {
        if (blockNode instanceof INaviGroupNode) {
            final INaviGroupNode gnode = (INaviGroupNode) blockNode;
            final CGroupNode newGroupNode = target.getContent().createGroupNode(getNodes(gnode.getElements(), nodeMap));
            newGroupNode.initializeComment(gnode.getComments());
        }
    }
}
Also used : INaviViewNode(com.google.security.zynamics.binnavi.disassembly.INaviViewNode) INaviGroupNode(com.google.security.zynamics.binnavi.disassembly.INaviGroupNode) CGroupNode(com.google.security.zynamics.binnavi.disassembly.CGroupNode)

Example 72 with INaviViewNode

use of com.google.security.zynamics.binnavi.disassembly.INaviViewNode in project binnavi by google.

the class CView method close.

@Override
public boolean close() {
    if (!isLoaded()) {
        throw new IllegalStateException("IE00284: View is not loaded");
    }
    for (final INaviViewListener listener : m_listeners) {
        try {
            if (!listener.closingView(this)) {
                return false;
            }
        } catch (final Exception exception) {
            CUtilityFunctions.logException(exception);
        }
    }
    final IDirectedGraph<INaviViewNode, INaviEdge> oldGraph = m_content.getGraph();
    for (final INaviViewNode node : oldGraph) {
        node.close();
    }
    for (final INaviEdge edge : oldGraph.getEdges()) {
        edge.dispose();
    }
    m_nodeTags.clear();
    m_nodeTags.addAll(m_content.getNodeTags());
    m_content = null;
    for (final INaviViewListener listener : m_listeners) {
        try {
            listener.closedView(this, oldGraph);
        } catch (final Exception exception) {
            CUtilityFunctions.logException(exception);
        }
    }
    return true;
}
Also used : INaviViewNode(com.google.security.zynamics.binnavi.disassembly.INaviViewNode) INaviEdge(com.google.security.zynamics.binnavi.disassembly.INaviEdge) LoadCancelledException(com.google.security.zynamics.binnavi.Database.Exceptions.LoadCancelledException) CouldntSaveDataException(com.google.security.zynamics.binnavi.Database.Exceptions.CouldntSaveDataException) CouldntLoadDataException(com.google.security.zynamics.binnavi.Database.Exceptions.CouldntLoadDataException) CPartialLoadException(com.google.security.zynamics.binnavi.Database.Exceptions.CPartialLoadException) MalformedGraphException(com.google.security.zynamics.zylib.types.graphs.algorithms.MalformedGraphException)

Example 73 with INaviViewNode

use of com.google.security.zynamics.binnavi.disassembly.INaviViewNode in project binnavi by google.

the class CViewContent method deleteGroupNode.

/**
   * Deletes a group node from the view.
   *
   * @param groupNode The group node to delete.
   */
private static void deleteGroupNode(final INaviGroupNode groupNode) {
    final List<INaviViewNode> elements = groupNode.getElements();
    groupNode.setCollapsed(false);
    for (final INaviViewNode node : elements) {
        groupNode.removeElement(node);
        if (groupNode.getParentGroup() != null) {
            groupNode.getParentGroup().addElement(node);
        }
    }
}
Also used : INaviViewNode(com.google.security.zynamics.binnavi.disassembly.INaviViewNode)

Aggregations

INaviViewNode (com.google.security.zynamics.binnavi.disassembly.INaviViewNode)73 INaviCodeNode (com.google.security.zynamics.binnavi.disassembly.INaviCodeNode)22 INaviEdge (com.google.security.zynamics.binnavi.disassembly.INaviEdge)21 Test (org.junit.Test)16 INaviGroupNode (com.google.security.zynamics.binnavi.disassembly.INaviGroupNode)14 INaviView (com.google.security.zynamics.binnavi.disassembly.views.INaviView)13 CTag (com.google.security.zynamics.binnavi.Tagging.CTag)12 INaviFunction (com.google.security.zynamics.binnavi.disassembly.INaviFunction)12 INaviFunctionNode (com.google.security.zynamics.binnavi.disassembly.INaviFunctionNode)11 ArrayList (java.util.ArrayList)10 IComment (com.google.security.zynamics.binnavi.Gui.GraphWindows.CommentDialogs.Interfaces.IComment)9 CCodeNode (com.google.security.zynamics.binnavi.disassembly.CCodeNode)9 CNaviViewEdge (com.google.security.zynamics.binnavi.disassembly.CNaviViewEdge)9 INaviInstruction (com.google.security.zynamics.binnavi.disassembly.INaviInstruction)9 CGroupNode (com.google.security.zynamics.binnavi.disassembly.CGroupNode)8 INaviModule (com.google.security.zynamics.binnavi.disassembly.INaviModule)8 NaviNode (com.google.security.zynamics.binnavi.yfileswrap.zygraph.NaviNode)8 INaviTextNode (com.google.security.zynamics.binnavi.disassembly.INaviTextNode)7 MockView (com.google.security.zynamics.binnavi.disassembly.MockView)7 CView (com.google.security.zynamics.binnavi.disassembly.views.CView)7