Search in sources :

Example 11 with IModule

use of org.eclipse.wst.server.core.IModule in project sling by apache.

the class SlingContentModuleAdapterTest method projectMembersContainDotDirFoldersLast.

@Test
public void projectMembersContainDotDirFoldersLast() throws Exception {
    // create faceted project
    IProject contentProject = projectRule.getProject();
    ProjectAdapter project = new ProjectAdapter(contentProject);
    project.addNatures(JavaCore.NATURE_ID, "org.eclipse.wst.common.project.facet.core.nature");
    // install bundle facet
    project.installFacet("sling.content", "1.0");
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/testproject/_jcr_content/image/file"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/testproject/_jcr_content/image/file.dir/.content.xml"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/testproject/_jcr_content/image/file.dir/_jcr_content/_dam_thumbnails/_dam_thumbnail_319.png"), new ByteArrayInputStream(new byte[0]));
    IModule module = ServerUtil.getModule(contentProject);
    SlingContentModuleFactory moduleFactory = new SlingContentModuleFactory();
    ModuleDelegate moduleDelegate = moduleFactory.getModuleDelegate(module);
    IModuleResource[] members = moduleDelegate.members();
    int fileIdx = -1;
    int fileDirIdx = -1;
    for (int i = 0; i < members.length; i++) {
        String memberName = members[i].getModuleRelativePath().lastSegment();
        if (memberName == null) {
            continue;
        } else if (memberName.equals("file.dir")) {
            fileDirIdx = i;
        } else if (memberName.equals("file")) {
            fileIdx = i;
        }
    }
    Assert.assertTrue("file not sorted before file.dir ; file index = " + fileIdx + ", file.dir index = " + fileDirIdx, fileIdx < fileDirIdx);
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModule(org.eclipse.wst.server.core.IModule) ByteArrayInputStream(java.io.ByteArrayInputStream) ProjectAdapter(org.apache.sling.ide.test.impl.helpers.ProjectAdapter) ModuleDelegate(org.eclipse.wst.server.core.model.ModuleDelegate) IProject(org.eclipse.core.resources.IProject) SlingContentModuleFactory(org.apache.sling.ide.eclipse.core.internal.SlingContentModuleFactory) Test(org.junit.Test)

Example 12 with IModule

use of org.eclipse.wst.server.core.IModule in project sling by apache.

the class AbstractOpenInBrowserHandler method execute.

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    ISelection sel = HandlerUtil.getCurrentSelection(event);
    JcrNode node = SelectionUtils.getFirst(sel, JcrNode.class);
    if (node == null) {
        return null;
    }
    Shell shell = HandlerUtil.getActiveShell(event);
    IModule module = ServerUtil.getModule(node.getProject());
    if (module == null) {
        MessageDialog.openWarning(shell, "Cannot open browser", "Not configured for any server");
        return null;
    }
    IServer[] servers = ServerUtil.getServersByModule(module, new NullProgressMonitor());
    if (servers == null || servers.length == 0) {
        MessageDialog.openWarning(shell, "Cannot open browser", "Not configured for any server");
        return null;
    }
    IServer server = servers[0];
    URL url;
    try {
        url = getUrlToOpen(node, server);
    } catch (MalformedURLException e) {
        StatusManager.getManager().handle(new Status(Status.WARNING, Activator.PLUGIN_ID, "Url is invalid", e), StatusManager.SHOW);
        return null;
    }
    try {
        IWorkbenchBrowserSupport browserSupport = HandlerUtil.getActiveWorkbenchWindow(event).getWorkbench().getBrowserSupport();
        browserSupport.createBrowser("org.apache.sling.ide.openOnServer").openURL(url);
    } catch (PartInitException e) {
        StatusManager.getManager().handle(new Status(Status.WARNING, Activator.PLUGIN_ID, "Failed creating browser instance", e), StatusManager.SHOW | StatusManager.LOG);
    }
    return null;
}
Also used : Status(org.eclipse.core.runtime.Status) NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) Shell(org.eclipse.swt.widgets.Shell) IModule(org.eclipse.wst.server.core.IModule) IServer(org.eclipse.wst.server.core.IServer) MalformedURLException(java.net.MalformedURLException) JcrNode(org.apache.sling.ide.eclipse.ui.nav.model.JcrNode) ISelection(org.eclipse.jface.viewers.ISelection) IWorkbenchBrowserSupport(org.eclipse.ui.browser.IWorkbenchBrowserSupport) PartInitException(org.eclipse.ui.PartInitException) URL(java.net.URL)

Aggregations

IModule (org.eclipse.wst.server.core.IModule)12 IProject (org.eclipse.core.resources.IProject)6 IServer (org.eclipse.wst.server.core.IServer)6 ArrayList (java.util.ArrayList)3 ByteArrayInputStream (java.io.ByteArrayInputStream)2 SlingContentModuleFactory (org.apache.sling.ide.eclipse.core.internal.SlingContentModuleFactory)2 JcrNode (org.apache.sling.ide.eclipse.ui.nav.model.JcrNode)2 ProjectAdapter (org.apache.sling.ide.test.impl.helpers.ProjectAdapter)2 IResource (org.eclipse.core.resources.IResource)2 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)2 ISelection (org.eclipse.jface.viewers.ISelection)2 WizardDialog (org.eclipse.jface.wizard.WizardDialog)2 IServerWorkingCopy (org.eclipse.wst.server.core.IServerWorkingCopy)2 IModuleResource (org.eclipse.wst.server.core.model.IModuleResource)2 ModuleDelegate (org.eclipse.wst.server.core.model.ModuleDelegate)2 Test (org.junit.Test)2 MalformedURLException (java.net.MalformedURLException)1 URL (java.net.URL)1 HashSet (java.util.HashSet)1 LinkedList (java.util.LinkedList)1