Package org.sylfra.idea.plugins.xstructure.view.provider

Source Code of org.sylfra.idea.plugins.xstructure.view.provider.XSViewBuilder

package org.sylfra.idea.plugins.xstructure.view.provider;

import com.intellij.ide.structureView.StructureView;
import com.intellij.ide.structureView.StructureViewModel;
import com.intellij.ide.structureView.TreeBasedStructureViewBuilder;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.xml.XmlFile;
import org.jetbrains.annotations.NotNull;
import org.sylfra.idea.plugins.xstructure.XStructurePlugin;
import org.sylfra.idea.plugins.xstructure.config.IXMappingSet;
import org.sylfra.idea.plugins.xstructure.view.XSViewComponent;
import org.sylfra.idea.plugins.xstructure.view.XSViewTreeModel;

/**
* Extension point to inject xStructure view
*
* @author <a href="mailto:sylfradev@yahoo.fr">Sylvain FRANCOIS</a>
* @version $Id: XSViewBuilder.java 55 2009-09-08 17:56:46Z syllant $
*/
public class XSViewBuilder extends TreeBasedStructureViewBuilder
{
  private final XmlFile file;
  private final TreeBasedStructureViewBuilder nestedViewBuilder;

  public XSViewBuilder(XmlFile file, TreeBasedStructureViewBuilder nestedViewBuilder)
  {
    this.file = file;
    this.nestedViewBuilder = nestedViewBuilder;
  }

  /**
   * {@inheritDoc}
   */
  @NotNull
  public StructureViewModel createStructureViewModel()
  {
    IXMappingSet xMappingSet = XStructurePlugin.getInstance().getXMappingSetRegistry().getSelectedXMappingSet(file);
    if ((xMappingSet == null) && (nestedViewBuilder != null))
    {
      return nestedViewBuilder.createStructureViewModel();
    }
   
    return new XSViewTreeModel(file, xMappingSet);
  }

  /**
   * {@inheritDoc}
   */
  public boolean isRootNodeShown()
  {
    return true;
  }

  /**
   * {@inheritDoc}
   */
  @NotNull
  public StructureView createStructureView(final FileEditor fileEditor, final Project project)
  {
    return new XSViewComponent(fileEditor, createStructureViewModel(), project);
  }
}
TOP

Related Classes of org.sylfra.idea.plugins.xstructure.view.provider.XSViewBuilder

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.