[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[news.eclipse.tools] Re: Remove Page in Wizard Framework
|
- From: "Michael Allen Latta" <mlatta@xxxxxxxx>
- Date: Fri, 14 Sep 2001 13:26:15 -0600
- Newsgroups: eclipse.tools
- Organization: Digital Convergence
Adding a user controled number of controls to any UI is generally a BAD
idea. For all the reasons you list below I would recomend a different UI
design. Here are a few examples:
1) Have a list to select items on the left/top and one set of the required
controls right/bottom that affect the selected item.
2) Do the same above but with rows in a table and the controls are the
columns.
3) Use a tree control if you need to divide the aspects of one user defined
object into a number of peices.
I hopt this gets you thinking. I have seen this type of add a control per
object UI and it does not scale past about 3 items.
Michael
"Matthew Hartley" <mhartley@xxxxxxxxxx> wrote in message
news:9ntemc$4i5$1@xxxxxxxxxxxxxxxx
> Randy_Giffen@xxxxxxx wrote:
>
> > > Well, I am dealing with dynamic data that changes and needs to be
> > > presented to the user. If I could "add" a page its needed (basically
> > add
> > > the page when the user presses the next button) I could then
dynamically
> > > create the page and its controls. When the user presses back, I would
> > > remove that page, so that everytime they press next on this particular
> > > page they would get a new dynamic page added to the "pages" ArrayList.
> > It
> > > would make the wizard framework more versitile.
> > >
> > > What are you suggestions for doing page sequencing?
>
> > Adding a page and creating its controls are two different steps.
> > If you want to delay the creation of a page's controls until the page is
> > needed, just override
> > Wizard.createPageControls to not create that page. The WizardDialog will
> > then create the page's
> > controls just before it is made visible. Note that this may mean that
the
> > dialog will have to increase
> > its size depending on the size of the page.
>
> > You can determine what the next page is by overriding
> > WizardPage.getNextPage().
> > Thus you could show a new page each time next is pressed.
> > I assume you truly need to create different controls each time and
cannot
> > simply reuse a page by updating the values and enablement of existing
> > controls.
>
>
>
> That is exactly what I will do. I will override getNextPage() and
> getPreviousPage(), Thanks. But, before I can do that I am running into
> another problem, and if I can't solve this problem then there is no need
> for me to add pages dynamically or override the page flow. I am hoping
> you can help shed some light on the other problem I am having. Here is
> the deal: I need to add controls dynamicaly to a page, and the reason I
> need to add them dynamically is because I won't know how many controls are
> needed until the user inputs the neccessary items from the first page. At
> that point, the user will press next, and then I can calculate how many
> controls the user will need for the next page, then instantiate the next
> page. This will all work, esspecailly using the technique of overriding
> getNextPage(). But, the problem now is that how am I going to display the
> controls, esspecially if they get to be so many that they all can't fit on
> the same page. There are two solutions that I have been testing to deal
> with this issue, one is to have one page that has some type of scrollable
> composite, that will allow a user to scroll up and down on all the
> contorls for that page. Or, two, keep adding pages, based on a minimum of
> controls per page, until all controls have been displayed. Even if that
> means having three or four pages. I really don't like the second choice,
> mostly because there could end up being too many pages and being a
> usability issue. So, I have been focusing on tyring to use one page that
> has a scrollable composite. But, I can't get the composite to scroll the
> controls. I have tried using scroll bars on just a regular composite, and
> I have tried using the ScrolledComposite class. And niether of these are
> working for me, at least within the Wizard framework. Here is the code I
> am using for my second page to get this scroll thing to work:
>
> public void createControl(Composite parent) {
>
> ScrolledComposite sc = new ScrolledComposite(parent, SWT.H_SCROLL |
> SWT.V_SCROLL);
>
> Composite myComposite = new Composite(sc, SWT.NONE);
> sc.setContent(myComposite);
>
> GridLayout gridLayout = new GridLayout();
> gridLayout.numColumns = 2;
> myComposite.setLayout(gridLayout);
>
> Label [] label = new Label[15];
> Text [] text = new Text[15];
> for(int i = 0; i < 15; i++) {
> button[i] = new Button(myComposite, SWT.CHECK);
> label[i] = new Label(myComposite, SWT.NONE);
> text[i] = new Text(myComposite, SWT.BORDER);
> }
>
> Point pt = myComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
> myComposite.setSize(pt);
>
> sc.setAlwaysShowScrollBars(true);
>
> setControl(sc);
> }
>
>
> I have also tried different variations of setting sizes for the
> composites, and what have you, and that hasn't worked either. Do you have
> any suggestions?
>
>
>
>
>
>
>
>
>
>
>