[jbosstools-issues] [JBoss JIRA] (JBIDE-10264) Wizard-ify the project examples

Snjezana Peco (JIRA) jira-events at lists.jboss.org
Thu Feb 9 09:41:48 EST 2012


    [ https://issues.jboss.org/browse/JBIDE-10264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665360#comment-12665360 ] 

Snjezana Peco commented on JBIDE-10264:
---------------------------------------

>> >We will have a separate page related to requirements.

>Yes I know - but users looses the ability to see if this project is expected to "just work"; but i'm fine with the
>suggestion of just removing it for now since they can just press "back" to choose another example.

The Requirements page won't show up if all requirements are satisfied when using Help>Project Examples
When starting from JBoss Central, I think, some dialog needs to appear primarily to ensure the user didn't click any wrong project example.

>>I am talking about the page that only contains the QuickFix/Readme checkboxes. That is the page on the up-right corner of your mockup.
>>If you are talking about JBIDE-10421, it is fixed.

> No, it was not fixed - just hiding the problem.

> You seem to miss the page in my wizard flow that includes output directory/workingset choice which is what I suggest being shown
> for non-maven ones.

I thought that page was a simplified page contributed by Maven archetype.
All the pages have the same title and project name so that it is difficult to see if it is a separate page.
The problem is that we use archetype page from m2e that already includes output directory/workingset properties. 
If we add this page, those properties will be shown twice for project examples of the mavenArchetype type.
We don't know what a contributed page will show and can't decide if we will show the output directory/workingset page or not. 
Or, you mean that we need to add yet another tag? Or we need to create maven archetype page from scratch and remove those properties?
In JBIDE-10421, I suggested to add the Preferences link. Since there weren't any other suggestions, I implemented it.
IMO, it is rather than complicate the wizard by adding a new page. 
The most of the users won't use those properties, and those who will want to change them, will be able to do that using the link or standard preferences pages.

>>Yes, they are there, but shouldn't show up if there aren't either errors (Quick Fix) or readme/cheatsheet.
>>We have previously agreed that the page doesn't need to show up in this case.

> I don't recall that sorry - I've always tried to say I would rather have a consistent flow no matter
> if I start these from jboss central or project examples and a last page that outlines what will happen.
> And it is only on this page users actually will have the context to say if they want to see quickfixes/show quickstart/selection etc.

So this page needs to be shown no matter if a project example has been imported correctly or not?
When everything is imported correctly and there aren't readme/cheatsheets, the user will only be able to click Finish. 
The Back button has to be disabled? Right?

>>We can remove the Project Example dialog for those project examples that have the wizard tag (mavenArchetype) so that the mavenArchetype wizard can be independent.
>>Archetype wizards work this way when calling from the Create Projects section (JBIDE-9776).

> I don't understand what you mean here - for me "project example dialog" is where you get to choose from the full list of examples available and then start/continue the wizard with that choice - in 
> Central case there is a limited curated list which triggers the start of the wizard.

The Project Example dialog shows up when clicking some tutorial/project examples in the Project Examples section of JBoss Central.
The mavenArchetype wizards in the Create Projects section have been implemented so that they start a project example without showing the Project Example dialog (JBIDE-9776). 
They differ from other project examples because they have the wizard tag in the project xml file.
What I suggest is that those project examples that have the wizard tag (mavenArchetype currently) start without showing the Project Example dialog even if they are added to the Project Examples section. 
We can still add a few entries to the Create Projects section, otherwise it will get bloated. Or JBIDE-10652 is related to the Create Projects section? 

>>>> I deliberatly did not show the selection of the example since that is outside this wizard flow.

>>Yes, the mockup describes special cases of the project examples - the project examples of the mavenArchetype type that are started from JBoss Central.

> I don't get why you say that - this mockup is for both cases. There are two flows in it.

I have expected that we define this wizard no matter of the project examples type, contributed page(s) that would be used from JBoss Central and using Help>Project Examples.
Anyway, we have to define a contributed page(s) API. The mavenArchetype project examples is just one special case. 
If we implement the git project examples (JBIDE-8452), they will also have a contributed page(s). 
We don't know how they will look and what they will do; we only need to define API for them.

>>>> As to project examples that contribute a wizard page(s), the download would have to be d>elegated to the contributed wizard page.

>>> No, the download have to happen before those pages since these pages depend on the content/choice of this afaics.

>>The mavenArchetype wizard (or the contributed page in our new wizard) will download the project example content. Project examples don't depend on m2e so they can't know wha>t this wizard (or the wizard page) will do. They, maybe, don't need anything to download (if the archetype has already been downloaded), but to create a project according t>o it.

> I would assume the extension would have a downloadContent() method or similar which could be use to align the download experience.

Yes, we have to define APi for contributed page(s) no matter if they are contributed by mavenArchetype, git, svn ...

>>> The only optional page is the wizard archetype - the rest is there no matter which flow you suggest.

> No, there is the page for the "plain" flow too (lower bound) where you get to choose where the project is stored (it can also just have defaults)

If you mean output directory/workingsets, I have given my opinion above. 

> then dont allow changing the name, but where it is stored.

Already not allowed for the standard project examples.

>Could you please explain me what is "ugly and non-intuitive" using the kitchensink quickstart as an example and I will correct that?

> From previous comment:

> 1) project example choice
> 2) details about "missing requirements"

Ok. Agree that we add the Requirements page.

> 3) wait for download (can be put in background)

This is, IMO, better that it will be when we create this wizard.
As to the previous discussion, when implementing the wizard, the user will have to wait (or cancel the wizard) for  project examples to be downloaded and built.

> 4) open quickfix dialog

You have agreed this to stay the same.

> 5) "open the readme.*"

I don't see what will be changed. A readme is opened in the editor and a cheatsheet in the view no matter how we do that.

> Thus project examples even without maven have several steps.
> And all of these steps have different layout/dialog within the flow and is different from how central presents the exact same flow.

I don't understand. We can't change the steps. 
The Project Example dialog that we get when starting project Examples from JBoss Central has been created using the Forms API as well as the JBoss Central editor. 
I agree that we replace it with the Requirements page since no any dialog related to the project examples uses the Forms API.

Currently, the user imports the kitchensink project example from JBoss Central with two clicks:
- the kitchensink entry in the Project Examples section
- the Start button in the Project Example dialog 
The user can send "downloading and building a project example" to the background and work something else until the project example finishes its work.

If we add all the pages you suggested, the user will have to do the following:
- click the kitchensink entry in the Project Examples section
- click Next in the Requirements page
- click Next in the Ouput Directory/WorkspaceSet properties page
- wait for the project example to be downloaded and built (which could take a long time and the user wouldn't be able to do anything else)
- click Finish on the page with quickfix/readme/cheatsheet checkboxes

Could you please tell me what the improvement is when using this solution?

>>I suggest the following:

>>the Project Example wizard when starting using Help>Project Examples to have an additional page - Requirements instead of the Details panel
>>to replace the Project Example dialog with the Requirements page in JBoss Central
>>The page wouldn't be shown in the case of those project examples that have the wizard tag when starting from JBoss Central. These project examples would have their own wizard as it is mavenArchetype (JBIDE-9776) now.

> Why would we want to have different/duplicated functionality for this ? I don't understand that.

No, you didn't understand me. 
I propose the following:
When starting a project example using Help>Project Examples, we would start a wizard that would have two pages:

Page 1 - improved current page
Page 2 - Requirements page
... - contributed page

When starting a project example from JBoss Central, it would skip Page 1 and start with the Requirements page (Page 2).
If the project example has the wizard tag, it would skip the Requirements page and go directly to the contributed page (as mavenArchetype when starting from the Create Projects section).
This way, we would solve several issues:

- the project examples that have a contributed page(s) would be wizardified (mavenArchetype) which is requested by this jira
- the project examples that have a big archive would be able to be executed in the background

What else would have to be determinated is the following:

- is it necessary to add output directory/workinkset properties page (already exists in the maven archetypes pages)
If you want we to add it to other types of project examples, we would have to add a tag (skipOutputDirectory for example) saying that showing this page is unnecessary (for all the mavenArchetype project examples, for instance)
- whether  to implement the last page with checkboxes or not
I will implement it if you insists, but we will loose the "download in background" advantage
                
> Wizard-ify the project examples
> -------------------------------
>
>                 Key: JBIDE-10264
>                 URL: https://issues.jboss.org/browse/JBIDE-10264
>             Project: Tools (JBoss Tools)
>          Issue Type: Feature Request
>          Components: project-examples
>    Affects Versions: 3.3.0.M4
>            Reporter: Fred Bricon
>            Assignee: Snjezana Peco
>            Priority: Blocker
>             Fix For: 3.3.0.Beta1
>
>         Attachments: wizardsuggestion.bmml, wizardsuggestion.bmml, wizardsuggestion.png
>
>
> In the wake of JBIDE-9776 and JBIDE-10140, it turns out that, in order for us to contribute 5 new wizards to the "New " menu under the Jboss perspective and in the "New project" section of JBoss central, "project examples" based projects should be created via a Wizard implementation from the get go. 
> Current project examples workflow involves :
> - displaying a form dialog : to display missing runtimes and let the user install/download the required runtimes
> - launching a workspace job, which in turn : 
>   * downloads the example
>   * does the actual project import (launches a wizard for maven archetypes)
>   * resolve quickfixes
> Ideally, all these steps would be part of a single wizard, spanning one to N pages (depending on the complexity/requirements of the examples). Everything contributed by the form dialog would be replaced by a wizard page, which would bring consistency to the UI.
> In other words, that means the project example dialog needs to be refactored into a Wizard, providing an API so that client plugins can contribute wizard pages. 
> I'm aware this is not a simple task to refactor the existing workflow to such an infrastructure but ultimately, that would allow us to easily contribute new project wizards to the IDE in a standard way.
> Current target is 3.3.0.Beta1. Snjeza, WDYT?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list