Package org.cfeclipse.cfml.views.explorer

Source Code of org.cfeclipse.cfml.views.explorer.FileExplorerView

/*
* Created on Nov 7, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package org.cfeclipse.cfml.views.explorer;

import java.io.File;
import java.io.IOException;

import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileType;
import org.cfeclipse.cfml.editors.CFJavaFileEditorInput;
import org.cfeclipse.cfml.editors.CFMLEditor;
import org.cfeclipse.cfml.net.FTPConnectionProperties;
import org.cfeclipse.cfml.net.RemoteFile;
import org.cfeclipse.cfml.net.RemoteFileEditorInput;
import org.cfeclipse.cfml.net.ftp.FTPConnection;
import org.cfeclipse.cfml.preferences.FtpConnectionDialog;
import org.cfeclipse.cfml.util.AlertUtils;
import org.cfeclipse.cfml.views.explorer.vfs.view.VFSView;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
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.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.PreferencesUtil;
import org.eclipse.ui.ide.IDE;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.part.IShowInTarget;
import org.eclipse.ui.part.ShowInContext;
import org.eclipse.ui.part.ViewPart;





/**
* @author Stephen Milligan
*
* The explorer view is suposed to be a faithful replication
* of the file explorer tab in Homesite/CFStudio.
*/
public class FileExplorerView extends ViewPart implements IShowInTarget {
  public final static String ID_FILE_EXPLORER = "org.cfeclipse.cfml.views.explorer.FileExplorerView";

    private MenuItem disconnectItem,connectItem,manageItem;
   
    private Action createFile;
  private Action createDirectory;
  private Action deleteItem;
  private Action deleteFile;
  private Shell shell;
   
   
    protected IFileProvider fileProvider = null;
   
    private final class ComboSelectionListener implements ISelectionChangedListener {
        ViewPart viewpart = null;
        public ComboSelectionListener(ViewPart viewpart) {
            this.viewpart = viewpart;
        }
       
        public void selectionChanged(SelectionChangedEvent e) {
          try {
              StructuredSelection sel = (StructuredSelection)e.getSelection();
            directoryTreeViewer.setInput(sel.getFirstElement());
            fileViewer.setInput(sel.getFirstElement());
            if (sel.getFirstElement() instanceof FTPConnectionProperties) {
                connectItem.setEnabled(true);
                disconnectItem.setEnabled(true);
            }
            else {
                connectItem.setEnabled(false);
                disconnectItem.setEnabled(false);
            }
          }
          catch (Exception ex) {
            ex.printStackTrace();
          }
        }
    }

    private final class DirectorySelectionListener implements ISelectionChangedListener {
        ViewPart viewpart = null;
        public DirectorySelectionListener(ViewPart viewpart) {
            this.viewpart = viewpart;
        }
        public void selectionChanged(SelectionChangedEvent e) {
            fileViewer.setInput(e.getSelection());
        }
    }

    private final class MenuMouseListener implements MouseListener {
        Menu menu = null;

        public MenuMouseListener (Menu menu) {
            this.menu = menu;
        }

        public void mouseUp(MouseEvent e) {
           
          menu.setVisible(true);
        }

        public void mouseDown(MouseEvent e) {
         
        }

        public void mouseDoubleClick(MouseEvent e) {
         
        }
    }

    ComboViewer comboViewer = null;
    TreeViewer directoryTreeViewer = null;
    TableViewer fileViewer = null;

  private Action refreshAction;
   
   
    public void createPartControl(Composite parent) {
        Composite container = new Composite(parent, SWT.NONE);
        GridLayout containerLayout = new GridLayout();
        containerLayout.numColumns = 2;
        container.setLayout(containerLayout);
        this.shell = parent.getShell();
       
       
        // Select Site or local path
        comboViewer = new ComboViewer(container, SWT.READ_ONLY);
        comboViewer.addSelectionChangedListener(new ComboSelectionListener(this));
        comboViewer.setLabelProvider(new ComboLabelProvider());
        comboViewer.setContentProvider(new ComboContentProvider());
        final Combo combo = comboViewer.getCombo();
        final GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
   
       
        combo.setLayoutData(gridData);
        comboViewer.setInput(new LocalFileSystem());
       
        Menu menu = new Menu(container.getShell(), SWT.POP_UP);
        createMenuItems(menu);
        Button menuButton = new Button(container,SWT.ARROW | SWT.RIGHT);
        menuButton.addMouseListener(new MenuMouseListener(menu));
       
       
       
        // This is what makes the controls resizable
        SashForm sash = new SashForm(container,SWT.VERTICAL);
        GridData sashData = new GridData(GridData.FILL_BOTH);
        sashData.horizontalSpan = 2;
        sash.setLayoutData(sashData);
       
        // Directory tree
        directoryTreeViewer = new TreeViewer(sash, SWT.BORDER);
        directoryTreeViewer.addSelectionChangedListener(new DirectorySelectionListener(this));
        directoryTreeViewer.setSorter(new DirectorySorter());
        directoryTreeViewer.setLabelProvider(new DirectoryLabelProvider());
        directoryTreeViewer.setContentProvider(new DirectoryContentProvider(this));
        final Tree tree = directoryTreeViewer.getTree();
        directoryTreeViewer.setComparer(new FileComparer());
        tree.setLayoutData(new GridData(GridData.FILL_BOTH));
       
       
        directoryTreeViewer.setInput(new LocalFileSystem());
       
//Create the columns
       
       
        FileContentProvider fileProvider = new FileContentProvider(this);
        fileViewer = new TableViewer(sash, SWT.BORDER);
        final Table fileTable = fileViewer.getTable();
       
     
       
       
        fileViewer.addDoubleClickListener(new FileDoubleClickListener(fileProvider));
       
        fileViewer.setSorter(new Sorter());
        fileViewer.setLabelProvider(new FileLabelProvider());
        fileViewer.setContentProvider(fileProvider);
        fileViewer.setComparer(new FileComparer());
       
       
        final Table table = fileViewer.getTable();
        table.setLayoutData(new GridData(GridData.FILL_BOTH));
       
       
       
        //Add the columns and sort out the column stuff
        TableColumn filenameColumn = new TableColumn(fileViewer.getTable(), SWT.NONE);
        filenameColumn.setWidth(200);
        filenameColumn.setText("Name");
       
        TableColumn fileSizeColumn = new TableColumn(fileViewer.getTable(), SWT.NONE);
        fileSizeColumn.setWidth(50);
        fileSizeColumn.setText("Size");
       
        table.setLinesVisible(true);
        table.setHeaderVisible(true);
        table.setSortColumn(filenameColumn);
       // table.setSortDirection(SWT.UP);
       
        fileViewer.setInput(DirectoryContentProvider.localFS);
       
        initializeToolBar();
        initializeMenu();
        initializeRightClick();
        hookContextMenu();
      hookDoubleClickActions();
    }
   
   
 

  private void hookDoubleClickActions() {
    directoryTreeViewer.addDoubleClickListener(new IDoubleClickListener() {

      public void doubleClick(DoubleClickEvent event) {
        ISelection selection = event.getSelection();
        TreeSelection sel = (TreeSelection)event.getSelection();
        Object firstElement = sel.getFirstElement();
        if (firstElement instanceof RemoteFile) {
          RemoteFile remFile = (RemoteFile) firstElement;
          String absolutePath = remFile.getAbsolutePath();
         
          StructuredSelection selection2 = (StructuredSelection)comboViewer.getSelection();
         
          if (selection2.getFirstElement() instanceof FTPConnection) {
            FTPConnection ftpConn = (FTPConnection) selection2.getFirstElement();
          }
        }
       
        // Expand the item double-clicked on
        boolean isExpand = directoryTreeViewer.getExpandedState(firstElement);
        directoryTreeViewer.setExpandedState(firstElement, !isExpand);
      }});
   
  }

  private void showMessage(String message) {
    MessageDialog.openInformation(
        directoryTreeViewer.getControl().getShell(),
      "Directory",
      message);
  }

  private void hookContextMenu() {
    MenuManager menuMgr = new MenuManager("#PopupMenu");
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {
      public void menuAboutToShow(IMenuManager manager) {
        FileExplorerView.this.fillContextMenu(manager);
      }
    });
    Menu menu = menuMgr.createContextMenu(directoryTreeViewer.getControl());
    directoryTreeViewer.getControl().setMenu(menu);
    getSite().registerContextMenu(menuMgr, directoryTreeViewer);
   
    //File Menu Manager
   
    MenuManager menuMgr2 = new MenuManager("#PopupMenu");
    menuMgr2.setRemoveAllWhenShown(true);
    menuMgr2.addMenuListener(new IMenuListener() {
      public void menuAboutToShow(IMenuManager manager) {
        FileExplorerView.this.fillContextMenu2(manager);
      }
    });
    Menu menu2 = menuMgr2.createContextMenu(fileViewer.getControl());
    fileViewer.getControl().setMenu(menu2);
    getSite().registerContextMenu(menuMgr2, fileViewer);
   
   
  }
 

    private void fillContextMenu(IMenuManager manager) {
    //Somehow we have to know what this item is
    manager.add(createFile);
    manager.add(createDirectory);
    manager.add(deleteItem);
    manager.add(refreshAction);
   
  }
    private void fillContextMenu2(IMenuManager manager) {
    //Somehow we have to know what this item is
    manager.add(deleteFile);
   
  }
    private void initializeRightClick() {

      deleteItem = new Action(){
        public void run() {
          ISelection selection = directoryTreeViewer.getSelection();
        Object obj = ((IStructuredSelection) selection).getFirstElement();
       
      boolean b = MessageDialog.openConfirm(directoryTreeViewer.getControl().getShell(), "Delete", "Are you sure you want to delete this item?");
       
        if(b){
          if(obj instanceof RemoteFile){
            FileObject remFile = ((RemoteFile)obj).getFileItem();
           
           
            try {
              FileObject[] children = remFile.getChildren();
             
              if(children.length > 0){
                MessageDialog.openError(directoryTreeViewer.getControl().getShell(), "Delete Error", "Can't delete a non empty directory");
              } else {
                remFile.delete();
                directoryTreeViewer.refresh();
              }
             
             
              remFile.delete();
            } catch (FileSystemException e) {
              e.printStackTrace();
            }
           
           
            /*StructuredSelection selection2 = (StructuredSelection)comboViewer.getSelection();
            if (selection2.getFirstElement() instanceof FTPConnection) {
              FTPConnection ftpConn = (FTPConnection) selection2.getFirstElement();
              ftpConn.rmdir(remFile.getAbsolutePath());
              directoryTreeViewer.refresh();
            }*/
          }
          else if (obj instanceof File){
            File file = (File) obj;
            if(file.isDirectory()){
             
              if(file.list().length > 0){
                MessageDialog.openError(directoryTreeViewer.getControl().getShell(), "Delete Error", "Can't delete a non empty directory");
              } else {
                file.delete();
                directoryTreeViewer.refresh();
              }
            }
          }
        }
        }
      };
     
     
      deleteItem.setText("Delete");
      deleteItem.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
     
      deleteFile = new Action(){
        public void run() {
          ISelection selection = fileViewer.getSelection();
        Object obj = ((IStructuredSelection) selection).getFirstElement();
        boolean b = MessageDialog.openConfirm(fileViewer.getControl().getShell(), "Delete", "Are you sure you want to delete this item?");
       
        if(b){
          Object[] fileItem = (Object[]) obj;
           
          if (fileItem[0] instanceof File) {
            File fileItemToDelete = (File) fileItem[0];
            fileItemToDelete.delete();
            fileViewer.refresh();
          }
          else if (fileItem[0] instanceof RemoteFile) {
           
           
            FileObject remoteFileItem = ((RemoteFile) fileItem[0]).getFileItem();
            try {
              remoteFileItem.delete();
            } catch (FileSystemException e) {
              // TODO Auto-generated catch block
                     AlertUtils.alertUser(e);
            }
            fileViewer.refresh();
            /*StructuredSelection selection2 = (StructuredSelection)comboViewer.getSelection();
            if (selection2.getFirstElement() instanceof FTPConnection) {
              FTPConnection ftpConn = (FTPConnection) selection2.getFirstElement();
              ftpConn.delete(remoteFileItem.getAbsolutePath());
              fileViewer.refresh();
            }*/
          }
        }
        }
      };
      deleteFile.setText("Delete");
      deleteFile.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
     
     
   
    createFile = new Action() {
      public void run() {

        ISelection selection = directoryTreeViewer.getSelection();
        Object obj = ((IStructuredSelection) selection).getFirstElement();

        FileCreateDialog fcd = new FileCreateDialog(null);

        if (fcd.open() == IDialogConstants.OK_ID) {

          if (obj instanceof FileSystemRoot) {
            FileSystemRoot root = (FileSystemRoot) obj;
            FileObject rem = root.getFileObject();

            FileObject object;
            try {
              if (rem == null) {
                createLocalFile(new File(root.getPath() + fcd.filename));
              } else {
                object = rem.resolveFile(fcd.filename);
                if (object.getType().equals(FileType.IMAGINARY)) {
                  object.createFile();
                  fileViewer.refresh();
                  // Now open it
                  RemoteFileEditorInput input = new RemoteFileEditorInput(object);
                  IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
                      .getActivePage();
                  page.openEditor(input, CFMLEditor.ID);
                }
              }
            } catch (FileSystemException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            } catch (PartInitException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }

          } else if (obj instanceof RemoteFile) {
            FileObject rem = ((RemoteFile) obj).getFileItem();

            FileObject object;
            try {
              object = rem.resolveFile(fcd.filename);
              if (object.getType().equals(FileType.IMAGINARY)) {
                object.createFile();
                fileViewer.refresh();
                // Now open it
                RemoteFileEditorInput input = new RemoteFileEditorInput(object);
                IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
                    .getActivePage();
                page.openEditor(input, CFMLEditor.ID);
              }
            } catch (FileSystemException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            } catch (PartInitException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }

          } else if (obj instanceof File) {
            File lfile = (File) obj;
            if (lfile.isDirectory()) {
              String filePath = lfile.getAbsoluteFile() + lfile.separator + fcd.filename;
              createLocalFile(new File(filePath));
            }
          }
        }
      }
    };
   
    createFile.setText("Create File");
    createFile.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FILE));
   
   
    createDirectory = new Action() {
      public void run() {
        ISelection selection = directoryTreeViewer.getSelection();
        Object obj = ((IStructuredSelection) selection).getFirstElement();
       
        FileCreateDialog fcd = new FileCreateDialog(null);
        fcd.setFilename("");
        fcd.message = "Please enter a directory name:";
       
        if(fcd.open() == IDialogConstants.OK_ID){
         
          if(obj instanceof FileSystemRoot){
            FileSystemRoot root  = (FileSystemRoot)obj;
            FileObject fileRoot = root.getFileObject();
            if(fileRoot !=null){
              try {
                FileObject object = fileRoot.resolveFile(fcd.filename);
                if(object.getType().equals(FileType.IMAGINARY)){
                  object.createFolder();
                  directoryTreeViewer.refresh(obj);
                }
               
              } catch (FileSystemException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
              }
            } else {
              File lfile = new File(root.getPath());
              if(lfile.isDirectory()){
                String filePath = lfile.getAbsoluteFile() + fcd.filename;               
                File newFolder = new File(filePath);
                if(canCreate(newFolder)){                   
                  newFolder.mkdir();
                  directoryTreeViewer.refresh(obj);
                }
              }             
            }
          }
          else if(obj instanceof RemoteFile){
            RemoteFile rem = (RemoteFile)obj;
            try {
              FileObject object2 = rem.getFileItem().resolveFile(fcd.filename);
              if(object2.getType().equals(FileType.IMAGINARY)){
                object2.createFolder();
                directoryTreeViewer.refresh(obj);
              }
            } catch (FileSystemException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
            /*
            String absolutePath = rem.getAbsolutePath() + "/" + fcd.filename;
            StructuredSelection selection2 = (StructuredSelection)comboViewer.getSelection();
           
            try {
              FileObject object = rem.getFileItem().resolveFile(fcd.filename);
              System.out.println(object.getName());
             
             
            } catch (FileSystemException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
            */
           
            /*if (selection2.getFirstElement() instanceof FTPConnection) {
              FTPConnection ftpConn = (FTPConnection) selection2.getFirstElement();
              ftpConn.mkdir(absolutePath);
              directoryTreeViewer.refresh(obj);
            }*/
          }
          else if(obj instanceof File){
            File lfile = (File)obj;
            if(lfile.isDirectory()){
              String filePath = lfile.getAbsoluteFile() + lfile.separator +   fcd.filename;
             
              File newFolder = new File(filePath);
              if(canCreate(newFolder)){
                newFolder.mkdir();
                directoryTreeViewer.refresh(obj);
              }
           
            }
          }
        }
      }
    };
    createDirectory.setText("Create Directory");
    createDirectory.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER));

    refreshAction = new Action() {
      public void run() {
        fileViewer.refresh();       
      }
    };
    refreshAction.setText("Refresh");
    refreshAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJ_FILE));
    }

    private boolean canCreate(File file) {
      if(!file.exists() && !file.getParentFile().canWrite()) {
      MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),"Error!","You ("+ System.getProperty("user.name")+") don't have permission to create " + file.getPath());
      return false;
      } else if(file.exists()) {
      MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),"Error!",file.getPath()+" already exits!");                         
      }
      return true;
    }

  private void createLocalFile(File newFile) {
    if (!newFile.isDirectory()) {
      if (!newFile.exists()) {
        if (canCreate(newFile)) {
          try {
            newFile.createNewFile();
            fileViewer.refresh();
            // Now open it
            IFileStore fileStore = EFS.getLocalFileSystem().getStore(newFile.toURI());
            IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();           
            IDE.openEditorOnFileStore( page, fileStore );
          } catch (PartInitException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          } catch (IOException e) {
            MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                "File creation Error!", e.getMessage());
          }
        }
      } else {
        MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Error!",
            "File already exits!");
      }
    }
  }   
   
  public boolean show(ShowInContext context) {
      String filePath;
   
        if (fileViewer == null || context == null)
           return false;
        ISelection sel = context.getSelection();
        Object input = context.getInput();
        if (input instanceof CFJavaFileEditorInput) {
          filePath = ((CFJavaFileEditorInput)input).getPath(input).toString();
        }
    else {
      filePath = ((FileEditorInput)input).getFile().getRawLocation().toString();
    }
   
       
        showFile(filePath);
        return false;
     }
    private void createMenuItems(Menu menu) {

        manageItem = new MenuItem(menu,SWT.CASCADE);
        manageItem.setText("Locations...");
        manageItem.addListener(SWT.Selection, new Listener() {
          public void handleEvent(Event e) {
            try {
              String connectionID = null;
              StructuredSelection sel = (StructuredSelection)comboViewer.getSelection();
              if (sel.getFirstElement() instanceof FTPConnectionProperties) {
                  connectionID = ((FTPConnectionProperties)sel.getFirstElement()).getConnectionid();
              }
              PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn(getSite().getShell(), "org.cfeclipse.cfml.preferences.FtpConnectionDialog", new String[] {"org.cfeclipse.cfml.preferences.FtpConnectionDialog"}, null);
              if (pref != null)
              pref.open();               
//              FtpConnectionDialog dialog = new FtpConnectionDialog(e.widget.getDisplay().getActiveShell(),connectionID);
//              if (dialog.open() == IDialogConstants.OK_ID) {
//                comboViewer.setInput(dialog.connectionProperties);
//               
//              }
            }
            catch (Exception ex) {
              ex.printStackTrace();
            }
            }
        });
       
        disconnectItem = new MenuItem(menu,SWT.CASCADE);
        disconnectItem.setText("Disconnect");
        disconnectItem.setEnabled(false);
        disconnectItem.addListener(SWT.Selection, new Listener() {
          public void handleEvent(Event e) {
              try {
                fileProvider.disconnect();
                disconnectItem.setEnabled(false);
                connectItem.setEnabled(true);
               
              }
              catch (Exception ex) {
                  ex.printStackTrace();
              }
            }
        });
       
        connectItem = new MenuItem(menu,SWT.CASCADE);
        connectItem.setText("Re-Connect");
        connectItem.setEnabled(false);
        connectItem.addListener(SWT.Selection, new Listener() {
          public void handleEvent(Event e) {
              try {
                fileProvider.connect();
                disconnectItem.setEnabled(true);
                connectItem.setEnabled(false);
              }
              catch (Exception ex) {
                  ex.printStackTrace();
              }
            }
        });

        MenuItem refreshItem = new MenuItem(menu,SWT.CASCADE);
        refreshItem.setText("Refresh");
        refreshItem.addListener(SWT.Selection, new Listener() {
          public void handleEvent(Event e) {
              try {
                System.out.println("trying to refresh");
              }
              catch (Exception ex) {
                  ex.printStackTrace();
              }
            }
        });
       
    }

   

    private void initializeToolBar() {
        IToolBarManager tbm = getViewSite().getActionBars().getToolBarManager();
    }

    private void initializeMenu() {
        IMenuManager manager = getViewSite().getActionBars().getMenuManager();
    }
   

    public void setFocus() {
   
    }
   
    public void showFile(String filePath) {
      String directory = filePath.substring(0,filePath.lastIndexOf("/"));
      directoryTreeViewer.setInput(DirectoryContentProvider.localFS);
      directoryTreeViewer.setSelection(new StructuredSelection(new File(directory)),true);
      this.fileViewer.setSelection(new StructuredSelection(new File(filePath)));
    }
   
   
    public void dispose() {

    if (comboViewer.getContentProvider() != null) {
      comboViewer.getContentProvider().dispose();
    }
    if (directoryTreeViewer.getContentProvider() != null) {
      directoryTreeViewer.getContentProvider().dispose();
    }
    if (fileViewer.getContentProvider() != null) {
      fileViewer.getContentProvider().dispose();
    }

      super.dispose();
    }
   
}
TOP

Related Classes of org.cfeclipse.cfml.views.explorer.FileExplorerView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.