private void createUIComponents()

in plugin/src/com/facebook/buck/plugin/intellij/ui/BuckTargetsPanel.java [69:141]


  private void createUIComponents() {
    targetsPanel = new JPanel();
    targetsPanel.addAncestorListener(new AncestorListener() {
      @Override
      public void ancestorAdded(AncestorEvent event) {
        // If targets have never been fetched, then fetch targets.
        if (component.getTargets() == null) {
          component.refreshTargetsList();
        }
      }

      @Override
      public void ancestorRemoved(AncestorEvent event) {
      }

      @Override
      public void ancestorMoved(AncestorEvent event) {
      }
    });

    // Tree
    treeRoot = new TargetNode(TargetNode.Type.DIRECTORY, TREE_ROOT, null);
    targetsRoot = new TargetNode(TargetNode.Type.DIRECTORY, TARGETS_ROOT, null);
    testsRoot = new TargetNode(TargetNode.Type.DIRECTORY, TESTS_ROOT, null);
    tree = new Tree(new DefaultTreeModel(treeRoot));
    scrollPane = TargetsTreeRenderer.install(tree);

    final MouseInputAdapter mouseListener = new MouseInputAdapter() {
      @Override
      public void mouseClicked(MouseEvent e) {
        if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 2) {
          // Double click
          TreePath selected = tree.getSelectionPath();
          TargetNode targetNode = (TargetNode) selected.getLastPathComponent();
          BuckTarget target = targetNode.getTarget();
          if (target != null) {
            if (targetNode.getType() == TargetNode.Type.JAVA_TEST ||
                targetNode.getType() == TargetNode.Type.SH_TEST) {
              component.testTarget(target);
            } else {
              component.buildTarget(target);
            }
          }
        }
      }
    };
    tree.addMouseListener(mouseListener);

    // Buttons
    refreshTargetsButton = createToolbarIcon();
    refreshTargetsButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        component.refreshTargetsList();
      }
    });

    cleanButton = createToolbarIcon();
    cleanButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        component.clean();
      }
    });

    testAllButton = createToolbarIcon();
    testAllButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        component.testAllTargets();
      }
    });
  }