public ProjectTreePanel(
      EntityCollection entityCollection,
      SymbolGraphic symbolGraphic,
      String panelName,
      KinDiagramPanel kinDiagramPanel,
      GraphPanel graphPanel,
      MessageDialogHandler dialogHandler,
      ArbilDataNodeLoader dataNodeLoader) {
    super(new BorderLayout());
    this.setName(panelName);
    this.entityCollection = entityCollection;
    this.symbolGraphic = symbolGraphic;
    this.panelName = panelName;
    this.kinDiagramPanel = kinDiagramPanel;
    this.graphPanel = graphPanel;
    this.dataNodeLoader = dataNodeLoader;
    this.dialogHandler = dialogHandler;
    this.rootNode = new ProjectNode(entityCollection, panelName);
    kinTree = new KinTree(kinDiagramPanel, graphPanel, rootNode);
    kinTree.setBackground(this.getBackground());
    this.add(new JScrollPane(kinTree), BorderLayout.CENTER);
    progressBar = new JProgressBar();
    ActionListener actionListener =
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if ("<".equals(e.getActionCommand())) {
              currentPage--;
            } else if (">".equals(e.getActionCommand())) {
              currentPage++;
            }
            showPage();
          }
        };
    final JButton previousButton = new JButton("<");
    final JButton nextButton = new JButton(">");
    currentPageLabel = new JLabel("", JLabel.CENTER);

    previousButton.setActionCommand("<");
    nextButton.setActionCommand(">");

    previousButton.addActionListener(actionListener);
    nextButton.addActionListener(actionListener);

    final Dimension preferredSize = previousButton.getPreferredSize();
    final Dimension buttonDimension = new Dimension(preferredSize.height, preferredSize.height);
    previousButton.setPreferredSize(buttonDimension);
    nextButton.setPreferredSize(buttonDimension);

    pagePanel = new JPanel(new BorderLayout());
    pagePanel.add(previousButton, BorderLayout.LINE_START);
    pagePanel.add(currentPageLabel, BorderLayout.CENTER);
    pagePanel.add(nextButton, BorderLayout.LINE_END);
  }