Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSTreeViewerSorter.java6
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java86
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/TreeContentProvider.java25
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSFolderSelectionDialog.java61
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java26
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/HiddenFilesViewerFilter.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/SystemFilesViewerFilter.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java22
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java48
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeLoader.java49
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/NodeStateFilter.java22
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PersistableNode.java18
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveAllListener.java48
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveListener.java22
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellModifier.java29
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellValidator.java28
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeComparator.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeLabelProvider.java13
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/CacheFileImageUpdater.java26
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/DefaultImageProvider.java20
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementComparator.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementLabelProvider.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeNodeComparator.java37
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileExtBasedImageUpdater.java32
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeComparator.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeLabelProvider.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageProvider.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageUpdateAdapter.java21
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/LabelProviderUpdateDaemon.java72
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeComparator.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeLabelProvider.java13
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeComparator.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeLabelProvider.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/WindowsImageProvider.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/EditableSharedDocumentAdapter.java4
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalFileSaveable.java11
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalTypedElement.java24
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeEditorInput.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeInput.java3
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeTypedElement.java16
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/RemoteTypedElement.java22
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/decorators/PhantomDecorator.java8
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java310
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDragAdapterAssistant.java4
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropAdapterAssistant.java18
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropTargetListener.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CommitHandler.java11
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CopyFilesHandler.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CutFilesHandler.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/DeleteHandler.java30
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MergeHandler.java6
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveCopyCallback.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java19
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenFileHandler.java38
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithContribution.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithMenu.java88
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/PasteFilesHandler.java52
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshHandler.java17
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java18
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameCallback.java46
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameFilesHandler.java30
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/UpdateHandler.java21
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/FsClipboard.java78
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/UiExecutor.java111
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java8
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEventListener.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/AdvancedAttributesDialog.java18
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/GeneralInformationPage.java129
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSGeneralSearchable.java8
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSModifiedSearchable.java16
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSSizeSearchable.java16
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeMatcher.java37
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeSearchable.java18
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFileSection.java6
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java19
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FileFilter.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FolderFilter.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxFilter.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java14
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java14
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java17
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFileFilter.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFilter.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java14
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderFilter.java10
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/testers/ClipboardPropertyTester.java32
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/FolderValidator.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NameValidator.java57
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFileWizard.java13
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFolderWizard.java13
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java59
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java30
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java3
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java7
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.java5
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.properties5
97 files changed, 1145 insertions, 1422 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java
index 00e34dac5..8246f28ee 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.controls;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
@@ -51,8 +51,8 @@ public class FSNavigatorContentProvider extends NavigatorContentProvider {
*/
@Override
public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode)parentElement;
+ if (parentElement instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode)parentElement;
if (node.isFile()) return NO_ELEMENTS;
}
return super.getChildren(parentElement);
@@ -63,8 +63,8 @@ public class FSNavigatorContentProvider extends NavigatorContentProvider {
*/
@Override
public boolean hasChildren(final Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode)element;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode)element;
if(node.isFile()) {
return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSTreeViewerSorter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSTreeViewerSorter.java
index 2d53be057..1b72f6241 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSTreeViewerSorter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSTreeViewerSorter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,7 +10,7 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.controls;
import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns.FSTreeElementComparator;
import org.eclipse.tcf.te.ui.trees.TreeViewerSorterCaseInsensitive;
@@ -32,7 +32,7 @@ public class FSTreeViewerSorter extends TreeViewerSorterCaseInsensitive {
*/
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
- if (e1 instanceof FSTreeNode && e2 instanceof FSTreeNode) {
+ if (e1 instanceof IFSTreeNode && e2 instanceof IFSTreeNode) {
return comparator.compare(e1, e2);
}
return super.compare(viewer, e1, e2);
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java
index 04416adba..73a90afae 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,15 +9,12 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.controls;
-import java.util.ArrayList;
-import java.util.List;
-
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.ITreeViewerListener;
import org.eclipse.jface.viewers.TreeExpansionEvent;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.AbstractTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode;
@@ -32,17 +29,18 @@ public abstract class NavigatorContentProvider extends TreeContentProvider impl
*/
@Override
public Object getParent(Object element) {
- if (element instanceof AbstractTreeNode) {
- AbstractTreeNode node = (AbstractTreeNode) element;
- AbstractTreeNode parent = node.getParent();
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
+ IFSTreeNode parent = node.getParent();
if (parent != null) {
- if (parent.isSystemRoot()) {
+ if (parent.isFileSystem()) {
if (isRootNodeVisible()) return parent;
return null;
}
return parent;
}
- if (isRootNodeVisible()) return node.peerNode;
+ if (isRootNodeVisible())
+ return node.getPeerNode();
}
return null;
}
@@ -61,13 +59,14 @@ public abstract class NavigatorContentProvider extends TreeContentProvider impl
*/
@Override
public void treeExpanded(TreeExpansionEvent event) {
- Object object = event.getElement();
- if(object instanceof AbstractTreeNode) {
- AbstractTreeNode parent = (AbstractTreeNode) object;
- if (parent.childrenQueried && !parent.childrenQueryRunning) {
- parent.refreshChildren();
- }
- }
+// Object object = event.getElement();
+// if(object instanceof IFSTreeNode) {
+// IFSTreeNode parent = (IFSTreeNode) object;
+// IFSTreeNode[] children = parent.getChildren();
+// if (children == null) {
+// parent.operationRefresh(false).runInJob(null);
+// }
+// }
}
/*
@@ -100,55 +99,48 @@ public abstract class NavigatorContentProvider extends TreeContentProvider impl
if (parentElement instanceof IPeerNode) {
final IPeerNode peerNode = (IPeerNode)parentElement;
IRuntimeModel model = ModelManager.getRuntimeModel(peerNode);
+ if (model == null)
+ return NO_ELEMENTS;
+
if (isRootNodeVisible()) {
- AbstractTreeNode root = model.getRoot();
- if(!root.childrenQueried && !root.childrenQueryRunning) {
- root.queryChildren();
- }
+ IFSTreeNode root = model.getRoot();
return new Object[] { root };
}
return getChildren(model.getRoot());
- } else if (parentElement instanceof AbstractTreeNode) {
- AbstractTreeNode node = (AbstractTreeNode)parentElement;
- List<Object> current = new ArrayList<Object>(node.getChildren());
- if (!node.childrenQueried) {
- current.add(getPending(node));
- if (!node.childrenQueryRunning) {
- node.queryChildren();
- }
+ } else if (parentElement instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode)parentElement;
+ if (!(node.isDirectory() || node.isFileSystem()))
+ return NO_ELEMENTS;
+
+ IFSTreeNode[] children = node.getChildren();
+ if (children == null) {
+ node.operationRefresh(false).runInJob(null);
+ return new Object[] {getPending(node)};
}
- return current.toArray();
+ return children;
}
return NO_ELEMENTS;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
- */
@Override
public boolean hasChildren(final Object element) {
Assert.isNotNull(element);
- boolean hasChildren = false;
-
- if (element instanceof AbstractTreeNode) {
- AbstractTreeNode node = (AbstractTreeNode)element;
- if(node.isSystemRoot()) {
- hasChildren = true;
- }
- else {
- hasChildren = !node.childrenQueried || super.hasChildren(element);
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode)element;
+ if (node.isFileSystem() || node.isDirectory()) {
+ return node.getChildren() == null || super.hasChildren(element);
}
+ return false;
}
- else if (element instanceof IPeerNode) {
+
+ if (element instanceof IPeerNode) {
IPeerNode peerNode = (IPeerNode) element;
IRuntimeModel model = ModelManager.getRuntimeModel(peerNode);
- AbstractTreeNode root = model.getRoot();
- hasChildren = root != null ? hasChildren(root) : true;
+ return model != null;
}
-
- return hasChildren;
+ return false;
}
/**
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/TreeContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/TreeContentProvider.java
index 3aa693cad..0957cfb96 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/TreeContentProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/TreeContentProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,8 +9,6 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.controls;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -35,7 +33,7 @@ import org.eclipse.tcf.te.ui.trees.Pending;
/**
* The base tree content provider that defines several default methods.
*/
-public abstract class TreeContentProvider implements ITreeContentProvider, PropertyChangeListener {
+public abstract class TreeContentProvider implements ITreeContentProvider {
/**
* Static reference to the return value representing no elements.
@@ -75,13 +73,6 @@ public abstract class TreeContentProvider implements ITreeContentProvider, Prope
return pending;
}
- /*
- * (non-Javadoc)
- * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
- */
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- }
/*
* (non-Javadoc)
@@ -91,7 +82,6 @@ public abstract class TreeContentProvider implements ITreeContentProvider, Prope
public void dispose() {
for(IPropertyChangeProvider provider : providers) {
provider.removePropertyChangeListener(commonViewerListener);
- provider.removePropertyChangeListener(this);
}
commonViewerListener.cancel();
providers.clear();
@@ -144,10 +134,20 @@ public abstract class TreeContentProvider implements ITreeContentProvider, Prope
*/
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ if (commonViewerListener != null) {
+ for (IPropertyChangeProvider provider : providers) {
+ provider.removePropertyChangeListener(commonViewerListener);
+ }
+ }
+
Assert.isTrue(viewer instanceof TreeViewer);
this.viewer = (TreeViewer) viewer;
this.commonViewerListener = new CommonViewerListener(this.viewer, this);
peerNode = getPeerNode(newInput);
+
+ for (IPropertyChangeProvider provider : providers) {
+ provider.addPropertyChangeListener(commonViewerListener);
+ }
}
protected IPeerNode getPeerNode(Object input) {
@@ -168,7 +168,6 @@ public abstract class TreeContentProvider implements ITreeContentProvider, Prope
if (commonViewerListener != null) {
provider.addPropertyChangeListener(commonViewerListener);
}
- provider.addPropertyChangeListener(this);
providers.add(provider);
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSFolderSelectionDialog.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSFolderSelectionDialog.java
index 4ce589429..4d028048b 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSFolderSelectionDialog.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSFolderSelectionDialog.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -38,8 +38,8 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tcf.te.runtime.callback.Callback;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.controls.FSTreeContentProvider;
@@ -65,7 +65,7 @@ import org.eclipse.ui.dialogs.ISelectionStatusValidator;
* ElementTreeSelectionDialog.setInput</code> to specify the peer model of the remote target. In
* order to validate the destination folder, you should also specify the nodes to be moved. The file
* selection dialog is of single selection. You can get the selected result by calling
- * <code>getFirstResult</code>. The type of selected folder is an instance of FSTreeNode.
+ * <code>getFirstResult</code>. The type of selected folder is an instance of IFSTreeNode.
* </p>
* <p>
* The following is a snippet of example code:
@@ -76,17 +76,17 @@ import org.eclipse.ui.dialogs.ISelectionStatusValidator;
* dialog.setMovedNodes(nodes);
* if (dialog.open() == Window.OK) {
* Object obj = dialog.getFirstResult();
- * Assert.isTrue(obj instanceof FSTreeNode);
- * FSTreeNode folder = (FSTreeNode) obj;
+ * Assert.isTrue(obj instanceof IFSTreeNode);
+ * IFSTreeNode folder = (IFSTreeNode) obj;
* // Use folder ...
* }
* </pre>
*
* @see MoveFilesHandler
*/
-public class FSFolderSelectionDialog extends ElementTreeSelectionDialog {
+public final class FSFolderSelectionDialog extends ElementTreeSelectionDialog {
// The nodes that are being moved.
- private List<FSTreeNode> movedNodes;
+ private List<IFSTreeNode> movedNodes;
private final int mode;
public static final int MODE_ALL = 0;
@@ -144,8 +144,8 @@ public class FSFolderSelectionDialog extends ElementTreeSelectionDialog {
static class DirectoryFilter extends ViewerFilter {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
if(node.isFile()) return false;
}
return true;
@@ -186,7 +186,7 @@ public class FSFolderSelectionDialog extends ElementTreeSelectionDialog {
*
* @param movedNodes The nodes.
*/
- public void setMovedNodes(List<FSTreeNode> movedNodes) {
+ public void setMovedNodes(List<IFSTreeNode> movedNodes) {
this.movedNodes = movedNodes;
}
@@ -251,8 +251,8 @@ public class FSFolderSelectionDialog extends ElementTreeSelectionDialog {
Iterator<Object> it = ((IStructuredSelection)sel).iterator();
while (it.hasNext()) {
Object node = it.next();
- if (node instanceof FSTreeNode) {
- refreshNode((FSTreeNode)node);
+ if (node instanceof IFSTreeNode) {
+ refreshNode((IFSTreeNode)node);
}
else {
refreshModel();
@@ -265,34 +265,20 @@ public class FSFolderSelectionDialog extends ElementTreeSelectionDialog {
}
}
- protected void refreshNode(final FSTreeNode treeNode) {
- if (!treeNode.childrenQueryRunning) {
- treeNode.childrenQueried = false;
- treeNode.clearChildren();
- treeNode.refresh(new Callback() {
- @Override
- protected void internalDone(Object caller, IStatus status) {
- getShell().getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- getTreeViewer().refresh(treeNode, true);
- getTreeViewer().setSelection(getTreeViewer().getSelection());
- }
- });
- }
- });
- }
+ protected void refreshNode(final IFSTreeNode treeNode) {
+ treeNode.operationRefresh(true).runInJob(null);
}
protected void refreshModel() {
Object input = getTreeViewer().getInput();
if (input instanceof IPeerNode) {
- refreshNode(ModelManager.getRuntimeModel((IPeerNode)input).getRoot());
+ IRuntimeModel rtm = ModelManager.getRuntimeModel((IPeerNode)input);
+ if (rtm != null)
+ refreshNode(rtm.getRoot());
}
}
- private final static IStatus ok = new Status(IStatus.OK, UIPlugin.getUniqueIdentifier(), null);
private final static IStatus error = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), null);
private final static IStatus errorNotWritable = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), Messages.FSFolderSelectionDialog_notWritable_error);
private final static IStatus warningNotWritable = new Status(IStatus.WARNING, UIPlugin.getUniqueIdentifier(), Messages.FSFolderSelectionDialog_notWritable_warning);
@@ -307,23 +293,20 @@ public class FSFolderSelectionDialog extends ElementTreeSelectionDialog {
if (selection == null || selection.length == 0) {
return error;
}
- if (!(selection[0] instanceof FSTreeNode)) {
+ if (!(selection[0] instanceof IFSTreeNode)) {
return error;
}
- FSTreeNode target = (FSTreeNode) selection[0];
+ IFSTreeNode target = (IFSTreeNode) selection[0];
if (movedNodes != null) {
- for (FSTreeNode node : movedNodes) {
+ for (IFSTreeNode node : movedNodes) {
if (node == target || node.isAncestorOf(target)) {
return error;
}
}
}
if(mode != MODE_ALL && !target.isWritable()) {
- if (target.attr == null) {
- refreshNode(target);
- }
return mode == MODE_ONLY_WRITABLE ? errorNotWritable : warningNotWritable;
}
- return ok;
+ return Status.OK_STATUS;
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java
index 5b2629c27..e461296af 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -25,8 +25,8 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.controls.FSTreeContentProvider;
@@ -122,15 +122,15 @@ public class FSOpenFileDialog extends ElementTreeSelectionDialog {
Object element = null;
IRuntimeModel model = ModelManager.getRuntimeModel((IPeerNode)viewer.getInput());
if (model != null) {
- FSTreeNode root = model.getRoot();
+ IFSTreeNode root = model.getRoot();
ITreeContentProvider contentProvider = (ITreeContentProvider)viewer.getContentProvider();
Object[] elements = contentProvider.getElements(root);
String segment = path.getDevice() != null ? path.getDevice() : path.segmentCount() > 0 ? path.segment(0) : null;
if (segment != null) {
for (Object elem : elements) {
- if (!(elem instanceof FSTreeNode)) break;
- FSTreeNode child = (FSTreeNode)elem;
- String name = child.name;
+ if (!(elem instanceof IFSTreeNode)) break;
+ IFSTreeNode child = (IFSTreeNode)elem;
+ String name = child.getName();
if (name.endsWith("\\") || name.endsWith("/")) name = name.substring(0, name.length() - 1); //$NON-NLS-1$ //$NON-NLS-2$
boolean matches = child.isWindowsNode() ? name.equalsIgnoreCase(segment) : name.equals(segment);
if (matches) {
@@ -178,11 +178,11 @@ public class FSOpenFileDialog extends ElementTreeSelectionDialog {
*
* @return The matching file system node or <code>null</code>.
*/
- private FSTreeNode findRecursive(FSTreeNode parent, IPath path, int index) {
+ private IFSTreeNode findRecursive(IFSTreeNode parent, IPath path, int index) {
Assert.isNotNull(parent);
Assert.isNotNull(path);
- FSTreeNode node = null;
+ IFSTreeNode node = null;
ITreeContentProvider contentProvider = (ITreeContentProvider)viewer.getContentProvider();
Object[] elements = contentProvider.getElements(parent);
@@ -196,9 +196,9 @@ public class FSOpenFileDialog extends ElementTreeSelectionDialog {
String segment = path.segment(index);
for (Object element : elements) {
- if (!(element instanceof FSTreeNode)) break;
- FSTreeNode child = (FSTreeNode)element;
- String name = child.name;
+ if (!(element instanceof IFSTreeNode)) break;
+ IFSTreeNode child = (IFSTreeNode)element;
+ String name = child.getName();
if (name.endsWith("\\") || name.endsWith("/")) name = name.substring(0, name.length() - 1); //$NON-NLS-1$ //$NON-NLS-2$
boolean matches = child.isWindowsNode() ? name.equalsIgnoreCase(segment) : name.equals(segment);
if (matches) {
@@ -251,10 +251,10 @@ public class FSOpenFileDialog extends ElementTreeSelectionDialog {
if (selection == null || selection.length == 0) {
return error;
}
- if (!(selection[0] instanceof FSTreeNode)) {
+ if (!(selection[0] instanceof IFSTreeNode)) {
return error;
}
- FSTreeNode target = (FSTreeNode) selection[0];
+ IFSTreeNode target = (IFSTreeNode) selection[0];
if(!target.isFile()) {
return error;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/HiddenFilesViewerFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/HiddenFilesViewerFilter.java
index fcd306e6c..a2d9f8530 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/HiddenFilesViewerFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/HiddenFilesViewerFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.filters;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* A filter implementation filtering hidden files or directories.
@@ -24,12 +24,12 @@ public class HiddenFilesViewerFilter extends ViewerFilter {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
// The element needs to be a tree node, but not a root node
- if (element instanceof FSTreeNode && !((FSTreeNode)element).isRoot()) {
- FSTreeNode node = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode && !((IFSTreeNode)element).isRootDirectory()) {
+ IFSTreeNode node = (IFSTreeNode) element;
if(node.isWindowsNode()) {
return !node.isHidden();
}
- return !node.name.startsWith("."); //$NON-NLS-1$
+ return !node.getName().startsWith("."); //$NON-NLS-1$
}
// Let pass all other elements unharmed
return true;
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/SystemFilesViewerFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/SystemFilesViewerFilter.java
index fe805de7e..8335384c2 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/SystemFilesViewerFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/filters/SystemFilesViewerFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.filters;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* A filter implementation filtering system files or directories.
@@ -24,9 +24,9 @@ public class SystemFilesViewerFilter extends ViewerFilter {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
// The element needs to be a tree node, but not a root node
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode)element;
- return !node.isSystem();
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode)element;
+ return !node.isSystemFile();
}
// Let pass all other elements unharmed
return true;
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 6f2cf59af..2c7e59a06 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -17,7 +17,7 @@ import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.core.runtime.PlatformObject;
import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
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.tcf.filesystem.ui.internal.search.FSTreeNodeSearchable;
@@ -29,20 +29,20 @@ import org.eclipse.ui.IActionFilter;
import org.eclipse.ui.IPersistableElement;
/**
- * The adapter factory of <code>FSTreeNode</code> over <code>IActionFilter</code>
+ * The adapter factory of <code>IFSTreeNode</code> over <code>IActionFilter</code>
*/
public class FSTreeNodeAdapterFactory implements IAdapterFactory {
private static ILabelProvider nodeLabelProvider = new FSTreeElementLabelProvider();
// The fFilters map caching fFilters for FS nodes.
- private Map<FSTreeNode, NodeStateFilter> filters;
+ private Map<IFSTreeNode, NodeStateFilter> filters;
public static class FSTreeNodePeerNodeProvider extends PlatformObject implements IPeerNodeProvider {
- private final FSTreeNode node;
+ private final IFSTreeNode node;
/**
* Constructor
*/
- public FSTreeNodePeerNodeProvider(FSTreeNode node) {
+ public FSTreeNodePeerNodeProvider(IFSTreeNode node) {
Assert.isNotNull(node);
this.node = node;
}
@@ -52,7 +52,7 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory {
*
* @return The associated file system tree node.
*/
- public final FSTreeNode getFSTreeNode() {
+ public final IFSTreeNode getFSTreeNode() {
return node;
}
@@ -61,7 +61,7 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory {
*/
@Override
public final IPeerNode getPeerNode() {
- return node.peerNode;
+ return node.getPeerNode();
}
}
@@ -69,7 +69,7 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory {
* Constructor.
*/
public FSTreeNodeAdapterFactory() {
- this.filters = Collections.synchronizedMap(new HashMap<FSTreeNode, NodeStateFilter>());
+ this.filters = Collections.synchronizedMap(new HashMap<IFSTreeNode, NodeStateFilter>());
}
/*
@@ -78,8 +78,8 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory {
*/
@Override
public Object getAdapter(Object adaptableObject, Class adapterType) {
- if (adaptableObject instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) adaptableObject;
+ if (adaptableObject instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) adaptableObject;
if (adapterType == IActionFilter.class) {
NodeStateFilter filter = filters.get(node);
if (filter == null) {
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java
index 3b3a67e01..0e1c6b4c7 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -9,40 +9,42 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters;
+import static org.eclipse.tcf.te.tcf.locator.model.ModelManager.getPeerModel;
+
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpParsePath;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IResultOperation;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode;
-import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService;
-import org.eclipse.tcf.te.tcf.locator.model.ModelManager;
import org.eclipse.ui.IElementFactory;
import org.eclipse.ui.IMemento;
/**
- * The element factory for FSTreeNode used to restore FSTreeNodes persisted
+ * The element factory for IFSTreeNode used to restore FSTreeNodes persisted
* for expanded states.
*/
public class FSTreeNodeFactory implements IElementFactory {
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.IElementFactory#createElement(org.eclipse.ui.IMemento)
- */
@Override
public IAdaptable createElement(IMemento memento) {
String peerId = memento.getString("peerId"); //$NON-NLS-1$
- IPeerNode peerNode = ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId);
- if(peerNode != null) {
- String path = memento.getString("path"); //$NON-NLS-1$
- if(path == null) {
- return org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager.getRuntimeModel(peerNode).getRoot();
- }
- OpParsePath op = new OpParsePath(peerNode, path);
- IOpExecutor executor = new NullOpExecutor();
- IStatus status = executor.execute(op);
- if(status.isOK()) {
- return op.getResult();
+ if (peerId == null)
+ return null;
+
+ for (IPeerNode peerNode : getPeerModel().getPeerNodes()) {
+ if (peerNode.getPeerId().equals(peerId)) {
+ IRuntimeModel rtm = ModelManager.getRuntimeModel(peerNode);
+ if (rtm != null) {
+ String path = memento.getString("path"); //$NON-NLS-1$
+ if (path == null) {
+ return rtm.getRoot();
+ }
+ IResultOperation<IFSTreeNode> op = rtm.operationRestoreFromPath(path);
+ if (op.run(null).isOK()) {
+ return op.getResult();
+ }
+ }
+ return null;
}
}
return null;
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
index e04fc7740..5f766df5f 100644
--- 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,64 +12,41 @@ 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.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.ui.interfaces.ILazyLoader;
/**
- * The implementation of ILazyLoader for FSTreeNode check its data availability
+ * The implementation of ILazyLoader for IFSTreeNode check its data availability
* and load its children if not ready.
*/
public class FSTreeNodeLoader implements ILazyLoader {
// The node to be checked.
- private FSTreeNode node;
+ private IFSTreeNode node;
/**
* Constructor
- *
+ *
* @param node The file/folder node.
*/
- public FSTreeNodeLoader(FSTreeNode node) {
+ public FSTreeNodeLoader(IFSTreeNode node) {
this.node = node;
}
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.interfaces.ILazyLoader#isDataLoaded()
- */
@Override
public boolean isDataLoaded() {
- return node.isFile() || (node.isSystemRoot() || node.isDirectory()) && node.childrenQueried;
+ return node.getChildren() != null;
}
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.interfaces.ILazyLoader#loadData(org.eclipse.core.runtime.IProgressMonitor)
- */
@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);
- }
+ node.operationRefresh(false).run(monitor);
}
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.interfaces.ILazyLoader#isLeaf()
- */
@Override
public boolean isLeaf() {
- return node.isFile();
+ IFSTreeNode[] children = node.getChildren();
+ if (children != null) {
+ return children.length == 0;
+ }
+ return node.isFile();
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/NodeStateFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/NodeStateFilter.java
index 1ca440246..528fe7c62 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/NodeStateFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/NodeStateFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,18 +12,18 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters;
import java.util.List;
import org.eclipse.core.runtime.Assert;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpClipboard;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.core.model.CacheState;
-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.operations.FsClipboard;
import org.eclipse.ui.IActionFilter;
/**
- * This action filter wraps an FSTreeNode and test its attribute of "cache.state".
+ * This action filter wraps an IFSTreeNode and test its attribute of "cache.state".
* It serves as the expression filter of decorations of Target Explorer.
*/
public class NodeStateFilter implements IActionFilter {
- private FSTreeNode node;
+ private IFSTreeNode node;
/**
* Constructor.
@@ -31,7 +31,7 @@ public class NodeStateFilter implements IActionFilter {
* @param node
* The wrapped tree node. Must not be <code>null</code>.
*/
- public NodeStateFilter(FSTreeNode node) {
+ public NodeStateFilter(IFSTreeNode node) {
Assert.isNotNull(node);
this.node = node;
}
@@ -50,11 +50,11 @@ public class NodeStateFilter implements IActionFilter {
return value.equals(state.name());
}
else if (name.equals("edit.cut")) { //$NON-NLS-1$
- OpClipboard cb = UIPlugin.getClipboard();
+ FsClipboard cb = UIPlugin.getClipboard();
if (!cb.isEmpty()) {
if (cb.isCutOp()) {
- List<FSTreeNode> files = cb.getFiles();
- for (FSTreeNode file : files) {
+ List<IFSTreeNode> files = cb.getFiles();
+ for (IFSTreeNode file : files) {
if (node == file) return true;
}
}
@@ -63,12 +63,12 @@ public class NodeStateFilter implements IActionFilter {
else if (name.equals("hidden")) { //$NON-NLS-1$
if (value == null) value = "true"; //$NON-NLS-1$
boolean result = false;
- if (!node.isRoot()) {
+ if (!node.isRootDirectory()) {
if (node.isWindowsNode()) {
result = node.isHidden();
}
else {
- result = node.name.startsWith("."); //$NON-NLS-1$
+ result = node.getName().startsWith("."); //$NON-NLS-1$
}
}
return Boolean.toString(result).equals(value);
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PersistableNode.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PersistableNode.java
index 8cc6698d4..0366e967c 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PersistableNode.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PersistableNode.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -9,23 +9,23 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IPersistableElement;
/**
- * The adapter class of FSTreeNode for IPersistableElement, used to
- * persist an FSTreeNode.
+ * The adapter class of IFSTreeNode for IPersistableElement, used to
+ * persist an IFSTreeNode.
*/
public class PersistableNode implements IPersistableElement {
// The node to be persisted.
- private FSTreeNode node;
+ private IFSTreeNode node;
/**
* Create an instance.
- *
+ *
* @param node The node to be persisted.
*/
- public PersistableNode(FSTreeNode node) {
+ public PersistableNode(IFSTreeNode node) {
this.node = node;
}
@@ -35,9 +35,9 @@ public class PersistableNode implements IPersistableElement {
*/
@Override
public void saveState(IMemento memento) {
- memento.putString("peerId", node.peerNode.getPeerId()); //$NON-NLS-1$
+ memento.putString("peerId", node.getPeerNode().getPeerId()); //$NON-NLS-1$
String path = null;
- if (!node.isSystemRoot()) path = node.getLocation();
+ if (!node.isFileSystem()) path = node.getLocation();
if (path != null) memento.putString("path", path); //$NON-NLS-1$
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveAllListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveAllListener.java
index 74ec4d7d8..139f28625 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveAllListener.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveAllListener.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -21,13 +21,9 @@ import org.eclipse.core.commands.NotHandledException;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpParsePath;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpUpload;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IResultOperation;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.ui.IEditorInput;
@@ -44,12 +40,12 @@ import org.eclipse.ui.handlers.HandlerUtil;
*/
public class SaveAllListener implements IExecutionListener {
// Dirty nodes that should be saved and synchronized.
- List<FSTreeNode> fDirtyNodes;
+ List<IFSTreeNode> fDirtyNodes;
/**
* Create the listener listening to command "SAVE ALL".
*/
public SaveAllListener() {
- this.fDirtyNodes = new ArrayList<FSTreeNode>();
+ this.fDirtyNodes = new ArrayList<IFSTreeNode>();
}
/* (non-Javadoc)
@@ -59,29 +55,15 @@ public class SaveAllListener implements IExecutionListener {
public void postExecuteSuccess(String commandId, Object returnValue) {
if (!fDirtyNodes.isEmpty()) {
if (UIPlugin.isAutoSaving()) {
- FSTreeNode[] nodes = fDirtyNodes.toArray(new FSTreeNode[fDirtyNodes.size()]);
- IOpExecutor executor = new UiExecutor();
- executor.execute(new OpUpload(nodes));
- }
- else {
- SafeRunner.run(new SafeRunnable(){
- @Override
- public void handleException(Throwable e) {
- // Ignore exception
- }
- @Override
- public void run() throws Exception {
- for (FSTreeNode dirtyNode : fDirtyNodes) {
- dirtyNode.refresh();
- }
- }});
+ UiExecutor.execute(ModelManager.operationUpload(fDirtyNodes));
+ } else {
+ for (IFSTreeNode dirtyNode : fDirtyNodes) {
+ dirtyNode.operationRefresh(false).runInJob(null);
+ }
}
}
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IExecutionListener#preExecute(java.lang.String, org.eclipse.core.commands.ExecutionEvent)
- */
@Override
public void preExecute(String commandId, ExecutionEvent event) {
fDirtyNodes.clear();
@@ -92,7 +74,7 @@ public class SaveAllListener implements IExecutionListener {
IEditorPart[] editors = page.getDirtyEditors();
for (IEditorPart editor : editors) {
IEditorInput input = editor.getEditorInput();
- FSTreeNode node = null;
+ IFSTreeNode node = null;
if (input instanceof IURIEditorInput) {
//Get the file that is being edited.
IURIEditorInput fileInput = (IURIEditorInput) input;
@@ -102,15 +84,15 @@ public class SaveAllListener implements IExecutionListener {
File localFile = store.toLocalFile(0, new NullProgressMonitor());
if (localFile != null) {
// Get the file's mapped FSTreeNode.
- OpParsePath parser = new OpParsePath(localFile.getCanonicalPath());
- new NullOpExecutor().execute(parser);
+ IResultOperation<IFSTreeNode> parser = ModelManager.operationRestoreFromPath(localFile.getCanonicalPath());
+ parser.run(null);
node = parser.getResult();
if (node != null) {
// If it is a modified node, add it to the dirty node list.
fDirtyNodes.add(node);
}
}
- }catch(Exception e){}
+ } catch(Exception e){}
}
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveListener.java
index 670beb8fb..ad75ae799 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveListener.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/autosave/SaveListener.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -21,11 +21,9 @@ import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.SafeRunner;
import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpParsePath;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpUpload;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IResultOperation;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.ui.IEditorInput;
@@ -38,7 +36,7 @@ import org.eclipse.ui.handlers.HandlerUtil;
*/
public class SaveListener implements IExecutionListener {
// Dirty node that should be committed or merged.
- FSTreeNode dirtyNode;
+ IFSTreeNode dirtyNode;
/**
* Create a SaveListener listening to command "SAVE".
@@ -53,8 +51,7 @@ public class SaveListener implements IExecutionListener {
public void postExecuteSuccess(String commandId, Object returnValue) {
if (dirtyNode != null) {
if (UIPlugin.isAutoSaving()) {
- IOpExecutor executor = new UiExecutor();
- executor.execute(new OpUpload(dirtyNode));
+ UiExecutor.execute(dirtyNode.operationUploadContent(dirtyNode.getCacheFile()));
}
else {
SafeRunner.run(new SafeRunnable(){
@@ -64,7 +61,8 @@ public class SaveListener implements IExecutionListener {
}
@Override
public void run() throws Exception {
- if (dirtyNode != null) dirtyNode.refresh();
+ if (dirtyNode != null)
+ dirtyNode.operationRefresh(false).runInJob(null);
}
});
}
@@ -85,8 +83,8 @@ public class SaveListener implements IExecutionListener {
IFileStore store = EFS.getStore(uri);
File localFile = store.toLocalFile(0, new NullProgressMonitor());
if (localFile != null) {
- OpParsePath parser = new OpParsePath(localFile.getCanonicalPath());
- new NullOpExecutor().execute(parser);
+ IResultOperation<IFSTreeNode> parser = ModelManager.operationRestoreFromPath(localFile.getCanonicalPath());
+ parser.run(null);
dirtyNode = parser.getResult();
}
}catch(Exception e){
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellModifier.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellModifier.java
index b1da8c4ad..b76b4f015 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellModifier.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellModifier.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,11 +12,8 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.celleditor;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.swt.widgets.Item;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.JobExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRename;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
-import org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers.RenameCallback;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
/**
* FSCellModifier is an <code>ICellModifier</code> of the file system tree of the target explorer.
@@ -38,9 +35,9 @@ public class FSCellModifier implements ICellModifier {
if (element instanceof Item) {
element = ((Item) element).getData();
}
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
- if (!node.isRoot()) {
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
+ if (!node.isRootDirectory()) {
return node.isWindowsNode() && !node.isReadOnly() || !node.isWindowsNode() && node.isWritable();
}
}
@@ -58,9 +55,9 @@ public class FSCellModifier implements ICellModifier {
if (element instanceof Item) {
element = ((Item) element).getData();
}
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
- return node.name;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
+ return node.getName();
}
}
return null;
@@ -77,13 +74,11 @@ public class FSCellModifier implements ICellModifier {
if (element instanceof Item) {
element = ((Item) element).getData();
}
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
Assert.isTrue(value != null && value instanceof String);
String newName = (String) value;
- // Rename the node with the new name using an FSRename.
- IOpExecutor executor = new JobExecutor(new RenameCallback());
- executor.execute(new OpRename(node, newName));
+ UiExecutor.execute(node.operationRename(newName));
}
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellValidator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellValidator.java
index 85b3de181..4bb211780 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellValidator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/celleditor/FSCellValidator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,13 +9,11 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.celleditor;
-import java.util.List;
-
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.ICellEditorValidator;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
/**
@@ -48,12 +46,12 @@ public class FSCellValidator implements ICellEditorValidator {
public String isValid(Object value) {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
Object element = selection.getFirstElement();
- Assert.isTrue(element instanceof FSTreeNode);
- FSTreeNode node = (FSTreeNode) element;
+ Assert.isTrue(element instanceof IFSTreeNode);
+ IFSTreeNode node = (IFSTreeNode) element;
if (value == null) return Messages.FSRenamingAssistant_SpecifyNonEmptyName;
String text = value.toString().trim();
if (text.length() == 0) return Messages.FSRenamingAssistant_SpecifyNonEmptyName;
- if (hasChild(node, text)) {
+ if (hasSibbling(node, text)) {
return Messages.FSRenamingAssistant_NameAlreadyExists;
}
String formatRegex = node.isWindowsNode() ? WIN_FILENAME_REGEX : UNIX_FILENAME_REGEX;
@@ -69,13 +67,19 @@ public class FSCellValidator implements ICellEditorValidator {
* @param name The name.
* @return true if it has a child with the name.
*/
- private boolean hasChild(FSTreeNode folder, String name) {
- List<FSTreeNode> nodes = folder.getParent().getChildren();
- for (FSTreeNode node : nodes) {
+ private boolean hasSibbling(IFSTreeNode folder, String name) {
+ IFSTreeNode[] nodes = folder.getParent().getChildren();
+ if (nodes == null) {
+ return false;
+ }
+ for (IFSTreeNode node : nodes) {
if (node.isWindowsNode()) {
- if (node.name.equalsIgnoreCase(name)) return true;
+ if (node.getName().equalsIgnoreCase(name)) {
+ return true;
+ }
+ } else if (node.getName().equals(name)) {
+ return true;
}
- else if (node.name.equals(name)) return true;
}
return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeComparator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeComparator.java
index 29374e19c..343e2aba7 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeComparator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeComparator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,7 +9,7 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The comparator for the tree column "Date Accessed".
@@ -19,12 +19,12 @@ public class AccessTimeComparator extends FSTreeNodeComparator {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public int doCompare(FSTreeNode node1, FSTreeNode node2) {
- long atime1 = node1.attr != null ? node1.attr.atime : 0;
- long atime2 = node2.attr != null ? node2.attr.atime : 0;
+ public int doCompare(IFSTreeNode node1, IFSTreeNode node2) {
+ long atime1 = node1.getAccessTime();
+ long atime2 = node2.getAccessTime();
return atime1 < atime2 ? -1 : (atime1 > atime2 ? 1 : 0);
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeLabelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeLabelProvider.java
index ab84b5d73..68bc0cc85 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeLabelProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/AccessTimeLabelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -13,7 +13,7 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The label provider for the tree column "Date Accessed".
@@ -26,11 +26,12 @@ public class AccessTimeLabelProvider extends LabelProvider {
*/
@Override
public String getText(Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
- if (node.attr != null) {
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
+ long atime = node.getAccessTime();
+ if (atime != 0) {
SimpleDateFormat dateFormat = new SimpleDateFormat("M/d/yyyy h:mm aa"); //$NON-NLS-1$
- return dateFormat.format(new Date(node.attr.atime));
+ return dateFormat.format(new Date(atime));
}
}
return ""; //$NON-NLS-1$
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/CacheFileImageUpdater.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/CacheFileImageUpdater.java
index 24f70fb77..2d1286bfa 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/CacheFileImageUpdater.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/CacheFileImageUpdater.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -11,8 +11,8 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import java.io.File;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.CacheManager;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
/**
* The image update adapter that updates the images of the file which
@@ -21,33 +21,33 @@ import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
public class CacheFileImageUpdater implements ImageUpdateAdapter {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getImageKey(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getImageKey(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public String getImageKey(FSTreeNode node) {
+ public String getImageKey(IFSTreeNode node) {
return node.getLocationURL().toExternalForm();
}
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getMirrorFile(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getMirrorFile(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public File getMirrorFile(FSTreeNode node) {
- return CacheManager.getCacheFile(node);
+ public File getMirrorFile(IFSTreeNode node) {
+ return node.getCacheFile();
}
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getImgFile(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getImgFile(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public File getImageFile(FSTreeNode node) {
- File cacheFile = CacheManager.getCacheFile(node);
+ public File getImageFile(IFSTreeNode node) {
+ File cacheFile = node.getCacheFile();
File parentDir = cacheFile.getParentFile();
if (!parentDir.exists() && !parentDir.mkdirs()) {
- parentDir = CacheManager.getCacheRoot();
+ parentDir = ModelManager.getCacheRoot();
}
- return new File(parentDir, node.name + ".png"); //$NON-NLS-1$
+ return new File(parentDir, node.getName() + ".png"); //$NON-NLS-1$
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/DefaultImageProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/DefaultImageProvider.java
index 2f3b78a81..07bc7e7b5 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/DefaultImageProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/DefaultImageProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.ImageConsts;
import org.eclipse.ui.IEditorRegistry;
@@ -20,7 +20,7 @@ import org.eclipse.ui.PlatformUI;
/**
* The default implementation of ImageProvider, defining the images
- * based on predefined images based on the node simulator.
+ * based on predefined images based on the node simulator.
*/
public class DefaultImageProvider implements ImageProvider {
// The editor registry used to search a file's image.
@@ -28,14 +28,14 @@ public class DefaultImageProvider implements ImageProvider {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageProvider#getImage(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageProvider#getImage(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public Image getImage(FSTreeNode node) {
- if (node.isSystemRoot()) {
+ public Image getImage(IFSTreeNode node) {
+ if (node.isFileSystem()) {
return UIPlugin.getImage(ImageConsts.ROOT);
}
- else if (node.isRoot()) {
+ else if (node.isRootDirectory()) {
return UIPlugin.getImage(ImageConsts.ROOT_DRIVE);
}
else if (node.isDirectory()) {
@@ -50,13 +50,13 @@ public class DefaultImageProvider implements ImageProvider {
/**
* Get a predefined image for the tree node. These images are retrieved from
* editor registry.
- *
+ *
* @param node The file tree node.
* @return The editor image for this simulator.
*/
- protected Image getPredefinedImage(FSTreeNode node) {
+ protected Image getPredefinedImage(IFSTreeNode node) {
Image image;
- String key = node.name;
+ String key = node.getName();
image = UIPlugin.getImage(key);
if (image == null) {
ImageDescriptor descriptor = getEditorRegistry().getImageDescriptor(key);
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementComparator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementComparator.java
index 5ad79dca1..7be26ef0e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementComparator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementComparator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,7 +9,7 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The comparator for the tree column "name".
@@ -19,12 +19,12 @@ public class FSTreeElementComparator extends FSTreeNodeComparator {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public int doCompare(FSTreeNode node1, FSTreeNode node2) {
- String name1 = node1.name;
- String name2 = node2.name;
+ public int doCompare(IFSTreeNode node1, IFSTreeNode node2) {
+ String name1 = node1.getName();
+ String name2 = node2.getName();
if (name1 != null && name2 != null) {
if (name1.startsWith(".") && !name2.startsWith(".")) return -1; //$NON-NLS-1$ //$NON-NLS-2$
if (!name1.startsWith(".") && name2.startsWith(".")) return 1; //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementLabelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementLabelProvider.java
index 3ae7d9ae4..f9c4c993a 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementLabelProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeElementLabelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,7 +12,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import org.eclipse.swt.graphics.Image;
import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode;
import org.eclipse.tcf.te.runtime.utils.Host;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.ui.trees.PendingAwareLabelProvider;
@@ -41,8 +41,8 @@ public class FSTreeElementLabelProvider extends PendingAwareLabelProvider {
*/
@Override
public String getText(Object element) {
- if (element instanceof FSTreeNode) {
- return ((FSTreeNode) element).name;
+ if (element instanceof IFSTreeNode) {
+ return ((IFSTreeNode) element).getName();
}
else if (element instanceof IModelNode) {
return ((IModelNode)element).getName();
@@ -57,8 +57,8 @@ public class FSTreeElementLabelProvider extends PendingAwareLabelProvider {
*/
@Override
public Image getImage(Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
return imgProvider.getImage(node);
}
else if (element instanceof IModelNode) {
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeNodeComparator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeNodeComparator.java
index 4aaad28d0..d9fea2ab4 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeNodeComparator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FSTreeNodeComparator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,7 +12,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import java.io.Serializable;
import java.util.Comparator;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The base comparator for all the file system tree column.
@@ -26,30 +26,19 @@ public abstract class FSTreeNodeComparator implements Comparator<Object>, Serial
*/
@Override
public final int compare(Object o1, Object o2) {
- if (!(o1 instanceof FSTreeNode) || !(o2 instanceof FSTreeNode)) return 0;
+ if (!(o1 instanceof IFSTreeNode) || !(o2 instanceof IFSTreeNode))
+ return 0;
- FSTreeNode node1 = (FSTreeNode)o1;
- FSTreeNode node2 = (FSTreeNode)o2;
-
- // Get the type labels
- String type1 = node1.type;
- String type2 = node2.type;
+ IFSTreeNode node1 = (IFSTreeNode)o1;
+ IFSTreeNode node2 = (IFSTreeNode)o2;
// Group directories and files always together before sorting by name
- if ((node1.isRoot() || node1.isDirectory()) && !(node2.isRoot() || node2.isDirectory())) {
- return -1;
- }
-
- if ((node2.isRoot() || node2.isDirectory()) && !(node1.isRoot() || node1.isDirectory())) {
- return 1;
- }
-
- // If the nodes are of the same type and one entry starts
- // with a '.', it comes before the one without a '.'
- if (type1 != null && type2 != null && type1.equals(type2)) {
- return doCompare(node1, node2);
- }
- return 0;
+ boolean d1 = node1.isDirectory();
+ boolean d2 = node2.isDirectory();
+ if (d1 != d2)
+ return d1 ? -1 : 1;
+
+ return doCompare(node1, node2);
}
/**
@@ -59,5 +48,5 @@ public abstract class FSTreeNodeComparator implements Comparator<Object>, Serial
* @param node2 The second node.
* @return The comparison result.
*/
- public abstract int doCompare(FSTreeNode node1, FSTreeNode node2);
+ public abstract int doCompare(IFSTreeNode node1, IFSTreeNode node2);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileExtBasedImageUpdater.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileExtBasedImageUpdater.java
index 90ca5dbe7..c1fd7e4d9 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileExtBasedImageUpdater.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileExtBasedImageUpdater.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -12,7 +12,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import java.io.File;
import java.io.IOException;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The image update adapter that updates the images of the file which does
@@ -21,33 +21,33 @@ import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
public class FileExtBasedImageUpdater implements ImageUpdateAdapter {
// The label provider update daemon
private LabelProviderUpdateDaemon updateDaemon;
-
+
/**
* Create an instance with the specified daemon.
- *
+ *
* @param daemon The label provider update daemon.
*/
public FileExtBasedImageUpdater(LabelProviderUpdateDaemon daemon) {
this.updateDaemon = daemon;
}
-
+
/**
* Get the node's file extension or null if there is no extension.
- *
+ *
* @param node The file tree node.
* @return The file's extension or null.
*/
- private String getFileExt(FSTreeNode node) {
- String name = node.name;
+ private String getFileExt(IFSTreeNode node) {
+ String name = node.getName();
String ext = "noext"; //$NON-NLS-1$
int index = name.lastIndexOf("."); //$NON-NLS-1$
if (index != -1) ext = name.substring(index + 1);
return ext;
}
-
+
/**
* Get the directory to store the temporary mirror files.
- *
+ *
* @return The directory to contain the mirror files.
*/
private File getMirrorDir() {
@@ -61,20 +61,20 @@ public class FileExtBasedImageUpdater implements ImageUpdateAdapter {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getImageKey(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getImageKey(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public String getImageKey(FSTreeNode node) {
+ public String getImageKey(IFSTreeNode node) {
String ext = getFileExt(node);
return "EXT_IMAGE@" + ext; //$NON-NLS-1$
}
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getMirrorFile(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getMirrorFile(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public File getMirrorFile(FSTreeNode node) {
+ public File getMirrorFile(IFSTreeNode node) {
String ext = getFileExt(node);
File mrrDir = getMirrorDir();
File file = new File(mrrDir, "mirror" + "." + ext); //$NON-NLS-1$ //$NON-NLS-2$
@@ -90,10 +90,10 @@ public class FileExtBasedImageUpdater implements ImageUpdateAdapter {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getImgFile(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.ImageUpdateAdapter#getImgFile(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public File getImageFile(FSTreeNode node) {
+ public File getImageFile(IFSTreeNode node) {
String ext = getFileExt(node);
return updateDaemon.getTempImg(ext);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeComparator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeComparator.java
index 8b53a6bed..2cd986ee6 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeComparator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeComparator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,7 +9,7 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The comparator for the tree column "simulator".
@@ -19,12 +19,12 @@ public class FileTypeComparator extends FSTreeNodeComparator {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public int doCompare(FSTreeNode node1, FSTreeNode node2) {
- String type1 = node1.getFileType();
- String type2 = node2.getFileType();
+ public int doCompare(IFSTreeNode node1, IFSTreeNode node2) {
+ String type1 = node1.getFileTypeLabel();
+ String type2 = node2.getFileTypeLabel();
return type1.compareTo(type2);
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeLabelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeLabelProvider.java
index d97fa3d31..32a2feaa1 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeLabelProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/FileTypeLabelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,22 +10,22 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The label provider for the tree column "simulator".
*/
public class FileTypeLabelProvider extends LabelProvider {
-
+
/*
* (non-Javadoc)
* @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
*/
@Override
public String getText(Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
- return node.getFileType();
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
+ return node.getFileTypeLabel();
}
return super.getText(element);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageProvider.java
index 9ec98b0c8..68d83c05e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -10,19 +10,19 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* An image provider provides platform specific images for each files/folders.
- * It is used by FSTreeElementLabelProvider to provide the images of a file
+ * It is used by FSTreeElementLabelProvider to provide the images of a file
* node.
*/
public interface ImageProvider {
/**
* Get the image display for the specified file node.
- *
+ *
* @param node The file node.
* @return The image that represents the file node.
*/
- Image getImage(FSTreeNode node);
+ Image getImage(IFSTreeNode node);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageUpdateAdapter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageUpdateAdapter.java
index 1457868ad..1a3e81dd4 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageUpdateAdapter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ImageUpdateAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import java.io.File;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The interface to adapt the process of providing the image for two kinds of
@@ -20,27 +20,26 @@ import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
public interface ImageUpdateAdapter {
/**
- * Get an extension key as the image registry key for the
+ * Get an extension key as the image registry key for the
* specified node.
- *
+ *
* @param node The node to get the key for.
* @return The key used to cache the image descriptor in the registry.
*/
- public String getImageKey(FSTreeNode node);
-
+ public String getImageKey(IFSTreeNode node);
+
/**
* Return a mirror file that will be used to retrieve the image from.
- *
+ *
* @param node The file system tree node.
* @return The corresponding mirror file.
*/
- public File getMirrorFile(FSTreeNode node);
+ public File getMirrorFile(IFSTreeNode node);
/**
* Get the image file object for the specified temporary file name.
- *
- * @param tmpName The temporary file name.
+ *
* @return The file object.
*/
- public File getImageFile(FSTreeNode node);
+ public File getImageFile(IFSTreeNode node);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/LabelProviderUpdateDaemon.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/LabelProviderUpdateDaemon.java
index 5f5e04860..1c7a6a5e5 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/LabelProviderUpdateDaemon.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/LabelProviderUpdateDaemon.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -30,8 +30,8 @@ import org.eclipse.core.runtime.SafeRunner;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.tcf.te.core.interfaces.IPropertyChangeProvider;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.CacheManager;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.ImageConsts;
@@ -46,7 +46,7 @@ public class LabelProviderUpdateDaemon extends Thread {
{"windows 8", "win8_rootdrive.png"} //$NON-NLS-1$//$NON-NLS-2$
};
private static String root_drive = createRootImage(getOSEntry());
-
+
private static int getOSEntry() {
String osName = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$
for(int i = 0; i < os_drives.length;i++) {
@@ -54,18 +54,18 @@ public class LabelProviderUpdateDaemon extends Thread {
}
return 0;
}
-
+
private static String createRootImage(int i) {
UIPlugin plugin = UIPlugin.getDefault();
URL url = plugin.getBundle().getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_OBJ + os_drives[i][1]);
plugin.getImageRegistry().put(os_drives[i][0], ImageDescriptor.createFromURL(url));
return os_drives[i][0];
}
-
+
// The dummy AWT component used to render the icon.
Component dummyComponent = new JComponent(){private static final long serialVersionUID = 5926798769323111209L;};
//The queue that caches the current file nodes to be updated.
- BlockingQueue<FSTreeNode> queueNodes;
+ BlockingQueue<IFSTreeNode> queueNodes;
// The image update adapter for a file which has a local cache copy.
ImageUpdateAdapter cacheAdapter;
// The image update adapter for a file which does not has a local cache copy.
@@ -77,17 +77,17 @@ public class LabelProviderUpdateDaemon extends Thread {
public LabelProviderUpdateDaemon() {
super("Image Updater Daemon"); //$NON-NLS-1$
setDaemon(true);
- this.queueNodes = new LinkedBlockingQueue<FSTreeNode>();
+ this.queueNodes = new LinkedBlockingQueue<IFSTreeNode>();
this.cacheAdapter = new CacheFileImageUpdater();
this.extAdapter = new FileExtBasedImageUpdater(this);
}
/**
* Cache the node which is to be updated with its icon in the file tree.
- *
+ *
* @param node The node to be enqueued
*/
- public void enqueue(final FSTreeNode node) {
+ public void enqueue(final IFSTreeNode node) {
SafeRunner.run(new ISafeRunnable() {
@Override
public void handleException(Throwable exception) {
@@ -103,10 +103,10 @@ public class LabelProviderUpdateDaemon extends Thread {
/**
* Take next node to be processed.
- *
+ *
* @return The next node.
*/
- private FSTreeNode take() {
+ private IFSTreeNode take() {
while (true) {
try {
return queueNodes.take();
@@ -123,7 +123,7 @@ public class LabelProviderUpdateDaemon extends Thread {
@Override
public void run() {
while (true) {
- FSTreeNode node = take();
+ IFSTreeNode node = take();
ImageUpdateAdapter adapter = getUpdateAdapter(node);
String imgKey = adapter.getImageKey(node);
ImageDescriptor image = UIPlugin.getImageDescriptor(imgKey);
@@ -133,19 +133,19 @@ public class LabelProviderUpdateDaemon extends Thread {
image = createImage(imgKey, mrrFile, imgFile);
}
if (image != null) {
- sendNotification(node, node.name, null, image);
+ sendNotification(node, node.getName(), null, image);
}
}
}
-
+
/**
* Select an image update adapter for the specified node.
- *
- * @param node The FSTreeNode.
+ *
+ * @param node The IFSTreeNode.
* @return an image update adapter, either cache based or extension based.
*/
- private ImageUpdateAdapter getUpdateAdapter(FSTreeNode node) {
- File cacheFile = CacheManager.getCacheFile(node);
+ private ImageUpdateAdapter getUpdateAdapter(IFSTreeNode node) {
+ File cacheFile = node.getCacheFile();
if (cacheFile.exists()) {
return cacheAdapter;
}
@@ -155,11 +155,11 @@ public class LabelProviderUpdateDaemon extends Thread {
/**
* Get the image for the specified node from its
* image update adapter.
- *
+ *
* @param node The file system tree node.
* @return The image or null if there's no image yet.
*/
- public Image getImage(FSTreeNode node) {
+ public Image getImage(IFSTreeNode node) {
ImageUpdateAdapter adapter = getUpdateAdapter(node);
String key = adapter.getImageKey(node);
return UIPlugin.getImage(key);
@@ -168,7 +168,7 @@ public class LabelProviderUpdateDaemon extends Thread {
/**
* Create an Image Descriptor based on the mirror file and store
* it in the imgFile and store it using the specified image key.
- *
+ *
* @param imgKey The image key.
* @param mrrFile The mirror file used to create the image.
* @param imgFile The image file used to store the image data.
@@ -194,19 +194,19 @@ public class LabelProviderUpdateDaemon extends Thread {
}
return image;
}
-
+
/**
* Get the image of disk drivers on Windows platform.
- *
+ *
* @return The disk driver image.
*/
public Image getDiskImage() {
return UIPlugin.getImage(root_drive);
}
-
+
/**
* Get the folder image on Windows platform.
- *
+ *
* @return The folder image.
*/
public Image getFolderImage() {
@@ -223,24 +223,24 @@ public class LabelProviderUpdateDaemon extends Thread {
}
return UIPlugin.getImage(key);
}
-
+
/**
* Get the temporary directory store the images and temporary mirror files.
* @return
*/
protected File getTempDir() {
- File cacheRoot = CacheManager.getCacheRoot();
+ File cacheRoot = ModelManager.getCacheRoot();
File tempDir = new File(cacheRoot, ".tmp"); //$NON-NLS-1$
if (!tempDir.exists() && !tempDir.mkdirs()) {
tempDir = cacheRoot;
}
return tempDir;
}
-
+
/**
* Get the an image file named "imgName" in the temporary image
* directory.
- *
+ *
* @param imgName The image's file name.
* @return The file object of this image file.
*/
@@ -254,9 +254,9 @@ public class LabelProviderUpdateDaemon extends Thread {
}
/**
- * Create an image file using "png" format
+ * Create an image file using "png" format
* for the specified temporary file.
- *
+ *
* @param icon The icon that is used for the temporary file.
* @param tmpfile The temporary file.
*/
@@ -274,15 +274,15 @@ public class LabelProviderUpdateDaemon extends Thread {
/**
* Send a notification to inform the file tree for changed images.
- *
+ *
* @param node The node whose image has changed.
* @param key The key used to store the images.
* @param oldImg The old image descriptor.
* @param newImg The new image descriptor.
*/
- private void sendNotification(FSTreeNode node, String key, ImageDescriptor oldImg, ImageDescriptor newImg) {
- if (node.peerNode != null) {
- IPropertyChangeProvider viewerInput = (IPropertyChangeProvider) node.peerNode.getAdapter(IPropertyChangeProvider.class);
+ private void sendNotification(IFSTreeNode node, String key, ImageDescriptor oldImg, ImageDescriptor newImg) {
+ if (node.getPeerNode() != null) {
+ IPropertyChangeProvider viewerInput = (IPropertyChangeProvider) node.getPeerNode().getAdapter(IPropertyChangeProvider.class);
viewerInput.firePropertyChange(new PropertyChangeEvent(node, key, oldImg, newImg));
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeComparator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeComparator.java
index 6aad6951c..80d916746 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeComparator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeComparator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,7 +9,7 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The comparator for the tree column "Date Modified".
@@ -19,12 +19,12 @@ public class ModificationTimeComparator extends FSTreeNodeComparator {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public int doCompare(FSTreeNode node1, FSTreeNode node2) {
- long mtime1 = node1.attr != null ? node1.attr.mtime : 0;
- long mtime2 = node2.attr != null ? node2.attr.mtime : 0;
+ public int doCompare(IFSTreeNode node1, IFSTreeNode node2) {
+ long mtime1 = node1.getModificationTime();
+ long mtime2 = node2.getModificationTime();
return mtime1 < mtime2 ? -1 : (mtime1 > mtime2 ? 1 : 0);
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeLabelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeLabelProvider.java
index 0cedfb5b9..d06504332 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeLabelProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/ModificationTimeLabelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -13,7 +13,7 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The label provider for the tree column "Date Modified".
@@ -26,11 +26,12 @@ public class ModificationTimeLabelProvider extends LabelProvider {
*/
@Override
public String getText(Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
- if (node.attr != null) {
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
+ long mt = node.getModificationTime();
+ if (mt != 0) {
SimpleDateFormat dateFormat = new SimpleDateFormat("M/d/yyyy h:mm aa"); //$NON-NLS-1$
- return dateFormat.format(new Date(node.attr.mtime));
+ return dateFormat.format(new Date(mt));
}
}
return ""; //$NON-NLS-1$
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeComparator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeComparator.java
index af9b227e6..7f23cfeed 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeComparator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeComparator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,7 +9,7 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The comparator for the tree column "size".
@@ -19,12 +19,12 @@ public class SizeComparator extends FSTreeNodeComparator {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.FSTreeNodeComparator#doCompare(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode, org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public int doCompare(FSTreeNode node1, FSTreeNode node2) {
- long size1 = node1.attr != null ? node1.attr.size : 0;
- long size2 = node2.attr != null ? node2.attr.size : 0;
+ public int doCompare(IFSTreeNode node1, IFSTreeNode node2) {
+ long size1 = node1.getSize();
+ long size2 = node2.getSize();
return size1 < size2 ? -1 : (size1 > size2 ? 1 : 0);
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeLabelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeLabelProvider.java
index 489ce7940..761a3c1a4 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeLabelProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/SizeLabelProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,7 +12,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import java.text.DecimalFormat;
import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The label provider for the tree column "size".
@@ -27,11 +27,11 @@ public class SizeLabelProvider extends LabelProvider {
*/
@Override
public String getText(Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
// Directory nodes does not have a size
- if (node.isFile() && node.attr != null) {
- return SIZE_FORMAT.format(node.attr.size / 1024) + " KB"; //$NON-NLS-1$
+ if (node.isFile()) {
+ return SIZE_FORMAT.format(node.getSize() / 1024) + " KB"; //$NON-NLS-1$
}
}
return ""; //$NON-NLS-1$
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/WindowsImageProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/WindowsImageProvider.java
index de0529528..e98276bd6 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/WindowsImageProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/columns/WindowsImageProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -10,11 +10,11 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* Windows specific image provider extending the default image provider
- * to retrieve the file's images based on file extension or cached file.
+ * to retrieve the file's images based on file extension or cached file.
*/
public class WindowsImageProvider extends DefaultImageProvider {
// The background daemons that updates the images of the file system nodes.
@@ -26,11 +26,11 @@ public class WindowsImageProvider extends DefaultImageProvider {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.DefaultImageProvider#getImage(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.columns.DefaultImageProvider#getImage(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode)
*/
@Override
- public Image getImage(FSTreeNode node) {
- if (node.isRoot()) {
+ public Image getImage(IFSTreeNode node) {
+ if (node.isRootDirectory()) {
return node.isWindowsNode() ? updateDaemon.getDiskImage() : super.getImage(node);
}
else if (node.isDirectory()) {
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/EditableSharedDocumentAdapter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/EditableSharedDocumentAdapter.java
index ae087ace0..36354ff7a 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/EditableSharedDocumentAdapter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/EditableSharedDocumentAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * Copyright (c) 2005, 2015 IBM Corporation 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
@@ -25,7 +25,7 @@ import org.eclipse.ui.texteditor.IElementStateListener;
* provider to ensure that the changes are not lost (see
* {@link #hasBufferedContents()}). In order to avoid a leak, the buffer must
* either be saved (see
- * {@link #saveDocument(IEditorInput, boolean, IProgressMonitor)}) or released
+ * {@link #saveDocument(IEditorInput, IProgressMonitor)}) or released
* (see {@link #releaseBuffer()}).
* <p>
* This adapter must have a one-to-one correspondence to a typed element.
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalFileSaveable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalFileSaveable.java
index db636b588..0921626c0 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalFileSaveable.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalFileSaveable.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -30,9 +30,7 @@ import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.util.SafeRunnable;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpUpload;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.compare.EditableSharedDocumentAdapter.ISharedDocumentAdapterListener;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.ui.IEditorInput;
@@ -133,9 +131,8 @@ public class LocalFileSaveable extends Saveable implements
saving = false;
monitor.done();
//Trigger upload action
- FSTreeNode node = fileElement.getFSTreeNode();
- IOpExecutor executor = new UiExecutor();
- executor.execute(new OpUpload(node));
+ IFSTreeNode node = fileElement.getFSTreeNode();
+ UiExecutor.execute(node.operationUploadContent(node.getCacheFile()));
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalTypedElement.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalTypedElement.java
index 825a66743..88ad9704c 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalTypedElement.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/LocalTypedElement.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -29,11 +29,11 @@ import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.osgi.util.NLS;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.CacheManager;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.compare.EditableSharedDocumentAdapter.ISharedDocumentAdapterListener;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
@@ -42,7 +42,7 @@ import org.eclipse.ui.ide.FileStoreEditorInput;
/**
* A <code>LocalTypedElement</code> extends <code>MergeTypedElement</code> and
- * wraps an <code>FSTreeNode</code> so that it can be used as the left element
+ * wraps an <code>IFSTreeNode</code> so that it can be used as the left element
* of a <code>MergeEditorInput</code>. It implements the interface
* <code>IEditableContent</code> so that it is editable.
*/
@@ -58,10 +58,8 @@ public class LocalTypedElement extends MergeTypedElement implements
/**
* Creates a <code>LocalTypedElement</code> for the given resource.
*
- * @param resource
- * the resource
*/
- public LocalTypedElement(FSTreeNode node) {
+ public LocalTypedElement(IFSTreeNode node) {
super(node);
setContent(getContent());
dirty = false;
@@ -111,8 +109,7 @@ public class LocalTypedElement extends MergeTypedElement implements
@Override
protected InputStream createStream() throws CoreException {
try {
- IPath cachePath = CacheManager.getCachePath(node);
- File cacheFile = cachePath.toFile();
+ File cacheFile = node.getCacheFile();
return new BufferedInputStream(new FileInputStream(cacheFile));
} catch (FileNotFoundException e) {
IStatus error = new Status(IStatus.ERROR,
@@ -142,9 +139,6 @@ public class LocalTypedElement extends MergeTypedElement implements
* if the element is connected to a shared document. If the element is not
* connected, <code>false</code> is returned.
*
- * @param overwrite
- * indicates whether overwrite should be performed while saving
- * the given element if necessary
* @param monitor
* a progress monitor
* @throws CoreException
@@ -195,7 +189,7 @@ public class LocalTypedElement extends MergeTypedElement implements
*/
@Override
public String toString() {
- File cacheFile = CacheManager.getCacheFile(node);
+ File cacheFile = node.getCacheFile();
return cacheFile.toString();
}
@@ -251,7 +245,7 @@ public class LocalTypedElement extends MergeTypedElement implements
* @return The editor input.
*/
public IEditorInput getEditorInput() {
- IPath path = CacheManager.getCachePath(node);
+ IPath path = new Path(node.getCacheFile().getAbsolutePath());
IFileStore fileStore = EFS.getLocalFileSystem().getStore(path);
return new FileStoreEditorInput(fileStore);
}
@@ -263,7 +257,7 @@ public class LocalTypedElement extends MergeTypedElement implements
* The monitor that reports the progress.
*/
public void store2Cache(IProgressMonitor monitor) throws CoreException {
- File cacheFile = CacheManager.getCacheFile(node);
+ File cacheFile = node.getCacheFile();
monitor.beginTask(NLS.bind(Messages.LocalTypedElement_SavingFile, cacheFile.getName()), 100);
InputStream is = getContents();
BufferedOutputStream bos = null;
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeEditorInput.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeEditorInput.java
index 65f8c5846..0c2c3d832 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeEditorInput.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeEditorInput.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -147,7 +147,7 @@ public class MergeEditorInput extends CompareEditorInput implements
*/
@Override
public String getToolTipText() {
- return NLS.bind(Messages.MergeEditorInput_CompareLeftAndRight, left, right);
+ return NLS.bind(Messages.MergeEditorInput_CompareLeftAndRight, left, right);
}
/* (non-Javadoc)
@@ -155,7 +155,7 @@ public class MergeEditorInput extends CompareEditorInput implements
*/
@Override
public String getTitle() {
- return NLS.bind(Messages.MergeEditorInput_CompareWithLocalCache, left.getName());
+ return NLS.bind(Messages.MergeEditorInput_CompareWithLocalCache, left.getName());
}
/**
@@ -279,11 +279,11 @@ public class MergeEditorInput extends CompareEditorInput implements
/**
* Get the fSaveable that provides the save behavior for this compare editor
- * input. The {@link #createSaveable()} is called to create the fSaveable if
+ * input. The {@link #getSaveable()} is called to create the fSaveable if
* it does not yet exist. This method cannot be called until after the input
* is prepared (i.e. until after the {@link #run(IProgressMonitor)} method
* is called which will in turn will invoke
- * {@link #prepareCompareInput(IProgressMonitor)}.
+ * {@link #prepareInput(IProgressMonitor)}.
*
* @return fSaveable that provides the save behavior for this compare editor
* input.
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeInput.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeInput.java
index 912b777ee..416bb3c1b 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeInput.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeInput.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -23,7 +23,6 @@ import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
/**
* An abstract compare input whose purpose is to support change notification
- * through a {@link CompareInputChangeNotifier}.
*/
public class MergeInput implements ICompareInput {
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeTypedElement.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeTypedElement.java
index 37e96269d..672597e24 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeTypedElement.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/MergeTypedElement.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -14,15 +14,15 @@ import org.eclipse.compare.BufferedContent;
import org.eclipse.compare.CompareUI;
import org.eclipse.compare.ITypedElement;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
- * A <code>MergeTypedElement</code> wraps an <code>FSTreeNode</code> so that it
+ * A <code>MergeTypedElement</code> wraps an <code>IFSTreeNode</code> so that it
* can be used as input for the differencing engine (<code>ITypedElement</code>).
*/
public abstract class MergeTypedElement extends BufferedContent implements ITypedElement {
// The File System tree node to be wrapped.
- protected FSTreeNode node;
+ protected IFSTreeNode node;
/**
* Create a MergeTypedElement for the given node.
@@ -30,7 +30,7 @@ public abstract class MergeTypedElement extends BufferedContent implements IType
* @param node
* The node.
*/
- public MergeTypedElement(FSTreeNode node) {
+ public MergeTypedElement(IFSTreeNode node) {
this.node = node;
}
@@ -47,7 +47,7 @@ public abstract class MergeTypedElement extends BufferedContent implements IType
*
* @return The tree node of the file
*/
- public FSTreeNode getFSTreeNode() {
+ public IFSTreeNode getFSTreeNode() {
return node;
}
@@ -60,7 +60,7 @@ public abstract class MergeTypedElement extends BufferedContent implements IType
if (node.isDirectory()) {
return ITypedElement.FOLDER_TYPE;
}
- String s = node.name;
+ String s = node.getName();
int dot = s.lastIndexOf('.');
if (dot != -1) s = s.substring(dot + 1);
return s;
@@ -84,7 +84,7 @@ public abstract class MergeTypedElement extends BufferedContent implements IType
*/
@Override
public String getName() {
- return node.name;
+ return node.getName();
}
/* (non-Javadoc)
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/RemoteTypedElement.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/RemoteTypedElement.java
index b7e82c474..f645ed458 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/RemoteTypedElement.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/compare/RemoteTypedElement.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -21,15 +21,11 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IOperation;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpOutStreamOp;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
-import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
/**
- * A <code>RemoteTypedElement</code> wraps an <code>FSTreeNode</code> so that it
+ * A <code>RemoteTypedElement</code> wraps an <code>IFSTreeNode</code> so that it
* can be used as input for the differencing engine (<code>ITypedElement</code>)
* as the right element of the comparison editor.
*
@@ -42,7 +38,7 @@ public class RemoteTypedElement extends MergeTypedElement {
* @param node
* the tree node.
*/
- public RemoteTypedElement(FSTreeNode node) {
+ public RemoteTypedElement(IFSTreeNode node) {
super(node);
}
@@ -78,16 +74,16 @@ public class RemoteTypedElement extends MergeTypedElement {
*/
public void cacheContents(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
- monitor.beginTask(NLS.bind(Messages.RemoteTypedElement_DowloadingFile, node.name), 100);
OutputStream output = null;
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
output = new BufferedOutputStream(baos);
- monitor.beginTask(Messages.RemoteTypedElement_GettingRemoteContent + node.name, 100);
- IOperation operation = new OpOutStreamOp(node, output);
- operation.run(monitor);
- if (!monitor.isCanceled()) {
+ if (node.operationDownload(output).run(monitor).isOK()) {
setContent(baos.toByteArray());
}
+ try {
+ baos.close();
+ } catch (IOException e) {
+ }
}
/**
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/decorators/PhantomDecorator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/decorators/PhantomDecorator.java
index 8247ef500..a07d8087c 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/decorators/PhantomDecorator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/decorators/PhantomDecorator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,11 +12,11 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.decorators;
import org.eclipse.jface.viewers.ILabelDecorator;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.ui.jface.images.AbstractImageDescriptor;
/**
- * The label decorator to decorate the FSTreeNodes that are cut or hidden.
+ * The label decorator to decorate the FSTreeNodes that are cut or hidden.
*/
public class PhantomDecorator extends LabelProvider implements ILabelDecorator {
/*
@@ -25,7 +25,7 @@ public class PhantomDecorator extends LabelProvider implements ILabelDecorator {
*/
@Override
public Image decorateImage(Image image, Object element) {
- if (element instanceof FSTreeNode && image != null) {
+ if (element instanceof IFSTreeNode && image != null) {
// Create the cut image for the image to be decorated.
AbstractImageDescriptor descriptor = new PhantomImageDescriptor(image);
return UIPlugin.getSharedImage(descriptor);
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java
index 2a3d832de..b212938f5 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/CommonDnD.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,6 +9,8 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.dnd;
+import static java.util.Arrays.asList;
+
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -17,7 +19,6 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.dnd.DND;
@@ -27,20 +28,9 @@ import org.eclipse.swt.dnd.TransferData;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tcf.te.runtime.callback.Callback;
-import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IConfirmCallback;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IOperation;
-import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.JobExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCopy;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpMove;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefresh;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpUpload;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.CacheManager;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.ImageConsts;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers.MoveCopyCallback;
@@ -78,9 +68,13 @@ public class CommonDnD implements IConfirmCallback {
* @return true if it is draggable.
*/
private boolean isDraggableObject(Object object) {
- if (object instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) object;
- return !node.isRoot() && (node.isWindowsNode() && !node.isReadOnly() || !node.isWindowsNode() && node.isWritable());
+ if (object instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) object;
+ if (node.isRootDirectory())
+ return false;
+ if (node.isWindowsNode())
+ return !node.isReadOnly();
+ return node.isWritable();
}
return false;
}
@@ -94,171 +88,134 @@ public class CommonDnD implements IConfirmCallback {
* @param target the target folder the files to be dropped to.
* @return true if the dropping is successful.
*/
- public boolean dropFiles(TreeViewer viewer, String[] files, int operations, FSTreeNode target) {
- IOpExecutor executor = null;
- if ((operations & DND.DROP_MOVE) != 0) {
+ public boolean dropFiles(TreeViewer viewer, String[] files, int operations, IFSTreeNode target) {
+ boolean move = (operations & DND.DROP_MOVE) != 0;
+ if (move) {
String question;
if (files.length == 1) {
question = NLS.bind(Messages.FSDropTargetListener_MovingWarningSingle, files[0]);
- }
- else {
+ } else {
question = NLS.bind(Messages.FSDropTargetListener_MovingWarningMultiple, Integer.valueOf(files.length));
}
Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- if (MessageDialog.openQuestion(parent, Messages.FSDropTargetListener_ConfirmMoveTitle, question)) {
- ICallback callback = getMoveCallback(viewer, files, target);
- executor = new UiExecutor(callback);
+ if (!MessageDialog.openQuestion(parent, Messages.FSDropTargetListener_ConfirmMoveTitle, question)) {
+ return false;
}
+ } else if ((operations & DND.DROP_COPY) == 0) {
+ return false;
}
- else if ((operations & DND.DROP_COPY) != 0) {
- ICallback callback = getCopyCallback(viewer, files, target);
- executor = new UiExecutor(callback);
- }
- if (executor != null) {
- IStatus status = executor.execute(new OpUpload(files, target, this));
- return status != null && status.isOK();
- }
- return false;
- }
-
- /**
- * Get the callback that refresh and select the files being dragged when the dragging gesture is
- * copying.
- *
- * @param viewer the tree viewer to be refreshed after dragging.
- * @param files The files being dragged.
- * @param target The target folder to drag the files to.
- * @return callback that handles refreshing and selection.
- */
- private ICallback getCopyCallback(final TreeViewer viewer, final String[] files, final FSTreeNode target) {
- return new Callback() {
- @Override
- protected void internalDone(Object caller, IStatus status) {
- if (status.isOK()) {
- IOpExecutor executor = new JobExecutor(getSelectionCallback(viewer, files, target));
- executor.execute(new OpRefresh(target));
+ IStatus status = UiExecutor.execute(target.operationDropFiles(asList(files), this));
+ if (move && status.isOK()) {
+ for (String path : files) {
+ File file = new File(path);
+ if (!file.delete()) {
}
}
- };
+ }
+ return status.isOK();
}
- /**
- * Get the callback that delete the dragged source files, refresh and select the files being
- * dragged when the dragging gesture is moving.
- *
- * @param viewer the tree viewer to be refreshed after dragging.
- * @param files The files being dragged.
- * @param target The target folder to drag the files to.
- * @return callback that handles deletion, refreshing and selection.
- */
- private ICallback getMoveCallback(final TreeViewer viewer, final String[] files, final FSTreeNode target) {
- return new Callback() {
- @Override
- protected void internalDone(Object caller, IStatus status) {
- if (status.isOK()) {
- boolean successful = true;
- for (String path : files) {
- File file = new File(path);
- successful &= file.delete();
- }
- if (successful) {
- IRuntimeModel model = ModelManager.getRuntimeModel(target.peerNode);
- IOpExecutor executor = new JobExecutor(getSelectionCallback(viewer, files, target));
- executor.execute(new OpRefresh(model.getRoot()));
- }
- }
- }
- };
- }
+// private ICallback getCopyCallback(final TreeViewer viewer, final String[] files, final IFSTreeNode target) {
+// return new Callback() {
+// @Override
+// protected void internalDone(Object caller, IStatus status) {
+// // mstodo handle via notifications
+// if (status.isOK()) {
+// IOpExecutor executor = new JobExecutor(getSelectionCallback(viewer, files, target));
+// executor.execute(new OpRefresh(target));
+// }
+// }
+// };
+// }
- /**
- * Get the callback that refresh the files being dragged after moving or copying.
- *
- * @param viewer the tree viewer to be refreshed after dragging.
- * @param paths The paths of the files being dragged.
- * @param target The target folder to drag the files to.
- * @return callback that handles refreshing and selection.
- */
- ICallback getSelectionCallback(final TreeViewer viewer, final String[] paths, final FSTreeNode target) {
- return new Callback() {
- @Override
- protected void internalDone(Object caller, IStatus status) {
- if(status.isOK()) {
- List<FSTreeNode> nodes = new ArrayList<FSTreeNode>();
- List<FSTreeNode> children = target.getChildren();
- for (String path : paths) {
- File file = new File(path);
- String name = file.getName();
- for (FSTreeNode child : children) {
- if (name.equals(child.name)) {
- nodes.add(child);
- break;
- }
- }
- }
- if (viewer != null) {
- updateViewer(viewer, target, nodes);
- }
- }
- }
- };
- }
+// private ICallback getMoveCallback(final TreeViewer viewer, final String[] files, final IFSTreeNode target) {
+// return new Callback() {
+// @Override
+// protected void internalDone(Object caller, IStatus status) {
+// if (status.isOK()) {
+// for (String path : files) {
+// File file = new File(path);
+// if (!file.delete()) {
+// }
+// }
+ // mstodo handle via notifications
+// if (successful) {
+// IRuntimeModel model = ModelManager.getRuntimeModel(target.getPeerNode());
+// IOpExecutor executor = new JobExecutor(getSelectionCallback(viewer, files, target));
+// executor.execute(new OpRefresh(model.getRoot()));
+// }
+// }
+// }
+// };
+// }
- /**
- * Update the tree viewer after DnD and select the nodes that being dropped.
- *
- * @param viewer The tree viewer in which the DnD takes place.
- * @param target The target node that the drop operation happens.
- * @param nodes The nodes that are being dropped.
- */
- protected void updateViewer(final TreeViewer viewer, final FSTreeNode target, final List<FSTreeNode> nodes) {
- if (Display.getCurrent() != null) {
- viewer.refresh(target);
- IStructuredSelection selection = new StructuredSelection(nodes.toArray());
- viewer.setSelection(selection, true);
- }
- else {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable(){
- @Override
- public void run() {
- updateViewer(viewer, target, nodes);
- }});
- }
- }
+// ICallback getSelectionCallback(final TreeViewer viewer, final String[] paths, final IFSTreeNode target) {
+// return new Callback() {
+// @Override
+// protected void internalDone(Object caller, IStatus status) {
+// if(status.isOK()) {
+// List<IFSTreeNode> nodes = new ArrayList<IFSTreeNode>();
+// IFSTreeNode[] children = target.getChildren(true);
+// for (String path : paths) {
+// File file = new File(path);
+// String name = file.getName();
+// for (IFSTreeNode child : children) {
+// if (name.equals(child.getName())) {
+// nodes.add(child);
+// break;
+// }
+// }
+// }
+// if (viewer != null) {
+// updateViewer(viewer, target, nodes);
+// }
+// }
+// }
+// };
+// }
+
+// protected void updateViewer(final TreeViewer viewer, final IFSTreeNode target, final List<IFSTreeNode> nodes) {
+// if (Display.getCurrent() != null) {
+// viewer.refresh(target);
+// IStructuredSelection selection = new StructuredSelection(nodes.toArray());
+// viewer.setSelection(selection, true);
+// }
+// else {
+// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable(){
+// @Override
+// public void run() {
+// updateViewer(viewer, target, nodes);
+// }});
+// }
+// }
/**
* Perform the drop operation over dragged selection.
*
- * @param aTarget the target Object to be moved to.
+ * @param target the target Object to be moved to.
* @param operations the current dnd operations.
* @param selection The local selection being dropped.
* @return true if the dropping is successful.
*/
- public boolean dropLocalSelection(FSTreeNode target, int operations, IStructuredSelection selection) {
- List<FSTreeNode> nodes = selection.toList();
- IOpExecutor executor = null;
- IOperation operation = null;
- if ((operations & DND.DROP_MOVE) != 0) {
- operation = new OpMove(nodes, target, new MoveCopyCallback());
- executor = new UiExecutor(new Callback(){
- @Override
- protected void internalDone(Object caller, IStatus status) {
- UIPlugin.getClipboard().clear();
- }
- });
- }
- else if ((operations & DND.DROP_COPY) != 0) {
- FSTreeNode dest = getCopyDestination(target, nodes);
+ public boolean dropLocalSelection(IFSTreeNode target, int operations, IStructuredSelection selection) {
+ List<IFSTreeNode> nodes = selection.toList();
+ IOperation operation;
+ boolean move = (operations & DND.DROP_MOVE) != 0;
+ if (move) {
+ operation = target.operationDropMove(nodes, new MoveCopyCallback());
+ } else if ((operations & DND.DROP_COPY) != 0) {
+ IFSTreeNode dest = getCopyDestination(target, nodes);
boolean cpPerm = UIPlugin.isCopyPermission();
boolean cpOwn = UIPlugin.isCopyOwnership();
- operation = new OpCopy(nodes, dest, cpPerm, cpOwn, new MoveCopyCallback());
- executor = new UiExecutor();
+ operation = dest.operationDropCopy(nodes, cpPerm, cpOwn, new MoveCopyCallback());
+ } else {
+ return false;
}
- if (operation != null && executor != null) {
- IStatus status = executor.execute(operation);
- return status != null && status.isOK();
+ IStatus status = UiExecutor.execute(operation);
+ if (move) {
+ UIPlugin.getClipboard().clear();
}
- return false;
+ return status.isOK();
}
/**
@@ -271,12 +228,12 @@ public class CommonDnD implements IConfirmCallback {
* @param nodes
* @return
*/
- private FSTreeNode getCopyDestination(FSTreeNode hovered, List<FSTreeNode> nodes) {
+ private IFSTreeNode getCopyDestination(IFSTreeNode hovered, List<IFSTreeNode> nodes) {
if (hovered.isFile()) {
return hovered.getParent();
}
else if (hovered.isDirectory()) {
- for (FSTreeNode node : nodes) {
+ for (IFSTreeNode node : nodes) {
if (node == hovered) {
return hovered.getParent();
}
@@ -299,7 +256,7 @@ public class CommonDnD implements IConfirmCallback {
if (elements.length > 0) {
boolean moving = (operation & DND.DROP_MOVE) != 0;
boolean copying = (operation & DND.DROP_COPY) != 0;
- FSTreeNode hovered = (FSTreeNode) target;
+ IFSTreeNode hovered = (IFSTreeNode) target;
if (hovered.isFile() && copying) {
hovered = hovered.getParent();
}
@@ -317,19 +274,19 @@ public class CommonDnD implements IConfirmCallback {
* @return true if it is valid for dropping.
*/
public boolean validateLocalSelectionDrop(Object target, int operation, TransferData transferType) {
- FSTreeNode hovered = (FSTreeNode) target;
+ IFSTreeNode hovered = (IFSTreeNode) target;
LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
IStructuredSelection selection = (IStructuredSelection) transfer.getSelection();
- List<FSTreeNode> nodes = selection.toList();
+ List<IFSTreeNode> nodes = selection.toList();
boolean moving = (operation & DND.DROP_MOVE) != 0;
boolean copying = (operation & DND.DROP_COPY) != 0;
if (hovered.isDirectory() && hovered.isWritable() && (moving || copying)) {
- FSTreeNode head = nodes.get(0);
- String hid = head.peerNode.getPeerId();
- String tid = hovered.peerNode.getPeerId();
+ IFSTreeNode head = nodes.get(0);
+ String hid = head.getPeerNode().getPeerId();
+ String tid = hovered.getPeerNode().getPeerId();
if (hid.equals(tid)) {
- for (FSTreeNode node : nodes) {
- if (moving && node == hovered || node.isAncestorOf(hovered)) {
+ for (IFSTreeNode node : nodes) {
+ if (moving && node == hovered || node.getParent() == hovered || node.isAncestorOf(hovered)) {
return false;
}
}
@@ -357,16 +314,15 @@ public class CommonDnD implements IConfirmCallback {
* @see org.eclipse.tcf.te.tcf.filesystem.interfaces.IConfirmCallback#confirms(java.lang.Object)
*/
@Override
- public int confirms(Object object) {
+ public int confirms(final Object object) {
final int[] results = new int[1];
- final File file = (File) object;
Display display = PlatformUI.getWorkbench().getDisplay();
display.syncExec(new Runnable() {
@Override
public void run() {
Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
String title = Messages.FSUpload_OverwriteTitle;
- String message = NLS.bind(Messages.FSUpload_OverwriteConfirmation, file.getName());
+ String message = NLS.bind(Messages.FSUpload_OverwriteConfirmation, getName(object));
final Image titleImage = UIPlugin.getImage(ImageConsts.DELETE_READONLY_CONFIRM);
MessageDialog qDialog = new MessageDialog(parent, title, null, message,
MessageDialog.QUESTION, new String[] {Messages.FSUpload_Yes,
@@ -382,6 +338,16 @@ public class CommonDnD implements IConfirmCallback {
return results[0];
}
+ protected String getName(Object object) {
+ if (object instanceof File) {
+ return ((File) object).getName();
+ }
+ if (object instanceof IFSTreeNode) {
+ return ((IFSTreeNode) object).getName();
+ }
+ return String.valueOf(object);
+ }
+
/*
* (non-Javadoc)
* @see org.eclipse.swt.dnd.DragSourceListener#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
@@ -393,10 +359,10 @@ public class CommonDnD implements IConfirmCallback {
}
else if (FileTransfer.getInstance().isSupportedType(anEvent.dataType)) {
IStructuredSelection selection = (IStructuredSelection) LocalSelectionTransfer.getTransfer().getSelection();
- List<FSTreeNode> nodes = selection.toList();
+ List<IFSTreeNode> nodes = selection.toList();
List<String> paths = new ArrayList<String>();
- for(FSTreeNode node : nodes) {
- File file = CacheManager.getCacheFile(node);
+ for(IFSTreeNode node : nodes) {
+ File file = node.getCacheFile();
if(file.exists()) {
paths.add(file.getAbsolutePath());
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDragAdapterAssistant.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDragAdapterAssistant.java
index aaffe7f23..9163a6a39 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDragAdapterAssistant.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDragAdapterAssistant.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -17,7 +17,7 @@ import org.eclipse.swt.dnd.Transfer;
import org.eclipse.ui.navigator.CommonDragAdapterAssistant;
/**
- * The drag assistant used by Target Explorer to extend its DnD support to FSTreeNode elements.
+ * The drag assistant used by Target Explorer to extend its DnD support to IFSTreeNode elements.
*/
public class FSDragAdapterAssistant extends CommonDragAdapterAssistant {
// The common dnd operation
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropAdapterAssistant.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropAdapterAssistant.java
index d3ab481cb..9cf4929e8 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropAdapterAssistant.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropAdapterAssistant.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -19,7 +19,7 @@ import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.TransferData;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants;
import org.eclipse.ui.IViewReference;
import org.eclipse.ui.IWorkbenchWindow;
@@ -29,7 +29,7 @@ import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
import org.eclipse.ui.navigator.CommonNavigator;
/**
- * The drop assistant used by Target Explorer to extend its DnD support to FSTreeNode elements.
+ * The drop assistant used by Target Explorer to extend its DnD support to IFSTreeNode elements.
*/
public class FSDropAdapterAssistant extends CommonDropAdapterAssistant {
// The common dnd operation
@@ -49,7 +49,7 @@ public class FSDropAdapterAssistant extends CommonDropAdapterAssistant {
@Override
public IStatus validateDrop(Object target, int operation, TransferData transferType) {
boolean valid = false;
- if (target instanceof FSTreeNode) {
+ if (target instanceof IFSTreeNode) {
if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
valid = dnd.validateLocalSelectionDrop(target, operation, transferType);
}
@@ -58,7 +58,7 @@ public class FSDropAdapterAssistant extends CommonDropAdapterAssistant {
}
}
return valid ? Status.OK_STATUS : Status.CANCEL_STATUS;
- }
+ }
/*
* (non-Javadoc)
@@ -82,21 +82,21 @@ public class FSDropAdapterAssistant extends CommonDropAdapterAssistant {
if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
IStructuredSelection selection = (IStructuredSelection) aDropTargetEvent.data;
int operations = aDropAdapter.getCurrentOperation();
- FSTreeNode target = (FSTreeNode) aTarget;
+ IFSTreeNode target = (IFSTreeNode) aTarget;
sucess = dnd.dropLocalSelection(target, operations, selection);
}
else if(FileTransfer.getInstance().isSupportedType(transferType)) {
String[] files = (String[]) aDropTargetEvent.data;
int operations = aDropAdapter.getCurrentOperation();
- FSTreeNode target = (FSTreeNode) aTarget;
+ IFSTreeNode target = (IFSTreeNode) aTarget;
sucess = dnd.dropFiles(getCommonViewer(), files, operations, target);
}
return sucess ? Status.OK_STATUS : Status.CANCEL_STATUS;
}
-
+
/**
* Get the tree viewer of Target Explorer view.
- *
+ *
* @return The tree viewer of Target Explorer view or null if the view is not found.
*/
private TreeViewer getCommonViewer() {
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropTargetListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropTargetListener.java
index be8185fd0..0c0b91c3e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropTargetListener.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/dnd/FSDropTargetListener.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -17,7 +17,7 @@ import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The drop target listener for the file tree of Target Explorer.
@@ -29,7 +29,7 @@ public class FSDropTargetListener extends ViewerDropAdapter {
CommonDnD dnd;
/**
* Create FSDropTargetListener using the viewer.
- *
+ *
* @param viewer The file system tree viewer.
*/
public FSDropTargetListener(TreeViewer viewer) {
@@ -57,7 +57,7 @@ public class FSDropTargetListener extends ViewerDropAdapter {
*/
@Override
public boolean validateDrop(Object target, int operation, TransferData transferType) {
- if (target instanceof FSTreeNode) {
+ if (target instanceof IFSTreeNode) {
if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
return dnd.validateLocalSelectionDrop(target, operation, transferType);
}
@@ -79,13 +79,13 @@ public class FSDropTargetListener extends ViewerDropAdapter {
if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
IStructuredSelection selection = (IStructuredSelection) data;
int operations = getCurrentOperation();
- FSTreeNode target = (FSTreeNode) getCurrentTarget();
+ IFSTreeNode target = (IFSTreeNode) getCurrentTarget();
success = dnd.dropLocalSelection(target, operations, selection);
}
else if(FileTransfer.getInstance().isSupportedType(transferType)) {
String[] files = (String[]) data;
int operations = getCurrentOperation();
- FSTreeNode target = (FSTreeNode) getCurrentTarget();
+ IFSTreeNode target = (IFSTreeNode) getCurrentTarget();
success = dnd.dropFiles(viewer, files, operations, target);
}
return success;
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CommitHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CommitHandler.java
index 924ba72f0..1931d78e6 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CommitHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CommitHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -14,9 +14,7 @@ import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpUpload;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -31,9 +29,8 @@ public class CommitHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
- FSTreeNode node = (FSTreeNode) selection.getFirstElement();
- IOpExecutor executor = new UiExecutor();
- executor.execute(new OpUpload(node));
+ IFSTreeNode node = (IFSTreeNode) selection.getFirstElement();
+ UiExecutor.execute(node.operationUploadContent(node.getCacheFile()));
return null;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CopyFilesHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CopyFilesHandler.java
index 663cf903d..6c8db9c7d 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CopyFilesHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CopyFilesHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -15,26 +15,26 @@ import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpClipboard;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
+import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.FsClipboard;
import org.eclipse.ui.handlers.HandlerUtil;
/**
* The handler that copies the selected files or folders to the clip board.
*/
public class CopyFilesHandler extends AbstractHandler {
-
+
/*
* (non-Javadoc)
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- OpClipboard cb = UIPlugin.getClipboard();
+ FsClipboard cb = UIPlugin.getClipboard();
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
if (!selection.isEmpty()) {
- List<FSTreeNode> nodes = selection.toList();
+ List<IFSTreeNode> nodes = selection.toList();
// Copy these files to the clip board.
cb.copyFiles(nodes);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CutFilesHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CutFilesHandler.java
index cbca9c47e..18a0127d0 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CutFilesHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/CutFilesHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -15,26 +15,26 @@ import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpClipboard;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
+import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.FsClipboard;
import org.eclipse.ui.handlers.HandlerUtil;
/**
* The handler that cuts the selected files or folders to the clip board.
*/
public class CutFilesHandler extends AbstractHandler {
-
+
/*
* (non-Javadoc)
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- OpClipboard cb = UIPlugin.getClipboard();
+ FsClipboard cb = UIPlugin.getClipboard();
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
if (!selection.isEmpty()) {
- List<FSTreeNode> nodes = selection.toList();
+ List<IFSTreeNode> nodes = selection.toList();
// Cut these files to the clip board.
cb.cutFiles(nodes);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/DeleteHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/DeleteHandler.java
index 2cf79b44c..7b9591056 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/DeleteHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/DeleteHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,9 +22,8 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IConfirmCallback;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpDelete;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.ImageConsts;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
@@ -47,27 +46,26 @@ public class DeleteHandler extends AbstractHandler {
// Get the current selection
ISelection selection = HandlerUtil.getCurrentSelection(event);
if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
- List<FSTreeNode> nodes = ((IStructuredSelection)selection).toList();
+ List<IFSTreeNode> nodes = ((IStructuredSelection)selection).toList();
if(confirmDeletion(nodes)) {
- IOpExecutor executor = new UiExecutor();
- executor.execute(new OpDelete(nodes, readonlyCallback));
+ UiExecutor.execute(ModelManager.operationDelete(nodes, readonlyCallback));
}
}
return null;
}
-
+
/**
* Confirm the deletion of the specified nodes.
- *
+ *
* @param nodes The nodes to be deleted.
* @return true if the user agrees to delete.
*/
- private boolean confirmDeletion(List<FSTreeNode> nodes) {
+ private boolean confirmDeletion(List<IFSTreeNode> nodes) {
String question;
if (nodes.size() == 1) {
- FSTreeNode node = nodes.get(0);
- question = NLS.bind(Messages.DeleteFilesHandler_DeleteOneFileConfirmation, node.name);
+ IFSTreeNode node = nodes.get(0);
+ question = NLS.bind(Messages.DeleteFilesHandler_DeleteOneFileConfirmation, node.getName());
}
else {
question = NLS.bind(Messages.DeleteFilesHandler_DeleteMultipleFilesConfirmation, Integer.valueOf(nodes.size()));
@@ -90,8 +88,8 @@ public class DeleteHandler extends AbstractHandler {
*/
@Override
public boolean requires(Object object) {
- if(object instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) object;
+ if(object instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) object;
return node.isWindowsNode() && node.isReadOnly() || !node.isWindowsNode() && !node.isWritable();
}
return false;
@@ -103,7 +101,7 @@ public class DeleteHandler extends AbstractHandler {
*/
@Override
public int confirms(Object object) {
- final FSTreeNode node = (FSTreeNode) object;
+ final IFSTreeNode node = (IFSTreeNode) object;
final int[] results = new int[1];
Display display = PlatformUI.getWorkbench().getDisplay();
display.syncExec(new Runnable() {
@@ -111,7 +109,7 @@ public class DeleteHandler extends AbstractHandler {
public void run() {
Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
String title = Messages.FSDelete_ConfirmDelete;
- String message = NLS.bind(Messages.FSDelete_ConfirmMessage, node.name);
+ String message = NLS.bind(Messages.FSDelete_ConfirmMessage, node.getName());
final Image titleImage = UIPlugin.getImage(ImageConsts.DELETE_READONLY_CONFIRM);
MessageDialog qDialog = new MessageDialog(parent, title, null, message, MessageDialog.QUESTION, new String[] { Messages.FSDelete_ButtonYes, Messages.FSDelete_ButtonYes2All, Messages.FSDelete_ButtonNo, Messages.FSDelete_ButtonCancel }, 0) {
@Override
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MergeHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MergeHandler.java
index 47287db7e..0ecbbd933 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MergeHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MergeHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -15,7 +15,7 @@ import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.compare.LocalTypedElement;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.compare.MergeEditorInput;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.compare.RemoteTypedElement;
@@ -34,7 +34,7 @@ public class MergeHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
- FSTreeNode node = (FSTreeNode) selection.getFirstElement();
+ IFSTreeNode node = (IFSTreeNode) selection.getFirstElement();
LocalTypedElement local = new LocalTypedElement(node);
RemoteTypedElement remote = new RemoteTypedElement(node);
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveCopyCallback.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveCopyCallback.java
index 004628fbb..d7536402c 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveCopyCallback.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveCopyCallback.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -15,14 +15,14 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IConfirmCallback;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.ImageConsts;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.ui.PlatformUI;
/**
- * The confirmation callback implementation for operation "Move" and "Copy".
+ * The confirmation callback implementation for operation "Move" and "Copy".
*/
public class MoveCopyCallback implements IConfirmCallback {
@@ -41,7 +41,7 @@ public class MoveCopyCallback implements IConfirmCallback {
*/
@Override
public int confirms(Object object) {
- final FSTreeNode node = (FSTreeNode) object;
+ final IFSTreeNode node = (IFSTreeNode) object;
final int[] results = new int[1];
Display display = PlatformUI.getWorkbench().getDisplay();
display.syncExec(new Runnable() {
@@ -49,7 +49,7 @@ public class MoveCopyCallback implements IConfirmCallback {
public void run() {
Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
String title = node.isDirectory() ? Messages.FSOperation_ConfirmFolderReplaceTitle : Messages.FSOperation_ConfirmFileReplace;
- String message = NLS.bind(node.isDirectory() ? Messages.FSOperation_ConfirmFolderReplaceMessage : Messages.FSOperation_ConfirmFileReplaceMessage, node.name);
+ String message = NLS.bind(node.isDirectory() ? Messages.FSOperation_ConfirmFolderReplaceMessage : Messages.FSOperation_ConfirmFileReplaceMessage, node.getName());
final Image titleImage = UIPlugin.getImage(ImageConsts.REPLACE_FOLDER_CONFIRM);
MessageDialog qDialog = new MessageDialog(parent, title, null, message, MessageDialog.QUESTION, new String[] { Messages.FSOperation_ConfirmDialogYes, Messages.FSOperation_ConfirmDialogYesToAll, Messages.FSOperation_ConfirmDialogNo, Messages.FSOperation_ConfirmDialogCancel }, 0) {
@Override
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java
index d62a1d6b1..61da93bdc 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -18,9 +18,7 @@ import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpMove;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.dialogs.FSFolderSelectionDialog;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode;
@@ -29,7 +27,7 @@ import org.eclipse.ui.handlers.HandlerUtil;
* The handler that moves the selected files or folders to a destination folder.
*/
public class MoveFilesHandler extends AbstractHandler {
-
+
/*
* (non-Javadoc)
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
@@ -39,16 +37,15 @@ public class MoveFilesHandler extends AbstractHandler {
Shell shell = HandlerUtil.getActiveShellChecked(event);
FSFolderSelectionDialog dialog = new FSFolderSelectionDialog(shell);
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
- List<FSTreeNode> nodes = selection.toList();
- IPeerNode peer = nodes.get(0).peerNode;
+ List<IFSTreeNode> nodes = selection.toList();
+ IPeerNode peer = nodes.get(0).getPeerNode();
dialog.setInput(peer);
dialog.setMovedNodes(nodes);
if (dialog.open() == Window.OK) {
Object obj = dialog.getFirstResult();
- Assert.isTrue(obj instanceof FSTreeNode);
- FSTreeNode dest = (FSTreeNode) obj;
- IOpExecutor executor = new UiExecutor();
- executor.execute(new OpMove(nodes, dest, new MoveCopyCallback()));
+ Assert.isTrue(obj instanceof IFSTreeNode);
+ IFSTreeNode dest = (IFSTreeNode) obj;
+ UiExecutor.execute(dest.operationDropMove(nodes, new MoveCopyCallback()));
}
return null;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenFileHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenFileHandler.java
index cb046f899..146d7a54b 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenFileHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenFileHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -18,18 +18,14 @@ import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.tcf.te.runtime.callback.Callback;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCacheUpdate;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.CacheManager;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.ContentTypeHelper;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.PersistenceManager;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.core.model.CacheState;
-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.operations.UiExecutor;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
@@ -51,20 +47,19 @@ public class OpenFileHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
- final FSTreeNode node = (FSTreeNode) selection.getFirstElement();
+ final IFSTreeNode node = (IFSTreeNode) selection.getFirstElement();
final IWorkbenchPage page = HandlerUtil.getActiveSite(event).getPage();
- if (ContentTypeHelper.isBinaryFile(node)) {
+ if (node.isBinaryFile()) {
// If the file is a binary file.
Shell parent = HandlerUtil.getActiveShell(event);
MessageDialog.openWarning(parent, Messages.OpenFileHandler_Warning,
Messages.OpenFileHandler_OpeningBinaryNotSupported);
} else {
if (UIPlugin.isAutoSaving()) {
- // Refresh the node to determine the cache state correctly
- node.refresh(new Callback() {
+ node.operationRefresh(false).runInJob(new Callback() {
@Override
protected void internalDone(Object caller, IStatus status) {
- File file = CacheManager.getCacheFile(node);
+ File file = node.getCacheFile();
if (node.getCacheState() == CacheState.outdated) {
file.delete();
}
@@ -97,15 +92,10 @@ public class OpenFileHandler extends AbstractHandler {
* @param page
* The workbench page in which the editor is opened.
*/
- /* default */ void openFile(FSTreeNode node, IWorkbenchPage page) {
- File file = CacheManager.getCacheFile(node);
- if (!file.exists()) {
- // If the file node's local cache does not exist yet, download it.
- IOpExecutor executor = new UiExecutor();
- IStatus status = executor.execute(new OpCacheUpdate(node));
- if (!status.isOK()) {
- return;
- }
+ /* default */ void openFile(IFSTreeNode node, IWorkbenchPage page) {
+ File file = node.getCacheFile();
+ if (!file.exists() && !UiExecutor.execute(node.operationDownload(null)).isOK()) {
+ return;
}
openEditor(page, node);
}
@@ -118,14 +108,14 @@ public class OpenFileHandler extends AbstractHandler {
* @param node
* The file node whose local cache file is opened.
*/
- private void openEditor(final IWorkbenchPage page, final FSTreeNode node) {
+ private void openEditor(final IWorkbenchPage page, final IFSTreeNode node) {
Display display = page.getWorkbenchWindow().getWorkbench().getDisplay();
display.asyncExec(new Runnable() {
@Override
public void run() {
- IPath path = CacheManager.getCachePath(node);
+ IPath path = new Path(node.getCacheFile().getAbsolutePath());
IFileStore fileStore = EFS.getLocalFileSystem().getStore(path);
- String editorID = PersistenceManager.getInstance().getPersistentProperties(node).get(IDE.EDITOR_KEY);
+ String editorID = node.getPreferredEditorID();
try {
if(editorID!=null){
FileStoreEditorInput input = new FileStoreEditorInput(fileStore);
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithContribution.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithContribution.java
index aea1a5b3c..25f08401d 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithContribution.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithContribution.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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:
- * William Chen (Wind River) [360494]Provide an "Open With" action in the pop
+ * William Chen (Wind River) [360494]Provide an "Open With" action in the pop
* up menu of file system nodes of Target Explorer.
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers;
@@ -15,7 +15,7 @@ import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.ui.ISources;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
@@ -69,8 +69,8 @@ public class OpenWithContribution extends CompoundContributionItem implements IW
.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
IStructuredSelection iss = (IStructuredSelection) selection;
Object obj = iss.getFirstElement();
- Assert.isTrue(obj instanceof FSTreeNode);
- FSTreeNode node = (FSTreeNode) obj;
+ Assert.isTrue(obj instanceof IFSTreeNode);
+ IFSTreeNode node = (IFSTreeNode) obj;
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
return new IContributionItem[] { new OpenWithMenu(page, node) };
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithMenu.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithMenu.java
index 14c6679e1..dcc3e6139 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithMenu.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/OpenWithMenu.java
@@ -1,11 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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:
- * William Chen (Wind River) [360494]Provide an "Open With" action in the pop
+ * William Chen (Wind River) [360494]Provide an "Open With" action in the pop
* up menu of file system nodes of Target Explorer.
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers;
@@ -16,14 +16,11 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Map;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jface.action.ContributionItem;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.window.Window;
@@ -34,12 +31,7 @@ import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCacheUpdate;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.CacheManager;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.ContentTypeHelper;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.PersistenceManager;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
@@ -50,7 +42,6 @@ import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.EditorSelectionDialog;
import org.eclipse.ui.ide.FileStoreEditorInput;
-import org.eclipse.ui.ide.IDE;
/**
* A menu for opening files in the target explorer.
@@ -59,7 +50,7 @@ import org.eclipse.ui.ide.IDE;
* added for each editor which is applicable to the selected file. If the user selects one of these
* items, the corresponding editor is opened on the file.
* </p>
- *
+ *
* @since 3.7 - Copied and modified based on org.eclipse.ui.actions.OpenWithMenu to avoid
* introducing org.eclipse.core.resources
*/
@@ -85,19 +76,19 @@ public class OpenWithMenu extends ContributionItem {
}
};
// The selected tree node.
- FSTreeNode node;
+ IFSTreeNode node;
// The current workbench page.
IWorkbenchPage page;
// The editor registry.
IEditorRegistry registry;
/**
- * Create an instance using the specified page and the specified FSTreeNode.
- *
+ * Create an instance using the specified page and the specified IFSTreeNode.
+ *
* @param page The page to open the editor.
- * @param node The FSTreeNode to be opened.
+ * @param node The IFSTreeNode to be opened.
*/
- public OpenWithMenu(IWorkbenchPage page, FSTreeNode node) {
+ public OpenWithMenu(IWorkbenchPage page, IFSTreeNode node) {
super(ID);
this.node = node;
this.page = page;
@@ -106,7 +97,7 @@ public class OpenWithMenu extends ContributionItem {
/**
* Returns an image to show for the corresponding editor descriptor.
- *
+ *
* @param editorDesc the editor descriptor, or null for the system editor
* @return the image or null
*/
@@ -124,7 +115,7 @@ public class OpenWithMenu extends ContributionItem {
private ImageDescriptor getImageDescriptor(IEditorDescriptor editorDesc) {
ImageDescriptor imageDesc = null;
if (editorDesc == null) {
- imageDesc = registry.getImageDescriptor(node.name);
+ imageDesc = registry.getImageDescriptor(node.getName());
// TODO: is this case valid, and if so, what are the implications for content-simulator
// editor bindings?
}
@@ -133,7 +124,7 @@ public class OpenWithMenu extends ContributionItem {
}
if (imageDesc == null) {
if (editorDesc != null && editorDesc.getId().equals(IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID)) {
- imageDesc = registry.getSystemExternalEditorImageDescriptor(node.name);
+ imageDesc = registry.getSystemExternalEditorImageDescriptor(node.getName());
}
}
return imageDesc;
@@ -141,7 +132,7 @@ public class OpenWithMenu extends ContributionItem {
/**
* Creates the menu item for the editor descriptor.
- *
+ *
* @param menu the menu to add the item to
* @param descriptor the editor descriptor, or null for the system editor
* @param preferredEditor the descriptor of the preferred editor, or <code>null</code>
@@ -175,7 +166,7 @@ public class OpenWithMenu extends ContributionItem {
/**
* Creates the Other... menu item
- *
+ *
* @param menu the menu to add the item to
*/
@SuppressWarnings("unused")
@@ -190,7 +181,7 @@ public class OpenWithMenu extends ContributionItem {
case SWT.Selection:
EditorSelectionDialog dialog = new EditorSelectionDialog(menu.getShell());
dialog.setMessage(NLS
- .bind(Messages.OpenWithMenu_ChooseEditorForOpening, node.name));
+ .bind(Messages.OpenWithMenu_ChooseEditorForOpening, node.getName()));
if (dialog.open() == Window.OK) {
IEditorDescriptor editor = dialog.getSelectedEditor();
if (editor != null) {
@@ -207,15 +198,14 @@ public class OpenWithMenu extends ContributionItem {
}
/**
- * Get the default editor for this FSTreeNode.
- *
+ * Get the default editor for this IFSTreeNode.
+ *
* @return The descriptor of the default editor.
*/
private IEditorDescriptor getDefaultEditor() {
// Try file specific editor.
try {
- String editorID = PersistenceManager.getInstance().getPersistentProperties(node)
- .get(IDE.EDITOR_KEY);
+ String editorID = node.getPreferredEditorID();
if (editorID != null) {
IEditorDescriptor desc = registry.findEditor(editorID);
if (desc != null) {
@@ -227,10 +217,8 @@ public class OpenWithMenu extends ContributionItem {
// do nothing
}
- IContentType contentType = null;
- contentType = ContentTypeHelper.getContentType(node);
// Try lookup with filename
- return registry.getDefaultEditor(node.name, contentType);
+ return registry.getDefaultEditor(node.getName(), node.getContentType());
}
/*
@@ -243,7 +231,7 @@ public class OpenWithMenu extends ContributionItem {
IEditorDescriptor defaultEditor = registry.findEditor(DEFAULT_TEXT_EDITOR);
IEditorDescriptor preferredEditor = getDefaultEditor();
- IEditorDescriptor[] editors = registry.getEditors(node.name, ContentTypeHelper.getContentType(node));
+ IEditorDescriptor[] editors = registry.getEditors(node.getName(), node.getContentType());
Collections.sort(Arrays.asList(editors), comparer);
boolean defaultFound = false;
@@ -294,7 +282,7 @@ public class OpenWithMenu extends ContributionItem {
/**
* Creates the menu item for clearing the current selection.
- *
+ *
* @param menu the menu to add the item to
* @param file the file being edited
*/
@@ -309,8 +297,7 @@ public class OpenWithMenu extends ContributionItem {
switch (event.type) {
case SWT.Selection:
if (menuItem.getSelection()) {
- PersistenceManager.getInstance().getPersistentProperties(node)
- .put(IDE.EDITOR_KEY, null);
+ node.setPreferredEditorID(null);
try {
syncOpen(getEditorDescriptor(), false);
}
@@ -329,9 +316,9 @@ public class OpenWithMenu extends ContributionItem {
}
/**
- * Get an appropriate editor for the FSTreeNode. If the default editor is not found, it will
+ * Get an appropriate editor for the IFSTreeNode. If the default editor is not found, it will
* search the in-place editor, the external editor and finally the default text editor.
- *
+ *
* @return An appropriate editor to open the node using "Default Editor".
* @throws PartInitException
*/
@@ -344,12 +331,12 @@ public class OpenWithMenu extends ContributionItem {
IEditorDescriptor editorDesc = null;
// next check the OS for in-place editor (OLE on Win32)
- if (registry.isSystemInPlaceEditorAvailable(node.name)) {
+ if (registry.isSystemInPlaceEditorAvailable(node.getName())) {
editorDesc = registry.findEditor(IEditorRegistry.SYSTEM_INPLACE_EDITOR_ID);
}
// next check with the OS for an external editor
- if (editorDesc == null && registry.isSystemExternalEditorAvailable(node.name)) {
+ if (editorDesc == null && registry.isSystemExternalEditorAvailable(node.getName())) {
editorDesc = registry.findEditor(IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID);
}
@@ -370,19 +357,14 @@ public class OpenWithMenu extends ContributionItem {
* Synchronize and open the file using the specified editor descriptor. If openUsingDescriptor
* is true, it will try to use an external editor to open it if an eclipse editor is not
* available.
- *
+ *
* @param editorDescriptor The editor descriptor used to open the node.
* @param openUsingDescriptor If an external editor should be used to open the node.
*/
protected void syncOpen(IEditorDescriptor editorDescriptor, boolean openUsingDescriptor) {
- File file = CacheManager.getCacheFile(node);
- if (!file.exists()) {
- // If the file node's local cache does not exist yet, download it.
- IOpExecutor executor = new UiExecutor();
- IStatus status = executor.execute(new OpCacheUpdate(node));
- if (!status.isOK()) {
- return;
- }
+ File file = node.getCacheFile();
+ if (!file.exists() && !UiExecutor.execute(node.operationDownload(null)).isOK()) {
+ return;
}
openInEditor(editorDescriptor, openUsingDescriptor);
}
@@ -390,13 +372,13 @@ public class OpenWithMenu extends ContributionItem {
/**
* Open the editor using the specified editor descriptor. If openUsingDescriptor is true, it
* will try to use an external editor to open it if an eclipse editor is not available.
- *
+ *
* @param editorDescriptor The editor descriptor used to open the node.
* @param openUsingDescriptor If an external editor should be used to open the node.
*/
private void openInEditor(IEditorDescriptor editorDescriptor, boolean openUsingDescriptor) {
try {
- IPath path = CacheManager.getCachePath(node);
+ IPath path = new Path(node.getCacheFile().getAbsolutePath());
IFileStore fileStore = EFS.getLocalFileSystem().getStore(path);
FileStoreEditorInput input = new FileStoreEditorInput(fileStore);
if (openUsingDescriptor) {
@@ -407,9 +389,7 @@ public class OpenWithMenu extends ContributionItem {
String editorId = IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID;
if (editorDescriptor != null) editorId = editorDescriptor.getId();
page.openEditor(input, editorId, true, IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID);
- Map<QualifiedName, String> properties = PersistenceManager.getInstance()
- .getPersistentProperties(node);
- properties.put(IDE.EDITOR_KEY, editorId);
+ node.setPreferredEditorID(editorId);
}
}
catch (PartInitException e) {
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/PasteFilesHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/PasteFilesHandler.java
index b7f62ac59..7d50bde17 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/PasteFilesHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/PasteFilesHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -14,17 +14,12 @@ import java.util.List;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.tcf.te.runtime.callback.Callback;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IOperation;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCopy;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpMove;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.dnd.CommonDnD;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.FsClipboard;
@@ -47,32 +42,25 @@ public class PasteFilesHandler extends AbstractHandler {
if (!cb.isEmpty()) {
// Get the files/folders from the clip board.
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
- List<FSTreeNode> nodes = cb.getFiles();
- IOpExecutor executor = null;
- IOperation operation = null;
+ List<IFSTreeNode> nodes = cb.getFiles();
+ IOperation operation;
if (cb.isCutOp()) {
- FSTreeNode dest = (FSTreeNode) selection.getFirstElement();
- operation = new OpMove(nodes, dest, new MoveCopyCallback());
- executor = new UiExecutor(new Callback(){
- @Override
- protected void internalDone(Object caller, IStatus status) {
- UIPlugin.getClipboard().clear();
- }
- });
- }
- else if (cb.isCopyOp()) {
- FSTreeNode hovered = (FSTreeNode) selection.getFirstElement();
- FSTreeNode dest = getCopyDestination(hovered, nodes);
+ IFSTreeNode dest = (IFSTreeNode) selection.getFirstElement();
+ operation = dest.operationDropMove(nodes, new MoveCopyCallback());
+ } else if (cb.isCopyOp()) {
+ IFSTreeNode hovered = (IFSTreeNode) selection.getFirstElement();
+ IFSTreeNode dest = getCopyDestination(hovered, nodes);
boolean cpPerm = UIPlugin.isCopyPermission();
boolean cpOwn = UIPlugin.isCopyOwnership();
- operation = new OpCopy(nodes, dest, cpPerm, cpOwn, new MoveCopyCallback());
- executor = new UiExecutor();
+ operation = dest.operationDropCopy(nodes, cpPerm, cpOwn, new MoveCopyCallback());
+ } else {
+ return null;
}
- if (executor != null && operation != null) {
- executor.execute(operation);
+ UiExecutor.execute(operation);
+ if (cb.isCutOp()) {
+ UIPlugin.getClipboard().clear();
}
- }
- else {
+ } else {
Clipboard clipboard = cb.getSystemClipboard();
Object contents = clipboard.getContents(FileTransfer.getInstance());
if (contents != null) {
@@ -80,7 +68,7 @@ public class PasteFilesHandler extends AbstractHandler {
// Get the files/folders from the clip board.
IStructuredSelection selection = (IStructuredSelection) HandlerUtil
.getCurrentSelectionChecked(event);
- FSTreeNode hovered = (FSTreeNode) selection.getFirstElement();
+ IFSTreeNode hovered = (IFSTreeNode) selection.getFirstElement();
CommonDnD dnd = new CommonDnD();
dnd.dropFiles(null, files, DND.DROP_COPY, hovered);
}
@@ -90,7 +78,7 @@ public class PasteFilesHandler extends AbstractHandler {
/**
* Return an appropriate destination directory for copying according to
- * the specified hovered node. If the hovered node is a file, then return
+ * the specified hovered node. If the hovered node is a file, then return
* its parent directory. If the hovered node is a directory, then return its
* self if it is not a node being copied. Return its parent directory if it is
* a node being copied.
@@ -98,12 +86,12 @@ public class PasteFilesHandler extends AbstractHandler {
* @param nodes
* @return
*/
- private FSTreeNode getCopyDestination(FSTreeNode hovered, List<FSTreeNode> nodes) {
+ private IFSTreeNode getCopyDestination(IFSTreeNode hovered, List<IFSTreeNode> nodes) {
if (hovered.isFile()) {
return hovered.getParent();
}
else if (hovered.isDirectory()) {
- for (FSTreeNode node : nodes) {
+ for (IFSTreeNode node : nodes) {
if (node == hovered) {
return hovered.getParent();
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshHandler.java
index 1bedafff1..17382ac0e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -16,10 +16,8 @@ import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.JobExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefresh;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.ui.handlers.HandlerUtil;
/**
@@ -27,17 +25,12 @@ import org.eclipse.ui.handlers.HandlerUtil;
*/
public class RefreshHandler extends AbstractHandler {
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
ISelection selection = HandlerUtil.getCurrentSelection(event);
if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
- List<FSTreeNode> nodes = ((IStructuredSelection) selection).toList();
- IOpExecutor executor = new JobExecutor();
- executor.execute(new OpRefresh(nodes));
+ List<IFSTreeNode> nodes = ((IStructuredSelection) selection).toList();
+ ModelManager.operationRefresh(nodes, true).runInJob(null);
}
return null;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java
index 5cd226d37..5d06d6ae2 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,10 +12,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.JobExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefresh;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode;
import org.eclipse.ui.IEditorInput;
@@ -26,19 +23,14 @@ import org.eclipse.ui.handlers.HandlerUtil;
*/
public class RefreshViewerHandler extends AbstractHandler {
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IEditorInput editorInput = HandlerUtil.getActiveEditorInputChecked(event);
IPeerNode peer = (IPeerNode) editorInput.getAdapter(IPeerNode.class);
if (peer != null) {
- FSTreeNode root = ModelManager.getRuntimeModel(peer).getRoot();
- if (root != null) {
- IOpExecutor executor = new JobExecutor();
- executor.execute(new OpRefresh(root));
+ IRuntimeModel rtm = ModelManager.getRuntimeModel(peer);
+ if (rtm != null) {
+ rtm.getRoot().operationRefresh(true).runInJob(null);
}
}
return null;
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameCallback.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameCallback.java
deleted file mode 100644
index 274442df0..000000000
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameCallback.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.handlers;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tcf.te.runtime.callback.Callback;
-import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
-import org.eclipse.ui.PlatformUI;
-/**
- * The callback implementation for Renaming.
- */
-public class RenameCallback extends Callback implements Runnable {
- // The message to be displayed.
- private String message;
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.callback.Callback#internalDone(java.lang.Object, org.eclipse.core.runtime.IStatus)
- */
- @Override
- protected void internalDone(Object caller, IStatus status) {
- if (!status.isOK()) {
- message = status.getMessage();
- PlatformUI.getWorkbench().getDisplay().asyncExec(this);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see java.lang.Runnable#run()
- */
- @Override
- public void run() {
- Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- MessageDialog.openError(parent, Messages.FSRename_RenameFileFolderTitle, message);
- }
-}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameFilesHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameFilesHandler.java
index 69b7c52e5..fd5d1a0e7 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameFilesHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RenameFilesHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -20,12 +20,10 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.JobExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRename;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.celleditor.FSCellValidator;
+import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.ui.dialogs.RenameDialog;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -45,7 +43,7 @@ public class RenameFilesHandler extends AbstractHandler {
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection sel = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
if (!sel.isEmpty()) {
- FSTreeNode node = (FSTreeNode) sel.getFirstElement();
+ IFSTreeNode node = (IFSTreeNode) sel.getFirstElement();
boolean inPlaceEditor = UIPlugin.isInPlaceEditor();
if (inPlaceEditor) {
// If it is configured to use in-place editor, then invoke the editor.
@@ -62,10 +60,7 @@ public class RenameFilesHandler extends AbstractHandler {
int ok = dialog.open();
if (ok == Window.OK) {
// Do the renaming.
- String newName = dialog.getNewName();
- // Rename the node with the new name using an FSRename.
- IOpExecutor executor = new JobExecutor(new RenameCallback());
- executor.execute(new OpRename(node, newName));
+ UiExecutor.execute(node.operationRename(dialog.getNewName()));
}
}
}
@@ -79,7 +74,7 @@ public class RenameFilesHandler extends AbstractHandler {
* @param node The file/folder node.
* @return The renaming dialog.
*/
- private RenameDialog createRenameDialog(Shell shell, FSTreeNode node) {
+ private RenameDialog createRenameDialog(Shell shell, IFSTreeNode node) {
String[] names = getUsedNames(node);
String title;
if (node.isFile()) {
@@ -108,7 +103,7 @@ public class RenameFilesHandler extends AbstractHandler {
String prompt = Messages.RenameFilesHandler_RenamePromptMessage;
String usedError = Messages.FSRenamingAssistant_NameAlreadyExists;
String label = Messages.RenameFilesHandler_PromptNewName;
- return new RenameDialog(shell, title, null, prompt, usedError, error, label, node.name, formatRegex, names, null);
+ return new RenameDialog(shell, title, null, prompt, usedError, error, label, node.getName(), formatRegex, names, null);
}
/**
@@ -117,11 +112,14 @@ public class RenameFilesHandler extends AbstractHandler {
* @param folder The folder.
* @return Used names.
*/
- private String[] getUsedNames(FSTreeNode folder) {
+ private String[] getUsedNames(IFSTreeNode folder) {
+ IFSTreeNode[] nodes = folder.getParent().getChildren();
+ if (nodes == null)
+ return new String[0];
+
List<String> usedNames = new ArrayList<String>();
- List<FSTreeNode> nodes = folder.getParent().getChildren();
- for (FSTreeNode node : nodes) {
- usedNames.add(node.name);
+ for (IFSTreeNode node : nodes) {
+ usedNames.add(node.getName());
}
return usedNames.toArray(new String[usedNames.size()]);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/UpdateHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/UpdateHandler.java
index 0fc8b1b0d..7bff16e35 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/UpdateHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/UpdateHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,13 +10,13 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers;
+import java.io.File;
+
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCacheUpdate;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -33,9 +33,16 @@ public class UpdateHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelectionChecked(event);
- FSTreeNode node = (FSTreeNode) selection.getFirstElement();
- IOpExecutor executor = new UiExecutor();
- executor.execute(new OpCacheUpdate(node));
+ IFSTreeNode node = (IFSTreeNode) selection.getFirstElement();
+
+ File file = node.getCacheFile();
+ if (file.exists() && !file.canWrite()) {
+ if (!file.delete()) {
+ return null;
+ }
+ }
+
+ UiExecutor.execute(node.operationDownload(null));
return null;
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/FsClipboard.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/FsClipboard.java
index 3b04debe1..d2b186a04 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/FsClipboard.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/FsClipboard.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,61 +9,96 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations;
+import java.beans.PropertyChangeEvent;
import java.util.List;
import org.eclipse.swt.SWTException;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpClipboard;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.core.utils.PropertyChangeProvider;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.ui.PlatformUI;
/**
* The clip board to which copy or cut files/folders.
*/
-public class FsClipboard extends OpClipboard {
- // The system clipboard.
+public class FsClipboard extends PropertyChangeProvider {
+ // The constants to define the current operation type of the clip board.
+ private static final int NONE = -1;
+ private static final int CUT = 0;
+ private static final int COPY = 1;
+ // The operation type, CUT, COPY or NONE.
+ private int operation;
+ // The currently selected files/folders.
+ private List<IFSTreeNode> files;
+
private Clipboard clipboard;
/**
* Create a clip board instance.
*/
public FsClipboard() {
- super();
clipboard = new Clipboard(PlatformUI.getWorkbench().getDisplay());
+ operation = NONE;
+ }
+
+ public boolean isCutOp() {
+ return operation == CUT;
+ }
+
+ public boolean isCopyOp() {
+ return operation == COPY;
+ }
+
+ public boolean isEmpty() {
+ return operation == NONE && (files == null || files.isEmpty());
+ }
+
+ /**
+ * Get the currently selected files/folders to operated.
+ */
+ public List<IFSTreeNode> getFiles() {
+ return files;
}
/**
* Cut the specified files/folders to the clip board.
- *
- * @param files The file/folder nodes.
*/
- @Override
- public void cutFiles(List<FSTreeNode> files) {
- super.cutFiles(files);
+ public void cutFiles(List<IFSTreeNode> files) {
+ operation = CUT;
+ this.files = files;
+ PropertyChangeEvent event = new PropertyChangeEvent(this, "cut", null, null); //$NON-NLS-1$
+ firePropertyChange(event);
+
clearSystemClipboard();
}
/**
* Copy the specified files/folders to the clip board.
- *
+ *
* @param files The file/folder nodes.
*/
- @Override
- public void copyFiles(List<FSTreeNode> files) {
- super.copyFiles(files);
+ public void copyFiles(List<IFSTreeNode> files) {
+ operation = COPY;
+ this.files = files;
+ PropertyChangeEvent event = new PropertyChangeEvent(this, "copy", null, null); //$NON-NLS-1$
+ firePropertyChange(event);
+
clearSystemClipboard();
}
/**
* Clear the clip board.
*/
- @Override
- public void clear() {
- super.clear();
+ public void clear() {
+ operation = NONE;
+ this.files = null;
+ PropertyChangeEvent event = new PropertyChangeEvent(this, "clear", null, null); //$NON-NLS-1$
+ firePropertyChange(event);
+
clearSystemClipboard();
}
-
+
/**
* Make sure the system clip board is cleared in a UI thread.
*/
@@ -79,11 +114,10 @@ public class FsClipboard extends OpClipboard {
}});
}
}
-
+
/**
* Dispose the clipboard.
*/
- @Override
public void dispose() {
if(Display.getCurrent() != null) {
if (!clipboard.isDisposed()) {
@@ -105,7 +139,7 @@ public class FsClipboard extends OpClipboard {
/**
* Get the system clipboard.
- *
+ *
* @return The system clipboard.
*/
public Clipboard getSystemClipboard() {
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/UiExecutor.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/UiExecutor.java
index e93449524..da365d3ae 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/UiExecutor.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/operations/UiExecutor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,91 +10,66 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations;
import java.lang.reflect.InvocationTargetException;
+import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback;
+import org.eclipse.tcf.te.runtime.utils.StatusHelper;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IOperation;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.exceptions.TCFException;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
-import org.eclipse.tcf.te.tcf.filesystem.ui.dialogs.TimeTriggeredProgressMonitorDialog;
+import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.ui.PlatformUI;
/**
* The operation that is executed in an interactive progress dialog.
*/
-public class UiExecutor implements IOpExecutor {
- // The callback
- protected ICallback callback;
-
- /**
- * Create a UI executor with no callback.
- */
- public UiExecutor() {
- this(null);
- }
-
- /**
- * Create a UI executor with a callback that will be
- * invoked after execution.
- *
- * @param callback The callback to be invoked after execution.
- */
- public UiExecutor(ICallback callback) {
- this.callback = callback;
- }
+public class UiExecutor {
+ public static IStatus execute(final IOperation operation) {
+ final Display display = Display.getCurrent();
+ Assert.isNotNull(display);
+ final Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+ final ProgressMonitorDialog dlg = new ProgressMonitorDialog(parent);
+ dlg.setOpenOnRun(false);
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.IOpExecutor#execute(org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IOperation)
- */
- @Override
- public IStatus execute(final IOperation operation) {
- Assert.isNotNull(Display.getCurrent());
- Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
- TimeTriggeredProgressMonitorDialog dialog = new TimeTriggeredProgressMonitorDialog(parent, 250);
- final IRunnableWithProgress runnable = new IRunnableWithProgress() {
+ display.timerExec(500, new Runnable() {
@Override
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- monitor.setTaskName(operation.getName());
- monitor.beginTask(operation.getName(), operation.getTotalWork());
- operation.run(monitor);
+ public void run() {
+ Shell shell = dlg.getShell();
+ if (shell != null && !shell.isDisposed()) {
+ Shell activeShell = display.getActiveShell();
+ if (activeShell == null || activeShell == parent) {
+ dlg.open();
+ } else {
+ display.timerExec(500, this);
+ }
}
- finally {
- monitor.done();
- }
- }};
- dialog.setCancelable(true);
- IStatus status = null;
- try {
- dialog.run(true, true, runnable);
- status = Status.OK_STATUS;
- }
- catch (InvocationTargetException e) {
- // Display the error during copy.
- Throwable throwable = e.getTargetException();
- if(throwable instanceof TCFException) {
- int severity = ((TCFException)throwable).getSeverity();
- status = new Status(severity, UIPlugin.getUniqueIdentifier(), throwable.getMessage(), throwable);
- }
- else {
- status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), throwable.getMessage(), throwable);
}
- MessageDialog.openError(parent, operation.getName(), throwable.getMessage());
- }
- catch (InterruptedException e) {
- // It is canceled.
- status = Status.OK_STATUS;
- }
- if (callback != null) callback.done(operation, status);
- return status;
+ });
+ final AtomicReference<IStatus> ref = new AtomicReference<IStatus>();
+ try {
+ dlg.run(true, true, new IRunnableWithProgress() {
+ @Override
+ public void run(IProgressMonitor monitor) {
+ ref.set(operation.run(monitor));
+ }
+ });
+ } catch (InvocationTargetException e) {
+ ref.set(StatusHelper.getStatus(e));
+ } catch (InterruptedException e) {
+ return Status.CANCEL_STATUS;
+ }
+ IStatus status = ref.get();
+ if (!status.isOK() && status.getMessage().length() > 0) {
+ ErrorDialog.openError(parent, operation.getName(), Messages.UiExecutor_errorRunningOperation, status);
+ UIPlugin.getDefault().getLog().log(status);
+ }
+ return status;
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java
index 60f12d207..343582805 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java
@@ -13,6 +13,7 @@ import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.tcf.te.runtime.events.ChangeEvent;
import org.eclipse.tcf.te.runtime.events.EventManager;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode;
@@ -85,7 +86,12 @@ public class FSExplorerEditorPage extends AbstractTreeViewerExplorerEditorPage {
if (peerNode == null && element instanceof IAdaptable) {
peerNode = (IPeerNode)((IAdaptable)element).getAdapter(IPeerNode.class);
}
- return peerNode != null ? ModelManager.getRuntimeModel(peerNode).getRoot() : null;
+ if (peerNode != null) {
+ IRuntimeModel rtModel = ModelManager.getRuntimeModel(peerNode);
+ if (rtModel != null)
+ return rtModel.getRoot();
+ }
+ return null;
}
/* (non-Javadoc)
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEventListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEventListener.java
index 909eb167e..a21d1567d 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEventListener.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEventListener.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -17,8 +17,8 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.tcf.te.core.interfaces.IConnectable;
import org.eclipse.tcf.te.runtime.events.ChangeEvent;
import org.eclipse.tcf.te.runtime.events.EventManager;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties;
@@ -62,7 +62,7 @@ public class FSExplorerEventListener extends AbstractEventListener {
}
// Property changes for individual context nodes refreshes the node only
- else if (source instanceof FSTreeNode) {
+ else if (source instanceof IFSTreeNode) {
if ("expanded".equals(changeEvent.getEventId())) { //$NON-NLS-1$
// Expansion state of the node changed.
boolean expanded = ((Boolean)changeEvent.getNewValue()).booleanValue();
@@ -79,8 +79,10 @@ public class FSExplorerEventListener extends AbstractEventListener {
if (changeEvent.getNewValue().equals(Integer.valueOf(IConnectable.STATE_CONNECTED))) {
// Get the new runtime model
final IRuntimeModel model = ModelManager.getRuntimeModel(getPeerNode());
- // Update the tree viewer input element
- treeControl.getViewer().setInput(model.getRoot());
+ if (model != null) {
+ // Update the tree viewer input element
+ treeControl.getViewer().setInput(model.getRoot());
+ }
}
// Trigger a refresh on the whole viewer to show the "Please connect ..." text
treeControl.getViewer().refresh();
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/AdvancedAttributesDialog.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/AdvancedAttributesDialog.java
index 4731034d0..b9321d271 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/AdvancedAttributesDialog.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/AdvancedAttributesDialog.java
@@ -1,5 +1,5 @@
/*********************************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -23,7 +23,7 @@ import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IWindowsFileAttributes;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNodeWorkingCopy;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.ImageConsts;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
@@ -35,7 +35,7 @@ import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
public class AdvancedAttributesDialog extends Dialog {
// The file or folder node whose advanced attributes are to be displayed.
- FSTreeNode node;
+ IFSTreeNodeWorkingCopy node;
/**
* Create the advanced attributes dialog with the specified node and a
@@ -46,7 +46,7 @@ public class AdvancedAttributesDialog extends Dialog {
* @param node
* The file or folder node to be displayed.
*/
- public AdvancedAttributesDialog(Shell parentShell, FSTreeNode node) {
+ public AdvancedAttributesDialog(Shell parentShell, IFSTreeNodeWorkingCopy node) {
super(parentShell);
this.node = node;
}
@@ -124,7 +124,7 @@ public class AdvancedAttributesDialog extends Dialog {
String label = node.isFile() ? Messages.AdvancedAttributesDialog_IndexFile
: (node.isDirectory() ? Messages.AdvancedAttributesDialog_IndexFolder
: null);
- boolean on = !node.isWin32AttrOn(IWindowsFileAttributes.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
+ boolean on = !node.getWin32Attr(IWindowsFileAttributes.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
createOptionField(group, label, IWindowsFileAttributes.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED, on);
}
@@ -138,7 +138,7 @@ public class AdvancedAttributesDialog extends Dialog {
String label = node.isFile() ? Messages.AdvancedAttributesDialog_FileArchive
: (node.isDirectory() ? Messages.AdvancedAttributesDialog_FolderArchive
: null);
- boolean on = node.isWin32AttrOn(IWindowsFileAttributes.FILE_ATTRIBUTE_ARCHIVE);
+ boolean on = node.getWin32Attr(IWindowsFileAttributes.FILE_ATTRIBUTE_ARCHIVE);
createOptionField(group, label, IWindowsFileAttributes.FILE_ATTRIBUTE_ARCHIVE, on);
}
@@ -150,7 +150,7 @@ public class AdvancedAttributesDialog extends Dialog {
*/
private void createEncrypt(Group group) {
String label = Messages.AdvancedAttributesDialog_Encrypt;
- boolean on = node.isWin32AttrOn(IWindowsFileAttributes.FILE_ATTRIBUTE_ENCRYPTED);
+ boolean on = node.getWin32Attr(IWindowsFileAttributes.FILE_ATTRIBUTE_ENCRYPTED);
createOptionField(group, label, IWindowsFileAttributes.FILE_ATTRIBUTE_ENCRYPTED, on);
}
@@ -162,7 +162,7 @@ public class AdvancedAttributesDialog extends Dialog {
*/
private void createCompress(Group group) {
String label = Messages.AdvancedAttributesDialog_Compress;
- boolean on = node.isWin32AttrOn(IWindowsFileAttributes.FILE_ATTRIBUTE_COMPRESSED);
+ boolean on = node.getWin32Attr(IWindowsFileAttributes.FILE_ATTRIBUTE_COMPRESSED);
createOptionField(group, label, IWindowsFileAttributes.FILE_ATTRIBUTE_COMPRESSED, on);
}
@@ -208,7 +208,7 @@ public class AdvancedAttributesDialog extends Dialog {
* Get the result.
* @return The result.
*/
- public FSTreeNode getResult() {
+ public IFSTreeNodeWorkingCopy getResult() {
return node;
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/GeneralInformationPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/GeneralInformationPage.java
index 94624e244..e1854dff5 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/GeneralInformationPage.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/properties/GeneralInformationPage.java
@@ -1,5 +1,5 @@
/*********************************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -16,7 +16,6 @@ import java.util.Date;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.window.Window;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
@@ -29,12 +28,9 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.JobExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCommitAttr;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefresh;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNodeWorkingCopy;
+import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.ui.dialogs.PropertyPage;
@@ -42,14 +38,12 @@ import org.eclipse.ui.dialogs.PropertyPage;
* The general information page of a file's properties dialog.
*/
public class GeneralInformationPage extends PropertyPage {
- // The times of retrying before failure.
- private static final int RETRY_TIMES = 3;
// The formatter for the size of a file.
private static final DecimalFormat SIZE_FORMAT = new DecimalFormat();
// The original node.
- FSTreeNode node;
+ IFSTreeNode node;
// Cloned node for modification.
- FSTreeNode clone;
+ IFSTreeNodeWorkingCopy fWorkingCopy;
// The button of "Read-Only"
Button btnReadOnly;
// The button of "Hidden"
@@ -147,8 +141,8 @@ public class GeneralInformationPage extends PropertyPage {
btnReadOnly.addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent e) {
- if(btnReadOnly.getSelection()!=clone.isReadOnly()){
- clone.setReadOnly(btnReadOnly.getSelection());
+ if(btnReadOnly.getSelection()!=fWorkingCopy.isReadOnly()){
+ fWorkingCopy.setReadOnly(btnReadOnly.getSelection());
}
}
});
@@ -161,9 +155,7 @@ public class GeneralInformationPage extends PropertyPage {
@Override
public void widgetSelected(SelectionEvent e) {
Button btnHidden = (Button) e.getSource();
- if(btnHidden.getSelection()!=clone.isHidden()){
- clone.setHidden(btnHidden.getSelection());
- }
+ fWorkingCopy.setHidden(btnHidden.getSelection());
}
});
// Advanced Attributes
@@ -183,18 +175,18 @@ public class GeneralInformationPage extends PropertyPage {
* Update the value of attributes section.
*/
private void updateAttributes() {
- btnReadOnly.setSelection(clone.isReadOnly());
- btnHidden.setSelection(clone.isHidden());
+ btnReadOnly.setSelection(fWorkingCopy.isReadOnly());
+ btnHidden.setSelection(fWorkingCopy.isHidden());
}
/**
* Show the advanced attributes dialog for the specified file/folder.
*/
void showAdvancedAttributes() {
- AdvancedAttributesDialog dialog = new AdvancedAttributesDialog(this.getShell(), (FSTreeNode)(clone.clone()));
+ AdvancedAttributesDialog dialog = new AdvancedAttributesDialog(this.getShell(), fWorkingCopy.createWorkingCopy());
if (dialog.open() == Window.OK) {
- FSTreeNode result = dialog.getResult();
- clone.attr = result.attr;
+ IFSTreeNodeWorkingCopy result = dialog.getResult();
+ UiExecutor.execute(result.operationCommit());
}
}
@@ -271,13 +263,7 @@ public class GeneralInformationPage extends PropertyPage {
@Override
public void widgetSelected(SelectionEvent e) {
int bit = 1 << (8 - index);
- boolean on = clone.attr != null && (clone.attr.permissions & bit) != 0;
- boolean newOn = btnPermissions[index].getSelection();
- if (newOn != on) {
- int permissions = clone.attr != null ? clone.attr.permissions : 0;
- permissions = newOn ? (permissions | bit) : (permissions & ~bit);
- clone.setPermissions(permissions);
- }
+ fWorkingCopy.setPermission(bit, btnPermissions[index].getSelection());
}
});
}
@@ -288,8 +274,7 @@ public class GeneralInformationPage extends PropertyPage {
private void updatePermissions(){
for (int i = 0; i < 9; i++) {
final int bit = 1 << (8 - i);
- final boolean on = clone.attr != null && (clone.attr.permissions & bit) != 0;
- btnPermissions[i].setSelection(on);
+ btnPermissions[i].setSelection(fWorkingCopy.getPermission(bit));
}
}
@@ -299,68 +284,29 @@ public class GeneralInformationPage extends PropertyPage {
*/
@Override
protected void performDefaults() {
- clone = (FSTreeNode) node.clone();
+ fWorkingCopy = node.createWorkingCopy();
if (node.isWindowsNode()) {
updateAttributes();
- }
- else {
+ } else {
updatePermissions();
}
super.performDefaults();
}
- /*
- * (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#performOk()
- */
@Override
public boolean performOk() {
if (hasAttrsChanged()) {
- IStatus status = commitAttr();
- if(!status.isOK()) {
- setErrorMessage(status.getMessage());
- return false;
- }
+ UiExecutor.execute(fWorkingCopy.operationCommit());
}
- return true;
+ return getErrorMessage() == null;
}
/**
- * Commit the new attributes of the file and
- * return a status. This operation will try
- * several times before reporting failure.
- *
- * @return The committing status.
- */
- private IStatus commitAttr() {
- OpCommitAttr op = new OpCommitAttr(node, clone.attr);
- IOpExecutor executor = new NullOpExecutor();
- IStatus status = null;
- for (int i = 0; i < RETRY_TIMES; i++) {
- status = executor.execute(op);
- if (status.isOK()) {
- if (!node.isRoot()) {
- // Refresh the parent so that the filters work!
- executor = new JobExecutor();
- executor.execute(new OpRefresh(node.getParent()));
- }
- return status;
- }
- }
- return status;
- }
-
- /**
* If the attributes has been changed.
* @return If the attributes has been changed.
*/
- private boolean hasAttrsChanged(){
- if(node.isWindowsNode()){
- // If it is a Windows file, only check its attributes.
- return node.getWin32Attrs() != clone.getWin32Attrs();
- }
- // If it is not a Windows file, only check its permissions.
- return node.attr != null && clone.attr != null && node.attr.permissions != clone.attr.permissions;
+ private boolean hasAttrsChanged() {
+ return fWorkingCopy.isDirty();
}
/* (non-Javadoc)
@@ -369,33 +315,38 @@ public class GeneralInformationPage extends PropertyPage {
@Override
protected Control createContents(Composite parent) {
IAdaptable element = getElement();
- Assert.isTrue(element instanceof FSTreeNode);
+ Assert.isTrue(element instanceof IFSTreeNode);
- node = (FSTreeNode) element;
- clone = (FSTreeNode) node.clone();
+ node = (IFSTreeNode) element;
+ fWorkingCopy = node.createWorkingCopy();
Composite page = new Composite(parent, SWT.NONE);
GridLayout gridLayout = new GridLayout(2, false);
page.setLayout(gridLayout);
// Field "Name"
- createField(Messages.GeneralInformationPage_Name, clone.name, page);
+ createField(Messages.GeneralInformationPage_Name, fWorkingCopy.getName(), page);
// Field "Type"
- createField(Messages.GeneralInformationPage_Type, clone.getFileType(), page);
+ String fileType = fWorkingCopy.getFileTypeLabel();
+ createField(Messages.GeneralInformationPage_Type, fileType, page);
// Field "Location"
- String location = clone.isSystemRoot() || clone.isRoot() ?
- Messages.GeneralInformationPage_Computer : clone.getLocation();
+
+ String location = fWorkingCopy.isFileSystem() || fWorkingCopy.isRootDirectory() ?
+ Messages.GeneralInformationPage_Computer : fWorkingCopy.getLocation();
createField(Messages.GeneralInformationPage_Location, location, page);
// Field "Size"
- if (clone.isFile()) {
- createField(Messages.GeneralInformationPage_Size, clone.attr != null ? getSizeText(clone.attr.size) : "", page); //$NON-NLS-1$
+ if (fWorkingCopy.isFile()) {
+ long size = fWorkingCopy.getSize();
+ createField(Messages.GeneralInformationPage_Size, size > 0 ? getSizeText(size) : "", page); //$NON-NLS-1$
}
// Field "Modified"
- createField(Messages.GeneralInformationPage_Modified, clone.attr != null ? getDateText(clone.attr.mtime) : "", page); //$NON-NLS-1$
+ long lm = fWorkingCopy.getModificationTime();
+ createField(Messages.GeneralInformationPage_Modified, lm != 0 ? getDateText(lm) : "", page); //$NON-NLS-1$
// Field "Accessed"
- if (clone.isFile()) {
- createField(Messages.GeneralInformationPage_Accessed, clone.attr != null ? getDateText(clone.attr.atime) : "", page); //$NON-NLS-1$
+ if (fWorkingCopy.isFile()) {
+ long at = fWorkingCopy.getAccessTime();
+ createField(Messages.GeneralInformationPage_Accessed, at != 0 ? getDateText(at) : "", page); //$NON-NLS-1$
}
createSeparator(page);
- if (clone.isWindowsNode()) {
+ if (fWorkingCopy.isWindowsNode()) {
createAttributesSection(page);
} else {
createPermissionsSection(page);
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSGeneralSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSGeneralSearchable.java
index e8c3976ce..4d6b44d44 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSGeneralSearchable.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSGeneralSearchable.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -25,7 +25,7 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+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.controls.BaseEditBrowseTextControl;
import org.eclipse.tcf.te.ui.interfaces.ISearchMatcher;
@@ -69,14 +69,14 @@ public class FSGeneralSearchable extends AbstractSearchable {
// The current selected target type index.
private int fTargetType;
// The root directory node.
- private FSTreeNode rootNode;
+ private IFSTreeNode rootNode;
/**
* Constructor
*
* @param node the node whose sub tree will be searched.
*/
- public FSGeneralSearchable(FSTreeNode node) {
+ public FSGeneralSearchable(IFSTreeNode node) {
rootNode = node;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSModifiedSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSModifiedSearchable.java
index df7113707..e1014aab3 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSModifiedSearchable.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSModifiedSearchable.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -21,7 +21,7 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+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.controls.BaseEditBrowseTextControl;
import org.eclipse.tcf.te.ui.search.TreeViewerSearchDialog;
@@ -232,20 +232,20 @@ public class FSModifiedSearchable extends FSBaseSearchable {
*/
@Override
public boolean match(Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
long now = System.currentTimeMillis();
switch (choice) {
case OPTION_NOT_REMEMBER:
return true;
case OPTION_LAST_WEEK:
- return node.attr.mtime > now - WEEK;
+ return node.getModificationTime() > now - WEEK;
case OPTION_LAST_MONTH:
- return node.attr.mtime > now - MONTH;
+ return node.getModificationTime() > now - MONTH;
case OPTION_LAST_YEAR:
- return node.attr.mtime > now - YEAR;
+ return node.getModificationTime() > now - YEAR;
case OPTION_SPECIFIED:
- return node.attr.mtime >= fromTime && node.attr.mtime < toTime;
+ return node.getModificationTime() >= fromTime && node.getModificationTime() < toTime;
}
}
return false;
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSSizeSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSSizeSearchable.java
index fbd42c2ce..155ccf31d 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSSizeSearchable.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSSizeSearchable.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -21,7 +21,7 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+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.controls.BaseEditBrowseTextControl;
import org.eclipse.tcf.te.ui.search.TreeViewerSearchDialog;
@@ -235,19 +235,19 @@ public class FSSizeSearchable extends FSBaseSearchable {
*/
@Override
public boolean match(Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
switch (choice) {
case OPTION_NOT_REMEMBER:
return true;
case OPTION_SIZE_SMALL:
- return node.attr.size <= SIZE_SMALL;
+ return node.getSize() <= SIZE_SMALL;
case OPTION_SIZE_MEDIUM:
- return node.attr.size <= SIZE_MEDIUM;
+ return node.getSize() <= SIZE_MEDIUM;
case OPTION_SIZE_LARGE:
- return node.attr.size > SIZE_MEDIUM;
+ return node.getSize() > SIZE_MEDIUM;
case OPTION_SIZE_SPECIFIED:
- return node.attr.size >= lowerSize && node.attr.size < upperSize;
+ return node.getSize() >= lowerSize && node.getSize() < upperSize;
}
}
return false;
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeMatcher.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeMatcher.java
index 3d2c80d9a..49099a6af 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeMatcher.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeMatcher.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -9,11 +9,11 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.search;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.ui.interfaces.ISearchMatcher;
import org.eclipse.tcf.te.ui.utils.StringMatcher;
/**
- * The ISearchMatcher implementation for FSTreeNode.
+ * The ISearchMatcher implementation for IFSTreeNode.
*/
public class FSTreeNodeMatcher implements ISearchMatcher {
// Whether it is case sensitive
@@ -30,10 +30,10 @@ public class FSTreeNodeMatcher implements ISearchMatcher {
private boolean fIncludeSystem;
// The flag if hidden files should be included
private boolean fIncludeHidden;
-
+
/**
* Constructor with different option parameters.
- *
+ *
* @param caseSensitive Option of case sensitive
* @param matchPrecise Option of precise matching
* @param targetType Option of the target simulator
@@ -41,7 +41,7 @@ public class FSTreeNodeMatcher implements ISearchMatcher {
* @param includeSystem Option if system files be included
* @param includeHidden Option if hidden files be included
*/
- public FSTreeNodeMatcher(boolean caseSensitive, boolean matchPrecise,
+ public FSTreeNodeMatcher(boolean caseSensitive, boolean matchPrecise,
int targetType, String targetName, boolean includeSystem, boolean includeHidden) {
fCaseSensitive = caseSensitive;
fTargetName = targetName;
@@ -54,22 +54,23 @@ public class FSTreeNodeMatcher implements ISearchMatcher {
fIncludeHidden = includeHidden;
}
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.interfaces.ISearchMatcher#match(java.lang.Object)
- */
@Override
public boolean match(Object context) {
- if (context == null) return false;
- if (context instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) context;
- if(fTargetType == 1 && !node.isFile() || fTargetType == 2 && !node.isDirectory()) return false;
- if(!fIncludeSystem && node.isSystem()) return false;
- if(!fIncludeHidden && node.isHidden()) return false;
- String text = node.name;
+ if (context instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) context;
+ if (fTargetType == 1 && !node.isFile() || fTargetType == 2 && !node.isDirectory())
+ return false;
+ if (!fIncludeSystem && node.isSystemFile())
+ return false;
+ if (!fIncludeHidden && node.isHidden())
+ return false;
+
+ String text = node.getName();
if (text != null) {
if (fMatchPrecise) {
- return fCaseSensitive ? text.equals(fTargetName) : text.equalsIgnoreCase(fTargetName);
+ if (fCaseSensitive)
+ return text.equals(fTargetName);
+ return text.equalsIgnoreCase(fTargetName);
}
return fStringMatcher.match(text);
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeSearchable.java
index b75fb2e0c..d2bb55286 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeSearchable.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/search/FSTreeNodeSearchable.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,12 +10,12 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.search;
import org.eclipse.osgi.util.NLS;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+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 FSTreeNode which creates a UI for the user to
+ * 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 {
@@ -25,7 +25,7 @@ public class FSTreeNodeSearchable extends CompositeSearchable {
*
* @param node The directory node.
*/
- public FSTreeNodeSearchable(FSTreeNode node) {
+ public FSTreeNodeSearchable(IFSTreeNode node) {
super();
setSearchables(new FSGeneralSearchable(node), new FSModifiedSearchable(), new FSSizeSearchable());
}
@@ -45,9 +45,9 @@ public class FSTreeNodeSearchable extends CompositeSearchable {
@Override
public String getSearchMessage(Object rootElement) {
String message = Messages.FSTreeNodeSearchable_FindMessage;
- FSTreeNode rootNode = (FSTreeNode) rootElement;
+ IFSTreeNode rootNode = (IFSTreeNode) rootElement;
String rootName = getElementName(rootElement);
- if (rootNode != null && !rootNode.isSystemRoot()) rootName = "\"" + rootName + "\""; //$NON-NLS-1$//$NON-NLS-2$
+ if (rootNode != null && !rootNode.isFileSystem()) rootName = "\"" + rootName + "\""; //$NON-NLS-1$//$NON-NLS-2$
message = NLS.bind(message, rootName);
return message;
}
@@ -62,11 +62,11 @@ public class FSTreeNodeSearchable extends CompositeSearchable {
if(rootElement == null) {
return Messages.FSTreeNodeSearchable_SelectedFileSystem;
}
- FSTreeNode rootNode = (FSTreeNode) rootElement;
- if(rootNode.isSystemRoot()) {
+ IFSTreeNode rootNode = (IFSTreeNode) rootElement;
+ if(rootNode.isFileSystem()) {
return Messages.FSTreeNodeSearchable_SelectedFileSystem;
}
- return rootNode.name;
+ return rootNode.getName();
}
/* (non-Javadoc)
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFileSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFileSection.java
index 9a78d3b8c..b169a38d5 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFileSection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFileSection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -42,8 +42,8 @@ public class BasicFileSection extends BasicFolderSection {
*/
@Override
public void refresh() {
- SWTControlUtil.setText(sizeText, clone != null ? getSizeText(clone.attr.size) : ""); //$NON-NLS-1$
- SWTControlUtil.setText(accessedText, clone != null ? getDateText(clone.attr.atime) : ""); //$NON-NLS-1$
+ SWTControlUtil.setText(sizeText, clone != null ? getSizeText(clone.getSize()) : ""); //$NON-NLS-1$
+ SWTControlUtil.setText(accessedText, clone != null ? getDateText(clone.getAccessTime()) : ""); //$NON-NLS-1$
super.refresh();
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java
index 00748f2ec..284469207 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -17,7 +17,8 @@ import org.eclipse.core.runtime.Assert;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNodeWorkingCopy;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider;
@@ -33,9 +34,9 @@ public class BasicFolderSection extends BaseTitledSection {
private static final DecimalFormat SIZE_FORMAT = new DecimalFormat();
// The original node to be displayed and edited.
- protected FSTreeNode node;
+ protected IFSTreeNode node;
// The copy used to be edited.
- protected FSTreeNode clone;
+ protected IFSTreeNodeWorkingCopy clone;
// The text for the name of the node.
protected Text nameText;
@@ -66,7 +67,7 @@ public class BasicFolderSection extends BaseTitledSection {
protected void updateInput(IPeerNodeProvider input) {
Assert.isTrue(input instanceof FSTreeNodePeerNodeProvider);
this.node = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode();
- this.clone = (FSTreeNode) node.clone();
+ this.clone = node.createWorkingCopy();
}
/*
@@ -75,11 +76,11 @@ public class BasicFolderSection extends BaseTitledSection {
*/
@Override
public void refresh() {
- SWTControlUtil.setText(nameText, clone != null ? clone.name : ""); //$NON-NLS-1$
- SWTControlUtil.setText(typeText, clone != null ? clone.getFileType() : ""); //$NON-NLS-1$
- String location = clone == null || clone.isRoot() ? Messages.GeneralInformationPage_Computer : clone.getLocation();
+ SWTControlUtil.setText(nameText, clone != null ? clone.getName() : ""); //$NON-NLS-1$
+ SWTControlUtil.setText(typeText, clone != null ? clone.getFileTypeLabel() : ""); //$NON-NLS-1$
+ String location = clone == null || clone.isRootDirectory() ? Messages.GeneralInformationPage_Computer : clone.getLocation();
SWTControlUtil.setText(locationText, location);
- SWTControlUtil.setText(modifiedText, clone != null && clone.attr != null ? getDateText(clone.attr.mtime) : ""); //$NON-NLS-1$
+ SWTControlUtil.setText(modifiedText, clone != null && clone.getModificationTime() != 0 ? getDateText(clone.getModificationTime()) : ""); //$NON-NLS-1$
super.refresh();
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FileFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FileFilter.java
index 9ce004377..0ab482999 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FileFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FileFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,7 +10,7 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.tabbed;
import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The filter to test if a object is a file.
@@ -23,9 +23,9 @@ public class FileFilter implements IFilter {
*/
@Override
public boolean select(Object toTest) {
- if(toTest instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) toTest;
- return !node.isSystemRoot() && node.isFile();
+ if(toTest instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) toTest;
+ return !node.isFileSystem() && node.isFile();
}
return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FolderFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FolderFilter.java
index 55b4b3e9c..1d42d703d 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FolderFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/FolderFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,7 +10,7 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.tabbed;
import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The filter to select the folder from the file system.
@@ -23,9 +23,9 @@ public class FolderFilter implements IFilter {
*/
@Override
public boolean select(Object toTest) {
- if(toTest instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) toTest;
- return !node.isSystemRoot() && node.isDirectory();
+ if(toTest instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) toTest;
+ return !node.isFileSystem() && node.isDirectory();
}
return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxFilter.java
index ffb5b6b78..5ff414985 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,7 +10,7 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.tabbed;
import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* A filter to test if a object is a linux (non-Windows) node.
@@ -23,9 +23,9 @@ public class LinuxFilter implements IFilter {
*/
@Override
public boolean select(Object toTest) {
- if(toTest instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) toTest;
- return !node.isSystemRoot() && !node.isWindowsNode();
+ if(toTest instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) toTest;
+ return !node.isFileSystem() && !node.isWindowsNode();
}
return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java
index 2178562eb..a76ac1519 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -17,7 +17,8 @@ import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNodeWorkingCopy;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider;
@@ -31,9 +32,9 @@ import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
*/
public class LinuxPermissionsSection extends BaseTitledSection {
// The original node.
- protected FSTreeNode node;
+ protected IFSTreeNode node;
// The copy node to be edited.
- protected FSTreeNode clone;
+ protected IFSTreeNodeWorkingCopy clone;
// The button of "Permissions"
protected Button[] btnPermissions;
@@ -112,7 +113,7 @@ public class LinuxPermissionsSection extends BaseTitledSection {
protected void updateInput(IPeerNodeProvider input) {
Assert.isTrue(input instanceof FSTreeNodePeerNodeProvider);
this.node = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode();
- this.clone = (FSTreeNode) node.clone();
+ this.clone = node.createWorkingCopy();
}
/*
@@ -123,8 +124,7 @@ public class LinuxPermissionsSection extends BaseTitledSection {
public void refresh() {
for (int i = 0; i < 9; i++) {
final int bit = 1 << (8 - i);
- final boolean on = clone != null ? (clone.attr.permissions & bit) != 0 : false;
- SWTControlUtil.setSelection(btnPermissions[i], on);
+ SWTControlUtil.setSelection(btnPermissions[i], clone.getPermission(bit));
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java
index 1c73246b9..95674df55 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -16,7 +16,7 @@ import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IWindowsFileAttributes;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider;
@@ -31,7 +31,7 @@ import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
public class WindowsAttributesCESection extends BaseTitledSection {
// The original node.
- protected FSTreeNode node;
+ protected IFSTreeNode node;
// The check box to display the compress attribute.
protected Button compressButton;
@@ -77,10 +77,10 @@ public class WindowsAttributesCESection extends BaseTitledSection {
*/
@Override
public void refresh() {
- boolean on = node != null ? node.isWin32AttrOn(IWindowsFileAttributes.FILE_ATTRIBUTE_COMPRESSED) : false;
- SWTControlUtil.setSelection(compressButton, on);
- on = node != null ? node.isWin32AttrOn(IWindowsFileAttributes.FILE_ATTRIBUTE_ENCRYPTED) : false;
- SWTControlUtil.setSelection(encryptButton, on);
+ SWTControlUtil.setSelection(compressButton, node != null &&
+ node.getWin32Attr(IWindowsFileAttributes.FILE_ATTRIBUTE_COMPRESSED));
+ SWTControlUtil.setSelection(encryptButton, node != null &&
+ node.getWin32Attr(IWindowsFileAttributes.FILE_ATTRIBUTE_ENCRYPTED));
}
/*
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java
index dfc7a701c..301612947 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -15,7 +15,8 @@ import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNodeWorkingCopy;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider;
@@ -29,9 +30,9 @@ import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
*/
public class WindowsAttributesSection extends BaseTitledSection {
// The original node.
- protected FSTreeNode node;
+ protected IFSTreeNode fNode;
// The copy node.
- protected FSTreeNode clone;
+ protected IFSTreeNodeWorkingCopy fWorkingCopy;
// The check box for "Read Only" attribute.
protected Button readOnlyButton;
// The check box for "Hidden" attribute.
@@ -67,8 +68,8 @@ public class WindowsAttributesSection extends BaseTitledSection {
@Override
protected void updateInput(IPeerNodeProvider input) {
Assert.isTrue(input instanceof FSTreeNodePeerNodeProvider);
- this.node = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode();
- this.clone = (FSTreeNode) node.clone();
+ fNode = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode();
+ fWorkingCopy = fNode.createWorkingCopy();
}
/*
@@ -77,8 +78,8 @@ public class WindowsAttributesSection extends BaseTitledSection {
*/
@Override
public void refresh() {
- SWTControlUtil.setSelection(readOnlyButton, clone != null ? clone.isReadOnly() : false);
- SWTControlUtil.setSelection(hiddenButton, clone != null ? clone.isHidden(): false);
+ SWTControlUtil.setSelection(readOnlyButton, fWorkingCopy != null && fWorkingCopy.isReadOnly());
+ SWTControlUtil.setSelection(hiddenButton, fWorkingCopy != null && fWorkingCopy.isHidden());
}
/*
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFileFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFileFilter.java
index d2694c893..0af6a5e14 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFileFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFileFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,7 +10,7 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.tabbed;
import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The filter to test if a object is a Windows file.
@@ -23,9 +23,9 @@ public class WindowsFileFilter implements IFilter {
*/
@Override
public boolean select(Object toTest) {
- if(toTest instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) toTest;
- return !node.isSystemRoot() && node.isWindowsNode() && node.isFile();
+ if(toTest instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) toTest;
+ return !node.isFileSystem() && node.isWindowsNode() && node.isFile();
}
return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFilter.java
index 85b53dc36..c24dd60b4 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,7 +10,7 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.tabbed;
import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The filter to test if a object is a Windows node.
@@ -23,9 +23,9 @@ public class WindowsFilter implements IFilter {
*/
@Override
public boolean select(Object toTest) {
- if(toTest instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) toTest;
- return !node.isSystemRoot() && node.isWindowsNode() && (node.isFile() || node.isDirectory());
+ if(toTest instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) toTest;
+ return !node.isFileSystem() && node.isWindowsNode() && (node.isFile() || node.isDirectory());
}
return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java
index 703f33ed9..861f5df37 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -16,7 +16,7 @@ import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IWindowsFileAttributes;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider;
@@ -31,7 +31,7 @@ import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
public class WindowsFolderAISection extends BaseTitledSection {
// The original node.
- protected FSTreeNode node;
+ protected IFSTreeNode node;
// The check box for archive attribute.
protected Button archiveButton;
@@ -97,10 +97,10 @@ public class WindowsFolderAISection extends BaseTitledSection {
*/
@Override
public void refresh() {
- boolean on = node != null ? node.isWin32AttrOn(IWindowsFileAttributes.FILE_ATTRIBUTE_ARCHIVE) : false;
- SWTControlUtil.setSelection(archiveButton, on);
- on = node != null ? !node.isWin32AttrOn(IWindowsFileAttributes.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED) : false;
- SWTControlUtil.setSelection(indexButton, on);
+ SWTControlUtil.setSelection(archiveButton, node != null &&
+ node.getWin32Attr(IWindowsFileAttributes.FILE_ATTRIBUTE_ARCHIVE));
+ SWTControlUtil.setSelection(indexButton, node != null &&
+ !node.getWin32Attr(IWindowsFileAttributes.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED));
}
/*
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderFilter.java
index 84d8d1553..8b4c47ddd 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -10,7 +10,7 @@
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.tabbed;
import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
/**
* The filter to test if the object is a Windows folder.
@@ -23,9 +23,9 @@ public class WindowsFolderFilter implements IFilter {
*/
@Override
public boolean select(Object toTest) {
- if(toTest instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) toTest;
- return !node.isSystemRoot() && node.isWindowsNode() && node.isDirectory();
+ if(toTest instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) toTest;
+ return !node.isFileSystem() && node.isWindowsNode() && node.isDirectory();
}
return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/testers/ClipboardPropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/testers/ClipboardPropertyTester.java
index b01558655..808a9a512 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/testers/ClipboardPropertyTester.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/testers/ClipboardPropertyTester.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -16,7 +16,7 @@ import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.FsClipboard;
/**
@@ -40,18 +40,18 @@ public class ClipboardPropertyTester extends PropertyTester {
if (property.equals("canPaste")) { //$NON-NLS-1$
FsClipboard cb = UIPlugin.getClipboard();
if (!cb.isEmpty()) {
- List<FSTreeNode> nodes = cb.getFiles();
+ List<IFSTreeNode> nodes = cb.getFiles();
boolean moving = cb.isCutOp();
boolean copying = cb.isCopyOp();
- List<FSTreeNode> selection = ((IStructuredSelection) receiver).toList();
- FSTreeNode hovered = null;
+ List<IFSTreeNode> selection = ((IStructuredSelection) receiver).toList();
+ IFSTreeNode hovered = null;
Assert.isTrue(!selection.isEmpty());
if (selection.size() == 1) {
- FSTreeNode node = selection.get(0);
+ IFSTreeNode node = selection.get(0);
if (node.isDirectory() && moving) {
hovered = node;
}
- else if (node.isRoot()) {
+ else if (node.isRootDirectory()) {
hovered = node;
}
else {
@@ -59,17 +59,17 @@ public class ClipboardPropertyTester extends PropertyTester {
}
}
else {
- for (FSTreeNode node : selection) {
+ for (IFSTreeNode node : selection) {
if (hovered == null) hovered = node.getParent();
else if (hovered != node.getParent()) return false;
}
}
if (hovered != null && hovered.isDirectory() && hovered.isWritable() && (moving || copying)) {
- FSTreeNode head = nodes.get(0);
- String hid = head.peerNode.getPeerId();
- String tid = hovered.peerNode.getPeerId();
+ IFSTreeNode head = nodes.get(0);
+ String hid = head.getPeerNode().getPeerId();
+ String tid = hovered.getPeerNode().getPeerId();
if (hid.equals(tid)) {
- for (FSTreeNode node : nodes) {
+ for (IFSTreeNode node : nodes) {
if (moving && node.getParent() == hovered || node.isAncestorOf(hovered)) {
return false;
}
@@ -82,11 +82,11 @@ public class ClipboardPropertyTester extends PropertyTester {
Clipboard clipboard = cb.getSystemClipboard();
Object contents = clipboard.getContents(FileTransfer.getInstance());
if (contents != null) {
- List<FSTreeNode> selection = ((IStructuredSelection) receiver).toList();
- FSTreeNode hovered = null;
+ List<IFSTreeNode> selection = ((IStructuredSelection) receiver).toList();
+ IFSTreeNode hovered = null;
Assert.isTrue(!selection.isEmpty());
if (selection.size() == 1) {
- FSTreeNode node = selection.get(0);
+ IFSTreeNode node = selection.get(0);
if (node.isFile()) {
hovered = node.getParent();
}
@@ -95,7 +95,7 @@ public class ClipboardPropertyTester extends PropertyTester {
}
}
else {
- for (FSTreeNode node : selection) {
+ for (IFSTreeNode node : selection) {
if (hovered == null) hovered = node.getParent();
else if (hovered != node.getParent()) return false;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/FolderValidator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/FolderValidator.java
index 6ca8422bc..f7733ec1a 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/FolderValidator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/FolderValidator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -11,23 +11,23 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.wizards;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.osgi.util.NLS;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+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.controls.validator.Validator;
/**
* The validator to validate the path of the parent directory in the new file/folder wizard
* page is valid. It is only when it is not empty and it exists in the target peer.
- *
+ *
* @see Validator
*/
public class FolderValidator extends Validator {
// The wizard page to create the new node.
private NewNodeWizardPage page;
-
+
/**
* Create a folder validator of the specified wizard page.
- *
+ *
* @param page The wizard page to create the new file/folder.
*/
public FolderValidator(NewNodeWizardPage page) {
@@ -45,7 +45,7 @@ public class FolderValidator extends Validator {
setMessage(Messages.FolderValidator_SpecifyFolder, IMessageProvider.ERROR);
return false;
}
- FSTreeNode folder = page.getInputDir();
+ IFSTreeNode folder = page.getInputDir();
if (folder == null) {
setMessage(NLS.bind(Messages.FolderValidator_DirNotExist, newText), IMessageProvider.ERROR);
return false;
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NameValidator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NameValidator.java
index 5329a4f7c..a88ab3720 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NameValidator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NameValidator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,21 +9,15 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.wizards;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.SafeRunner;
import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.util.SafeRunnable;
-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.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.internal.celleditor.FSCellValidator;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
import org.eclipse.tcf.te.ui.controls.validator.Validator;
/**
* The validator to validate the name of a file/folder in the file system of Target Explorer.
- *
+ *
* @see Validator
*/
public class NameValidator extends Validator {
@@ -32,7 +26,7 @@ public class NameValidator extends Validator {
/**
* Create a NameValidator with the folder in which the file/folder is created.
- *
+ *
* @param wizard The parent folder in which the file/folder is created.
*/
public NameValidator(NewNodeWizardPage wizard) {
@@ -46,7 +40,7 @@ public class NameValidator extends Validator {
*/
@Override
public boolean isValid(String newText) {
- FSTreeNode folder = wizard.getInputDir();
+ IFSTreeNode folder = wizard.getInputDir();
if(folder == null) {
setMessage(Messages.NameValidator_SpecifyFolder, IMessageProvider.INFORMATION);
return false;
@@ -71,42 +65,25 @@ public class NameValidator extends Validator {
/**
* To test if the folder has a child with the specified name.
- *
+ *
* @param name The name.
* @return true if it has a child with the name.
*/
private boolean hasChild(String name) {
- List<FSTreeNode> nodes = getChildren();
- for (FSTreeNode node : nodes) {
+ final IFSTreeNode folder = wizard.getInputDir();
+ IFSTreeNode[] nodes = folder.getChildren();
+ if (nodes == null)
+ return false;
+
+ for (IFSTreeNode node : nodes) {
if (node.isWindowsNode()) {
- if (node.name.equalsIgnoreCase(name)) return true;
+ if (node.getName().equalsIgnoreCase(name)) {
+ return true;
+ }
+ } else if (node.getName().equals(name)) {
+ return true;
}
- else if (node.name.equals(name)) return true;
}
return false;
}
-
- /**
- * Get the folder's current children. If the children has not yet been loaded, then load it.
- *
- * @return The current children of the folder.
- */
- private List<FSTreeNode> getChildren() {
- final FSTreeNode folder = wizard.getInputDir();
- if (folder.childrenQueried) {
- return folder.getChildren();
- }
- final List<FSTreeNode> result = new ArrayList<FSTreeNode>();
- SafeRunner.run(new SafeRunnable() {
- @Override
- public void handleException(Throwable e) {
- // Ignore exception
- }
- @Override
- public void run() throws Exception {
- result.addAll(new Operation().getChildren(folder));
- }
- });
- return result;
- }
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFileWizard.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFileWizard.java
index 3ad1bfb76..da9fd30ea 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFileWizard.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFileWizard.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,9 +9,8 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.wizards;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreate;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreateFile;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IResultOperation;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
/**
@@ -30,11 +29,11 @@ public class NewFileWizard extends NewNodeWizard {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.wizards.NewNodeWizard#getCreateOp(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode, java.lang.String, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.wizards.NewNodeWizard#getCreateOp(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode, java.lang.String, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback)
*/
@Override
- protected OpCreate getCreateOp(FSTreeNode folder, String name) {
- return new OpCreateFile(folder, name);
+ protected IResultOperation<? extends IFSTreeNode> getCreateOp(IFSTreeNode folder, String name) {
+ return folder.operationNewFile(name);
}
/*
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFolderWizard.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFolderWizard.java
index 84fb4adc9..7784fe2c4 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFolderWizard.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewFolderWizard.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -9,9 +9,8 @@
*******************************************************************************/
package org.eclipse.tcf.te.tcf.filesystem.ui.internal.wizards;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreate;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreateFolder;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IResultOperation;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages;
/**
@@ -30,11 +29,11 @@ public class NewFolderWizard extends NewNodeWizard {
/*
* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.internal.wizards.NewNodeWizard#getCreateOp(org.eclipse.tcf.te.tcf.filesystem.model.FSTreeNode, java.lang.String, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback)
+ * @see org.eclipse.tcf.te.tcf.filesystem.internal.wizards.NewNodeWizard#getCreateOp(org.eclipse.tcf.te.tcf.filesystem.model.IFSTreeNode, java.lang.String, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback)
*/
@Override
- protected OpCreate getCreateOp(FSTreeNode folder, String name) {
- return new OpCreateFolder(folder, name);
+ protected IResultOperation<? extends IFSTreeNode> getCreateOp(IFSTreeNode folder, String name) {
+ return folder.operationNewFolder(name);
}
/*
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java
index ee743fcae..d58be13c6 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -12,14 +12,16 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.wizards;
import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreate;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IResultOperation;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode;
import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties;
import org.eclipse.tcf.te.ui.views.editor.pages.AbstractTreeViewerExplorerEditorPage;
@@ -38,7 +40,7 @@ import org.eclipse.ui.navigator.CommonNavigator;
*/
public abstract class NewNodeWizard extends AbstractWizard implements INewWizard {
// The folder in which the new node is created.
- private FSTreeNode folder;
+ private IFSTreeNode folder;
// The target peer where the new node is created.
private IPeerNode peer;
// The wizard page used to create the new node.
@@ -62,13 +64,13 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard
setWindowTitle(getTitle());
if (!selection.isEmpty()) {
Object element = selection.getFirstElement();
- if (element instanceof FSTreeNode) {
- folder = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode) {
+ folder = (IFSTreeNode) element;
if (folder.isFile()) {
// If the selected is a file, then create the node in the parent folder.
folder = folder.getParent();
}
- peer = folder.peerNode;
+ peer = folder.getPeerNode();
}
else if (element instanceof IPeerNode) {
if(hasFileSystem((IPeerNode) element)) {
@@ -130,27 +132,30 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard
newPage.saveWidgetValues();
// Get the new name and create the node.
String name = newPage.getNodeName();
- FSTreeNode dest = newPage.getInputDir();
- final OpCreate create = getCreateOp(dest, name);
+ IFSTreeNode dest = newPage.getInputDir();
+ final IResultOperation<? extends IFSTreeNode> create = getCreateOp(dest, name);
+ final IStatus[] status = {Status.CANCEL_STATUS};
IRunnableWithProgress runnable = new IRunnableWithProgress() {
@Override
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- create.run(monitor);
- }};
+ public void run(IProgressMonitor monitor) {
+ status[0] = create.run(monitor);
+ }
+ };
try {
getContainer().run(false, false, runnable);
- final FSTreeNode newNode = create.getNode();
- getShell().getDisplay().asyncExec(new Runnable(){
- @Override
- public void run() {
- selectNewNode(newNode);
- }});
- return true;
- }
- catch (InvocationTargetException e) {
- newPage.setErrorMessage(e.getMessage());
- }
- catch (InterruptedException e) {
+ if (status[0].isOK()) {
+ final IFSTreeNode newNode = create.getResult();
+ getShell().getDisplay().asyncExec(new Runnable(){
+ @Override
+ public void run() {
+ selectNewNode(newNode);
+ }});
+ return true;
+ }
+ newPage.setErrorMessage(status[0].getMessage());
+ } catch (InvocationTargetException e) {
+ newPage.setErrorMessage(e.getMessage());
+ } catch (InterruptedException e) {
}
}
return false;
@@ -161,7 +166,7 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard
*
* @param node The node to be selected.
*/
- void selectNewNode(FSTreeNode node) {
+ void selectNewNode(IFSTreeNode node) {
TreeViewer viewer = getFocusedViewer();
if(viewer != null) {
viewer.refresh(folder);
@@ -211,7 +216,7 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard
* @param name The name of the new node.
* @return a FSCreate instance to do the creation.
*/
- protected abstract OpCreate getCreateOp(FSTreeNode folder, String name);
+ protected abstract IResultOperation<? extends IFSTreeNode> getCreateOp(IFSTreeNode folder, String name);
/**
* The wizard's title to be used.
@@ -244,7 +249,7 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard
*
* @return the current selected folder.
*/
- public FSTreeNode getFolder() {
+ public IFSTreeNode getFolder() {
return folder;
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java
index 7179beddc..4a6b63f0b 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -26,9 +26,10 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpParsePath;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IResultOperation;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IFSTreeNode;
+import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.runtime.IRuntimeModel;
+import org.eclipse.tcf.te.tcf.filesystem.core.model.ModelManager;
import org.eclipse.tcf.te.tcf.filesystem.ui.controls.FSTreeContentProvider;
import org.eclipse.tcf.te.tcf.filesystem.ui.controls.FSTreeViewerSorter;
import org.eclipse.tcf.te.tcf.filesystem.ui.help.IContextHelpIds;
@@ -159,7 +160,7 @@ public abstract class NewNodeWizardPage extends AbstractValidatingWizardPage {
folderControl.setupPanel(client);
folderControl.setEditFieldValidator(new FolderValidator(this));
NewNodeWizard wizard = getWizard();
- FSTreeNode folder = wizard.getFolder();
+ IFSTreeNode folder = wizard.getFolder();
if (folder != null) folderControl.setEditFieldControlText(folder.getLocation());
treeViewer = new TreeViewer(client, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
@@ -207,8 +208,8 @@ public abstract class NewNodeWizardPage extends AbstractValidatingWizardPage {
static class DirectoryFilter extends ViewerFilter {
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode) element;
+ if (element instanceof IFSTreeNode) {
+ IFSTreeNode node = (IFSTreeNode) element;
if(node.isFile()) return false;
}
return true;
@@ -250,8 +251,8 @@ public abstract class NewNodeWizardPage extends AbstractValidatingWizardPage {
protected void onSelectionChanged() {
if (treeViewer.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
- if (selection.getFirstElement() instanceof FSTreeNode) {
- FSTreeNode folder = (FSTreeNode) selection.getFirstElement();
+ if (selection.getFirstElement() instanceof IFSTreeNode) {
+ IFSTreeNode folder = (IFSTreeNode) selection.getFirstElement();
folderControl.setEditFieldControlText(folder.getLocation());
}
else {
@@ -343,16 +344,19 @@ public abstract class NewNodeWizardPage extends AbstractValidatingWizardPage {
*
* @return The directory node if it exists or else null.
*/
- public FSTreeNode getInputDir() {
+ public IFSTreeNode getInputDir() {
NewNodeWizard wizard = getWizard();
IPeerNode peer = wizard.getPeer();
if (peer == null) return null;
final String text = folderControl.getEditFieldControlText();
if (text != null) {
String path = text.trim();
- OpParsePath parser = new OpParsePath(peer, path);
- new NullOpExecutor().execute(parser);
- return parser.getResult();
+ IRuntimeModel rtm = ModelManager.getRuntimeModel(peer);
+ if (rtm != null) {
+ IResultOperation<IFSTreeNode> operation = rtm.operationRestoreFromPath(path);
+ operation.run(null);
+ return operation.getResult();
+ }
}
return null;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java
index 82baf5e34..c5b2472fe 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * Copyright (c) 2005, 2015 IBM Corporation 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
@@ -25,7 +25,6 @@ public class TargetPatternFilter extends PatternFilter {
private DelegatingLabelProvider targetLabelProvider = new DelegatingLabelProvider();
/**
* Create a new instance of a WizardPatternFilter
- * @param isMatchItem
*/
public TargetPatternFilter() {
super();
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java
index d3b268055..fdf717bdb 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -82,11 +82,6 @@ public class TargetSelectionPage extends AbstractValidatingWizardPage {
}
}
- /**
- * Constructor.
- *
- * @param wizardRegistry The new target wizard registry. Must not be <code>null</code>.
- */
public TargetSelectionPage() {
super(TargetSelectionPage.class.getSimpleName());
setTitle(getDefaultTitle());
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.java
index 8d68fec45..53f8ac980 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 Wind River Systems, Inc. and others. All rights reserved.
+ * 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
@@ -235,6 +235,8 @@ public class Messages extends NLS {
public static String NewFolderWizardPage_NewFolderWizardPageNameLabel;
public static String NewFolderWizardPage_NewFolderWizardPageTitle;
public static String NewNodeWizardPage_PromptFolderLabel;
+ public static String SaveAllListener_message_uploadFile;
+ public static String SaveAllListener_message_uploadFiles;
public static String SizeValidator_ErrorIncorrectFormat;
public static String SizeValidator_ErrorSizeOutofRange;
public static String SizeValidator_InfoPrompt;
@@ -247,5 +249,6 @@ public class Messages extends NLS {
public static String TreeViewerSearchDialog_BtnPreciseText;
public static String ContentProvider_notConnected;
+ public static String UiExecutor_errorRunningOperation;
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.properties b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.properties
index 17171148a..89b2d4a7d 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.properties
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/nls/Messages.properties
@@ -1,5 +1,5 @@
###############################################################################
-# Copyright (c) 2012, 2014 Wind River Systems, Inc. and others. All rights reserved.
+# Copyright (c) 2012, 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
@@ -157,6 +157,8 @@ NewFolderWizardPage_NewFolderWizardPageDescription=Create a new folder in the di
NewFolderWizardPage_NewFolderWizardPageNameLabel=Folder name:
NewFolderWizardPage_NewFolderWizardPageTitle=New Folder
NewNodeWizardPage_PromptFolderLabel=Enter or select the parent folder:
+SaveAllListener_message_uploadFile=Uploading file {0}
+SaveAllListener_message_uploadFiles=Uploading {0} files
SizeValidator_ErrorIncorrectFormat=The format of the size entered is not correct.
SizeValidator_ErrorSizeOutofRange=The size entered is not in the expected range.
SizeValidator_InfoPrompt=Please enter a size number.
@@ -169,3 +171,4 @@ TreeViewerSearchDialog_BtnCaseText=Case sensitive
TreeViewerSearchDialog_BtnPreciseText=Precise matching
ContentProvider_notConnected=Please connect to see the filesystem on the target.
+UiExecutor_errorRunningOperation=Operation completed with errors

Back to the top