37
New Project New Project Model UI Model UI Primary Author: Mikhail Sennikovsky Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Major contributors: Mikhail Voronin, Oleg Krasilnikov, Krasilnikov, Leo Treggiari Leo Treggiari Intel Corporation Intel Corporation September, 2006 September, 2006

New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Embed Size (px)

DESCRIPTION

Scope Usability, Configurability Usability, Configurability Project Creation UI Project Creation UI Common UI interface with different project types in CDT Common UI interface with different project types in CDT Common UI for “Standard” and “Managed” build, other builders Common UI for “Standard” and “Managed” build, other builders Consistent Integration into the UI Consistent Integration into the UI Multi-language support Multi-language support language – sensitive environment language – sensitive environment Integration of the Core part of the Project Model Integration of the Core part of the Project Model Configuration concept Configuration concept Language settings Language settings Build Variables Build Variables Build Environment Build Environment etc. etc.

Citation preview

Page 1: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

New Project New Project Model UIModel UI

Primary Author: Mikhail SennikovskyPrimary Author: Mikhail SennikovskyMajor contributors: Mikhail Voronin, Oleg Major contributors: Mikhail Voronin, Oleg Krasilnikov, Krasilnikov, Leo Treggiari Leo Treggiari

Intel CorporationIntel CorporationSeptember, 2006September, 2006

Page 2: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

GoalsGoals Easy to use interfaceEasy to use interface Multi-language supportMulti-language support Tool integrators supportTool integrators support

Page 3: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

ScopeScope Usability, ConfigurabilityUsability, Configurability

Project Creation UIProject Creation UI Common UI interface with different project types in Common UI interface with different project types in

CDTCDT Common UI for “Standard” and “Managed” build, Common UI for “Standard” and “Managed” build,

other buildersother builders Consistent Integration into the UIConsistent Integration into the UI

Multi-language supportMulti-language support language – sensitive environmentlanguage – sensitive environment

Integration of the Core part of the Project Integration of the Core part of the Project ModelModel

Configuration conceptConfiguration concept Language settingsLanguage settings Build VariablesBuild Variables Build EnvironmentBuild Environment etc.etc.

Page 4: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

AgendaAgenda Project CreationProject Creation Project SettingsProject Settings

Core SettingsCore Settings Build System SettingsBuild System Settings Settings LayoutSettings Layout

Page 5: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Project CreationProject Creation OverviewOverview General Project Creation flowGeneral Project Creation flow Proposed Project Creation in CDTProposed Project Creation in CDT

Page 6: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Project Creation: Project Creation: OverviewOverview

Creation of project in one stepCreation of project in one step Advanced settingsAdvanced settings Language sensitive settingsLanguage sensitive settings

Page 7: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Project Creation: General Project Creation: General flowflow

Language selection – requiredLanguage selection – required C/C++, FORTRAN, etc.C/C++, FORTRAN, etc.

Application (Project) type selection – requiredApplication (Project) type selection – required Console, UI, library, executable, etc.Console, UI, library, executable, etc.

Project type-specific required properties Project type-specific required properties selection – requiredselection – required E.g. Tool-chain for CDT Build SystemE.g. Tool-chain for CDT Build System

General Project settingsGeneral Project settings Name, LocationName, Location

Project type settings customization – optionalProject type settings customization – optional Error parsers, Binary Parsers, Source/output Error parsers, Binary Parsers, Source/output

location, etc.location, etc.

Page 8: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Language selectionLanguage selection Separate entry for each Separate entry for each

language typelanguage type One common “CDT Project” One common “CDT Project”

entry (for advanced users)entry (for advanced users)

Questions: Questions: do we need separate C and C++ do we need separate C and C++

entries or it is OK to have one C/C+entries or it is OK to have one C/C++?+?

Implementation details:Implementation details: CDT UI defines a common re-usable CDT UI defines a common re-usable

CDT Wizard templateCDT Wizard template Each language type integration Each language type integration

defines a language-specific wizard defines a language-specific wizard entryentry

The wizard class extends/reuses the The wizard class extends/reuses the common CDT Wizard, i.e. all common CDT Wizard, i.e. all language entries mapped to the same language entries mapped to the same wizard implementationwizard implementation

Page 9: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Required project properties Required project properties selectionselection

Application (Project) type Application (Project) type selection selection

Project type-specific required Project type-specific required properties selectionproperties selection

General Project settingsGeneral Project settings

Implementation detailsImplementation details org.eclipse.cdt.ui.CNewWizard org.eclipse.cdt.ui.CNewWizard

extension pointextension point Providing project type entries via Providing project type entries via

XML and/or Java call-backXML and/or Java call-back Providing control for Providing control for

representing the main properties representing the main properties for selected project typefor selected project type

Implemented typically by the Implemented typically by the Build System integrationBuild System integration

Page 10: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Contributing project types Contributing project types and tool-chainsand tool-chains

Manifest file snippets:Manifest file snippets:

Page 11: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Configuration Selection Configuration Selection PagePage

Displayed for the Displayed for the “Managed” Projects (all “Managed” Projects (all except “Make Project”)except “Make Project”)

Page 12: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Configuration Selection Configuration Selection Page: multiple tool-chainsPage: multiple tool-chains

Configurations for all Configurations for all selected tool-chains selected tool-chains are listedare listed

““_with_ToolChain_Na_with_ToolChain_Name” suffix prepended me” suffix prepended for configurations for configurations with same nameswith same names

Page 13: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Additional Settings PageAdditional Settings Page Displayed for both “Managed” and Displayed for both “Managed” and

“Standard” Build projects“Standard” Build projects Maintain the project property page Maintain the project property page

dialog representing the complete set dialog representing the complete set of project property pages.of project property pages.

Page 14: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Project Properties UIProject Properties UI CPropertyPage general templatesCPropertyPage general templates Configuration ManagementConfiguration Management Properties specificsProperties specifics

Page 15: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Configuration setting Configuration setting property pageproperty page

CPropertyPage property CPropertyPage property page templatepage template

Implementers will Implementers will provide the provide the CPropertyPage contentsCPropertyPage contents

All C property pages use All C property pages use one and the same copy one and the same copy of of ConfigurationDescriptioConfigurationDescriptionn

Page 16: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Tab container property Tab container property pagepage

org.eclipse.cdt.ui.org.eclipse.cdt.ui.CPropertyTabCPropertyTab extension pointextension point property page id the property page id the

tab is contributed totab is contributed to Tab nameTab name Tab orderTab order Tab implementationTab implementation

Page 17: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Active configuration Active configuration selectionselection

Changing active configurationChanging active configuration ““Active Build Configuration” project context menuActive Build Configuration” project context menu ““Active Build Configuration” sub-menu of the Active Build Configuration” sub-menu of the

“Project” menu“Project” menu ““Build Configuration” tool-barBuild Configuration” tool-bar ““Manage Configurations” dialogManage Configurations” dialog

Current interface changesCurrent interface changes Configuration selector of the C Property Page does Configuration selector of the C Property Page does

not make the selected configuration activenot make the selected configuration active Configuration list control of the “Manage Configuration list control of the “Manage

Configurations” dialog does not make the selected Configurations” dialog does not make the selected configuration activeconfiguration active

Page 18: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

““Manage Configurations” Manage Configurations” dialogdialog

Accessed viaAccessed via ““Manage Configurations” project context Manage Configurations” project context

menumenu ““Manage Configurations” project sub-Manage Configurations” project sub-

menu of “Project” menumenu of “Project” menu ““Manage Configurations..” button of the Manage Configurations..” button of the

C Property pageC Property page Used forUsed for

Changing active configurationChanging active configuration Creating/removing configurationsCreating/removing configurations Changing configuration name/descriptionChanging configuration name/description

Question: Question: Tool-chain conversion moved to the “Tool-Tool-chain conversion moved to the “Tool-

chain Settings page”chain Settings page” Do we need tool-chain selection at Do we need tool-chain selection at

configuration creation?configuration creation?

Implementation detailsImplementation details org.eclipse.cdt.ui.ManageConfigsDialogorg.eclipse.cdt.ui.ManageConfigsDialog

extension pointextension point Providing custom (Build System-specific) Providing custom (Build System-specific)

implementationimplementation

Page 19: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Project Properties Project Properties SpecificsSpecifics

Core SettingsCore Settings CDT Build System SettingsCDT Build System Settings

Page 20: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Core SettingsCore Settings Language SettingsLanguage Settings Include Paths & SymbolsInclude Paths & Symbols Project ReferencesProject References Build EnvironmentBuild Environment Visualizing resource-specific settingsVisualizing resource-specific settings

Page 21: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Language selectionLanguage selection Content type to Content type to

language (dialect) language (dialect) associationassociation Only content types Only content types

that have that have languages languages associated are associated are displayeddisplayed

For each content For each content type the list of type the list of languages languages associated with it associated with it is displayedis displayed

Page 22: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Includes Settings pageIncludes Settings page Includes settings are Includes settings are

language-specific language-specific Only languages used in Only languages used in

the current the current Configuration are Configuration are displayed in the displayed in the language listlanguage list

In case includes settings In case includes settings are not applicable for the are not applicable for the given language, the given language, the language is not displayedlanguage is not displayed

Built-in and read-only Built-in and read-only values are highlighted values are highlighted using different iconsusing different icons

Page 23: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Macros Settings pageMacros Settings page Macros settings are Macros settings are

language-specific language-specific Only languages used in Only languages used in

the current Configuration the current Configuration are displayed in the are displayed in the language listlanguage list

In case macros settings In case macros settings are not applicable for the are not applicable for the given language, the given language, the language is not displayedlanguage is not displayed

Built-in and read-only Built-in and read-only values are highlighted values are highlighted using different iconsusing different icons

Page 24: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Referencing Referencing Projects/ConfigurationsProjects/Configurations

Only one configuration of Only one configuration of a project can be a project can be referencedreferenced

In case the “[Active]” In case the “[Active]” entry is selected, the entry is selected, the project active project active configuration will be configuration will be referencedreferenced

Selecting a project entry Selecting a project entry results in selecting results in selecting “[Active]” configuration“[Active]” configuration

Question: Question: How will this interact with the How will this interact with the

“Project References” page added by “Project References” page added by Eclipse?Eclipse?

Page 25: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Build Environment UIBuild Environment UI Extended general Extended general

Environment UI will be usedEnvironment UI will be used Provide a common user Provide a common user

experience with Eclipse/CDTexperience with Eclipse/CDT MBS Environment UI seems MBS Environment UI seems

over-complicatedover-complicated Some extensions to general Some extensions to general

UIUI The Default Environment The Default Environment

settings are those contributed settings are those contributed by the tool-chain.by the tool-chain.

““Append” modeAppend” mode User-modified environment User-modified environment

variables highlighted in variables highlighted in BOLDBOLD

it will be possible to it will be possible to “undefined” the variable. “undefined” the variable. Undefined variable is Undefined variable is displayed as ITALIC displayed as ITALIC ““<Undefined><Undefined>”.”.

““Replace” mode operates in a Replace” mode operates in a standard way.standard way.

Page 26: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Visualizing resource-Visualizing resource-specific settingsspecific settings

Files and folders with Files and folders with customized settings customized settings marked with “marked with “<><>””

Page 27: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Build System SettingsBuild System Settings Tool-chain ModificationTool-chain Modification Builder SettingsBuilder Settings Artifact SettingsArtifact Settings

Page 28: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Tool-chain modificationTool-chain modification ToolChain selectionToolChain selection

Compatible tool-chains:Compatible tool-chains: Converter is definedConverter is defined Compatible Build propertiesCompatible Build properties

Builder selectionBuilder selection Changing the list of toolsChanging the list of tools

When conflicting tools When conflicting tools selected they are marked by selected they are marked by color, error message color, error message displayed.displayed.

““Managed” build onManaged” build on ““Managed” build capable Managed” build capable

objects displayed onlyobjects displayed only ““Managed” build offManaged” build off

All available objects displayedAll available objects displayed

Page 29: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Builder Settings pageBuilder Settings page Builder typeBuilder type

External BuilderExternal Builder Internal BuilderInternal Builder

Whether builder should Whether builder should stop on first build errorstop on first build error

Workbench Build Workbench Build BehaviorBehavior

Builder CWDBuilder CWD For external Builders:For external Builders:

Whether or not makefiles Whether or not makefiles should be generatedshould be generated

Make commandMake command rule namesrule names

Page 30: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Builder Settings page: Builder Settings page: Internal Builder caseInternal Builder case

Build Command Build Command disableddisabled

Makefile Makefile generation generation section disabledsection disabled

Rule names Rule names hiddenhidden

Page 31: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

““Build Artifact” pageBuild Artifact” page Displayed when Displayed when

the “Managed” the “Managed” build is onbuild is on

SettingsSettings Artifact nameArtifact name Artifact Artifact

extensionextension Artifact typeArtifact type

Page 32: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Properties LayoutProperties Layout Project Properties LayoutProject Properties Layout

Project PropertiesProject Properties Folder PropertiesFolder Properties File PropertiesFile Properties

Preferences LayoutPreferences Layout

Page 33: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Project PropertiesProject Properties ““Language settings” - Language to file type mappingLanguage settings” - Language to file type mapping ““Project Paths & Symbols” Project Paths & Symbols”

““Includes”Includes” ““Symbols”Symbols” ““Libraries” Libraries” ““Discovery options” (CDT Build System-contributed)Discovery options” (CDT Build System-contributed) ““Source location”Source location” ““Output location“Output location“ Referenced projects/configurations Referenced projects/configurations SDKs (NEW)SDKs (NEW)

““Build Settings” property page contains a set of tabs:Build Settings” property page contains a set of tabs: ““Tool settings” (CDT Build System-contributed, Managed Build only) - options, tool Tool settings” (CDT Build System-contributed, Managed Build only) - options, tool

commands, etc.commands, etc. ““Build Steps” – (CDT Build System-contributed, Managed Build only) - Custom Build StepsBuild Steps” – (CDT Build System-contributed, Managed Build only) - Custom Build Steps ““Build Artifact” (project type, name, extension) – Build artifact type, name and extension.Build Artifact” (project type, name, extension) – Build artifact type, name and extension. ““Builder settings” (CDT Build System-contributed)Builder settings” (CDT Build System-contributed) EnvironmentEnvironment Binary parsersBinary parsers Error parsersError parsers

““Tool-Chain settings” property page (NEW) - add/remove/change tools, builder and Tool-Chain settings” property page (NEW) - add/remove/change tools, builder and tool-chain. tool-chain.

““Build Variables” (NEW to the core) – viewing/editing the Build Variables (Macros)Build Variables” (NEW to the core) – viewing/editing the Build Variables (Macros) ““Indexer” property page for selecting indexer to be usedIndexer” property page for selecting indexer to be used ““File types” – property page for file type specificationFile types” – property page for file type specification ““Documentation” property pageDocumentation” property page

Page 34: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Folder PropertiesFolder Properties

““Language settings” - Language to file type mappingLanguage settings” - Language to file type mapping ““Project Paths & Symbols” Project Paths & Symbols”

““Includes”Includes” ““Symbols”Symbols” ““Libraries” Libraries” ““Discovery options” (CDT Build System-contributed)Discovery options” (CDT Build System-contributed)

““Build Settings” Build Settings” ““Tool settings” (CDT Build System-contributed, Managed Tool settings” (CDT Build System-contributed, Managed

Build only) - options, tool commands, etc.Build only) - options, tool commands, etc. ““Tool-Chain settings” - add/remove/change tools, Tool-Chain settings” - add/remove/change tools,

builder and tool-chain. builder and tool-chain.

Page 35: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

File PropertiesFile Properties

““Language settings” - Language to file type mappingLanguage settings” - Language to file type mapping ““Project Paths & Symbols”Project Paths & Symbols”

““Includes”Includes” ““Symbols”Symbols” ““Libraries” Libraries” ““Discovery options” (CDT Build System-contributed)Discovery options” (CDT Build System-contributed)

““Build Settings” Build Settings” ““Tool settings” (CDT Build System-contributed, Managed Tool settings” (CDT Build System-contributed, Managed

Build only) - options, tool commands, etc.Build only) - options, tool commands, etc. ““Build Steps” – (CDT Build System-contributed, Managed Build Steps” – (CDT Build System-contributed, Managed

Build only) - defining Custom Build StepsBuild only) - defining Custom Build Steps ““Tool-Chain settings” property page (NEW) - Tool-Chain settings” property page (NEW) -

add/remove/change tools, builder and tool-chainadd/remove/change tools, builder and tool-chain

Page 36: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Preferences LayoutPreferences Layout Only a few changes to the current layout Only a few changes to the current layout

proposed:proposed: Rename the “C/C++” entry to “CDT”Rename the “C/C++” entry to “CDT” ““C/C++”/”Path Entry Variables” page is C/C++”/”Path Entry Variables” page is

replaced with the “CDT”/”Build Variables” pagereplaced with the “CDT”/”Build Variables” page ““CDT”/”Build Environment” page addedCDT”/”Build Environment” page added ““C/C++”/”Managed Build” page removedC/C++”/”Managed Build” page removed

““Macros” tab becomes the “CDT”/”Build Variables” Macros” tab becomes the “CDT”/”Build Variables” pagepage

““Environment” tab becomes the “CDT”/”Build Environment” tab becomes the “CDT”/”Build Environment” pageEnvironment” page

Page 37: New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,

Q & AQ & A