diff options
author | William Chen | 2012-05-18 13:34:06 +0000 |
---|---|---|
committer | William Chen | 2012-05-18 13:34:06 +0000 |
commit | 3b9566dda148c6b69a39bd170fd5b53de77f55b5 (patch) | |
tree | e95d90458a0ae79889505d9008a0d44e368d9ee8 /target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui | |
parent | 56a357d2050b4c5c006078fc869ce5218b01577a (diff) | |
download | org.eclipse.tcf-3b9566dda148c6b69a39bd170fd5b53de77f55b5.tar.gz org.eclipse.tcf-3b9566dda148c6b69a39bd170fd5b53de77f55b5.tar.xz org.eclipse.tcf-3b9566dda148c6b69a39bd170fd5b53de77f55b5.zip |
Target Explorer: Add code to implement searching function
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui')
3 files changed, 56 insertions, 1 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/plugin.xml index 41e4247f2..c75713bab 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/plugin.xml @@ -1857,6 +1857,9 @@ <adapter type="org.eclipse.ui.IPersistableElement"> </adapter> + <adapter + type="org.eclipse.tcf.te.ui.interfaces.ILazyLoader"> + </adapter> </factory> <factory adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel" diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java index c4da43dd5..ce12fb273 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java @@ -19,6 +19,7 @@ import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns.FSTreeElementLabelProvider;
+import org.eclipse.tcf.te.ui.interfaces.ILazyLoader;
import org.eclipse.ui.IActionFilter;
import org.eclipse.ui.IPersistableElement;
@@ -58,6 +59,9 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory { else if(adapterType == IPersistableElement.class && UIPlugin.isExpandedPersisted()) {
return new PersistableNode(node);
}
+ else if(adapterType == ILazyLoader.class) {
+ return new FSTreeNodeLoader(node);
+ }
}
return null;
}
@@ -67,6 +71,6 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory { */
@Override
public Class[] getAdapterList() {
- return new Class[] { IActionFilter.class, ILabelProvider.class, IPersistableElement.class };
+ return new Class[] { IActionFilter.class, ILabelProvider.class, IPersistableElement.class, ILazyLoader.class };
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeLoader.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeLoader.java new file mode 100644 index 000000000..a3cc3d0da --- /dev/null +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeLoader.java @@ -0,0 +1,48 @@ +/*******************************************************************************
+ * Copyright (c) 2011, 2012 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.adapters;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.tcf.te.tcf.filesystem.core.internal.exceptions.TCFException;
+import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor;
+import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefreshRoots;
+import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.Operation;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.ui.interfaces.ILazyLoader;
+
+public class FSTreeNodeLoader implements ILazyLoader {
+ private FSTreeNode node;
+ public FSTreeNodeLoader(FSTreeNode node) {
+ this.node = node;
+ }
+
+ @Override
+ public boolean isDataLoaded() {
+ return (node.isSystemRoot() || node.isDirectory()) && node.childrenQueried;
+ }
+
+ @Override
+ public void loadData(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ try {
+ if(node.isFile()) return;
+ if (node.isSystemRoot()) {
+ new NullOpExecutor().execute(new OpRefreshRoots(node));
+ }
+ else {
+ new Operation().getChildren(node);
+ }
+ }
+ catch (TCFException e) {
+ throw new InvocationTargetException(e);
+ }
+ }
+}
|