package com.yoursway.ide.application;
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import com.yoursway.experiments.birdseye.component.BirdsEyeViewComponentFactoryFactory;
import com.yoursway.ide.application.controllers.ApplicationController;
import com.yoursway.ide.application.controllers.EditorRegistry;
import com.yoursway.ide.application.controllers.ViewRegistry;
import com.yoursway.ide.application.model.application.ApplicationModel;
import com.yoursway.ide.application.view.impl.ApplicationPresentationFactoryImpl;
import com.yoursway.ide.editors.text.TextEditorComponentType;
import com.yoursway.ide.platforms.api.PlatformSupport;
import com.yoursway.ide.platforms.api.PlatformUtilities;
import com.yoursway.ide.rails.projects.RailsProjectType;
import com.yoursway.ide.views.project.ProjectTreeComponentFactoryFactory;
import com.yoursway.ide.webeditor.WebEditorComponentType;
public class YourSwayIdeApplication implements IApplication {
public Object start(IApplicationContext context) throws Exception {
PlatformSupport platformSupport = PlatformUtilities.createPlatformImpl();
ApplicationModel model = new ApplicationModel(platformSupport.defaultProjectsLocation());
model.registerProjectType(new RailsProjectType());
EditorRegistry editorRegistry = new EditorRegistry();
editorRegistry.add(new WebEditorComponentType());
editorRegistry.add(new TextEditorComponentType());
ViewRegistry viewRegistry = new ViewRegistry();
viewRegistry.add(new ProjectTreeComponentFactoryFactory());
viewRegistry.add(new BirdsEyeViewComponentFactoryFactory());
ApplicationController controller = new ApplicationController(platformSupport, model,
new ApplicationPresentationFactoryImpl(platformSupport, new ApplicationMenuFactoryImpl()),
editorRegistry, viewRegistry);
controller.run();
return IApplication.EXIT_OK;
}
public void stop() {
}
}