Package com.gstaykov.pscoder.editor.handlers

Source Code of com.gstaykov.pscoder.editor.handlers.QuickOutlineHandler

package com.gstaykov.pscoder.editor.handlers;

import java.util.Arrays;
import java.util.Vector;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.CoreException;

import com.gstaykov.pscoder.editor.completion.CompletionDictionary;
import com.gstaykov.pscoder.editor.completion.FileData;
import com.gstaykov.pscoder.util.Logger;
import com.gstaykov.pscoder.util.Util;

public class QuickOutlineHandler extends AbstractHandler {
 
  @Override
  public Object execute(ExecutionEvent event) throws ExecutionException {

    // TODO: find a way to distinguish between Ctrl+0 and Ctr+OO
   
    String[] memberList = getAvailableMembers();
    System.out.println("The members from the active file are: \n")
   
    for (int i = 0; i < memberList.length; i++) {
      System.out.println(memberList[i] + "\n");     
    }

    memberList = getInheritedMembers();
    System.out.println("The members from inherited files are: \n")
   
    for (int i = 0; i < memberList.length; i++) {
      System.out.println(memberList[i] + "\n");     
    }

    return null;
  }
 
  public String[] getAvailableMembers() {
    return Util.getFileDataForActiveFile().getMembers();
  }
 
  public String[] getInheritedMembers() {
    FileData activeFileData = Util.getFileDataForActiveFile();
    String[] sourcedFiles = activeFileData.getSourcedFiles();
   
    try {
      CompletionDictionary dict = CompletionDictionary.getInstance(Util.getActiveProject().getName());
     
      Vector<String> membersList = new Vector<String>();
     
      if (sourcedFiles != null && sourcedFiles.length > 0) {
        for (String sourcedFile : sourcedFiles) {
          System.out.println("Processing " + dict.getFullFilenameForEnding(sourcedFile));
          FileData sourcedFileData = dict.getFileData(dict.getFullFilenameForEnding(sourcedFile));
 
          membersList.addAll(Arrays.asList(sourcedFileData.getMembers()));
        }
      }
     
      // FIXME: [IN] Find a better way to cast to String[]?
      return membersList.toArray(new String[]{});
      }
    catch (CoreException ce) {
          Logger.getInstance().logError("Error while trying to get completion dictionary object: \n", ce);
      }
   
    return null;
  }

}
TOP

Related Classes of com.gstaykov.pscoder.editor.handlers.QuickOutlineHandler

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.