Package org.freeplane.features.filter

Source Code of org.freeplane.features.filter.NextPresentationItemAction

package org.freeplane.features.filter;

import java.awt.event.ActionEvent;

import org.freeplane.core.ui.AFreeplaneAction;
import org.freeplane.features.map.HideChildSubtree;
import org.freeplane.features.map.MapController;
import org.freeplane.features.map.NodeModel;
import org.freeplane.features.map.MapController.Direction;
import org.freeplane.features.mode.Controller;

public class NextPresentationItemAction extends AFreeplaneAction {
  /**
   *
   */
  private static final long serialVersionUID = 1L;

  public NextPresentationItemAction() {
    super("NextPresentationItemAction");
  }

  /**
   *
   */
  public void actionPerformed(final ActionEvent e) {
    final FilterController filterController = FilterController.getCurrentFilterController();
    final NodeModel start = Controller.getCurrentController().getSelection().getSelected();
    final NodeModel next = filterController.findNext(start, null, Direction.FORWARD_N_FOLD, null);
    if(next != null){
      final MapController mapController = Controller.getCurrentModeController().getMapController();
      if (!next.isVisible()) {
              next.getFilterInfo().reset();
              mapController.nodeRefresh(next);
            }
            final NodeModel[] path = next.getPathToRoot();
            for (int i = 1; i < path.length; i++) {
              final NodeModel nodeOnPath = path[i];
              final NodeModel parentNode = nodeOnPath.getParentNode();
              while(parentNode.isFolded() || nodeOnPath.containsExtension(HideChildSubtree.class))
                mapController.showNextChild(parentNode);
            }
            Controller.getCurrentController().getSelection().selectAsTheOnlyOneSelected(next);
    }
  }
}
TOP

Related Classes of org.freeplane.features.filter.NextPresentationItemAction

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.