diff options
7 files changed, 0 insertions, 1126 deletions
diff --git a/tools/eclipse/config_wizard/src/config_wizard/Activator.java b/tools/eclipse/config_wizard/src/config_wizard/Activator.java deleted file mode 100644 index 1f62c4f62..000000000 --- a/tools/eclipse/config_wizard/src/config_wizard/Activator.java +++ /dev/null @@ -1,88 +0,0 @@ -/*
 -    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
 -                 2011,2012 Giovanni Di Sirio.
 -
 -    This file is part of ChibiOS/RT.
 -
 -    ChibiOS/RT is free software; you can redistribute it and/or modify
 -    it under the terms of the GNU General Public License as published by
 -    the Free Software Foundation; either version 3 of the License, or
 -    (at your option) any later version.
 -
 -    ChibiOS/RT is distributed in the hope that it will be useful,
 -    but WITHOUT ANY WARRANTY; without even the implied warranty of
 -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -    GNU General Public License for more details.
 -
 -    You should have received a copy of the GNU General Public License
 -    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 - */
 -
 -package config_wizard;
 -
 -import org.eclipse.jface.resource.ImageDescriptor;
 -import org.eclipse.ui.plugin.AbstractUIPlugin;
 -import org.osgi.framework.BundleContext;
 -
 -/**
 - * The activator class controls the plug-in life cycle
 - */
 -public class Activator extends AbstractUIPlugin {
 -
 -  // The plug-in ID
 -  public static final String PLUGIN_ID = "org.chibios.tools.eclipse.config"; //$NON-NLS-1$
 -
 -  // The shared instance
 -  private static Activator plugin;
 -
 -  /**
 -   * The constructor
 -   */
 -  public Activator() {
 -  }
 -
 -  /*
 -   * (non-Javadoc)
 -   * 
 -   * @see
 -   * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
 -   * )
 -   */
 -  public void start(BundleContext context) throws Exception {
 -    super.start(context);
 -    plugin = this;
 -  }
 -
 -  /*
 -   * (non-Javadoc)
 -   * 
 -   * @see
 -   * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
 -   * )
 -   */
 -  public void stop(BundleContext context) throws Exception {
 -    plugin = null;
 -    super.stop(context);
 -  }
 -
 -  /**
 -   * Returns the shared instance
 -   * 
 -   * @return the shared instance
 -   */
 -  public static Activator getDefault() {
 -    return plugin;
 -  }
 -
 -  /**
 -   * Returns an image descriptor for the image file at the given plug-in
 -   * relative path
 -   * 
 -   * @param path
 -   *          the path
 -   * @return the image descriptor
 -   */
 -  public static ImageDescriptor getImageDescriptor(String path) {
 -    return imageDescriptorFromPlugin(PLUGIN_ID, path);
 -  }
 -}
 diff --git a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/handlers/CheckDescription.java b/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/handlers/CheckDescription.java deleted file mode 100644 index f9e8cd6bf..000000000 --- a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/handlers/CheckDescription.java +++ /dev/null @@ -1,54 +0,0 @@ -/* -    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, -                 2011,2012 Giovanni Di Sirio. - -    This file is part of ChibiOS/RT. - -    ChibiOS/RT is free software; you can redistribute it and/or modify -    it under the terms of the GNU General Public License as published by -    the Free Software Foundation; either version 3 of the License, or -    (at your option) any later version. - -    ChibiOS/RT is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -    GNU General Public License for more details. - -    You should have received a copy of the GNU General Public License -    along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -package org.chibios.tools.eclipse.config.handlers; - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.handlers.HandlerUtil; -import org.eclipse.jface.dialogs.MessageDialog; - -/** - * Our sample handler extends AbstractHandler, an IHandler base class. - * @see org.eclipse.core.commands.IHandler - * @see org.eclipse.core.commands.AbstractHandler - */ -public class CheckDescription extends AbstractHandler { -	/** -	 * The constructor. -	 */ -	public CheckDescription() { -	} - -	/** -	 * the command has been executed, so extract extract the needed information -	 * from the application context. -	 */ -	public Object execute(ExecutionEvent event) throws ExecutionException { -		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event); -		MessageDialog.openInformation( -				window.getShell(), -				"ChibiOS-RT_Configuration_Support", -				"Hello, Eclipse world"); -		return null; -	} -} diff --git a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/handlers/GenerateFiles.java b/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/handlers/GenerateFiles.java deleted file mode 100644 index af100f9fb..000000000 --- a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/handlers/GenerateFiles.java +++ /dev/null @@ -1,145 +0,0 @@ -/* -    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, -                 2011,2012 Giovanni Di Sirio. - -    This file is part of ChibiOS/RT. - -    ChibiOS/RT is free software; you can redistribute it and/or modify -    it under the terms of the GNU General Public License as published by -    the Free Software Foundation; either version 3 of the License, or -    (at your option) any later version. - -    ChibiOS/RT is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -    GNU General Public License for more details. - -    You should have received a copy of the GNU General Public License -    along with this program.  If not, see <http://www.gnu.org/licenses/>. - */ - -package org.chibios.tools.eclipse.config.handlers; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.Properties; - -import org.chibios.tools.eclipse.config.utils.TemplateEngine; -import org.chibios.tools.eclipse.config.utils.TemplateException; -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.handlers.HandlerUtil; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.osgi.framework.Bundle; - -import config_wizard.Activator; - -/** - * Our sample handler extends AbstractHandler, an IHandler base class. - *  - * @see org.eclipse.core.commands.IHandler - * @see org.eclipse.core.commands.AbstractHandler - */ -public class GenerateFiles extends AbstractHandler { - -  /** -   * The constructor. -   */ -  public GenerateFiles() { -  } - -  /** -   * the command has been executed, so extract extract the needed information -   * from the application context. -   */ -  public Object execute(ExecutionEvent event) throws ExecutionException { - -    IWorkbenchWindow window = HandlerUtil -        .getActiveWorkbenchWindowChecked(event); -    ISelection selection = window.getSelectionService().getSelection(); -    if (selection instanceof IStructuredSelection) { - -      /* Retrieves the full path of the configuration file. */ -      IPath cfgfilepath = ((IFile) ((IStructuredSelection) selection) -          .getFirstElement()).getLocation(); -       -      /* Determines the base path as the parent of the configuration file.*/ -      IPath basepath = cfgfilepath.removeLastSegments(1); - -      /* Reads the configuration file into a Properties object. */ -      Properties cfgfile = new Properties(); -      try { -        cfgfile.load(new FileReader(cfgfilepath.toFile())); -      } catch (IOException e) { -        MessageDialog.openInformation(window.getShell(), "I/O Error", -            e.getMessage()); -        return null; -      } - -      /* Retrieves source property. */ -      String source = cfgfile.getProperty("source"); -      if (source == null) { -        MessageDialog.openInformation(window.getShell(), "Properties Error", -            "Property \"source\" not found in configuration file."); -        return null; -      } - -      /* Retrieves xmlfile property. */ -      String xmlfile = cfgfile.getProperty("xmlfile"); -      if (xmlfile == null) { -        MessageDialog.openInformation(window.getShell(), "Properties Error", -            "Property \"xmlfile\" not found in configuration file."); -        return null; -      } - -      /* Retrieves output property. */ -      String output = cfgfile.getProperty("output"); -      if (output == null) { -        MessageDialog.openInformation(window.getShell(), "Properties Error", -            "Property \"output\" not found in configuration file."); -        return null; -      } - -      /* Calculating derived paths. */ -      IPath sourcepath = new Path(source); -      IPath libpath = new Path("resources/gencfg/lib"); -      try { -        Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID); -        sourcepath = new Path(FileLocator.toFileURL( -            FileLocator.find(bundle, sourcepath, null)).getFile()); -        libpath = new Path(FileLocator.toFileURL( -            FileLocator.find(bundle, libpath, null)).getFile()); -      } catch (IOException e) { -        MessageDialog.openInformation(window.getShell(), "Path Error", -            e.getMessage()); -        return null; -      } - -      /* Templates execution. */ -      try { -        TemplateEngine.process(basepath.addTrailingSeparator().append(xmlfile) -            .toFile(), libpath.toFile(), sourcepath.toFile(), -            basepath.toFile(), new File(output)); -      } catch (TemplateException e) { -        MessageDialog.openInformation(window.getShell(), "Processing Error", -            e.getMessage()); -        return null; -      } -    } -    return null; -  } -} diff --git a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/utils/TemplateEngine.java b/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/utils/TemplateEngine.java deleted file mode 100644 index 6c2771d9f..000000000 --- a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/utils/TemplateEngine.java +++ /dev/null @@ -1,213 +0,0 @@ -/*
 -    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
 -                 2011,2012 Giovanni Di Sirio.
 -
 -    This file is part of ChibiOS/RT.
 -
 -    ChibiOS/RT is free software; you can redistribute it and/or modify
 -    it under the terms of the GNU General Public License as published by
 -    the Free Software Foundation; either version 3 of the License, or
 -    (at your option) any later version.
 -
 -    ChibiOS/RT is distributed in the hope that it will be useful,
 -    but WITHOUT ANY WARRANTY; without even the implied warranty of
 -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -    GNU General Public License for more details.
 -
 -    You should have received a copy of the GNU General Public License
 -    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 - */
 -
 -package org.chibios.tools.eclipse.config.utils;
 -
 -import java.io.IOException;
 -import java.util.HashMap;
 -
 -import javax.xml.parsers.DocumentBuilder;
 -import javax.xml.parsers.DocumentBuilderFactory;
 -import javax.xml.parsers.ParserConfigurationException;
 -
 -import org.eclipse.ui.IWorkbench;
 -import org.eclipse.ui.IWorkbenchPage;
 -import org.eclipse.ui.IWorkbenchWindow;
 -import org.eclipse.ui.PartInitException;
 -import org.eclipse.ui.PlatformUI;
 -import org.eclipse.ui.console.ConsolePlugin;
 -import org.eclipse.ui.console.IConsole;
 -import org.eclipse.ui.console.IConsoleConstants;
 -import org.eclipse.ui.console.IConsoleManager;
 -import org.eclipse.ui.console.IConsoleView;
 -import org.eclipse.ui.console.MessageConsole;
 -import org.eclipse.ui.console.MessageConsoleStream;
 -import org.w3c.dom.Document;
 -import org.xml.sax.SAXException;
 -
 -import fmpp.Engine;
 -import fmpp.ProcessingException;
 -import fmpp.ProgressListener;
 -import fmpp.setting.SettingException;
 -import fmpp.setting.Settings;
 -import freemarker.ext.dom.NodeModel;
 -import freemarker.template.TemplateNodeModel;
 -
 -/**
 - * FMPP wrapper class.
 - */
 -public class TemplateEngine {
 -
 -  private static final String CONSOLE_NAME = "ChibiOS/RT Configuration Tool";
 -
 -  private static Settings settings;
 -  private static MessageConsoleStream out;
 -
 -  /**
 -   * Runs the templates engine.
 -   * 
 -   * @param xmldata
 -   *          absolute path to XML data file
 -   * @param libdir
 -   *          absolute path to libraries directory
 -   * @param sourcedir
 -   *          absolute path to templates directory
 -   * @param basedir
 -   *          absolute path to project directory
 -   * @param outputdir
 -   *          output directory relative to basedir
 -   * 
 -   * @throws SettingException
 -   * @throws ProcessingException
 -   */
 -  public static void process(java.io.File xmldata, java.io.File libdir,
 -                             java.io.File sourcedir, java.io.File basedir,
 -                             java.io.File outputdir) throws TemplateException {
 -
 -    /* Finds or creates a named console. */
 -    MessageConsole console = findConsole(CONSOLE_NAME);
 -    activateConsole(console);
 -    console.clearConsole();
 -    out = console.newMessageStream();
 -
 -    /*
 -     * Instantiates the FMPP Settings engine and associates a listener for
 -     * events to be logged.
 -     */
 -    try {
 -      settings = new Settings(basedir);
 -    } catch (SettingException e) {
 -      e.printStackTrace();
 -      return;
 -    }
 -    settings.addProgressListener(new ProgressListener() {
 -      public void notifyProgressEvent(Engine engine, int event,
 -                                      java.io.File src, int pMode,
 -                                      java.lang.Throwable error,
 -                                      java.lang.Object param) {
 -
 -        if (pMode == Engine.PMODE_IGNORE)
 -          return;
 -
 -        switch (event) {
 -        case EVENT_BEGIN_PROCESSING_SESSION:
 -          out.println("Starting session");
 -          break;
 -        case EVENT_END_PROCESSING_SESSION:
 -          out.println("Finished");
 -          break;
 -        case EVENT_BEGIN_FILE_PROCESSING:
 -          out.println("Processing " + src.getName());
 -          break;
 -        case EVENT_END_FILE_PROCESSING:
 -          break;
 -        case EVENT_IGNORING_DIR:
 -          out.println("Ignoring directory " + src.getName());
 -          break;
 -        case EVENT_SOURCE_NOT_MODIFIED:
 -          out.println("Skipping " + src.getName());
 -          break;
 -        case EVENT_WARNING:
 -          out.println("Warning:" + (String) param);
 -          break;
 -        }
 -      }
 -    });
 -
 -    /* Loading data model. */
 -    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
 -    dbf.setNamespaceAware(true);
 -    dbf.setValidating(false);
 -    DocumentBuilder db;
 -    try {
 -      db = dbf.newDocumentBuilder();
 -    } catch (ParserConfigurationException e) {
 -      throw new TemplateException(e.getMessage());
 -    }
 -    Document dom1;
 -    try {
 -      dom1 = db.parse(xmldata);
 -    } catch (SAXException e) {
 -      throw new TemplateException(e.getMessage());
 -    } catch (IOException e) {
 -      throw new TemplateException(e.getMessage());
 -    }
 -
 -    NodeModel.removeComments(dom1);
 -    NodeModel.mergeAdjacentText(dom1);
 -    TemplateNodeModel doc1 = NodeModel.wrap(dom1);
 -
 -    HashMap<String, TemplateNodeModel> xmls = new HashMap<String, TemplateNodeModel>();
 -    xmls.put("doc1", doc1);
 -
 -    /* Setting libraries path. */
 -    HashMap<String, String> libs = new HashMap<String, String>();
 -    libs.put("lib", libdir.toString());
 -
 -    /* Other settings. */
 -    try {
 -      settings.add("freemarkerLinks", libs);
 -      settings.add("data", xmls);
 -      settings.add("sourceRoot", sourcedir.toString());
 -      settings.add("outputRoot", outputdir.toString());
 -      settings.add("ignoreCvsFiles", true);
 -      settings.add("ignoreSvnFiles", true);
 -    } catch (SettingException e) {
 -      throw new TemplateException(e.getMessage());
 -    }
 -
 -    /* Processor execution. */
 -    try {
 -      settings.execute();
 -    } catch (SettingException e) {
 -      throw new TemplateException(e.getMessage());
 -    } catch (ProcessingException e) {
 -      throw new TemplateException(e.getMessage());
 -    }
 -  }
 -
 -  private static MessageConsole findConsole(String name) {
 -    ConsolePlugin plugin = ConsolePlugin.getDefault();
 -    IConsoleManager conMan = plugin.getConsoleManager();
 -    IConsole[] existing = conMan.getConsoles();
 -    for (int i = 0; i < existing.length; i++)
 -      if (name.equals(existing[i].getName()))
 -        return (MessageConsole) existing[i];
 -
 -    /* No console found, so create a new one. */
 -    MessageConsole myConsole = new MessageConsole(name, null);
 -    conMan.addConsoles(new IConsole[] { myConsole });
 -    return myConsole;
 -  }
 -
 -  private static void activateConsole(MessageConsole console) {
 -    IWorkbench wb = PlatformUI.getWorkbench();
 -    IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
 -    IWorkbenchPage page = win.getActivePage();
 -    IConsoleView view;
 -    try {
 -      view = (IConsoleView) page.showView(IConsoleConstants.ID_CONSOLE_VIEW);
 -    } catch (PartInitException e) {
 -      e.printStackTrace();
 -      return;
 -    }
 -    view.display(console);
 -  }
 -}
 diff --git a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/utils/TemplateException.java b/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/utils/TemplateException.java deleted file mode 100644 index 73746de1d..000000000 --- a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/utils/TemplateException.java +++ /dev/null @@ -1,30 +0,0 @@ -/*
 -    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
 -                 2011,2012 Giovanni Di Sirio.
 -
 -    This file is part of ChibiOS/RT.
 -
 -    ChibiOS/RT is free software; you can redistribute it and/or modify
 -    it under the terms of the GNU General Public License as published by
 -    the Free Software Foundation; either version 3 of the License, or
 -    (at your option) any later version.
 -
 -    ChibiOS/RT is distributed in the hope that it will be useful,
 -    but WITHOUT ANY WARRANTY; without even the implied warranty of
 -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -    GNU General Public License for more details.
 -
 -    You should have received a copy of the GNU General Public License
 -    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 - */
 -
 -package org.chibios.tools.eclipse.config.utils;
 -
 -public class TemplateException extends Exception {
 -
 -  private static final long serialVersionUID = -3317410595937500925L;
 -
 -  public TemplateException(String msg) {
 -    super(msg);
 -  }
 -}
 diff --git a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/wizards/ConfigurationNewWizard.java b/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/wizards/ConfigurationNewWizard.java deleted file mode 100644 index e6c309b43..000000000 --- a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/wizards/ConfigurationNewWizard.java +++ /dev/null @@ -1,225 +0,0 @@ -/* -    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, -                 2011,2012 Giovanni Di Sirio. - -    This file is part of ChibiOS/RT. - -    ChibiOS/RT is free software; you can redistribute it and/or modify -    it under the terms of the GNU General Public License as published by -    the Free Software Foundation; either version 3 of the License, or -    (at your option) any later version. - -    ChibiOS/RT is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -    GNU General Public License for more details. - -    You should have received a copy of the GNU General Public License -    along with this program.  If not, see <http://www.gnu.org/licenses/>. - */ - -package org.chibios.tools.eclipse.config.wizards; - -import java.lang.reflect.InvocationTargetException; -import java.io.*; - -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.wizard.Wizard; -import org.eclipse.ui.INewWizard; -import org.eclipse.ui.IWorkbench; -import org.eclipse.core.runtime.*; -import org.eclipse.jface.operation.*; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.core.resources.*; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.ui.*; -import org.eclipse.ui.ide.IDE; -import org.osgi.framework.Bundle; - -import config_wizard.Activator; - -/** - * This is a sample new wizard. Its role is to create a new file resource in the - * provided container. If the container resource (a folder or a project) is - * selected in the workspace when the wizard is opened, it will accept it as the - * target container. The wizard creates one file with the extension "chcfg". If - * a sample multi-page editor (also available as a template) is registered for - * the same extension, it will be able to open it. - */ - -public class ConfigurationNewWizard extends Wizard implements INewWizard { -  private ConfigurationNewWizardPage page; -  private ISelection selection; - -  private String containerName; -  private String projectFileName; -  private String dataFileName; -  private String templatesPath; -  private String outputDirName; -  private String defaultDataFile; - -  /** -   * Constructor for ConfigurationNewWizard. -   */ -  public ConfigurationNewWizard() { -    super(); -    setNeedsProgressMonitor(true); -  } - -  /** -   * Adding the page to the wizard. -   */ -  public void addPages() { -    page = new ConfigurationNewWizardPage(selection); -    addPage(page); -  } - -  /** -   * Checks if the wizard page allows to finish. -   */ -  public boolean canFinish() { - -    return page.canFinish(); -  } - -  /** -   * This method is called when 'Finish' button is pressed in the wizard. We -   * will create an operation and run it using wizard as execution context. -   */ -  public boolean performFinish() { - -    containerName = page.getContainerName(); -    projectFileName = page.getProjectFileName(); -    dataFileName = page.getDataFileName(); -    templatesPath = page.getTemplatesPath(); -    outputDirName = page.getOutputDirName(); -    defaultDataFile = page.getDefaultDataFile(); - -    IRunnableWithProgress op = new IRunnableWithProgress() { -      public void run(IProgressMonitor monitor) -          throws InvocationTargetException { -        try { -          doFinish(monitor); -        } catch (CoreException e) { -          throw new InvocationTargetException(e); -        } finally { -          monitor.done(); -        } -      } -    }; -    try { -      getContainer().run(true, false, op); -    } catch (InterruptedException e) { -      return false; -    } catch (InvocationTargetException e) { -      Throwable realException = e.getTargetException(); -      MessageDialog.openError(getShell(), "Error", realException.getMessage()); -      return false; -    } -    return true; -  } - -  /** -   * The worker method. It will find the container, create the file if missing -   * or just replace its contents, and open the editor on the newly created -   * file. -   */ -  private void doFinish(IProgressMonitor monitor) throws CoreException { - -    IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); -    IResource resource = root.findMember(new Path(containerName)); -    if (!resource.exists() || !(resource instanceof IContainer)) { -      throwCoreException("Container \"" + containerName + "\" does not exist."); -    } -    IContainer container = (IContainer)resource; -    monitor.beginTask("Creating " + projectFileName, 4); - -    /* Step #1, creates the project file.*/ -    final IFile projectFile = container.getFile(new Path(projectFileName)); -    try { -      InputStream stream = openProjectContentStream(templatesPath, -                                                    dataFileName, -                                                    outputDirName); -      if (projectFile.exists()) { -        projectFile.setContents(stream, true, true, monitor); -      } else { -        projectFile.create(stream, true, monitor); -      } -      stream.close(); -    } catch (IOException e) { -    } -    monitor.worked(1); -     -    /* Step #2, creates the XML data file.*/ -    final IFile dataFile = container.getFile(new Path(dataFileName)); -    Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID); -    IPath path = new Path(defaultDataFile); -    String s; -    try { -      s = FileLocator.toFileURL(FileLocator.find(bundle, path, null)).getFile(); -      InputStream stream = new FileInputStream(s); -      if (dataFile.exists()) { -        dataFile.setContents(stream, true, true, monitor); -      } else { -        dataFile.create(stream, true, monitor); -      } -      stream.close(); -    } catch (IOException e) { -    } -    monitor.worked(1); - -    /* Step #2, opens the XML data file.*/ -    monitor.setTaskName("Opening XML data file for editing..."); -    getShell().getDisplay().asyncExec(new Runnable() { -      public void run() { -        IWorkbenchPage page = PlatformUI.getWorkbench() -            .getActiveWorkbenchWindow().getActivePage(); -        try { -          IDE.openEditor(page, projectFile, true); -        } catch (PartInitException e) { -        } -      } -    }); -    monitor.worked(1); - -    /* Step #4, refreshing local resources.*/ -    container.refreshLocal(IResource.DEPTH_INFINITE, monitor); -    monitor.worked(1); -  } - -  /** -   * We will initialize file contents with a sample text. -   */ -  private InputStream openProjectContentStream(String templatesPath, -                                               String dataFileName, -                                               String outputDirName) { - -    String contents = "# Automatically generated configuration project file.\n\n" + -                      "# Templates path in the configuration plugin resources, do not modify.\n" + -                      "source=" + templatesPath + "\n\n" + -                      "# XML configuration data file path relative to this configuration file.\n" + -                      "xmlfile=" + dataFileName + "\n\n" + -                      "# Output directory path relative to directory containing this configuration\n" + -                      "# file.\n" + -                      "output=" + outputDirName + "\n"; -    return new ByteArrayInputStream(contents.getBytes()); -  } - -  private void throwCoreException(String message) throws CoreException { -    IStatus status = new Status(IStatus.ERROR, -                                "org.chibios.tools.eclipse.config", IStatus.OK, -                                message, null); -    throw new CoreException(status); -  } - -  /** -   * We will accept the selection in the workbench to see if we can initialize -   * from it. -   *  -   * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection) -   */ -  public void init(IWorkbench workbench, IStructuredSelection selection) { -    this.selection = selection; -  } -} diff --git a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/wizards/ConfigurationNewWizardPage.java b/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/wizards/ConfigurationNewWizardPage.java deleted file mode 100644 index 599c17af0..000000000 --- a/tools/eclipse/config_wizard/src/org/chibios/tools/eclipse/config/wizards/ConfigurationNewWizardPage.java +++ /dev/null @@ -1,371 +0,0 @@ -/* -    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, -                 2011,2012 Giovanni Di Sirio. - -    This file is part of ChibiOS/RT. - -    ChibiOS/RT is free software; you can redistribute it and/or modify -    it under the terms of the GNU General Public License as published by -    the Free Software Foundation; either version 3 of the License, or -    (at your option) any later version. - -    ChibiOS/RT is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -    GNU General Public License for more details. - -    You should have received a copy of the GNU General Public License -    along with this program.  If not, see <http://www.gnu.org/licenses/>. - */ - -package org.chibios.tools.eclipse.config.wizards; - -import java.io.IOException; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.eclipse.swt.widgets.Combo; - -import org.osgi.framework.Bundle; - -import org.jdom2.Document; -import org.jdom2.Element; -import org.jdom2.JDOMException; -import org.jdom2.input.SAXBuilder; - -import config_wizard.Activator; - -/** - * The "New" wizard page allows setting the container for the new file as well - * as the file name. The page will only accept file name without the extension - * OR with the extension that matches the expected one (chcfg). - */ - -public class ConfigurationNewWizardPage extends WizardPage { - -  private ISelection selection; -  private IContainer resourceContainer; - -  private Document processorsDocument; -  private String currentTemplatesPath; -  private String currentDefaultDataFile; - -  private Composite container; -  private Combo configurationTemplatesCombo; -  private Text confProjectFilenameText; -  private Text confDataFilenameText; -  private Text confOutputDirectoryText; - -  /** -   * Constructor for SampleNewWizardPage. -   *  -   * @param pageName -   */ -  public ConfigurationNewWizardPage(ISelection selection) { - -    super("wizardPage"); -    setTitle("ChibiOS/RT Configuration Project File"); -    setDescription("This wizard creates a ChibiOS/RT configuration resource. Configuration resources allow to generate project resources starting from high level descriptions written in XML."); -    this.selection = selection; -  } - -  /** -   * @see IDialogPage#createControl(Composite) -   */ -  public void createControl(Composite parent) { -    container = new Composite(parent, SWT.NULL); -    GridLayout layout = new GridLayout(); -    container.setLayout(layout); -    layout.numColumns = 2; -    layout.verticalSpacing = 9; - -    Label lbl1 = new Label(container, SWT.NULL); -    lbl1.setText("Configuration template:"); - -    configurationTemplatesCombo = new Combo(container, SWT.READ_ONLY); -    configurationTemplatesCombo.setLayoutData(new GridData(SWT.FILL, -                                                           SWT.CENTER, true, -                                                           false, 1, 1)); - -    Label lbl2 = new Label(container, SWT.NULL); -    lbl2.setText("Configuration project filename:"); - -    confProjectFilenameText = new Text(container, SWT.BORDER | SWT.SINGLE); -    confProjectFilenameText.setText("config.chcfg"); -    confProjectFilenameText -        .setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); -    confProjectFilenameText.addModifyListener(new ModifyListener() { -      public void modifyText(ModifyEvent e) { -        confProjectFilenameUpdated(); -      } -    }); - -    Label lbl3 = new Label(container, SWT.NONE); -    lbl3.setText("Configuration data filename:"); - -    confDataFilenameText = new Text(container, SWT.BORDER); -    confDataFilenameText.setText("config.chxml"); -    confDataFilenameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, -                                                    false, 1, 1)); -    confDataFilenameText.addModifyListener(new ModifyListener() { -      public void modifyText(ModifyEvent e) { -        confDataFilenameUpdated(); -      } -    }); - -    Label lbl4 = new Label(container, SWT.NONE); -    lbl4.setText("Configuration output directory:"); - -    confOutputDirectoryText = new Text(container, SWT.BORDER); -    confOutputDirectoryText.setText("."); -    confOutputDirectoryText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, -                                                       true, false, 1, 1)); - -    /* Note, it must stay after the creation of the text fields. */ -    configurationTemplatesCombo.addModifyListener(new ModifyListener() { -      public void modifyText(ModifyEvent e) { -        Element processor = getSelectedTemplate(); -        String basefilename = processor.getChildText("basefilename"); -        confProjectFilenameText.setText(basefilename.concat(".chcfg")); -        confDataFilenameText.setText(basefilename.concat(".chxml")); -        currentTemplatesPath = processor.getChildText("path"); -        currentDefaultDataFile = processor.getChildText("default"); -      } -    }); -    confOutputDirectoryText.addModifyListener(new ModifyListener() { -      public void modifyText(ModifyEvent e) { -        confOutputDirectoryUpdated(); -      } -    }); - -    populateWizardPanel(); -    initialize(); -    setControl(container); -  } - -  public String getContainerName() { - -    return resourceContainer.getFullPath().toString(); -  } - -  public String getProjectFileName() { - -    return confProjectFilenameText.getText(); -  } - -  public String getDataFileName() { - -    return confDataFilenameText.getText(); -  } - -  public String getOutputDirName() { - -    return confOutputDirectoryText.getText(); -  } - -  public String getTemplatesPath() { - -    return currentTemplatesPath; -  } - -  public String getDefaultDataFile() { - -    return currentDefaultDataFile; -  } - -  public boolean canFinish() { - -    return container.getEnabled(); -  } - -  /** -   * Tests if the current workbench selection is a suitable container to use. -   */ -  private void initialize() { - -    if (selection != null && selection.isEmpty() == false -        && selection instanceof IStructuredSelection) { -      IStructuredSelection ssel = (IStructuredSelection) selection; -      if (ssel.size() > 1) -        return; -      Object obj = ssel.getFirstElement(); -      if (obj instanceof IResource) { -        if (obj instanceof IContainer) -          resourceContainer = (IContainer) obj; -        else -          resourceContainer = ((IResource) obj).getParent(); -      } -    } -    else { -      MessageDialog.openError(getShell(), -                              "Error", "Container for the resource not selected."); -      container.setEnabled(false); -      updateStatus("Container for the resource not selected."); -    } -  } - -  /** -   * Fills the wizard configuration panel from XML data. -   *  -   * @param configurationTemplateCombo -   *          the combo box to be populated -   */ -  private void populateWizardPanel() { -    String fpath; - -    /* Retrieving the resource path of the processors.xml file. */ -    try { -      Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID); -      IPath path = new Path("resources/gencfg/processors/processors.xml"); -      fpath = FileLocator.toFileURL(FileLocator.find(bundle, path, null)) -          .getFile(); -    } catch (IOException e) { -      e.printStackTrace(); -      return; -    } - -    /* DOM tree creation. */ -    SAXBuilder builder = new SAXBuilder(); -    try { -      processorsDocument = builder.build(fpath); -    } catch (JDOMException e) { -      e.printStackTrace(); -      return; -    } catch (IOException e) { -      e.printStackTrace(); -      return; -    } - -    /* -     * Parsing the content of the processors.xml file in order to populate the -     * panel objects. -     */ -    Element root = processorsDocument.getRootElement(); -    for (Element processor : root.getChildren("processor")) { -      String name = processor.getChildText("name"); -      configurationTemplatesCombo.add(name); -    } -    configurationTemplatesCombo.select(0); -  } - -  /** -   * Checks the content of the confProjectFilenameText field. -   */ -  private void confProjectFilenameUpdated() { -    String fileName = getProjectFileName(); - -    if (fileName.length() == 0) { -      updateStatus("File name must be specified"); -      return; -    } -    if (fileName.replace('\\', '/').indexOf('/', 1) > 0) { -      updateStatus("File name must be valid"); -      return; -    } -    int dotLoc = fileName.lastIndexOf('.'); -    if (dotLoc != -1) { -      String ext = fileName.substring(dotLoc + 1); -      if (ext.equalsIgnoreCase("chcfg") == false) { -        updateStatus("Configuration project filename extension must be \"chcfg\""); -        return; -      } -    } -    updateStatus(null); -  } - -  /** -   * Checks the content of the confProjectFilenameText field. -   */ -  private void confDataFilenameUpdated() { -    String fileName = getDataFileName(); - -    if (fileName.length() == 0) { -      updateStatus("File name must be specified"); -      return; -    } -    if (fileName.replace('\\', '/').indexOf('/', 1) > 0) { -      updateStatus("File name must be valid"); -      return; -    } -    int dotLoc = fileName.lastIndexOf('.'); -    if (dotLoc != -1) { -      String ext = fileName.substring(dotLoc + 1); -      if (ext.equalsIgnoreCase("chxml") == false) { -        updateStatus("Configuration project filename extension must be \"chxml\""); -        return; -      } -    } -    updateStatus(null); -  } - -  /** -   * Checks the content of the confOutputDirectoryText field. -   */ -  private void confOutputDirectoryUpdated() { - -    IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); -    IPath outputPath = resourceContainer.getFullPath().addTrailingSeparator() -        .append(getOutputDirName()); -    IResource outputContainer = root.findMember(outputPath); - -    if (outputContainer == null) { -      updateStatus("The directory must exists"); -      return; -    } -    if (!(outputContainer instanceof IContainer)) { -      updateStatus("A directory must be specified"); -      return; -    } -    updateStatus(null); -  } - -  /** -   * Returns the XML Element associated to the current selection in the combo -   * box. -   *  -   * @return An Element Object. -   */ -  private Element getSelectedTemplate() { - -    for (Element processor : processorsDocument.getRootElement() -        .getChildren("processor")) { -      String name = processor.getChildText("name"); -      String item = configurationTemplatesCombo -          .getItem(configurationTemplatesCombo.getSelectionIndex()); -      if (name.compareTo(item) == 0) { -        return processor; -      } -    } -    return null; -  } - -  /** -   * Updates the status text in the Wizard page. -   *  -   * @param message -   *          the message to be shown -   */ -  private void updateStatus(String message) { - -    setErrorMessage(message); -    setPageComplete(message == null); -  } -}  | 
