Package tv.porst.swfretools.dissector.gui.main.flashtree

Source Code of tv.porst.swfretools.dissector.gui.main.flashtree.FlashTreeNodeClickHandler

package tv.porst.swfretools.dissector.gui.main.flashtree;

import javax.swing.JTree;
import javax.swing.SwingUtilities;

import tv.porst.swfretools.dissector.gui.main.flashtree.menus.FlashAnyNodeMenu;
import tv.porst.swfretools.dissector.gui.main.flashtree.menus.FlashFileNodeMenu;
import tv.porst.swfretools.dissector.gui.main.flashtree.nodes.FlashFileNode;
import tv.porst.swfretools.dissector.gui.main.flashtree.nodes.FlashTreeNode;
import tv.porst.swfretools.dissector.gui.main.models.LoadedFile;

/**
* Contains methods for handling clicks on the tree that shows the SWF
* elements.
*/
public final class FlashTreeNodeClickHandler {

  /**
   * Handles right-clicks on nodes in the Flash tree.
   *
   * @param tree The tree the clicked node belongs to.
   * @param node Clicked node.
   * @param x X-coordinate of the click.
   * @param y Y-coordinate of the click.
   */
  public static void handleRightClick(final JTree tree, final FlashTreeNode<?> node, final int x, final int y) {

    if (node == null) {
      throw new IllegalArgumentException("Node argument must not be null.");
    }

    final LoadedFile loadedFile = FlashTreeHelpers.getLoadedFile(node);

    if (node instanceof FlashFileNode) {
      final FlashFileNodeMenu menu = new FlashFileNodeMenu(SwingUtilities.getWindowAncestor(tree), loadedFile);

      menu.show(tree, x, y);
    }
    else {
      final FlashAnyNodeMenu menu = new FlashAnyNodeMenu(SwingUtilities.getWindowAncestor(tree), loadedFile, node);

      menu.show(tree, x, y);
    }
  }

}
TOP

Related Classes of tv.porst.swfretools.dissector.gui.main.flashtree.FlashTreeNodeClickHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.