/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.ide.search.presentation; import com.google.inject.Inject; import com.google.inject.Singleton; import org.eclipse.che.ide.CoreLocalizationConstant; import org.eclipse.che.ide.api.data.tree.NodeInterceptor; import org.eclipse.che.ide.api.parts.PartStackUIResources; import org.eclipse.che.ide.api.parts.base.BaseView; import org.eclipse.che.ide.api.resources.Resource; import org.eclipse.che.ide.search.factory.FindResultNodeFactory; import org.eclipse.che.ide.ui.smartTree.NodeLoader; import org.eclipse.che.ide.ui.smartTree.NodeStorage; import org.eclipse.che.ide.ui.smartTree.Tree; import org.eclipse.che.ide.ui.smartTree.event.SelectionChangedEvent; import java.util.Collections; /** * Implementation for FindResult view. * Uses tree for presenting search results. * * @author Valeriy Svydenko */ @Singleton class FindResultViewImpl extends BaseView<FindResultView.ActionDelegate> implements FindResultView { private final Tree tree; private final FindResultNodeFactory findResultNodeFactory; @Inject public FindResultViewImpl(PartStackUIResources resources, FindResultNodeFactory findResultNodeFactory, CoreLocalizationConstant localizationConstant) { super(resources); setTitle(localizationConstant.actionFullTextSearch()); this.findResultNodeFactory = findResultNodeFactory; NodeStorage nodeStorage = new NodeStorage(); NodeLoader loader = new NodeLoader(Collections.<NodeInterceptor>emptySet()); tree = new Tree(nodeStorage, loader); tree.getSelectionModel().addSelectionChangedHandler(new SelectionChangedEvent.SelectionChangedHandler() { @Override public void onSelectionChanged(SelectionChangedEvent event) { delegate.onSelectionChanged(event.getSelection()); } }); setContentWidget(tree); tree.setAutoSelect(true); } /** {@inheritDoc} */ @Override protected void focusView() { tree.setFocus(true); } /** {@inheritDoc} */ @Override public void showResults(Resource[] resources, String request) { tree.getNodeStorage().clear(); tree.getNodeStorage().add(findResultNodeFactory.newResultNode(resources, request)); tree.expandAll(); tree.getSelectionModel().select(tree.getRootNodes().get(0), false); focusView(); } @Override public Tree getTree() { return tree; } }