package org.radrails.server.internal.ui.launching; import java.util.Collection; import java.util.Set; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.radrails.rails.internal.core.RailsPlugin; import org.radrails.rails.ui.RailsUIPlugin; import org.radrails.server.core.Server; import org.radrails.server.core.ServerManager; import org.radrails.server.core.launching.IRailsAppLaunchConfigurationConstants; public class RailsAppLaunchHelper { public static void setDefaults(ILaunchConfigurationWorkingCopy configuration) { // if a project is selected, choose that app by default, otherwise just pick the first IProject curSel = RailsUIPlugin.getInstance().getSelectedRailsProject(); String defaultProject = null; if(curSel != null) { defaultProject = curSel.getName(); } else { Set<IProject> projects = RailsPlugin.getRailsProjects(); if(projects.size() > 0) { defaultProject = projects.iterator().next().getName(); } } // select the first server for the default project if(defaultProject != null) { configuration.setAttribute(IRailsAppLaunchConfigurationConstants.PROJECT_NAME, defaultProject); IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(defaultProject); Collection servers = ServerManager.getInstance().getServersForProject(project); Server s = null; if (!servers.isEmpty()) s = (Server) servers.iterator().next(); // TODO Ask user which server they want? if (s != null) { configuration.setAttribute(IRailsAppLaunchConfigurationConstants.SERVER_NAME, s.getName()); } } configuration.setAttribute(IRailsAppLaunchConfigurationConstants.LAUNCH_BROWSER, true); configuration.setAttribute(IRailsAppLaunchConfigurationConstants.USE_INTERNAL_BROWSER, true); } }