Signed-off-by: Ioana Grigoropol <[email protected]>
---
 .../src/org/yocto/bc/bitbake/BBSession.java        |    3 ++
 .../editors/bitbake/BitBakeDocumentProvider.java   |   40 +++++++++++++++++++-
 .../bc/ui/editors/bitbake/BitBakeFileEditor.java   |    2 +-
 .../bitbake/BitBakeSourceViewerConfiguration.java  |    4 ++
 4 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
index 937cad1..3becff2 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
@@ -761,4 +761,7 @@ public class BBSession implements IBBSessionListener, 
IModelElement, Map {
                        wlock.unlock();
                }
        }
+       public ProjectInfo getProjectInfo() {
+               return pinfo;
+       }
 }
diff --git 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeDocumentProvider.java
 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeDocumentProvider.java
index 4713bc3..9ac93c9 100644
--- 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeDocumentProvider.java
+++ 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeDocumentProvider.java
@@ -10,6 +10,10 @@
  
*******************************************************************************/
 package org.yocto.bc.ui.editors.bitbake;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IDocumentExtension3;
 import org.eclipse.jface.text.IDocumentPartitioner;
@@ -18,7 +22,10 @@ import org.eclipse.jface.text.rules.IPredicateRule;
 import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;
 import org.eclipse.jface.text.rules.SingleLineRule;
 import org.eclipse.jface.text.rules.Token;
+import org.eclipse.rse.core.model.IHost;
+import org.eclipse.ui.IFileEditorInput;
 import org.eclipse.ui.editors.text.FileDocumentProvider;
+import org.yocto.remote.utils.RemoteHelper;
 
 /**
  * Document provider for BB recipe.
@@ -34,12 +41,20 @@ public class BitBakeDocumentProvider extends 
FileDocumentProvider {
 
        public static final String RECIPE_CODE= IDocument.DEFAULT_CONTENT_TYPE;
        public static final String RECIPE_COMMENT= "RECIPE_COMMENT"; 
//$NON-NLS-1$
-       
+
+       private IHost connection;
+
+       private final BitBakeSourceViewerConfiguration viewerConfiguration;
+
        private static final String[] CONTENT_TYPES= {
                        RECIPE_CODE,
                        RECIPE_COMMENT
        };
 
+       public BitBakeDocumentProvider(BitBakeSourceViewerConfiguration 
viewerConfiguration) {
+               this.viewerConfiguration = viewerConfiguration;
+       }
+
        private IDocumentPartitioner createRecipePartitioner() {
                IPredicateRule[] rules= { new SingleLineRule("#", null, new 
Token(RECIPE_COMMENT), (char) 0, true, false) }; //$NON-NLS-1$
 
@@ -59,4 +74,27 @@ public class BitBakeDocumentProvider extends 
FileDocumentProvider {
                }
        }
 
+       @Override
+       public boolean isDeleted(Object element) {
+               if (element instanceof IFileEditorInput) {
+                       IFileEditorInput input= (IFileEditorInput) element;
+
+                   URI root = 
viewerConfiguration.getBBSession().getProjInfoRoot();
+                   String relPath = 
input.getFile().getProjectRelativePath().toPortableString();
+                   try {
+                               URI fileURI = new URI(root.getScheme(), 
root.getHost(), root.getPath() + "/" + relPath, root.getFragment());
+                               if (connection == null)
+                                       connection = 
viewerConfiguration.getBBSession().getProjectInfo().getConnection();
+                               return 
!RemoteHelper.fileExistsRemote(connection, new NullProgressMonitor(), 
fileURI.getPath());
+                       } catch (URISyntaxException e) {
+                               e.printStackTrace();
+                       }
+               }
+
+               return super.isDeleted(element);
+       }
+
+       public void setActiveConnection(IHost connection) {
+               this.connection = connection;
+       }
 }
diff --git 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeFileEditor.java
 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeFileEditor.java
index 7535341..1e42d29 100644
--- 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeFileEditor.java
+++ 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeFileEditor.java
@@ -45,7 +45,7 @@ public class BitBakeFileEditor extends 
AbstractDecoratedTextEditor {
                super();
                viewerConfiguration = new 
BitBakeSourceViewerConfiguration(getSharedColors(), getPreferenceStore());
                setSourceViewerConfiguration(viewerConfiguration);
-               setDocumentProvider(new BitBakeDocumentProvider());
+               setDocumentProvider(new 
BitBakeDocumentProvider(viewerConfiguration));
        }
        
        @Override
diff --git 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeSourceViewerConfiguration.java
 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeSourceViewerConfiguration.java
index 2be6f1d..2b286df 100644
--- 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeSourceViewerConfiguration.java
+++ 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/editors/bitbake/BitBakeSourceViewerConfiguration.java
@@ -202,4 +202,8 @@ public class BitBakeSourceViewerConfiguration extends 
TextSourceViewerConfigurat
        public void setBBSession(BBSession session) {
                this.session = session;         
        }
+
+       public BBSession getBBSession() {
+               return this.session;
+       }
 }
-- 
1.7.9.5

_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to