content: /*
   * Copyright 2008-2016 Andre Pfeiler
   *
   * This file is part of FindBugs-IDEA.
   *
   * FindBugs-IDEA is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   *
   * FindBugs-IDEA is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with FindBugs-IDEA.  If not, see <http://www.gnu.org/licenses/>.
   */
  package org.twodividedbyzero.idea.findbugs.actions;
  
  import com.intellij.openapi.actionSystem.AnActionEvent;
  import com.intellij.openapi.project.Project;
  import com.intellij.openapi.wm.ToolWindow;
  import com.intellij.ui.content.Content;
  import org.jetbrains.annotations.NotNull;
  import org.twodividedbyzero.idea.findbugs.core.FindBugsState;
  import org.twodividedbyzero.idea.findbugs.gui.toolwindow.view.ToolWindowPanel;
  import org.twodividedbyzero.idea.findbugs.gui.tree.view.BugTree;
  
  public final class TreeNextOccurence extends AbstractAction {
  
  	@Override
  	void updateImpl(
  			@NotNull final AnActionEvent e,
  			@NotNull final Project project,
  			@NotNull final ToolWindow toolWindow,
  			@NotNull final FindBugsState state
  	) {
  
  		final Content content = toolWindow.getContentManager().getContent(0);
  		if (content == null) {
  			e.getPresentation().setEnabled(false);
  			e.getPresentation().setVisible(false);
  			return;
  		}
  		final ToolWindowPanel panel = (ToolWindowPanel) content.getComponent();
  		final BugTree tree = panel.getBugTreePanel().getBugTree();
  		final boolean enabled = tree.hasNextOccurence();
  		e.getPresentation().setEnabled(enabled);
  		e.getPresentation().setVisible(true);
  	}
  
  	@Override
  	void actionPerformedImpl(
  			@NotNull final AnActionEvent e,
  			@NotNull final Project project,
  			@NotNull final ToolWindow toolWindow,
  			@NotNull final FindBugsState state
  	) {
  
  		final Content content = toolWindow.getContentManager().getContent(0);
  		if (content != null) {
  			final ToolWindowPanel panel = (ToolWindowPanel) content.getComponent();
  			panel.getBugTreePanel().getBugTree().goNextOccurence();
  		}
  	}
  }
  