159 lines
5.3 KiB
Java
159 lines
5.3 KiB
Java
/*
|
|
* Copyright (c) 2003,2009 Declarative Engineering LLC.
|
|
* All rights reserved. This program and the accompanying materials
|
|
* are made available under the terms of the Declarative Engineering LLC
|
|
* verson 1 which accompanies this distribution, and is available at
|
|
* http://declarativeengineering.com/legal/DE_Developer_License_v1.txt
|
|
*/
|
|
package com.foundation.view.swt;
|
|
|
|
import org.eclipse.swt.widgets.Layout;
|
|
import org.eclipse.swt.custom.StackLayout;
|
|
|
|
import com.common.util.*;
|
|
import com.foundation.view.*;
|
|
|
|
/*
|
|
* TODO: Is this used any more??
|
|
*/
|
|
public class Wizard extends Container {
|
|
/** The attribute that tracks which page number is being displayed. */
|
|
private IAttributeAssociation pageAttribute = null;
|
|
/** The index of the currently visible 'page' component. */
|
|
private int currentPageNumber = -1;
|
|
/**
|
|
* Wizard constructor.
|
|
* @param parent A composite control which will be the parent of the new instance (cannot be null).
|
|
* @param name The unique component name.
|
|
* @param style The style of control to construct.
|
|
* @see #STYLE_NO_BACKGROUND
|
|
* @see #STYLE_NO_FOCUS
|
|
* @see #STYLE_NO_MERGE_PAINTS
|
|
* @see #STYLE_NO_REDRAW_RESIZE
|
|
* @see #STYLE_NO_RADIO_GROUP
|
|
* @see #STYLE_H_SCROLL
|
|
* @see #STYLE_V_SCROLL
|
|
* @see #STYLE_BORDER
|
|
* @see #STYLE_LEFT_TO_RIGHT
|
|
* @see #STYLE_RIGHT_TO_LEFT
|
|
*/
|
|
public Wizard(Container parent, String name, int style) {
|
|
super(parent, name, style);
|
|
}//Wizard()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.view.swt.AbstractComponent#initializeControl(int)
|
|
*/
|
|
protected void initializeControl(int style, Object data) {
|
|
setSwtWidget(new org.eclipse.swt.widgets.Composite(((Container) getContainer()).getSwtParent(), style));
|
|
getSwtWidget().setData(this);
|
|
//getSwtComposite().setLayout(new com.foundation.view.swt.layout.WizardLayout());
|
|
getSwtComposite().setLayout(new StackLayout());
|
|
}//initializeControl()//
|
|
/**
|
|
* Gets the stack layout used with the wizard.
|
|
* @return The wizard's stack layout.
|
|
*/
|
|
protected StackLayout getLayout() {
|
|
return (StackLayout) getSwtComposite().getLayout();
|
|
}//getLayout()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.view.swt.Container#setLayout(org.eclipse.swt.widgets.Layout)
|
|
*/
|
|
public void setLayout(Layout layout) {
|
|
//Does nothing. Layouts are not allowed here.//
|
|
}//setLayout()//
|
|
/**
|
|
* Gets the SWT composite that represents this panel.
|
|
* @return The SWT composite providing visualization for this panel.
|
|
*/
|
|
public org.eclipse.swt.widgets.Composite getSwtComposite() {
|
|
return (org.eclipse.swt.widgets.Composite) getSwtControl();
|
|
}//getSwtComposite()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.view.swt.AbstractComponent#internalOnEventFired(com.foundation.view.swt.IEventAssociation, java.lang.Object[])
|
|
*/
|
|
protected void internalOnEventFired(IEventAssociation eventAssociation, Object[] eventArguments) {
|
|
}//internalOnEventFired()//
|
|
/**
|
|
* Sets the currently displayed page number attribute.
|
|
* @param pageAttribute The attribute referencing the currently displayed page's number.
|
|
*/
|
|
public void setPageAttribute(IAttributeAssociation pageAttribute) {
|
|
if((isInitialized()) && (this.pageAttribute != null)) {
|
|
this.pageAttribute.unregister();
|
|
}//if//
|
|
|
|
this.pageAttribute = pageAttribute;
|
|
|
|
if(isInitialized()) {
|
|
pageAttribute.register();
|
|
internalRefreshPage();
|
|
}//if//
|
|
}//setPageAttribute()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.view.swt.AbstractComponent#internalViewInitialize()
|
|
*/
|
|
protected void internalViewInitialize() {
|
|
if(pageAttribute != null) {
|
|
pageAttribute.register();
|
|
}//if//
|
|
|
|
super.internalViewInitialize();
|
|
}//internalViewInitialize()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.view.swt.AbstractComponent#internalViewRelease()
|
|
*/
|
|
protected void internalViewRelease() {
|
|
super.internalViewRelease();
|
|
|
|
if(pageAttribute != null) {
|
|
pageAttribute.unregister();
|
|
}//if//
|
|
}//internalViewRelease()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.view.swt.AbstractComponent#internalViewRefresh()
|
|
*/
|
|
protected void internalViewRefresh() {
|
|
super.internalViewRefresh();
|
|
|
|
internalRefreshPage();
|
|
}//internalViewRefresh()//
|
|
/**
|
|
* Refreshes the currently visible wizard page.
|
|
*/
|
|
protected void internalRefreshPage() {
|
|
if(pageAttribute != null) {
|
|
Number pageNumber = (Number) pageAttribute.getAttributeValue();
|
|
|
|
if(pageNumber == null) {
|
|
pageNumber = new Integer(0);
|
|
pageAttribute.setAttributeValue(pageNumber);
|
|
}//if//
|
|
|
|
if(currentPageNumber != pageNumber.intValue()) {
|
|
currentPageNumber = pageNumber.intValue();
|
|
getLayout().topControl = ((Component) ((IList) getComponents()).get(currentPageNumber)).getSwtControl();
|
|
getSwtComposite().layout();
|
|
((Component) ((IList) getComponents()).get(currentPageNumber)).getSwtControl().setFocus();
|
|
}//if//
|
|
}//if//
|
|
}//internalRefreshPage()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.view.swt.AbstractComponent#internalViewSynchronize()
|
|
*/
|
|
protected void internalViewSynchronize() {
|
|
//Since the page can only be set manually, this method should do nothing.//
|
|
super.internalViewSynchronize();
|
|
}//internalViewSynchronize()//
|
|
/* (non-Javadoc)
|
|
* @see com.foundation.view.swt.Component#onValueChanged(com.foundation.view.swt.IAttributeAssociation)
|
|
*/
|
|
protected void internalOnValueChanged(IAttributeAssociation attributeAssociation) {
|
|
if(attributeAssociation == pageAttribute) {
|
|
internalRefreshPage();
|
|
}//if//
|
|
else {
|
|
super.internalOnValueChanged(attributeAssociation);
|
|
}//else//
|
|
}//internalOnValueChanged()//
|
|
}//Wizard// |