Package org.cfeclipse.cfml.views.dictionary

Source Code of org.cfeclipse.cfml.views.dictionary.DictionaryView


package org.cfeclipse.cfml.views.dictionary;

//import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Map;

import org.cfeclipse.cfml.CFMLPlugin;
import org.cfeclipse.cfml.dictionary.DictionaryManager;
import org.cfeclipse.cfml.dictionary.Parameter;
import org.cfeclipse.cfml.dictionary.SyntaxDictionary;
import org.cfeclipse.cfml.dictionary.Tag;
import org.cfeclipse.cfml.editors.CFDocumentProvider;
import org.cfeclipse.cfml.editors.CFMLEditor;
import org.cfeclipse.cfml.editors.CFSyntaxDictionary;
import org.cfeclipse.cfml.editors.ICFDocument;
import org.cfeclipse.cfml.editors.SQLSyntaxDictionary;
import org.cfeclipse.cfml.editors.actions.EditCustomTagAction;
import org.cfeclipse.cfml.editors.actions.EditFunctionAction;
import org.cfeclipse.cfml.editors.actions.EditTagAction;
import org.cfeclipse.cfml.editors.actions.InsertTagAction;
import org.cfeclipse.cfml.editors.partitioner.PartitionHelper;

import org.cfeclipse.cfml.preferences.CFMLPreferenceConstants;
import org.cfeclipse.cfml.properties.CFMLPropertyManager;
import org.cfeclipse.cfml.util.CFPluginImages;
import org.cfeclipse.cfml.views.browser.BrowserView;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
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.action.Separator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextSelection;
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.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FillLayout;
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.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IPartListener2;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPartReference;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.help.IWorkbenchHelpSystem;
import org.eclipse.ui.ide.ResourceUtil;
import org.eclipse.ui.internal.Workbench;
import org.eclipse.ui.part.DrillDownAdapter;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.texteditor.IDocumentProvider;
import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;



public class DictionaryView extends ViewPart {
 

  private TreeViewer viewer;
  private DrillDownAdapter drillDownAdapter;
  private Action switchViewAction;
  private Action editTagAction;
  private Action viewinfo;
  private Action doubleClickAction;
  private Action viewhelp;
  private Action addCTagAction;
 
  protected Text searchField, preview;
  protected AttributesTable attrTable;
  protected Label previewLabel;
  protected LabelProvider labelProvider;
  private String viewtype = "standard";
  private DictionaryViewContentProvider contentprovider = new DictionaryViewContentProvider(viewtype, "cfmx701");
  public static final String ID_DICTIONARY = "org.cfeclipse.cfml.views.dictionary.DictionaryView";
  private DictionaryViewFilter viewfilter;

  /**
   * The constructor.
   */

 
  private IPartListener2 partListener2 = new IPartListener2() {
         
    public void partActivated(IWorkbenchPartReference ref) {
                if (ref.getPart(true) instanceof IEditorPart) {
                    editorActivated(getViewSite().getPage().getActiveEditor());
                }  
                 
            }

            public void partBroughtToTop(IWorkbenchPartReference ref) {
              editorActivated(getViewSite().getPage().getActiveEditor());
                  
            }

            public void partClosed(IWorkbenchPartReference ref) {
              combo.select(0);
            }

            public void partDeactivated(IWorkbenchPartReference ref) {
              //combo.select(0);
            }

            public void partOpened(IWorkbenchPartReference ref) {
              editorActivated(getViewSite().getPage().getActiveEditor());
            }

            public void partHidden(IWorkbenchPartReference ref) {}

            public void partVisible(IWorkbenchPartReference ref) {
              editorActivated(getViewSite().getPage().getActiveEditor());
            }

            public void partInputChanged(IWorkbenchPartReference ref) {}

    };
  private Combo combo;
   
  public DictionaryView() {

  }
 
  //Dispose of the listener
  public void dispose() {
    getSite().getPage().removePartListener(partListener2);
    super.dispose();
  }
 
  private final class DoubleClickAction implements IDoubleClickListener {
    public void doubleClick(DoubleClickEvent event) {
      doubleClickAction.run();
    }
  }
  /**
   * This is a callback that will allow us to create the viewer and initialize
   * it.
   */
  public void createPartControl(Composite parent) {
    try {
      // Create a grid layout object for the view
    GridLayout layout = new GridLayout();
      layout.numColumns = 1;
      layout.verticalSpacing = 0;
      layout.marginWidth = 0;
      layout.marginHeight = 0;
      parent.setLayout(layout);
     
     

     
      // This is what makes the controls resizable
      SashForm sash = new SashForm(parent, SWT.VERTICAL);
      GridData sashData = new GridData(GridData.FILL_BOTH);
      sashData.horizontalSpan = 1;
      sash.setLayoutData(sashData);

      sash.setLayout(new FillLayout());

     
      // Create a layout with no margins for the containers below
      GridLayout containerLayout = new GridLayout();
      containerLayout.marginHeight = 0;
      containerLayout.marginWidth = 0;
      containerLayout.numColumns =1;

     
     
      GridLayout topLayout = new GridLayout();
      topLayout.marginHeight = 0;
      topLayout.marginWidth = 0;
      topLayout.numColumns =3;
     
      // Container for the top half of the view
      Composite topHalf = new Composite(sash, SWT.BORDER);
      topHalf.setLayout(topLayout);
      topHalf.setLayoutData(new GridData(GridData.FILL_BOTH));
     
   
     
      // Container for the bottom half of the view
      Composite bottomHalf = new Composite(sash, SWT.BORDER);
      bottomHalf.setLayout(containerLayout);
      bottomHalf.setLayoutData(new GridData(GridData.FILL_BOTH));
     
     
   
     
     
      GridData spanData = new GridData();
      spanData.grabExcessHorizontalSpace = true;
      spanData.horizontalAlignment = GridData.FILL;
      spanData.horizontalSpan = 3;
     
     
     
     
     
      //Combo showing the current dictionary and all the available dictionaries
      combo = new Combo(topHalf, SWT.READ_ONLY|SWT.BORDER);
      combo.setLayoutData(spanData);
       String [][] options = DictionaryManager.getConfiguredDictionaries();
      
       for (int i = 0; i < options.length; i++) {
          combo.add(options[i][1]);
      }
       combo.select(0);
      
      combo.addSelectionListener(new SelectionListener(){

        public void widgetDefaultSelected(SelectionEvent e) {
         
        }

        public void widgetSelected(SelectionEvent e) {
          if(combo.getText().length() > 0){
            viewer.setContentProvider(new DictionaryViewContentProvider(viewtype, combo.getText()));
            viewer.expandToLevel(2);
          }
        }
       
       
      });
      
     
     
      GridData noSpanData = new GridData();
      noSpanData.grabExcessHorizontalSpace = true;
      noSpanData.horizontalAlignment = GridData.FILL;
     
      // This will allow you to type the tag name and get info on it
      searchField = new Text(topHalf, SWT.SINGLE | SWT.BORDER);
     
      searchField.setLayoutData(noSpanData);
     
      searchField.addKeyListener(new KeyListener(){

        public void keyPressed(KeyEvent e) {
          // TODO Auto-generated method stub
          if(e.character == SWT.CR){
            String searchpattern = searchField.getText();
           
            if(searchpattern.trim().length() > 0){
              viewfilter.setMatch(searchpattern);
              viewer.addFilter(viewfilter);
              viewer.expandToLevel(5);
            }
          }
        }

        public void keyReleased(KeyEvent e) {
          return;
         
        }
       
      });
     
     
      //add search and clear buttons
      Button btnSearch = new Button(topHalf, SWT.NONE);
      btnSearch.setText("Search");
      btnSearch.addMouseListener(new MouseListener(){

        public void mouseDoubleClick(MouseEvent e) {
          String searchpattern = searchField.getText();
         
          if(searchpattern.trim().length() > 0){
            viewfilter.setMatch(searchpattern);
            viewer.addFilter(viewfilter);
            viewer.expandToLevel(5);
          }
        }

        public void mouseDown(MouseEvent e) {
          System.out.println("button pressed");
          String searchpattern = searchField.getText();
         
          if(searchpattern.trim().length() > 0){
            viewfilter.setMatch(searchpattern);
            viewer.addFilter(viewfilter);
            viewer.refresh();
            viewer.expandToLevel(5);
          }
         
        }

        public void mouseUp(MouseEvent e) {}
      });
      btnSearch.addKeyListener(new KeyListener(){

        public void keyPressed(KeyEvent e) {
          String searchpattern = searchField.getText();
          if(e.character == ' ' && searchpattern.trim().length() > 0){
              viewfilter.setMatch(searchpattern);
              viewer.addFilter(viewfilter);
              viewer.expandToLevel(5);
          }
         
        }

        public void keyReleased(KeyEvent e) {
          return;
         
        }});
     
     
      Button btnClear = new Button(topHalf, SWT.NONE);
      btnClear.setText("Clear");
      btnClear.addMouseListener(new MouseListener(){

        public void mouseDoubleClick(MouseEvent e) {
          // TODO Auto-generated method stub
          searchField.setText("");
          viewer.removeFilter(viewfilter);
          viewer.refresh();
          viewer.expandToLevel(1);
        }

        public void mouseDown(MouseEvent e) {
          // TODO Auto-generated method stub
          searchField.setText("");
          viewer.removeFilter(viewfilter);
          viewer.refresh();
          viewer.expandToLevel(1);
        }

        public void mouseUp(MouseEvent e) {
          return;
         
        }
       
      });
      btnClear.addKeyListener(new KeyListener(){

        public void keyPressed(KeyEvent e) {
          searchField.setText("");
          viewer.removeFilter(viewfilter);
          viewer.refresh();
          viewer.expandToLevel(1);
         
        }

        public void keyReleased(KeyEvent e) {
          return;
        }
       
      });
     

      // The dictionary tree viewer
      viewer = new TreeViewer(topHalf, SWT.RESIZE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
      drillDownAdapter = new DrillDownAdapter(viewer);
     
      viewer.setContentProvider(contentprovider);
      viewer.setLabelProvider(new ViewLabelProvider());
      viewer.setSorter(new NameSorter());
      GridData viewerGD = new GridData(GridData.FILL_BOTH);
      viewerGD.horizontalSpan = 3;
      viewer.getControl().setLayoutData(viewerGD);
      viewer.setInput(getViewSite());
     

      viewer.expandToLevel(2);
      attrTable = new AttributesTable(bottomHalf);
     
     
     
     
      preview = new Text(bottomHalf, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FLAT);
      // layout the text field above the treeviewer
      GridData previewGD = new GridData(GridData.FILL, GridData.FILL, true, true);
      previewGD.grabExcessHorizontalSpace = true;
      previewGD.heightHint = 20;
      previewGD.horizontalAlignment = GridData.FILL;
      previewGD.verticalAlignment = GridData.FILL;
      previewGD.grabExcessVerticalSpace = true;
      preview.setLayoutData(previewGD);
     
     
      getSite().getPage().addPartListener(partListener2);
     
      makeActions();
      hookContextMenu();
      hookDoubleClickAction();
      hookListeners();
      contributeToActionBars();
      hookFilters();
    } catch (Exception e) {
      e.printStackTrace();
    }
   
  }
  /**
   * This function returns a default dictionary or the one from the file passed in
   * @param file
   * @return
   */

   private void editorActivated(IEditorPart editor) {
          //Check whether this view is active or not... dunno why
        if (!getViewSite().getPage().isPartVisible(this))
            return;
         
          if(editor !=null){
           
            IEditorInput input = editor.getEditorInput();
           
     
            IFile file = ResourceUtil.getFile(input);
            if (file != null){
              CFMLPropertyManager propman = new CFMLPropertyManager();
              String currentDictionary = propman.getCurrentDictionary(file);
              combo.setText(currentDictionary);
              viewer.setContentProvider(new DictionaryViewContentProvider(viewtype, combo.getText()));
          viewer.expandToLevel(2);
            }
          }
      }
  
  
  
   private DictionaryViewContentProvider getContentProviderByFile(IFile file){
     CFMLPropertyManager propMan = new CFMLPropertyManager();
     String currentDictionary = propMan.getCurrentDictionary(file);
  //SyntaxDictionary dictionary = DictionaryManager.getDictionaries()getDictionary(key)(currentDictionary);
 
   
      Map dictionaries = DictionaryManager.getDictionaries();
     //Object object = DictionaryManager.getDictionaries().get("CF_DICTIONARY");
    // CFSyntaxDictionary cfmlDict = (CFSyntaxDictionary)object;
    // String p_cfml_dictionary = CFMLPreferenceConstants.P_CFML_DICTIONARY;
     System.out.println(dictionaries);
     return null;
   }
  
  private void hookFilters(){
    this.viewfilter = new DictionaryViewFilter();
  }
 
  private void hookContextMenu() {
    MenuManager menuMgr = new MenuManager("#PopupMenu");
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {
      public void menuAboutToShow(IMenuManager manager) {
        DictionaryView.this.fillContextMenu(manager);
      }
    });
    Menu menu = menuMgr.createContextMenu(viewer.getControl());
    viewer.getControl().setMenu(menu);
    getSite().registerContextMenu(menuMgr, viewer);
  }

  private void contributeToActionBars() {
    IActionBars bars = getViewSite().getActionBars();
    fillLocalPullDown(bars.getMenuManager());
    fillLocalToolBar(bars.getToolBarManager());
  }

  private void fillLocalPullDown(IMenuManager manager) {
  //  manager.add(switchViewAction);
  //  manager.add(new Separator());
    //manager.add(action2);
  }

  private void fillContextMenu(IMenuManager manager) {
    //Somehow we have to know what this item is
   
    ISelection selection = viewer.getSelection();
    Object obj = ((IStructuredSelection) selection).getFirstElement();
   
    System.out.println(obj.getClass());
    if(obj instanceof TagItem){
      Tag thistag = ((TagItem)obj).getTag();
     
      //if(thistag.isCustomTag()){
        manager.add(editTagAction);
      //}
    }
    else if(obj instanceof TreeParent && ((TreeParent)obj).getName().equals("Tags")){
      manager.add(addCTagAction);
    }
   
    // manager.add(viewinfo);
    manager.add(viewhelp);
   
    manager.add(new Separator());
    drillDownAdapter.addNavigationActions(manager);
    // Other plug-ins can contribute there actions here
    manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
  }

  private void fillLocalToolBar(IToolBarManager manager) {
    //manager.add(switchViewAction);
   
    manager.add(new Separator());
    drillDownAdapter.addNavigationActions(manager);
  }

  /**
   * Create the actions
   */
  private void makeActions() {
    /**
     * Get external help action
     */
   
    viewhelp = new Action() {
      public void run() {
        //TODO: Replace this with the getHelpAction
       
       
       
       
        ISelection selection = viewer.getSelection();
        Object obj = ((IStructuredSelection) selection)
            .getFirstElement();
        String keyword = "";
        // Get thecurrent page
        //IViewReference ref[] = page.getViewReferences();
        //System.out.println(page.getLabel());
        /* Now we get the tag that we clicked on */
        if (obj instanceof TagItem) {
          TagItem tg = (TagItem) obj;
          keyword = tg.getName();
         
        } else if (obj instanceof FunctionItem) {
          FunctionItem fi = (FunctionItem) obj;
          keyword = fi.getName();
        } else if (obj instanceof ScopeItem) {
          ScopeItem si = (ScopeItem) obj;
          keyword = si.getName();
        } else {

          keyword = "";

        }
        String urldest = "http://www.cfeclipse.org/cfdocs/?query="; //TODO: Change this help url out.
       
       
        String theFullURL = urldest + keyword;
       
        IExtensionRegistry extReg = Platform.getExtensionRegistry();
        if(extReg.getExtensions("com.adobe.coldfusion_help_7").length > 0){
          IWorkbenchHelpSystem helpsys = Workbench.getInstance().getHelpSystem();
          helpsys.search(keyword);
        }
        else{
            IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
            try {
               BrowserView browser = (BrowserView)page.showView(BrowserView.ID_BROWSER);
               browser.setUrl(theFullURL, BrowserView.HELP_TAB);
               browser.setFocus(BrowserView.HELP_TAB);
            }
            catch(Exception e) {
                e.printStackTrace();
            }
        }
       
      }
    };
    viewhelp.setText("View Online Help");
    viewhelp.setToolTipText("View online help for this tag or function");
    //viewinfo.setImageDescriptor(CFPluginImages.get(CFPluginImages.ICON_ALERT));
   
   

    /**
     * View the info on an item (depricated?)
     */
    viewinfo = new Action() {
      public void run() {
        ISelection selection = viewer.getSelection();
        Object obj = ((IStructuredSelection) selection)
            .getFirstElement();
        String desc = "none";
        if (obj instanceof TagItem) {
          TagItem tg = (TagItem) obj;
          desc = tg.getDictionary().getTag(tg.getName()).getHelp();
         
        } else if (obj instanceof FunctionItem) {
          FunctionItem fi = (FunctionItem) obj;
          desc = fi.getDictionary().getFunctionHelp(fi.getName());

        }
        showMessage(desc);
      }
    };
    viewinfo.setText("View Info");
    viewinfo.setToolTipText("View this items information");
    viewinfo.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
        .getImageDescriptor(ISharedImages.IMG_OBJ_FOLDER));

    /**
     * Change the layout of how the tags are displayed
     */
    switchViewAction = new Action() {
      public void run() {
        if(viewtype.equals("standard")){
          viewtype = "category";
          switchViewAction.setImageDescriptor(CFPluginImages.getImageRegistry().getDescriptor(CFPluginImages.DIC_UNCATEGORISE));
          contentprovider.changeSorting(viewtype);
          viewer.setContentProvider(contentprovider);
          viewer.expandToLevel(2);
         
        }else{
          viewtype = "standard";
          switchViewAction.setImageDescriptor(CFPluginImages.getImageRegistry().getDescriptor(CFPluginImages.DIC_CATEGORISE));
          contentprovider.changeSorting(viewtype);
          viewer.setContentProvider(contentprovider);
          viewer.expandToLevel(2);
         
        }
       
       
      }
    };
    //switchViewAction.setText("Switch View");
    switchViewAction
        .setToolTipText("Changes the order from categorised to a list of items");
 
    switchViewAction.setImageDescriptor(CFPluginImages.getImageRegistry().getDescriptor(CFPluginImages.DIC_CATEGORISE));
   

    editTagAction = new Action() {
      public void run() {
     
        ISelection selection = viewer.getSelection();
        Object obj = ((IStructuredSelection) selection).getFirstElement();
        editTag(obj);
      }
    };
   
    editTagAction.setText("Edit this custom tag");
    editTagAction.setToolTipText("Allows you to edit this custom tag with the visual tag editor");
    editTagAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
        .getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
   
   
    addCTagAction = new Action() {
      public void run() {
        editTag(null);
      }
    };
   
    addCTagAction.setText("Add a custom tag");
    addCTagAction.setToolTipText("Allows you to define a new custom tag");
    addCTagAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
        .getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));

    doubleClickAction = new Action() {
      public void run() {
        ISelection selection = viewer.getSelection();
        Object obj = ((IStructuredSelection) selection).getFirstElement();
       
        if(viewer.getExpandedState(obj)){
         
          viewer.setExpandedState(obj, false);
        }
        else{
          viewer.expandToLevel(obj,1);
        }
       
        viewTag(obj);
      }
    };
  }

  protected void hookListeners() {
    // add a selection listener so we can look at the selected file and
    // get the help information out
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
      public void selectionChanged(SelectionChangedEvent event) {
        //String name;
        //String desc;

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

        // if the selection is empty clear the label
        if (event.getSelection().isEmpty()) {
          //text.setText("");
          preview.setText("");
          return;
        }
        else{
          attrTable.setAttributes(obj);
         
        }

        if (obj instanceof TagItem) {
          TagItem tg = (TagItem) obj;
          //text.setText(tg.getName());
          preview.setText(tg.getHelp());
          //attrTable.setAttributes(obj);
        } else if (obj instanceof FunctionItem) {
          FunctionItem func = (FunctionItem) obj;
          ///text.setText(func.getName());
          preview.setText(func.getHelp());
        } else if (obj instanceof ScopeItem) {
          ScopeItem scopei = (ScopeItem) obj;
          //text.setText(scopei.getName());
          preview.setText(scopei.getHelp());
        } else {
          //text.setText("");
          preview.setText("");
        }

      }
    });
   
    attrTable.addSelectionListener(new SelectionListener(){

      public void widgetDefaultSelected(SelectionEvent e) {
        // TODO Auto-generated method stub
       
      }

      public void widgetSelected(SelectionEvent e) {
        if(e.item != null) {         
          if (e.item.getData() instanceof Parameter) {
            Parameter param = (Parameter) e.item.getData();
            preview.setText(param.getHelp());
          }
        }       
      }
     
     
    });
   
   
  }

  private void hookDoubleClickAction() {
    viewer.addDoubleClickListener(new DoubleClickAction());
  }

  private void showMessage(String message) {
    MessageDialog.openInformation(viewer.getControl().getShell(),
        "Dictionary View", message);
  }

  /**
   * Opens the dialog for a tag or function to be inserted
   * @param obj This can be either a TagItem or a FunctionItem
   */

  protected void viewTag(Object obj) {

    //This will actually write out the tag to the page.
    //Thinking about this, instead of a Tag Item, maybe we should just use a Tag?
   
    if (obj instanceof TagItem) {
        TagItem tg = (TagItem)obj;
        InsertTagAction eta = new InsertTagAction(tg.getTag(), this.getViewSite().getShell());
          eta.run();
    }
    else if(obj instanceof FunctionItem){
        FunctionItem fn = (FunctionItem)obj;
        EditFunctionAction efa = new EditFunctionAction(fn.getFunction(), this.getViewSite().getShell());
          efa.run();
         
    }
  }
  /**
   * Edits a custom tag, and writes the XML to the user.xml (which one.. we dont know!
   * @param obj
   */
  protected void editTag(Object obj){
   
    if(obj instanceof TagItem){
      Tag tg = ((TagItem)obj).getTag();
      EditCustomTagAction ecta = new EditCustomTagAction(tg, this.getViewSite().getShell());
        ecta.run();
    }
    else if (obj == null){
      EditCustomTagAction ecta = new EditCustomTagAction(this.getViewSite().getShell());
      ecta.run();
    }
   
  }

  /**
   * Passing the focus request to the viewer's control.
   */
  public void setFocus() {
    viewer.getControl().setFocus();
  }
}
TOP

Related Classes of org.cfeclipse.cfml.views.dictionary.DictionaryView

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.