blob: d2bb552867757251664c12ce916920fb7e25a057 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2015 Wind River Systems, Inc. and others. 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:
* Wind River Systems - initial API and implementation
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.search;
import org.eclipse.osgi.util.NLS;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.ui.utils.CompositeSearchable;
/**
* The ISearchable adapter for a IFSTreeNode which creates a UI for the user to
* input the matching condition and returns a matcher to do the matching.
*/
public class FSTreeNodeSearchable extends CompositeSearchable {
/**
* Create an instance with the specified node.
*
* @param node The directory node.
*/
public FSTreeNodeSearchable(IFSTreeNode node) {
super();
setSearchables(new FSGeneralSearchable(node), new FSModifiedSearchable(), new FSSizeSearchable());
}
/* (non-Javadoc)
* @see org.eclipse.tcf.te.ui.interfaces.ISearchable#getSearchTitle(java.lang.Object)
*/
@Override
public String getSearchTitle(Object rootElement) {
return Messages.FSTreeNodeSearchable_FindFilesAndFolders;
}
/*
* (non-Javadoc)
* @see org.eclipse.tcf.te.ui.interfaces.ISearchable#getSearchMessage(java.lang.Object)
*/
@Override
public String getSearchMessage(Object rootElement) {
String message = Messages.FSTreeNodeSearchable_FindMessage;
IFSTreeNode rootNode = (IFSTreeNode) rootElement;
String rootName = getElementName(rootElement);
if (rootNode != null && !rootNode.isFileSystem()) rootName = "\"" + rootName + "\""; //$NON-NLS-1$//$NON-NLS-2$
message = NLS.bind(message, rootName);
return message;
}
/**
* Get a name representation for each file node.
*
* @param rootElement The root element whose name is being retrieved.
* @return The node's name or an expression for the file system.
*/
private String getElementName(Object rootElement) {
if(rootElement == null) {
return Messages.FSTreeNodeSearchable_SelectedFileSystem;
}
IFSTreeNode rootNode = (IFSTreeNode) rootElement;
if(rootNode.isFileSystem()) {
return Messages.FSTreeNodeSearchable_SelectedFileSystem;
}
return rootNode.getName();
}
/* (non-Javadoc)
* @see org.eclipse.tcf.te.ui.interfaces.ISearchable#getElementText(java.lang.Object)
*/
@Override
public String getElementText(Object element) {
return getElementName(element);
}
/* (non-Javadoc)
* @see org.eclipse.tcf.te.ui.interfaces.ISearchable#getCustomMessage(java.lang.Object, java.lang.String)
*/
@Override
public String getCustomMessage(Object rootElement, String key) {
return null;
}
}