Package org.objectstyle.wolips.eomodeler.utils

Source Code of org.objectstyle.wolips.eomodeler.utils.EclipseFileUtils

package org.objectstyle.wolips.eomodeler.utils;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;

import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
import org.eclipse.ui.IURIEditorInput;
import org.eclipse.ui.ide.FileStoreEditorInput;
import org.eclipse.ui.part.FileEditorInput;
import org.objectstyle.wolips.baseforplugins.util.URLUtils;
import org.objectstyle.wolips.eomodeler.core.model.EOModel;
import org.objectstyle.wolips.eomodeler.core.model.EOModelException;

public class EclipseFileUtils {
  public static IURIEditorInput getEditorInput(EOModel model) throws MalformedURLException, EOModelException, CoreException, URISyntaxException {
    IURIEditorInput editorInput;
    IFile indexFile = EclipseFileUtils.getEclipseIndexFile(model);
    if (indexFile == null) {
      String externalForm = model.getIndexURL().toExternalForm().replace(' ', '+');
      IFileStore indexFileStore = EFS.getStore(new URI(externalForm));
      editorInput = new FileStoreEditorInput(indexFileStore);
    }
    else {
      editorInput = new FileEditorInput(indexFile);
    }
    return editorInput;
  }
 
  public static File getExternalIndexFile(EOModel model) throws MalformedURLException, EOModelException {
    if (model.getIndexURL() == null) {
      throw new EOModelException("Failed to load model.");
    }
    return URLUtils.cheatAndTurnIntoFile(model.getIndexURL());
  }
 
  public static IFile getEclipseFile(URL url) {
    // fails when using: ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(url.toString()));
    return EclipseFileUtils.getEclipseFile(URLUtils.cheatAndTurnIntoFile(url));
  }
 
  public static IFile getEclipseFile(URI uri) {
    // fails when using: return ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(uri.toString()));
    return EclipseFileUtils.getEclipseFile(URLUtils.cheatAndTurnIntoFile(uri));
  }

  public static IFile getEclipseFile(File externalFile) {
    return ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(externalFile.getAbsolutePath()));
    //return EclipseFileUtils.getEclipseFile(externalFile.toURI());
  }

  public static IFile getEclipseIndexFile(EOModel model) throws MalformedURLException, EOModelException {
    //return ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(model.getIndexURL().toString()));
    return EclipseFileUtils.getEclipseFile(EclipseFileUtils.getExternalIndexFile(model));
  }
}
TOP

Related Classes of org.objectstyle.wolips.eomodeler.utils.EclipseFileUtils

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.