From: <jsa...@us...> - 2008-11-10 20:40:36
|
Revision: 80 http://flexotask.svn.sourceforge.net/flexotask/?rev=80&view=rev Author: jsauerbach Date: 2008-11-10 20:40:32 +0000 (Mon, 10 Nov 2008) Log Message: ----------- Include more descriptive information when exporting a runtime. Add getDescription() methods to RuntimeProvider and LibraryProvider to support this. Adjust the getDescription() results on some TimingGrammarProviders to be consistent. Modified Paths: -------------- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/OpenRuntimeProvider.java trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeExportWizard.java trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeExportWizardPage.java trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeProvider.java trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/GlobalTiming.java trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/LibraryProvider.java trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/TimingGrammarProvider.java trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/timing/simple/SimpleModelessGrammarProvider.java trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/timing/simple/SimpleMultiModeGrammarProvider.java trunk/flexotask-tuningfork/src/com/ibm/realtime/flexotask/tuningfork/TuningforkLibraryProvider.java Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/OpenRuntimeProvider.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/OpenRuntimeProvider.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/OpenRuntimeProvider.java 2008-11-10 20:40:32 UTC (rev 80) @@ -13,14 +13,6 @@ */ package com.ibm.realtime.flexotask.editor.dialogs; -import java.io.File; -import java.io.IOException; -import java.net.URL; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Platform; -import org.osgi.framework.Bundle; - import com.ibm.realtime.flexotask.editor.EEditPlugin; /** @@ -43,4 +35,12 @@ { return "openRuntimeProvider.zip"; } + + /* (non-Javadoc) + * @see com.ibm.realtime.flexotask.editor.dialogs.RuntimeProvider#getDescription() + */ + public String getDescription() + { + return "Open source runtime components, including ESystem and NativeIO"; + } } Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeExportWizard.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeExportWizard.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeExportWizard.java 2008-11-10 20:40:32 UTC (rev 80) @@ -57,6 +57,7 @@ import com.ibm.realtime.flexotask.editor.EEditPlugin; import com.ibm.realtime.flexotask.editor.FlexotaskClasspathInitializer; import com.ibm.realtime.flexotask.editor.model.GlobalTiming; +import com.ibm.realtime.flexotask.editor.model.LibraryProvider; /** * Export a Flexotask Runtime based contributed libraries, including a special NativeRuntime provider @@ -80,7 +81,17 @@ */ public void addPages() { - page = new RuntimeExportWizardPage(); + StringBuilder builder = new StringBuilder("This runtime will contain:\n"); + RuntimeProvider[] providers = getRuntimeProviders(); + for (int i = 0; i < providers.length; i++) { + builder.append(" ").append(providers[i].getDescription()).append("\n"); + } + builder.append(" Standard Java libraries for the Flexotask API\n"); + LibraryProvider[] libraries = GlobalTiming.getAllProviders(); + for (int i = 0; i < libraries.length; i++) { + builder.append(" ").append(libraries[i].getDescription()).append("\n"); + } + page = new RuntimeExportWizardPage(builder.toString()); addPage(page); } Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeExportWizardPage.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeExportWizardPage.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeExportWizardPage.java 2008-11-10 20:40:32 UTC (rev 80) @@ -32,6 +32,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Text; import com.ibm.realtime.flexotask.editor.EEditPlugin; @@ -79,13 +80,21 @@ /** Checkbox indicating that the user wants the destination to be overwritten without prompting */ private Button overwrite; + + /** The extended description (distinct from the shorter one in the title bar) */ + private String description; + + /** Text control for displaying the extended description */ + private Text descriptionText; /** * Create a new RuntimeExportWizardPage + * @param description the text to display giving a high level view of what will be in the runtime */ - RuntimeExportWizardPage() + RuntimeExportWizardPage(String description) { super("FlexotaskRuntime"); + this.description = description; setTitle("Export Flexotask Runtime"); setDescription("Export a Flexotask runtime for a real-time VM using existing plugins and flexotask PDE projects"); } @@ -102,10 +111,16 @@ IDialogSettings settings = getSettings(); String toDirectory = settings.get(EXPORT_DIRECTORY); boolean useDirectory = toDirectory == null || "true".equals(toDirectory); //$NON-NLS-1$ + + descriptionText = new Text(control, SWT.WRAP | SWT.READ_ONLY); + descriptionText.setText(description); + GridData gd = new GridData(); + gd.horizontalSpan = 2; + descriptionText.setLayoutData(gd); chooseDirectory = new Button(control, SWT.RADIO); chooseDirectory.setText("Directory:"); - GridData gd = new GridData(); + gd = new GridData(); gd.horizontalSpan = 2; chooseDirectory.setLayoutData(gd); chooseDirectory.setSelection(useDirectory); Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeProvider.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeProvider.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/dialogs/RuntimeProvider.java 2008-11-10 20:40:32 UTC (rev 80) @@ -25,4 +25,9 @@ * @return this provider's contribution to the runtime as the absolute path name of a zip archive */ public String contribute(); + + /** + * @return this provider's one-sentence self-description of what it provides + */ + public String getDescription(); } Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/GlobalTiming.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/GlobalTiming.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/GlobalTiming.java 2008-11-10 20:40:32 UTC (rev 80) @@ -47,32 +47,17 @@ private static LibraryProvider[] libraries; /** - * Get the set of grammars in the workspace, initializing from the extension registry the - * first time around. + * Get an annotator class to annotate a specific ModelElement + * @param element the element to be annotated + * @return a LocalTiming annotator for that element or null if that type of element cannot + * be annotated in this grammar */ - public static TimingGrammarProvider[] getGrammars() + public abstract LocalTiming getElementAnnotator(ModelElement element); + + // @see com.ibm.realtime.flexotask.editor.model.ModelElement#nextTempName() + String nextTempName() { - if (grammars == null) { - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IExtensionPoint extensionPoint = registry.getExtensionPoint(GRAMMAR_EXTENSION); - if (extensionPoint == null) { - grammars = new TimingGrammarProvider[0]; - } else { - IConfigurationElement points[] = extensionPoint.getConfigurationElements(); - List<TimingGrammarProvider> grammarList = new ArrayList<TimingGrammarProvider>(); - for (int i = 0; i < points.length; i++) { - IConfigurationElement point = points[i]; - TimingGrammarProvider tgp; - try { - tgp = (TimingGrammarProvider) point.createExecutableExtension("class"); - grammarList.add(tgp); - } catch (CoreException e) { - } - } - grammars = (TimingGrammarProvider[]) grammarList.toArray(new TimingGrammarProvider[0]); - } - } - return grammars; + return "gt"; } // @see com.ibm.realtime.flexotask.editor.model.ModelElement#toEditSessionXML(java.lang.StringBuilder, java.lang.String) @@ -86,12 +71,17 @@ } /** - * Get an annotator class to annotate a specific ModelElement - * @param element the element to be annotated - * @return a LocalTiming annotator for that element or null if that type of element cannot - * be annotated in this grammar + * Get the paths of the runtime libraries (including parsers and schedulers) of all the + * supported timing grammars and simple library providers. + * @param accumulator the list in which classpath entries are to be accumulated */ - public abstract LocalTiming getElementAnnotator(ModelElement element); + public static void addToClasspath(List<IClasspathEntry> accumulator) throws CoreException + { + LibraryProvider[] providers = getAllProviders(); + for (int i = 0; i < providers.length; i++) { + providers[i].addToClasspath(accumulator); + } + } /** * Find the correct GlobalTiming for a given FlexotaskGlobalTimingData @@ -111,44 +101,11 @@ return null; } - // @see com.ibm.realtime.flexotask.editor.model.ModelElement#nextTempName() - String nextTempName() - { - return "gt"; - } - /** - * Get the FlexotaskTimingDataParsers of all the supported timing grammars - * @return an array of FlexotaskTimingDataParsers, one element from each timing grammar provider - */ - public static FlexotaskTimingDataParser[] getParsers() - { - TimingGrammarProvider[] grammars = getGrammars(); - FlexotaskTimingDataParser[] ans = new FlexotaskTimingDataParser[grammars.length]; - for (int i = 0; i < ans.length; i++) { - ans[i] = grammars[i].getParser(); - } - return ans; - } - - /** - * Get the paths of the runtime libraries (including parsers and schedulers) of all the - * supported timing grammars and simple library providers. - * @param accumulator the list in which classpath entries are to be accumulated - */ - public static void addToClasspath(List<IClasspathEntry> accumulator) throws CoreException - { - LibraryProvider[] providers = getAllProviders(); - for (int i = 0; i < providers.length; i++) { - providers[i].addToClasspath(accumulator); - } - } - - /** * Collect all the library providers in the system, including grammar providers * @return all library providers as an array */ - private static LibraryProvider[] getAllProviders() + public static LibraryProvider[] getAllProviders() { if (libraries == null) { List<LibraryProvider> providers = new ArrayList<LibraryProvider>(); @@ -174,4 +131,47 @@ } return libraries; } + + /** + * Get the set of grammars in the workspace, initializing from the extension registry the + * first time around. + */ + public static TimingGrammarProvider[] getGrammars() + { + if (grammars == null) { + IExtensionRegistry registry = Platform.getExtensionRegistry(); + IExtensionPoint extensionPoint = registry.getExtensionPoint(GRAMMAR_EXTENSION); + if (extensionPoint == null) { + grammars = new TimingGrammarProvider[0]; + } else { + IConfigurationElement points[] = extensionPoint.getConfigurationElements(); + List<TimingGrammarProvider> grammarList = new ArrayList<TimingGrammarProvider>(); + for (int i = 0; i < points.length; i++) { + IConfigurationElement point = points[i]; + TimingGrammarProvider tgp; + try { + tgp = (TimingGrammarProvider) point.createExecutableExtension("class"); + grammarList.add(tgp); + } catch (CoreException e) { + } + } + grammars = (TimingGrammarProvider[]) grammarList.toArray(new TimingGrammarProvider[0]); + } + } + return grammars; + } + + /** + * Get the FlexotaskTimingDataParsers of all the supported timing grammars + * @return an array of FlexotaskTimingDataParsers, one element from each timing grammar provider + */ + public static FlexotaskTimingDataParser[] getParsers() + { + TimingGrammarProvider[] grammars = getGrammars(); + FlexotaskTimingDataParser[] ans = new FlexotaskTimingDataParser[grammars.length]; + for (int i = 0; i < ans.length; i++) { + ans[i] = grammars[i].getParser(); + } + return ans; + } } Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/LibraryProvider.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/LibraryProvider.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/LibraryProvider.java 2008-11-10 20:40:32 UTC (rev 80) @@ -35,4 +35,11 @@ * @throws CoreException if needed entries could not be added */ void addToClasspath(List<IClasspathEntry> accumulator) throws CoreException; + + /** + * Get the description to use for this library in various dialogs (if the LibraryProvider is also a TimingGrammarProvider, this + * description will also be used in the Tools palette of the editor) + * @return the appropriate description as a string + */ + String getDescription(); } Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/TimingGrammarProvider.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/TimingGrammarProvider.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/model/TimingGrammarProvider.java 2008-11-10 20:40:32 UTC (rev 80) @@ -30,12 +30,6 @@ String getLabel(); /** - * Get the description to use for this grammar in the tools palette - * @return the appropriate description as a string - */ - String getDescription(); - - /** * Get the Class to use as a template class in the tools palette. This class must extend * GlobalTiming. * @return the appropriate Class Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/timing/simple/SimpleModelessGrammarProvider.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/timing/simple/SimpleModelessGrammarProvider.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/timing/simple/SimpleModelessGrammarProvider.java 2008-11-10 20:40:32 UTC (rev 80) @@ -32,7 +32,7 @@ // @see com.ibm.realtime.flexotask.editor.model.TimingGrammarProvider#getDescription() public String getDescription() { - return "Use time-triggered grammar with a single unnamed mode"; + return "Time-triggered grammar with a single unnamed mode"; } // @see com.ibm.realtime.flexotask.editor.model.TimingGrammarProvider#getGlobalTiming(com.ibm.realtime.flexotask.timing.FlexotaskTimingData) Modified: trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/timing/simple/SimpleMultiModeGrammarProvider.java =================================================================== --- trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/timing/simple/SimpleMultiModeGrammarProvider.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-editor/src/com/ibm/realtime/flexotask/editor/timing/simple/SimpleMultiModeGrammarProvider.java 2008-11-10 20:40:32 UTC (rev 80) @@ -32,7 +32,7 @@ // @see com.ibm.realtime.flexotask.editor.model.TimingGrammarProvider#getDescription() public String getDescription() { - return "Use time-triggered grammar with multiple modes"; + return "Time-triggered grammar with multiple modes"; } // @see com.ibm.realtime.flexotask.editor.model.TimingGrammarProvider#getGlobalTiming(com.ibm.realtime.flexotask.timing.FlexotaskTimingData) Modified: trunk/flexotask-tuningfork/src/com/ibm/realtime/flexotask/tuningfork/TuningforkLibraryProvider.java =================================================================== --- trunk/flexotask-tuningfork/src/com/ibm/realtime/flexotask/tuningfork/TuningforkLibraryProvider.java 2008-11-10 17:42:04 UTC (rev 79) +++ trunk/flexotask-tuningfork/src/com/ibm/realtime/flexotask/tuningfork/TuningforkLibraryProvider.java 2008-11-10 20:40:32 UTC (rev 80) @@ -43,4 +43,12 @@ FlexotaskClasspathInitializer.addPluginClasspath(accumulator, TUNINGFORK_VIANATIVE_LIBRARY); FlexotaskClasspathInitializer.addPluginClasspath(accumulator, TUNINGFORK_LIBRARY); } + + /* (non-Javadoc) + * @see com.ibm.realtime.flexotask.editor.model.LibraryProvider#getDescription() + */ + public String getDescription() + { + return "Tracing support for TuningFork"; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |